网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
天线制作 GPS 地标
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | Open source | GNU | Linux | BSD | Solaris | AIX | HP-UX | IRIX | Mac OS X | Minix | Tru64 | SCO UNIX | Network | Security | X-Window | Database | 应用服务 | Programming | 经典著作 | 永远的纪念 | 杂项
 当前位置: Home > Linux > 嵌入式系统 > 硬件设计 > 文章  
嵌入式Linux平台的多协议路由器的设计
文章来源: 赛迪网技术社区 文章作者: 朱雅琼 李建东 盛敏 发布时间: 2006-09-26   字体: [ ]  
 

  图2中的PRU(Packet Radio Unit),在这里相当于路由器的辅助处理器,用于对接收到的无线子网分组进行预处理。

  3 多协议路由器的实现

  3.1 硬件平台的建立

  使用嵌入式系统,必须为硬件平台选择一个适合的微处理器,而选择适用于路由器的微控制器MCU一般要考虑以下几个方面:处理速度、总线宽度、集成度以及性价比。综合考虑了上述几个方面,我们最终选用Motorola ColdFire 5272(以下简称MCF5272)为主控CPU。MCF5272是Motorola推出的一款高集成度的32位ColdFire微处理器,有很强的通信处理能力和较高的性能价格比,很适合用于中小型网络的控制设备。

  MCF5272采用ColdFire V2可变长RISC处理器核心和DigitalDNA技术,在66MHz时钟下能达到63Dhrystone2.1MIPS的优良处理能力。其内部SIM单元(System Integrated Module)集成了丰富的通用模块,如10/100Mbps快速以太网控制器、USB1.1接口等,并且能够与常用外围设备(如SDRAM、ISDN收发器)实现无缝连接。

  MCF5272内部集成了4KB的SDRAM(静态RAM)、片外扩展的Flash(闪烁存储器)和SDRAM(同步动态RAM)。

  MCF5272集成了丰富的外围设备及其接口,主要包括2个通用异步串口收发模块,1个自适应快速以太网媒体接入控制器模块,1个USB控制器(作为从设备)模块。

  按照图2所示的路由器设计,需要在MCF5272的基础上进行一定的扩展。多协议路由器需要连接多个子网和骨干网节点,而MCF5272只集成了2个UART控制器,因此在异步串行扩展和收发模块中利用ST 16C554扩展了4个UART控制器,从而保证某个多协议路由器在与其它2个骨干网节点相连的同时,可以与4个子网相连。在USB接口模块中,使用MCF5272集成的USB控制器(从设备)作为网络管理控制终端,另外扩展了1个主USB控制器实现路由器对USB设备的存储控制。利用MCF5272集成的快速以太网媒体接入控制器,扩展一个外部适配器(收发器)后可以实现接入以太网的功能。

  经以上步骤,我们得到了多协议路由器的硬件平台。

  3.2 操作系统uClinux

  由于硬件的限制,嵌入式系统通常只具有极稀少的硬件资源,如主频较低的CPU、较小的内存等。Linux是一种很受欢迎的类Unix操作系统。它免费并开放源代码,在个人计算机、服务器领域应用广泛。更重要的是,Linux采用模块化设计,实际应用中可以定制,因此Linux也适用于嵌入式领域。

  MCF5272是一种没有MMU的微处理器,故我们选择了专为嵌入式NOMMU微处理器定制的操作系统uCLinux、uClinux正是Linux的一个嵌入式版本,其内核的二进制映像文件可以做到小于512KB。UClinux支持多任务,支持多种文件系统,具有完备的TCP/IP协议栈,并支持多种网络协议,可满足Ad Hoc网络节点接入Internet的需要。另外,uClinux可移植性很强,用户通过重新配置、编译内核,能很方便地将其移植到多种处理器计算平台。

  嵌入式Linux移植技术是从事嵌入Linux开发的一项关键技术,要求开发人员对Linux内核有相当程度的理解,具备修改内核的能力。下面简单介绍uClinux的移植过程。

  (1)精简内核M

  精简内核构造内核的常用命令包括:make config、dep、clean、mrproper、zImage、bzImage、modules、modules_install。可使用这些命令把所有可以去掉的选项都去掉,尽可能地精简内核。

  (2)修改硬件相关代码

  作为源泉代码公开的操作系统,uClinux源码可以从www.uClinux.org获得。系统启动过程中,需要添加三个文件:crt0_rom.s、sysinit.c和rom.ld。crt0_rom.s可以由crt0_ram.s修改得到,它提供一个ROM矢量表以供CPU上电时读取,初始化CPU寄存器,设置程序堆栈,并最终跳转到uClinux内核。Sysinit.c针对实际情况做必要的修改,主要就实际占用的片选资源CS0~CS7、SDRAM控制寄存器SDCR、SDTR作一些修改以适应硬件平台。rom.ld文件用于计算ROMFS文件系统的二进制映像romfs.img在ROM中的实际存放地址。

 
推荐文章
·嵌入式系统的PCI接口设计
 

 
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
相关分类
热点文章
·嵌入式系统的USB虚拟串
·嵌入式系统的PCI接口设
·Linux下ARM/DSP双核系统
·基于嵌入式Linux的智能
·基于Linux的嵌入式网络
·嵌入式Linux操作系统CGI
相关文章
·嵌入式Linux操作系统CGI
·基于Linux的嵌入式网络
·基于嵌入式Linux的智能
·恰当选择嵌入式Linux环
·嵌入式Linux系统的MiniG
·Linux下ARM/DSP双核系统
·制作基于软盘的Linux系
·嵌入式uClinux的内核结
更多...
 
 

Copyright(c) 2001-2009 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统