汪华斌,徐浩冬,刘亮奇,王艺棉,陈文超,郭晓杰
(惠州学院 计算机科学系,广东 惠州,516007)
无线传感器网络(wireless sensor networks,WSN)是由具有计算能力和无线通信能力的传感器节点以自组织方式构成的无线网络.它综合了传感器技术、嵌入式计算机技术、网络通信技术、分布式信息处理技术、微电子制造技术等多种技术[1],在网络覆盖区域内具备采集感知对象的信息及进行基本处理的功能.无线传感网络具有低成本、低功耗、组网灵活等特点,使其在特殊环境中广泛应用.但在智能交通、移动办公、智能物流等应用中被其传输距离短、传输速率低等因素制约,因此针对这些应用场景需要改进[2-3].以太网是一种成熟的网络技术,具有接口简单、通信速率高、传输距离远、通信协议完善、传输稳定和易扩展等优点,满足建立模块化、网络化和开放式监测系统的需求,实现现场监测和远程监测中心之间的无缝链接[4-5].
目前大多数无线传感器均为非IP终端设备,将非IP设备接入以太网,以便从远程监测中心获得被监测对象的实时数据,并对实时监测数据进行分析处理,从而进行远程控制,在实现资源优化、提高运行效率、提升行业竞争力方面具有重要意义[6].本文以Zigbee网络和以太网技术的优点为基础,设计一套远程数据监测系统,通过Zigbee终端节点采集实时数据,利用以太网将数据传输至远程监测中心,实现对Zigbee传感节点的远程监测.
文献[7]提出的设计方案中,采集终端使用了无线传感器,但通过GPRS网络进行远程传输,存在传输速率低及数据丢失率高的缺点,在山区尤为明显;采用ARM进行转发处理更增加了系统设备采购成本和维护成本.文献[8]采用的方案中,采集终端采用布线连接的方式,虽然提高了数据传输的可靠性,但其部署成本较高,不适合进行大规模的应用,不能进行动态的拓扑和自组网,使得升级维护较为困难.因此采用Zigbee、以太网结合的方式更为合理.
系统的总体设计框架如图1所示.Zigbee协调器上电后先进行信道扫描,选择合适的信道,及唯一的网络标识符创建网络.网络中的Zigbee终端节点负责采集数据,并将数据通过Zigbee路由节点转发至协调器.终端节点上电先扫描现有的Zigbee网络,请求加入最优的网络,协调器会在网络容许范围内接受请求,并且分配给终端节点一个本网络或特定网络内唯一的16位网络短地址,以标示身份[9].终端节点接入网络后,将采集到的实时数据传输到协调器,协调器将收到的数据进行封装,经串口转发至以太网接口RMO4模块,RMO4将数据打包成符合TCP/IP协议的格式,通过以太网发送至远程的监测中心.
以太网模块启动时先初始化串口和相关外围设备,创建一个基于TCP的Socket服务器,等待远程TCP客户端的连接请求.如有客户端成功连接,以太网模块就将无线传感器网络采集的实时数据向所有连接的客户端转发.基于TCP的Socket客户端监测软件接收到数据后进行分析处理,再将结果显示给监测者参考(如图2所示),最终实现远程监测中心对无线传感器网络覆盖区域的实时监测.
Zigbee协调器接收到终端节点采集到的实时数据后,在应用层进行封装,再通过串口转发给以太网模块,捕获的数据帧如图3所示.
针对其中一组数据进行分析,原始数据为:FE 0E 46 87 8B C9 02 00 06 00 16 1F D3 64 00 00 37,数据分析结果如表1所示(均为16进制).
表1 Zigbee数据帧分析
传感器节点的控制核心选用TI公司推出的芯片CC2530,CC2530集成了微处理器、存储器和射频模块,具有高集成度、低功耗、小体积、低成本、外围电路简单以及接口丰富等特点,支持点对点、点对多点、多点对多点无线网络数据传输,可外接多种传感器用于无线数据采集[10].且CC2530芯片支持最新的Zigbee 2007/PRO协议栈,相比之前的协议栈具有更好的互操作性、节点密度管理和数据负荷管理等特点,并且支持网状拓扑结构和低功耗,这使得CC2530芯片设计的传感节点通信距离更远,网络更加稳定可靠[10-11].具体的硬件设计及关键电路如图4~5所示.
以太网模块是以HLK-RM04为核心的拓展板.HLK-RM04是海凌科电子新推出的低成本高性能嵌入式串口转以太网模块.是基于通用串行接口的符合网络标准的嵌入式模块,内置Socket协议,能够实现串口与以太网之间的透明传输.利用HLK-RM04模块,无线传感器的串口设备无需进行改造,即可通过将数据传入以太网.具体的硬件设计及外围电路如图6所示.
Socket是一种基于TCP/IP协议的应用程序访问通信协议的操作系统调用.Socket主要是有流式Socket(SOCK_STREAM)和数据报Socket(SOCK_DGRAM)2种,前者提供可靠的、面向连接的通信流,针对面向连接的TCP服务应用,后者定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的且不保证可靠无差错,对应于无连接的UDP服务应用[12-13].本系统要求可靠的数据传输,故采用基于TCP的流式Socket,如图7所示.在以太网接口模块上建立Socket服务器,在PC机的监测软件上创建Socket客户端,PC机的监测软件使用时需进行服务器的IP地址和端口的连接设置,再向服务器发送连接请求.若连接成功,HLK-RMO4将无线传感器网络采集的数据转发给PC机的监测软件,PC机监测软件对接收到的数据进行处理和分析.Socket通信关键类如下:
/*服务器IP地址和端口组合*/
ipep=new IPEndPoint(IPAddress.Parse(ServerIP), Port);
/*客户端创建TCP套接字Socket*/
clientocket=new Socket(ipep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
/*客户端连接Socket服务器*/
clientSocket.Connect(ipep);
/*客户端接收信息 */
clientSocket.Receive(inBuffer, 1024, SocketFlags.None);
/*客户端关闭Socket */
clientSocket.Close();
/*服务器监听客户端的连接请求*/
serversocket.Listen();
/*服务器接收客户端的连接请求*/
serversocket.Accept ();
远程监测中心(上位机软件)采用了基于Windows 7操作系统下的Visual Studio 2010 C#语言开发,主要用于检测、分析、处理终端传感器节点采集到的实时数据,实现对远距离监测场景的实时监测.
测试过程中,Zigbee无线传感器网络由3个终端传感节点和1个协调器,首先启动协调器创建Zigbee网络,随后传感器网络的各个终端节点请求入网并启动以太网模块.打开上位机监测软件设置Socket服务器的IP地址和端口号并请求连接.若连接成功后即可接收Zigbee终端传感节点定时采集的环境参数,数据包长17位(协议头、包长度、命令高/低位、源地址高/低位、命令ID高低/位、数据长度高/低位、温度、电压、信号强度、链路质量、父节点地址高/低位、校验位),上位机将接收的数据先进行校验再进行有效性检查,舍弃无效数据,将数据转换为16进制并把高低位合并等相关处理,完成处理过程后在界面上显示准确的数据,如图8所示.
系统结合了Zigbee和以太网,充分利用了Zigbee技术在实时数据采集方面的优势与以太网在远距离传输上的优点,解决了单独采用Zigbee网络在远距离传输中的缺点和单独采用以太网在布线方面的困难.在数据采集、数据传输和数据处理阶段都进行合理设计,使对传感节点实时数据的远距离监测成为可能.本系统在环境监测、矿井安全监测、养殖场监测、建筑安全监测等方面都有很好的应用前景.
参考文献:
[1] 李慧,高飞,王兵.HBE-ZigbeeX无线传感器网络平台3种拓扑结构的TinyOS实现[J].云南民族大学学报:自然科学版,2011,20(1):46-47.
[2] 朱红松,孙和民.无线传感器网络技术发展现状[J].中兴通讯技术,2009(5):1-5.
[3] 宋宗峰.无线传感器网络技术发展现状及趋势[J].数字技术与应用,2011(5):139-140.
[4] 董武,陆利坤,李业丽.基于W5300的以太网和串口数据相互转换系统设计[J].制造业自动化,2013,35(2):139-142.
[5] 况淑青,王海英,钟艳敏,等.以太网分布式测控系统在热工实验中的应用[J].核动力工程,2013,34(3):113-115.
[6] 杨阳.基于ARM的无线监控终端的研究与实现[D].北京:中国科学院研究生院,2011.
[7] 韩清华,李树君,张云川,等.食用菌工厂化栽培环境的远程监测系统[J].农业机械学报,2008,39(8):123-127.
[8] 文韬,洪添胜,李立君,等.基于无线传感器网络的橘小实蝇成虫监测系统设计与试验[J].农业工程学报,2013,29(24):147-154.
[9] 刘吉星,杨秀蔚,牟伟清.基于Zigbee技术和以太网的无线测控系统设计[J].可编程控制器与工厂自动化,2012(1):45-47.
[10] 刘军,张金榜,于湘珍,等.基于CC2530的脉搏感知节点设计[J].电子技术应用,2013,39(1):34-35.
[11] 李正民,张兴伟,柳宏川.基于CC2530的温湿度监测系统的设计与实现[J].测控技术,2013,32(5):25-28.
[12] 刘生寒,卢有飞,肖建毅.B/S架构下应用系统从IPv4到IPv6的迁移技术研究[J].计算机与现代化,2013(2):209-212.
[13] 臧绍刚.梁晟.傅光轩.Socket网络应用程序从IPv4向IPv6的转换[J].通信学报,2005,27(Z1):24-25.