引 言
传统的移动通信系统是集中式控制的,网络的运行要基于预先架设好的网络设备,但是在不能采用有中心的控制方式时并不适用。这时需要能实现临时快速自动组网、节点能够移动的网络。
移动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上的显示。对于网络中的每个节点,网络环境模拟器都有一个端口与其对应,在程序中每个网络环境模拟器的端口都有一个结构体与其对应。
网络环境的模拟
在网络环境模拟器中,网络环境的模拟主要有:物理层无线传输、网络拓扑变化、提供同步信号等方面。
模拟无线信道传输
模拟物理层传输主要有三方面,一、网络节点发送数据,其它节点当满足接收条件时应该能收到数据;二、要模拟节点数据传输速率;三、模拟节点间传输路径上误码。
在真实的网络环境中,一个网络中的节点能够接收到另一个节点的数据,需要满足的条件有:一个节点是发状态,另一个是收状态,并且两个节点处在同一个信道上,而且接收方应该处在发射方的功率覆盖范围之内。在网络环境模拟器中的模拟是这样做的,网络环境模拟器和网络中节点的数据交互有两种类型:控制信息和数据信息。网络节点利用控制信息给网络环境模拟器对应的端口设置相应的状态,数据信息是网络节点与其它节点之间收发的数据。网络环境模拟器依靠串口的RT。