基于嵌入式Linux平台的多协议路由器设计

发布者:740322lwj最新更新时间:2006-07-26 来源: CE china关键字:路由器  模块  骨干网 手机看文章 扫描二维码
随时随地手机看文章

  引言

  随着社会信息化进程和互联网的飞迅发展,对无线环境下提供数据服务的需求变得更加迫切。传统的无线移动网络通常以固定的基础设施为支撑,无法满足人们对日益增长的通信业务的要求,一种新型的无线网络——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网络。

关键字:路由器  模块  骨干网 引用地址:基于嵌入式Linux平台的多协议路由器设计

上一篇:嵌入式实时操作系统性能测试方法研究
下一篇:嵌入式系统定义和发展历史

推荐阅读最新更新时间:2024-05-02 20:25

车身控制模块 —— 每辆汽车上隐秘但必备的器件
汽车电子正在实现越来越多的功能(安全性、驾驶辅助、为驾驶员提供更多的信息),对优质电子器件的需求也持续高速增加。随着与舒适性、安全性、设备和定制驾驶体验相关的功能日渐丰富,对车辆电子系统的要求也相应地越来越严苛。 车身控制模块(BCM)通过信号来协调车内不同功能。他们管理众多车辆功能,包括门锁、报警声控制、内部和外部照明、安全功能、雨刮器、转向指示器和电源管理等。被绑定到车辆电子架构的BCM在减少必需插件连接和电缆线束数量的同时,提供了最大化的可靠性和经济性。 随着对BCM功能增加的需求不断攀升,所需电缆线束的数量也在不断增加。例如,根据 Kiyotsugu Oba在其撰写的“新一代汽车的线束”一文中所说的,就紧凑型汽车而
[汽车电子]
车身控制<font color='red'>模块</font> —— 每辆汽车上隐秘但必备的器件
基于单片机的图形液晶模块的驱动设计
内置T6963C控制器的Y240128A液晶模块由双电源(VDD/V0)供电。工作时需要提供一个负电压 (即液晶驱动电压V0/VEE),用以调节对比度,接至液晶模块的V0引脚。基于液晶材料的物理特性,液晶的对比度会随着温度的变化相应变化,因此,所提供的负电压必须随温度变化作相应的调整,大致变换关系是温度变化10℃,电压变化1V左右。此外,液晶模块在正常工作前必须提供驱动电源。由于选用的Y240128A液晶模块中已具备提供负电压的功能,只需接一个可调电位器(阻值20kΩ)就可方便地为液晶提供驱动电源。具体如图1所示。   引脚1、2:接地;引脚3:接+5V电压为LCD逻辑电源;引脚5~8:液晶控制信号;引脚10~17:液晶数
[单片机]
基于单片机的图形液晶<font color='red'>模块</font>的驱动设计
如何优化PCB布局提高电源模块性能
全球出现的能源短缺问题使各国政府都开始大力推行节能新政。电子产品的能耗标准越来越严格,对于电源设计工程师,如何设计更高效率、更高性能的电源是一个永恒的挑战。本文从电源PCB的布局出发,介绍了优化SIMPLE SWITCHER电源模块性能的最佳PCB布局方法、实例及技术。 在规划电源布局时,首先要考虑的是两个开关电流环路的物理环路区域。虽然在电源模块中这些环路区域基本看不见,但是了解这两个环路各自的电流路径仍很重要,因为它们会延至模块以外。在图1所示的环路1中,电流自导通的输入旁路电容器(Cin1),在高端MOSFET的持续导通时间内经该MOSFET,到达内部电感器和输出旁路电容器(CO1),最后返回输入旁路电容器。
[电源管理]
如何优化PCB布局提高电源<font color='red'>模块</font>性能
wifi7路由器什么时候上市?高通中兴正发力
  在MWC上很多亮点值得关注,我们一起来看看wifi7最新消息;802.11n(2009)、802.11ac(2013年)、802.11ax(2019年)分别命名为Wi-Fi 4、Wi-Fi 5、Wi-Fi 6。那么wifi7?Wi-Fi 7是Wi-Fi联盟的新兴无线标准,IEEE 定义为802.11be。   那么WiFi6和wifi7的区别在哪里?根据相关数据显示,wifi7相比于WiFi 6,信道带宽增加到320MHz,调制方式升级到4KQAM,wifi7进一步扩展WiFi的频率到6GHz,而且wifi7降低现有频率对WiFi的传输速率的干扰,还可以将网络的吞吐率和时延大幅度的提升。   我们可以查询到Wi-Fi
