基于嵌入式系统的网络环境模拟器的设计
扫描二维码
随时随地手机看文章
引言
传统的移动通信系统是集中式控制的,网络的运行要基于预先架设好的网络设备,但是在不能采用有中心的控制方式时并不适用。这时需要能实现临时快速自动组网、节点能够移动的网络。
移动Ad hoc网络是一种有特殊用途的对等式网络,使用无线通信技术、网络中的节点互相作为其邻居的路由器,通过节点转发实现节点间的通信,节点可以移动。与传统的移动通信系统相比,它无需固定网络作为支撑,具有组网快速灵活、支持高移动性、抗毁性强、成本低廉等优点,特别适用于军事、抢险救灾、电子教室等领域。这种网络已经成为无线通信领域中一种有效的通信网络形式,而且已经取得了广泛的应用,如802.11系统、美国海陆空一体化数字通信系统。
在移动Ad hoc网络中,由于通信节点是可移动的,因此网络的拓扑结构也随之动态变化,在Ad hoc网络的研制阶段,要验证网络通信协议的正确性,必须依托于实际的物理信道,做大量的野外试验,给网络通信实验带来很大的困难。网络环境模拟器就是在这种背景下提出的,利用网络环境模拟器,可以不依赖实际的物理信道,而且可以不用考虑物理层的传输协议,而只考虑MAC层和网络层的协议开发,可以加快系统研发进程,便于系统调试和维护,是应用于通信网络模拟试验中的一种简便而有效的设备。
网络环境模拟器的功能要求
基于网络环境模拟器的Ad Hoc网络实验系统由一个网络环境模拟器和16个节点的网络控制器组成。网络环境模拟器模拟一个真实的Ad Hoc网络环境,网络控制器模拟Ad Hoc网络中的节点,网络环境模拟器是针对移动Ad hoc网而研制的,移动Ad hoc网具有自组织和自适应的特性,包括自适应拓扑探测、自适应拓扑更新、自适应路由选择、网络自动管理功能等。在Ad hoc网络的研制阶段,还需要MAC层多址协议的支撑,常用的有CSMA和TDMA。网络环境模拟器也要为MAC层接入协议提供相应的支持。为了适应这些特性,网络环境模拟器应具有以下功能:
·能够任意改变网络拓扑关系,并且网络节点的移动速度可以按照真实的情况模拟;
·模拟无线传输环境,实现节点间的数据传输,并能实现无线信道的特性,在各通信节点传输路径上可以加不同的误码;
·能够为网络中的节点提供时间基准和时间同步信息,以支持TDMA或者跳频接入协议;
·支持多频分层分布式的网络拓扑结构,能够模拟网络中的节点之间的多信道;
·能够跟踪每个节点接收和发送的数据包,为网络层和MAC层的调试提供支持;
·能够提供相关信息的界面显示,能够显示网络拓扑结构,以及网络节点收发状态、收发历程及信道信息;
系统硬件设计
网络环境模拟器主要由主控MCU、总线驱动模块、多串口扩展模块、LCD显示模块、键盘模块等组成。其系统框图如图1所示。
主控MCU与多串口扩展模块和LCD显示模块之间采用EBI总线通信,为了增强MCU总线的驱动能力,在主控MCU与外围之间有一个总线驱动模块。键盘模块跟MCU的IO口相连。主控MCU完成外围电路的控制,处理整个模拟器的工作流程。多串口扩展模块完成网络环境模拟器的端口扩展。LCD显示模块完成网络拓扑、节点收发状态、节点是否碰撞、节点收发数据的长度以及节点收发历程的显示。键盘模块完成节点移动,改变网络拓扑结构。
主控MCU模块
主控MCU模块是网络环境模拟器的核心处理部分,完成外围显示模块、串口扩展模块及键盘控制模块的控制,处理整个模拟器的工作流程。
MCU采用ATMEL公司的32位ARM微处理器AT91RM9200。AT91RM9200芯片基于ARM920T内核,为32位 RISC处理器,它工作在180MHz频率下,运算速度可高达200MIPS。由于AT91RM9200 内部只有16KB的SRAM,远远不能满足应用程序的要求,需要扩展外部SDRAM及FLASH。外扩的存储芯片采用ICSI公司的SDRAM芯片IC42S32200L和MICRON公司的FLASH芯片 MT28F640J3。IC42S32200L数据总线是32位的,存储空间为64Mbit,MT28F640J3数据总线是16位的,存储空间为64Mbit。
串口扩展模块
网络环境模拟器需要提供多个与网络节点的接口,这里我们采用RS-232标准串口作为通信端口。AT91RM9200的串口只有4个(其中有一个是DEBUG串口),所以我们需要外部扩展串口。在串口扩展模块中,我们采用TI公司的TL16C554A作为串口扩展芯片。基于AT91RM9200+TL16C554A的嵌入式系统的多串口扩展是网络环境模拟器硬件的主体部分。TL16C554A与主控MCU的接口连接如图2所示。
TL16C554A是TI公司生产的4通道异步收发器集成芯片,TL16C554A的主要特点如下:由4个带有逻辑控制的TL16C550A异步通信单元组成,每个通道相对独立;最高可达1M的波特率,具有可编程的波特率发生器,便于灵活选择数收发频率;每个通道独立控制发送和接收数据,有独立的Modem控制信号,数据和控制总线均采用三态TTL驱动;具有完全可编程的串行数据格式,数据位长度可设为5,6,7或8,停止位长度可为1或2,校验模式可以是偶校验、奇校验或无校验。
LCD显示模块
LCD显示模块提供了人机交互界面,在LCD上可以显示网络拓扑结构,节点移动情况,节点的收发状态,节点的收发历程,以及节点收发数据所用到的信道。在LCD上,左边的区域是节点收发历程及收发信道显示,每个节点有一个长条形窗口与其对应,节点的收发历程及收发信道在窗口内流动显示,窗口的上半部分显示节点的收发历程,下半部分显示节点当前收发所用的信道。右边的区域是网络拓扑显示,网络中的节点如果在通信范围之内,节点间有实线连接。LCD显示示意图如图3所示。
LCD显示采用EPSON公司的图形控制芯片S1D13806,它是专为嵌入式系统设计的,,内置SDRAM,最高达到800 x 601的分辨率。这里S1D13806采用EBI总线方式与AR91RM9200通信(20位地址线,16位数据线),内置1.28M的 SDRAM与系统统一编址,作为显示缓存,这样控制端将图像数据通过系统总线送到主机接口单元。根据寄存器设置,数据被送往内置SDRAM,余下的工作由13806接管,既不需要MCU的干预,也克服了其他接入方式带宽不足的缺点,可以有效地避免图像的抖动和花屏。
对S1D13506的控制,首先应该配置AT91RM9200的EBI总线寄存器,即定义读写信号脉冲长度、等待状态、数据流动时间、字节访问类型、数据总线宽度。然后再通过EBI总线配置S1D13806的工作模式。
S1D13506驱动LCD显示屏需要的50MHz的BUCLK时钟由外部晶振提供,25MHz的CLK1和12.5MHz的CLK2由可编程时钟发生器芯片ICS1523提供,AT91RM9200通过I2C总线控制ICS1523,使其输出所需CLK1和CLK2的频率,以适应不同规格的LCD或VGA需求,提高显示解决方案的通用性。由于S1D13506访问RAM需要等待70ns,这造成LCD显示速度比较慢。本系统并不需要频繁切换图形界面,主要考虑到AT91RM9200是一款很适合工业控制用的高速ARM处理器。
键盘控制模块
键盘控制模块与AT91RM9200的IO口相连,AT91RM9200利用查询方式,监测相应IO引脚有无电平变化,然后进行相应的处理。键盘控制模块可以控制节点移动,并且可以选择节点的移动速度。同时也可以预设几种网络拓扑结构,利用键盘直接选择一种拓扑结构,节点能按照选择的移动速度,移动到相应的位置。
系统的软件实现
网络环境模拟器的软件分两个模块,一个模块用来实现网络环境的模拟,另一个模块用来实现相关信息在LCD上的显示。对于网络中的每个节点,网络环境模拟器都有一个端口与其对应,在程序中每个网络环境模拟器的端口都有一个结构体与其对应。
网络环境的模拟
在网络环境模拟器中,网络环境的模拟主要有:物理层无线传输、网络拓扑变化、提供同步信号等方面。
模拟无线信道传输
模拟物理层传输主要有三方面,一、网络节点发送数据,其它节点当满足接收条件时应该能收到数据;二、要模拟节点数据传输速率;三、模拟节点间传输路径上误码。
在真实的网络环境中,一个网络中的节点能够接收到另一个节点的数据,需要满足的条件有:一个节点是发状态,另一个是收状态,并且两个节点处在同一个信道上,而且接收方应该处在发射方的功率覆盖范围之内。在网络环境模拟器中的模拟是这样做的,网络环境模拟器和网络中节点的数据交互有两种类型:控制信息和数据信息。网络节点利用控制信息给网络环境模拟器对应的端口设置相应的状态,数据信息是网络节点与其它节点之间收发的数据。网络环境模拟器依靠串口的RTS和 CTS的引脚电平来判断是哪种类型的信息,利用串口的TX和RX来收发信息实体。在每次处理过程中,网络环境模拟器可以根据先前每个网络节点发来的的相关信息,把从每个网络节点接收的数据发送给满足接收条件的其它网络节点。
在网络环境模拟器中,我们利用AT91RM9200的定时器中断来模拟节点间的数据传输速率。每次中断处理完后向每个端口发送一个字节数据。假设我们要模拟短波信道的2.4Kbps—4.8Kbps信道速率,利用AT91RM9200的定时器中断,每隔1/300秒或1/150秒产生一次中断,在中断里我们通过TL16C554A读出各个网络节点的串口数据,这个过程相当于网络节点发送数据,并进行相应的处理,得出网络中哪些节点可以收到,然后再通过TL16C554A向对应的各个网络节点的串口发送数据,这个过程相当于网络节点接收数据。这样相当于网络节点每隔1/300秒或1/150秒收发一个字节数据,即传输速率为2.4Kbps~4.8Kbps。
在任意传输路径上可以加误码,且误码率可以控制,通过对从每个端口读回的数据取反,便实现了误码的要求,只要周期性的控制误码开关,就可以使传输路径上的数据的得到不同的误码。
同步信号的提供
网络模拟器能够为每个网络节点发送同步信号,为MAC层协议的调试提供支持,例如TDMA、跳频等。节点可以用每次网络环境模拟器发来的数据作为时间基准,这样全网的节点时间基准就是一样的了。同时网络环境模拟器可以在特定时间,给每个节点发送一个时间同步信号,实现同步,为TDMA协议的调试带来了很大的便利。
LCD信息显示
LCD上可以显示相关信息,先实现画点、画线、画矩形等基本绘图函数,我们要显示相应的图形可以用这些基本绘图单元组合起来。在网络环境模拟器的中断处理过程中设置相应的状态,例如,收发状态、碰撞状态和节点位置坐标,然后更新显示状态队列,在主程序中执行显示程序,只要按照显示状态队列中的信息画图就可以了。
结语
研制的具有16个端口的网络环境模拟器,可以实现数据终端之间的任意连通关系,支持信道数据传输速率可变及传输路径上加不同的误码。通过网络环境模拟器,模拟网络拓扑结构的动态变化,可以在LCD上清楚地观察节点之间数据收发历程及节点是否碰撞的信息。
网络环境模拟器为研究分组无线网的自组织自适应功能、验证网络协议提供了一个良好的平台,基于该网络环境模拟器已经实现了TDMA协议及AODV路由协议的开发,验证了方案的正确性。