赵淳臣 王亚刚 王 凯
(上海理工大学光电信息与计算机工程学院,上海 200093)
某项目对一种新型的无线网关提出了如下要求:易组网、低功耗、低成本等。所以该项目最终采用ZigBee作为该传感系统的无线通信协议。主控制器运用了Freescale S08,体积小、性能稳定。无线网关和上位机的通信则采用了Modbus协议。该协议简单、运用广、通信稳定,可以快捷地连接上层监控软件或者PLC,大大提高了系统的工作效率。
文中给出了无线网关系统的硬件、软件结构设计,并最后通过原型机的可靠运行测试,达到了预先要求的各项指标[1]。
系统设计整体上由四部分组成:上位机(PLC)、无线网关、无线传感器和空调系统,如图1所示。要实现可靠的数据传输,首先要解决的问题是网络的建立。MCU通过对EM250(协议栈封装芯片)的控制来建立传感网络。此外,由于ZigBee协议支持Mesh网络,因此该网关系统在网关组网和节点入网时均具有一定的智能性[1]。
图1 室内温湿度闭环控制系统Fig.1 The closed-loop control system for indoor temperature and humidity
无线网关接收到数据后,有两种处理方式:一是通过MCU内部程序规定,对传感器做一些参数设定或者网络设置;二是将数据包封装成Modbus包,并传送给上位机或者PLC。
上位机采用组态王编写的人机界面读取参数,而PLC可以直接控制如空调、智能门窗等大型设备,实现对室内温湿度或者灯光的调控。
网关硬件设计架构如图2所示。从图2可以看出,MCU采用的是Freescale S08系列单片机。该单片机具有出色的低功耗性能和完备的休眠功能,足以应付产品对数据处理的要求。EM250是一款用来封装ZigBee协议的芯片,由MCU对其进行数据读写和命令控制。SKY65336_11是一款2.5 GHz无线功率放大器,用于无线传感器发送和接收无线数据。无线网关需要连接上位机或者PLC。Freescale公司专门为无线低功耗设备设计了一款单片机MC9S08QE32RM,其具备完备的休眠功能和极低的功耗。考虑到本项目的实际应用,本文选用了8位单片机,降低了产品成本。
为了增大网关和节点之间的通信距离,在发射端又加入了一片功率放大芯片SKY65336_11。经测试,该功率放大芯片的放大功率效果明显,最大通信距离可达到1500 m[2]。此外,需要将 MCU通过 RS-232/485串口与上位机进行通信。
图2 网关硬件设计架构Fig.2 Design architecture of gateway hardware
项目软件部分主要由数据采集处理、Mesh网络组网、上位机读取三部分组成。网关软件有五种工作模式,即发送模式、睡眠模式、接收模式、命令模式和空模式。总体分两大模式,即第一部分是工作模式,采取时钟扫描的方式向上位机传递数据,采用中断的方法接收无线终端发过来的数据;第二部分是休眠模式,采用内部休眠机制,以减少系统的整体功耗[3]。无线网关软件设计框图如图3所示。
图3 无线网关软件设计框图Fig.3 Software design of the wireless gateway
网关软件程序由主控器运行。程序分为两部分:中断程序和扫描程序。中断程序用来接收节点发送的数据,而扫描程序则接收组态软件或者PLC发来的命令。
在扫描程序中,系统收到的命令分两种:一种是采集数据命令,即系统采集无线发送过来的数据,打包成Modbus进行发送,并在上位机上显示;另一种是设置命令,即用X-CTU(ZigBee协议软件)对MCU进行基本的设计,如禁止节点加入、传输波特率等[4]。
ZigBee是基于IEEE 802.15.4标准的低功耗局域网无线协议。该技术广泛应用于工业检测以及民用无线领域,智能家居系统就是ZigBee的一个典型应用[5]。
本项目中,厂商对这套系统的网络形成提出了如下要求:网络稳定、组网速度快、节点可随意加入或离开。这几个特点决定该系统必须采用Mesh网络,且须采用ZigBee协议,以很好地支持Mesh网络。Mesh网络形成原理图如图4所示。
图4 Mesh网络形成原理图Fig.4 Forming principle of the Mesh network
协调器(网关)进行信道能量检测及扫描,选择合适的信道;节点上电后通知协调器,并发出入网申请;协调器收到申请后为其分配PANId号以及网络地址。这样一个节点就成功加入到了该协调器组成的网络中。在大规模组网时,涉及到路由的选择,ZigBee协议最多可支持7跳网络[6]。
Modbus是可编程控制器之间运用最为广泛的通信协议之一,它也可与网络上的其他设备进行通信,支撑的网络有Modicon的Modbus和Modbus+工业网络。该协议定义了控制器能识别和使用的信息结构。当在Modbus网络上进行通信时,协议能使每一台控制器知道它本身的地址、识别对它寻址的数据、决定应起作用的类型,并取出包含在信息中的数据和资料。控制器也可以组织回答信息,并使用Modbus协议将此消息传送出去。Modbus协议的工作原理如图5所示。
图5 Modbus协议工作原理图Fig.5 Working principle of Modbus protocol
在本项目中,Modbus运用在无线网关和上位机以及PLC之间的通信上。由于运用的广泛性和数据传送的可靠性,在产品测试过程中,Modbus协议在上位机显示或者PLC数据读取方面,均取得了满意的结果[7]。
系统采用组态王作为上层数据监控软件。作为监控软件,组态王操作简单、功能强大,同时可以对硬件进行控制。组态王可以实现软件模拟硬件设备的工作情况。在该项目中,将采集到的4个无线温湿度传感节点的数据显示在上位机上,同时用曲线记录下每个节点的温度变化,并对特殊事件(报警)进行文档记录。同时,它可以很容易地将几大功能模块做成一张拓扑图,动态显示其网路连接情况、数据发送情况以及对底层硬件的简单控制。组态王功能完善、实用性强,在很多大型公司都有使用。
由于项目强调系统的低功耗性能,即在两节干电池供电的情况下,要保证节点工作10个月、网关工作5个月,因此,系统采用软件实现系统的低功耗[8]。
从图3所示的软件流程可以发现,系统大部分时间都工作在等待状态。因此,考虑使系统在等待状态下停止工作进入休眠,实现系统低功耗要求。系统利用单片机的休眠模式,使所有 MCU的时钟包括振荡器本身都停止工作,时钟模块、电压调节器和ADC处于待命状态;所有内部寄存器和逻辑,包括 RAM的内容都被保持,电流维持在非常低的水平,实现了系统低功耗要求。低功耗控制程序框图如图6所示。
从图6可以看出,在等待中断时,系统已进入休眠状态,工作电流降到250 μA。当有数据出现时,程序会以中断的形式通知CPU,使唤醒系统进行数据传递。由于整个数据处理过程非常快,只需要250 ms左右,因此,整个系统的节能性好。经试验检测表明,在网关缺少24 V供电的情况下,仅凭2节干电池可以工作5个月,而节电模式下可以工作一年甚至更多[9]。
图6 低功耗控制程序框图Fig.6 Block diagram of low power consumption control program
整套测试系统由1个网关(银白色铁盒)、4个节点(白色塑料)组成;网关由24 V电源供电,节点由两节干电池供电。经实验室多次测试,系统组网快捷方便、运行期间网络稳定、数据传送可靠,节点工作时间长达一年,完全符合厂商提出的要求。
[1]周怡颋,凌志浩,吴勤勤.ZigBee无线通信技术及其应用探讨[J].自动化仪表,2005,26(6):5 -9.
[2]李文仲,段朝玉.ZigBee无线网络技术入门与实战[M].北京:北京航空航天大学出版社,2007:4-14.
[3]杨乐平.LabVIEW程序设计与应用[M].2版.北京:电子工业出版社,2001:381-408.
[4]王征.RS-232/Profibus-DP从站接口设计与实现[D].北京:清华大学,2004.
[5]孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.
[6]Masood N,Naqvi S S.Implementation of MPEG-4 decoding on FPGA[C]//Microelectronics,the 17th International Conference,2005:245-246.
[7]Hoske T.More users consider multifunctional transmitters[J].Control Engineering,1997,30(12):45 -49.
[8]Digi International Inc.XBee®/XBee-PRO®ZB RF Modules[EB/OL].[2012-09 -25][2012 -10 -30].http:∥www.docin.com/p -563822962.html.
[9]Akyildiz I F,Su W,Sankarasubramaniam Y,et al.A survey on sensor networks[J].IEEE Communications Magazine,2002,40(8):102-114.