导言
跟着社会信息化进程和互联网的飞迅开展,对无线环境下供给数据服务的需求变得愈加火急。传统的无线移动网络一般以固定的基础设施为支撑,无法满意人们对日益增长的通讯事务的要求,一种新式的无线网络——AdHoc网络应运而生。Ad Hoc网络又称移动自组网、多跳网络,具有细网灵敏、便利,不受有线网络的影响等特色,可广泛运用于军事和救援等无法或不便利预先铺设网络设施的场合。此外,Ad Hoc网络朝着网络互连的方向开展,Internet的接入是其间一项首要内容。
Ad Hoc无线网络具有本身的特殊性,在组成实践运用的无线作业网络时,有必要充分考虑网络的运用规划和扩展性,以及运用的牢靠程度及实时性要求,挑选适宜的网络拓扑结构。现在Ad Hoc无线网络正朝着大规划方向开展,逐步出现分级化的趋势,以两级式的网络为代表。在两级式网络中,拓扑如图1所示。网络分为主干网、子网两级。子网级中,每个子网都能够构成独立的Ad Hoc网络,可选用不同的路由协议。主干网由多协议路由器节点和一般节点构成,其间,一般节点首要完结主干网中的数据和操控信息的分发;而多协议路由器除了具有一般节点的功用外还要担任完结对子网的办理、操控和数据交互,是主干网的中心设备。
多协议路由器的功用
多协议路由器作为主干网的一个节点,运转必定的Ad Hoc网络路由协议,完结主干网络由寻址的功用。
在分级式Ad Hoc网络中,多协议路由器经过和子网网关进行交互完结对子网的办理。子网内的通讯类似于一般的Ad Hoc网络;而子网间的通讯需求经过子网网关节点和主干网节点进行中转,可分为两种状况—同一路由器下同构/异构子网间的通讯以及不同路由器下同构/异构子网间的通讯。为了完结子网间的有用通讯,路由器需求完结多种协议之间的彼此转化。
Internet接入的需求使得分级式Ad Hoc网络有必要存在一个接入点AP(Access Point)。考虑到网络环境,这个功用需求由多协议路由器完结。综上所述,多协议路由器首要完结主干网路由寻址、协议转化、Internet接入的AP三大功用。
多协议路由器的规划
一般状况下,Ad Hoc网中的路由器为车载式或担负式,所以多协议路由器有必要有高集成度和移动性。考虑到以上要素,咱们选用了现在最为盛行的嵌入式体系规划办法,多协议路由器的硬件渠道的微处理器选用Motorola公司的ColdFire嵌入式处理器MCF5272,挑选uClinux作为渠道的操作体系。这样不只能够缩短研制周期,而且为软硬件的规划、调试带来极大的便利。
多协议路由器硬件规划如图2中的虚线框图所示。路由器的硬件结构分为两部分:一部分为中心形式(MCF5272)部分,由微操控器模块和存储器模块(包括SDRAM和Flash)组成;另一部分为通讯接口模块部分,由异步串行操控和收发模块、以太网操控和收发模块及通用串行总线USB(Universal Serial Bus)接口模块组成。
中心模块部分,微处理器模块首要担任处理数据。存储器模块分为两部分:一部分为Flash(由两片Flash构成,共4MB),作为程序存储器,用于存储操作体系内核、各种路由协议和路由表常量;另一部分为SDRAM,作为数据存储器,用作操作体系和各种路由程序的运转空间。
通讯接口模块中,异步串行操控和收发模块用于与多个主干网节点无线衔接的一起,衔接多个子网网关PRU(即分组无线操控单元)。以太网操控和收发模块能够完结Internet接入功用。USB接口模块用作衔接网络设备操控终端,以及完结路由器对USB设备(如USB规范的移动硬盘,用来存储重要的路由信息)的存储操控。
图2中的PRU(Packet Radio Unit),在这儿相当于路由器的辅佐处理器,用于对接纳到的无线子网分组进行预处理。
多协议路由器的完结
硬件渠道的树立
运用嵌入式体系,有必要为硬件渠道挑选一个合适的微处理器,而挑选适用于路由器的微操控器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所示的路由器“ style=”text-decoraTIon:underline;color:blue“》路由器规划,需求在MCF5272的基础上进行必定的扩展。多协议路由器需求衔接多个子网和主干网节点,而MCF5272只集成了2个UART操控器,因而在异步串行扩展和收发模块中运用ST 16C554扩展了4个UART操控器,然后确保某个多协议路由器在与其它2个主干网节点相连的一起,能够与4个子网相连。在USB接口模块中,运用 MCF5272集成的USB操控器(从设备)作为网络办理操控终端,别的扩展了1个主USB操控器完结路由器对USB设备的存储操控。运用MCF5272 集成的快速以太网媒体接入操控器,扩展一个外部适配器(收发器)后能够完结接入以太网的功用。
经以上进程,咱们得到了多协议路由器的硬件渠道。
操作体系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)精简内核
精简内核结构内核的常用指令包括: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中的实践寄存地址。
(3)修正发动脚本
在uClinux完结内核初始化之后,由init(void *)内核调用/bin/init,然后履行/etc/re脚本的指令。能够运用这个脚本完结体系上电后的主动装备,或运转用户程序。
(4)内核装备与编译
需求树立一个穿插编译环境来完结内核和运用程序的编译,生成ROMFS文件体系,并终究构成一个固化文件。www.uClinux.org也供给这样一个工具包。正确装置后,就能够进行编译了。首要进入源代码目录uClinuxdist,履行make xconfig,在弹出的对话框中挑选“Target Platform SelecTIon”,然后进行相应装备。装备结束后,在源代码目录履行“make dep”以及“make”,就得到了所要的二进制内核映像image.bin,能够直接下载到硬件渠道运转。
路由器软件
移植成功后的uClinux操作体系只向用户供给了一个最根本的体系渠道,针对实践运用还有必要编写用户所必需的驱动程序和运用软件。MCF5272集成了2个UART操控器、1个从USB操控器和1个以太网操控器。咱们又扩展了1个主USB操控器和4个UART操控器,为这些设备编写相应的驱动程序,而且在uClinux和驱动程序的基础上,完结路由器” style=“text-decoraTIon:underline;color:blue”》路由器软件(包括路由模块、协议转化模块和无线网络节点阅读Internet署理模块)。
在路由模块中,可依据详细的状况挑选恰当的路由协议进行加载。依据实践状况,在主干网中选用按需路由协议AODV。其根本完结思维是:当主干网某一路由恳求节点有分组发送并发现没有抵达意图节点的有用路由时,它将发动路由树立进程,即组成一个路由寻觅分组RREQ(Route Request Message)并在网络中泛洪寻址。路由表中有到意图节点有用路由,并组成一个路由呼应分组RREP(Route Reply Message)并反向回播给路由恳求节点树立路由,不然持续泛洪RREQ分组。假如路由恳求节点再收到RREP分组,阐明网络中现已树立到意图节点的路由,能够直接发送数据分组,不然或许持续建议下一次路由树立进程,也能够对数据丢掉处理。这儿值得注意的是,每一个节点在接纳RREQ的时分会反向树立到路由建议节点的路由(反向建链进程),以使得RREP能够沿此途径回来源节点;一起,每个节点在接纳RREP的时分会正在向树立到意图节点的路由(正向建链进程)以使得分组能够沿此途径将分组传输给意图节点。在上述寻觅路由的进程中,RREQ和RREP中均包括路由信息和节点的序号标识,以用来进行路由更新及防止路由闭环。
结语
近年来,嵌入式体系与Linux体系的有机结合,已广泛运用于网络通讯、工业操控、机顶盒 、PDA等许多范畴。本文提出了一种依据嵌入式Linux渠道的多协议路由器的规划方案,现在该规划方案现已完结。实践证明,此多协议路由器易于完结、功能安稳、运转功率较高,可运用于分级式Ad Hoc网络。