基于USB的WSN测试与分析系统
2016-05-03罗红玉乐燕芬侍财源施伟斌上海理工大学光电信息与计算机工程学院上海200093
罗红玉,乐燕芬,侍财源,罗 松,施伟斌(上海理工大学光电信息与计算机工程学院,上海200093)
基于USB的WSN测试与分析系统
罗红玉,乐燕芬*,侍财源,罗松,施伟斌
(上海理工大学光电信息与计算机工程学院,上海200093)
摘要:实时监控无线传感器网络(WSN)从单个节点到整个网络的运行状态,是进行无线传感器各类研究及应用开发的关键技术之一,为了克服基于UART的数据传输所存在的速率瓶颈问题,设计了一种基于USB的WSN监测系统,主要包括侦听节点和监测分析系统两部分。侦听节点采用CC2531 USB Dongle,以被动侦听的方式获取无线传感器网络的数据包(符合IEEE802.15.4标准),封装后通过USB接口上传至上位机监测分析系统。上位机监测系统,通过USB接口读取数据帧、完成帧信息存储、解析。实验结果表明该设计能够实现数据传输并以图形方式动态显示网络运行状态。本监测系统的设计为开展WSN的各类理论及实验研究提供了有力的分析工具。
关键词:无线传感器网络;拓扑解析;上位机软件;USB接口;CTP协议;ZigBee协议
随着传感器技术、嵌入式技术、无线通信技术微电子技术等发展,无线传感器网络WSN(Wireless Sensor Netork)经过多年的研究与开发,正快速进入实用阶段[1-2]。目前国内外很多学术研究机构、商业机构都对无线传感器网络监测平台展开了详细的研究[3-7],但其基于UART接口完成数据帧获取及简单的解析,如采集温湿度数据并分析,且非开源的。
基于无线传感器网络监控需求,并考虑到在进行实时监测的任务过程中,监测系统必须具有数据采集、数据处理及大量数据无线传送功能,同时满足周期性数据采集和低功耗传输的需求[8],同时为了突破UART数据传输的瓶颈,本文提出了一种基于USB的WSN监测系统设计方案,通过帧解析实现网络状态信息、性能指标的图形化动态显示。
1 WSN测试平台设计方案
1.1网络测试平台系统构架
考虑到无线传感器网络对监测技术的要求,本WSN监测系统包括被测无线传感器网络、USB帧听网络、PC端协议分析模块。图1为网络测试平台的基本构架。
图1中被测无线传感器网络采用ZigBee或Tinyos节点板,在2.4 GHz频段附近组网,传感器节点用于采集环境指标如湿度、光照、压力等信息,并将这些信息经过各路由节点送达协调器。侦听网络由CC2531侦听节点组成,被动侦听被测无线传感器网络发出的信息,并将这些数据封装成USB协议数据包,上传至PC机进行分析。PC监测客户端协议分析软件对上传的数据进行保存、解析,根据数据包中的地址域分析出拓扑结构以及其它网络特征信息,并进行动态图形显示。
图1 网络测试平台基本构架
1.2硬件平台
传感器节点板和侦听节点板两种硬件模块构成了测试平台的硬件系统。前者构成被监测的无线传感器网络,可采用ZigBee或Tinyos节点板构成[9];后者作为侦听节点,是本测试平台的核心。
本测试平台侦听节点选用TI集成USB2.0接口的CC2531USB Dongle。该设备最高传输速率达480 Mbit/s,完全可满足大量数据传输的速率要求。CC2531集成有一个USB控制器[10],结构如图2所示。通过USB固件库程序,可对驱动信息进行详细描述,USB主机在与CC2531通信时将根据这些信息加载合适的驱动,在设备正确识别后,USB主机可以从控制器的FIFO端点读写数据[11]。
图2 USB控制器
主机与设备通信是通过端点完成的。从USB控制器结构可以看出,CC2531具有6个端点,端点0是控制端点[12],每个设备必须有端点0,它用于设备枚举和主机对设备进行一些基本控制功能操作时的通信;端点1~5是数据端点,在设备配置成功后可用于数据的读写操作。每个USB设备有一个唯一的主机分配的地址,只有确定了设备地址和端点地址才可以进行数据通信。
2 系统软件设计
2.1USB数据通信设计
USB设备与主机通信前需要配置驱动,让主机识别才能够进行正常数据通信和读写操作。读操作也即数据输入,是数据从设备到主机的过程;写操作也即数据输出,是数据从主机到设备的过程。USB通信过程如图3所示。
图3 主机端USB通信过程
要访问设备就必须先获得该设备句柄,在Windows操作系统中可以通过GUID类进行查找这个句柄[13]。配置设备时,主机通过系统API将上电设备与GUID绑定,并将GUID写入注册表,这样通过GUID(接口类GUID)就可以找到对应设备。主机自身有个驱动对应的GUID文件,使用该API后,主机将把对应的设备的VID,PID以及版都列举出来(设备的VID,PID,版本号都是由下位机配置好的)如果某设备存在于该列表中则可以被打开。通过获取设备接口详细信息可找到USB设备,从而完成设备枚举。
设备描述符信息也即设备接口详细信息[14]是在侦听节点软件设计过程完成的,其主要是对设备的端点号、设备的VID、PID及版本号进行配置等。其编程在TI提供的USB固件库程序rfusb_cc2531中,找到对应的usb_hid_descriptor.s51文件,在其中进行相应的程序编写。整个文件是完善描述符结构体,并提供可以修改、读取的指针以便USB中断使用。而对应的中断服务入口程序则在文件mrfi_radio.c中。
2.2侦听节点软件设计
图4是一个完整的初始化、数据接收和数据发送的流程。从处理USB标准请求(处理USB复位、USB端点0的数据和USB暂停)开始至上位机接收数据,这些步骤是处于主循环中。
图4 侦听节点设计流程图
初始化模块完成的工作如图5所示。
图5 初始化模块
图5中,中射频模块MRFI初始化主要是完成全局中断及侦听信道的设置。WSN在2.4 GHz频段共有16个通信信道,第K个信道的中心频率f= 2 450+5(k-11)MHz。
初始化结束后,节点进入数据接收、发送主循环。当节点侦听到数据帧时,就会触发中断事件对数据进行接收。接收中断服务程序如图6所示,首先设置RFRadioState为接收状态,检查当前接收的数据帧是否满足802.15.4协议。如果接收到一个符合802.15.4完整的数据帧,再检测当前的硬件缓存区是否有足够空间存储,如果有,则进行存储,存储之后把硬件缓存区的数据存储到软件环形缓存区中。
图6 接收中断服务程序
并且清空当前硬件缓冲区。软件缓存使用环形FIFO进行数据存储,总是从队尾加入需存储的新数据帧。这种环形FIFO的数据存储方式能有效解决数据包覆盖问题。
存放在环形缓存FIFO中的RF数据帧将通过USB接口上传,等待上位机接收。本文选择USB端点3完成数据发送,该端点大小为128字节,而802.15.4通信的数据帧长度不会大于128字节,发送缓存区大小满足要求。数据发送成功点亮红灯。
2.3协议分析软件设计
协议分析软件程序流程如图7所示。
图7 协议分析软件程序设计流程图
首先通过发现USB设备这一过程让主机完成枚举,此后主机与USB设备之间通过USB接口进行通信。协议分析软件发送信道配置等命令给侦听设备并进入数据帧接收状态。从USB接口获取的数据帧经过协议解析,可直接显示MAC层数据包,并支持对ZigBee协议与CTP协议栈的分析。利用多个线程可以进行拓扑分析,网络参数性能指标分析等工作,并利用定时器线程完成分析结果和拓扑图的动态显示。
3 实验及实验结果分析
为验证本测试与分析系统的有效性,搭建了被测试WSN网络,并进行了各项性能测试实验,如被测网络建立时间、节点申请加入时间、数据丢包率、网络拓扑结构图等。实验在长约10m宽约7m的实验室内进行,存在外界WLAN干扰。
3.1USB数据通信
通过前述侦听节点USB的配置以及主机成功完成枚举过程后,USB与主机能够正常的进行通信,上位机接收界面如图8所示。
从图8可以看出侦听节点使用3号端点,并在信道11上对CTP协议无线传感器网络进行侦听。原始数据里每一行都是一个完整的数据帧,帧头是0x75,0x73两字节,帧尾是0x73,0x74两个字节,由0009号节点向0001号节点发送数据。
图8 USB数据通信图
3.2ZigBee协议数据侦听
实验中,监听ZigBee网络使用1个侦听节点、1个协调器和若干终端设备,组成星型网络。该实验主要功能是通过一个节点的按键控制,点亮其他节点相应灯闪烁控制。网络拓扑如图9所示。
图9 网络拓扑结构图
图9中显示0001节点为协调器节点,0004号节点、0005号节点和0009号节点为终端节点构成星型网络。
3.3CTP协议数据侦听及分析
本实验采用4个节点构成CTP无线传感器网络,0001节点为协调器节点,0004号节点作为路由器节点,其余2个节点作为终端节点。利用数据分析中的数据解析(CTP)这一标签观察,实验数据如图10所示。
图10 数据接收图
图10中Ⅰ部分的每一行显示的均是完整的一个CTP数据帧。图中依次显示数据接收时刻、帧长度、MAC层序号、地址信息、MAC负载、接收信号强度、链接质量和帧校验等信息。以第5个帧为例,从图中可直接看出这是一个数据帧,从0009号节点送往0004号节点。点击该行,则在图Ⅱ部分显示该帧的路由表信息和邻居表信息,显示内容表明该帧为转发帧,传送路径是从0009到0004,同时显示了节点ETX值和数据负载信息。图Ⅲ部分显示网络的单位流量曲线,横轴是时间轴,纵轴是单位时间内的流量(包个数)。该曲线是在侦听的总包数不发生变化时测试的,可以看出流量变化比较稳定。
图11显示4个节点在建立稳定网络后的拓扑图。0001号节点作为协调器建立网络,0005节点和0009节点作为终端节点加入网络,0004号节点作为路由节点加入网络。
图11 传感器网络拓扑图
3.4网络建立过程分析
协议分析软件可以通过对接收的无线数据包的分析完成对网络建立过程的有效监测,并图形显示相关信息。实验过程中,首先打开协议分析软件,对USB侦听节点设置了侦听信道、打开通信端点,然后依次打开协调器节点、路由器节点和终端节点。网络建立过程如图12所示。
图12中Ⅰ部分申请加入网络但未能加入网络节点的传感器节点,因为实验环境中存在其他的传感器节点,而其他的传感器节点申请接入网络,而由于其通信信道不相同未能成功接入网络。Ⅱ部分是加入网络节点对应相关信息,信息包括申请入网时刻、加入网络耗时、入网广播包数、LQI值和RSSI值。从图中可以看出路由节点0004首先加入网络,之后加入的是终端节点。Ⅲ部分可以选择入网时间比较、节点入网时刻曲线、入网广播包数比较三种方式观察实验。图中申请入网时刻单位是ms。
图12 网络建立过程图
3.5网络稳定性分析
无线传感器网络稳定性主要是通过研究网络丢包率变化、网络拓扑结构改变等现象进行。网络丢包率从上位机接收的MAC层帧序号以及上位机自身接收到的数据帧序号对比可以计算出丢掉包的数量。拓扑变化可以从邻接表被修改的次数分析出稳定性。网络稳定性分析如图13所示。
图13中Ⅰ部分从上到下依次显示侦听的总包数、广播包数、自发包、转发包、丢包数、丢包率、拓扑变化次数和节点个数。从图中看出当前共侦听到304个包,其中广播包34个,自发包0个,转发包270个。丢包率为0,拓扑变化次数为0。Ⅱ部分以饼图显示包组成成分对比,从图中可以看出,含有路由信息的帧是路由帧,其占据了总发包数量的10%左右,含有转发信息的帧是转发帧其占总发包的90%左右。Ⅲ部分显示的是拓扑变化次数。Ⅳ显示每个节点自身发出的广播包、转发数据包以及自身数据包数量。这些图形显示直观地说明了网络稳定性能。
图13 网络稳定性分析图
4 总结
本监测系统利用具有USB接口的侦听节点完成被测无线传感器网络的被动侦听,通过对所侦听数据帧的分析,完成了无线传感器网络监测和分析功能。除了完整显示MAC层数据帧,系统还可以根据Zig⁃Bee或CTP协议完成数据帧的分析,获取网络的各个性能参数,如网络建立时间分析、稳定性分析、拓扑结构、数据丢包率等,并以图形方式实时动态显示。相对于仿真研究,该监测软件的设计为开展无线传感器网络相关的各类实验研究提供了有利的支持。
参考文献:
[1]冯亚超,贺康,杨红丽,等.一种无线传感器网络数据收集协议的研究与优化[J].传感技术学报,2014,27(3):355-360.
[2]Akyildiz W S,Sanakarasubramaniam Y,Cayici E,et al. Wireless Sensor Networks:A Survey[J]. Computer Networks,2002,38(4):393-422.
[3]Anh N T,Shorey R. Network Sniffing Tools for WLANs:Merits and limitations[C]//Personal Wireless Communications,2005:389-393.
[4]崔逊学,左从菊.无线传感器网络简明教程[M].北京:清华大学出版社,2009:231-256.
[5]Ertin E,Arora A,Ramnath R,et al. Kansei:Sensor Testbed forAt-Scale Expeirments[C]//Proceeding of 2nd International TinyOS Technology Exchange,Berkdey,2005.
[6]Werner-Allen G,Swieskowski P,Welsh M. MoteLab:A wireless Sensor Network Testbed[C]//International Symposium on Informa⁃tion Processingin Sensor Networks. IEEE Press,2005:483-488.
[7]高民,沈钟,黄有才. SNAP:无线传感器网络研发测试平台[J].计算机研究与发展,2010,47:338-344.
[8]魏艳梅.无线传感器网络测试平台设计方法研究[D].山东大学计算机科学与技术学院,2013.
[9]仇国庆,杨志龙,杨莉,等.基于ZigBee协议的无线传感器网络节点设计[J].自动化与仪器仪表,2008,63(3):7-8.
[10]Zhao Z,Yang G H,Liu Q,et al. Implementation and Application of a Multi-Radio Wireless Sensor Networks Testbed[J]. Wireless Sensor Systems let,2011,1(4):191-199.
[11]郝晓明,李杰,胡陈君,等.基于FPGA的弹载数据回读系统设计[J].传感技术学报,2015,28(7):1023-1027.
[12]万婷婷. USB接口开发及功能实现[D].西安:西安电子科技大学,2011.
[13]阿力甫·阿木提. Delphi1中USB设备数据采集与控制方法[J].中国科技信息,2014,21:105-106.
[14]段严兵,罗文华. Windows操作系统环境下调查USB设备使用痕迹方法研究[J].刑事技术,2015(2):138-141.
罗红玉(1990-),女,硕士研究生,研究领域为无线传感器网络,kuma⁃ra648793894@163.com;
乐燕芬(1978-),女,上海人,讲师,博士,主要研究领域为无线传感器网络应用技术开发、无线抗干扰技术等,leyan⁃fen@usst.edu.cn。
WSN Monitoring System Based on USB
LUO Hongyu,LE Yanfen*,SHI Caiyuan,LUO Song,SHI Weibin
(School of Optical-Electrical and ComputerEngineering,University of Shanghai for Science and Technology,Shanghai 200093,China)
Abstract:Monitoring the operation of both the single node and the whole network is a key part to do research and development work of wireless sensor network. In order to overcome the speed bottleneck of the transmission based on UART,a novel WSN monitoring system is proposed,which is composed of the sniffer node and the monitoring analysis system. Sniffer node is responsible for monitoring the data of WSN(802.15.4 protocol)encapsulating and sending data to monitor analysis system through CC2531 USB dongle. While the monitor system gets the data from the USB interface and completes storage and analysis of the data. The experimental results show that the design can accomplish data transmission and dynamic display network running state effectively. The design provides a refer⁃ence for various implements in monitoring WSN.
Key words:WSN;Topology analy;PC software;USB interface;CTP(Collection Tree Protocol);Zigbee protocol
doi:EEACC:6150P;6150M10.3969/j.issn.1004-1699.2016.03.018
中图分类号:TP393
文献标识码:A
文章编号:1004-1699(2016)03-0411-06