[嵌入式]
4G 通信模块在ARM 平台下的应用
4G模块是连接物与物的重要载体,是终端设备接入物联网的核心部件之一,随着4G的普及,许多新兴市场对4G通信模块的需求都在日益扩大,那么在ARM平台的嵌入式设备上如何快速的应用4G模块呢? 4G通信模块把频率接收器和信号增幅器等部件全都整合在一起,实现了一体化。随着工业发展,嵌入式设备接入网络的需求日益增多,在没有有线或WiFi等无线的环境下,直接通过4G通讯模块连接运营商网络来接入互联网不失为一个好方法。因此,本文就为读者介绍一下基于ARM平台的嵌入式设备在Linux下使用4G模块的方法。 一、开发环境 1) 开发主机环境: Ubuntu12.04(64位)、arm-fls-linux-guneabi-gcc系列交叉编译链。 2
[网络通信]
4G 通信<font color='red'>模块</font>在ARM 平台下的应用
现场总线FESTO模块配置步骤分享
总线节点CPX-M-FB35 工作电压范围 DC : 18 V ... 30 V 参数设置 : 诊断特性,防错响应,强制通道,信号设置,系统参数. 附加功能 : 通过现场总线实现非环参数访问,通过以太网实现非环数据访问,快速启动 (FSU),通过现场总线实现通道级诊断,纯文本启动参数设置,通过现场总线,用过程参数可显示系统状态,附加诊断接口,用于人机界面. LED 显示屏,总线专用 M/P:维护/PROFIenergy NF:网络故障 TP1:网络活动端口 1 TP2:网络活动端口 2 LED 显示屏,产品特点 M:修改,参数设置 PL:负载电源 PS:电子元件电源、传感器电源 SF:系统故障 气接口VABA-S
[嵌入式]
现场总线FESTO<font color='red'>模块</font>配置步骤分享
单片机外部模块供电问题
问题产生:因为stm32最小开发板上没有5V的针脚,于是把超声波模块的VCC和GND接到电脑USB接口供电,STM32F103C8T6的电源是用电源适配器接排插的。程序运行不正常。 分析原因:估计电平不匹配,造成时序不同步。 解决方法:外部模块和STM32开发板的电源要统一。可以从电源适配器接开发板处多并列几个VCC和GND
[单片机]
Panasonic 高性能蓝牙5低功耗模块贸泽开售
专注于引入新品并提供海量库存的电子元器件分销商贸泽电子 (Mouser Electronics) 即日起开始备货Panasonic PAN1780模块。这款蓝牙™ 5.0低功耗模块能够在无连接的情况下传输大量数据,为物联网 (IoT)、信标 (beacon) 和网状网络 (mesh) 等应用提供紧凑型解决方案。 贸泽电子分销的Panasonic PAN1780模块采用Nordic nRF52840单芯片控制器,该控制器拥有Arm® Cortex®-M4F处理器核心以及1MB嵌入式闪存和256KB内置RAM。通过这款功能强大的Nordic SoC,工程师能够以独立模式使用此模块,无需外部处理器支持,从而降低成本并节省电路板
[嵌入式]
Panasonic 高性能蓝牙5低功耗<font color='red'>模块</font>贸泽开售
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved