128.128.2.202为网关在工业以太网内分配的IP地址,用于有线网络设备信息交换;0x000000220001、0x000000220002等为无线网络IEEE64位长地址,0x1347为16位的个域网标识符(PANI)ID),0xl699、0x169A为16位设备短地址(SADDR)。无线设备间通信可采用两种方式:长地址或PANID+SADDR。两种方式均对应于一个ObjeetID,地址映射减少了通信传输的字节数,从而提高了通信效率。
(2) 进程通信机制
为了提高系统的实时性,进程间通信采用消息触发的方式,在有线协议(以太网)的开发中移植了嵌入式实时操作系统μc/OS-II。进程间通信主要通过调用μC/0S—II的消息函数——消息请求0SQrequest()和消息触发OSQpost()来实现。在协议开发中,根据不同协议堆栈中不同层完成的功能进行进程任务划分,根据任务优先级来确定任务调用次序,未被触发的任务始终处于消息请求状态。如果同一时刻两个任务被触发,则根据优先级触发优先级高的任务,而优先级低的任务处于等待状态。
3.3 无线/以太网协议转换
ZigBee无线网关协议转换主要是实现ZigBee数据报文与以太网报文双向转换。图3所示为两种协议报文格式转换图。图中给出了协议开发中定义每一层的字节数,其中PAYLOAD字节数可变,最大不超过127 B。当无线网关射频部分(PHY层)接收到数据报文,根据ZigBee通信协议从PHY到APS解出其中有效载荷,然后将有效载荷加载TCP(UDP)/IP(42 B)的报文格式,交由满足IEEE802.3以太网通信协议的网卡处理,从而实现将无线接收到的信息传输到外部控制网络中。
3.4 服务定义及实现
为实现有线网络与无线网络的信息交互及控制功能,无线网关须完成相应的服务功能。无线网关提供的基本服务主要有:读/写服务、信息分发服务、设备上线服务。服务功能在网络连接成功后开始实现,不同服务对应不同的服务号。读写服务主要是针对设备参数的读取和设置;信息分发服务是将无线通信设备采集到的数据周期性地分发到网关,网关再转发到控制网络;设备上线服务是标示设备当前状态,即上线、掉线,该服务的服务类型为周期性,其他服务必须在此服务之后才能执行。各种服务虽然完成不同的功能,但都通过同一服务接口,因此在实现中设计了一套相同的服务报文格式:
服务报文主要包含以下几个关键部分:短地址、服务号、参数索引。CRC为安全校验,LQI为链接质量,PHYheader、MAC header、NwK header和APS header分别为物理层、媒体访问控制层、网络层和应用层头字节,字节数与图3中的规定相同。
4 功能测试
无线网关硬件设计采用双CPU模式,即AT91R40008+CC2430模式。AT91R40008是一款基于ARM7内核的处理器,在网关开发中用于承载以太网协议;CC2430是一款基于IEEE802.15.4协议的无线通信芯片,它包括1个2.4 GHz的射频收发器和1颗工业级小巧高效的8051控制器,用于承载无线通信协议。这种解决方案能够提高系统性能并满足以ZigBee为基础的2.4GHz的ISM波段应用需求。
4.1 测试方法
对无线网关的测试主要采用两款工具软件——TI公司的Packet Sniffer forCC2430和免费开源的Ethereal,主要测试无线网关数据的收发功能、协议转换正确性以及无线网络管理功能等。Packet Sniffel for CC2430为无线通信协议分析软件,配合C51RF一3无线网络协议分析仪可以捕获空中ZigBee无线数据报文;Ethereal为专用于通过网口捕获以太网报文的以太网协议分析软件。测试时,可通过两款协议分析软件分别捕获无线和以太网数据报文,对这两种报文进行分析比较,从而完成对无线网关相关功能的验证;同时也可通过无线网关建立无线测控系统,通过专用无线组态软件对系统进行相关功能测试,从而验证无线网关功能。
4.2 测试界面及分析
(1)数据收发及协议转换功能验证
图4所示为Packet Sniffer for CC2430捕获空中的无线数据报文。无线数据报文包括接收时问(Time)、帧长度(Length)、帧控制域(Frame controlfield)、序列号(Sequence number)、个域网标识符(PANID)、目的地/源地址(Dest/Source Address)等信息。画线部分(16 99 1401 00 04 01 OO 01 09 08 02 00)为无线报文中的实时数据。此数据为无线设备发送出的无线报文有效载荷,由无线网关CC2430射频部分接收。