刘焕强, 耿 鹏, 徐亚峰, 顾晓峰*, 何 磊
(1.江南大学轻工过程先进控制教育部重点实验室,江苏无锡214122;2.中国科学院苏州纳米技术与纳米仿生研究所,江苏苏州215123)
ZigBee网络技术具有低成本、低功耗、低传输速率的特点,并支持多种网络拓扑结构[1]。随着物联网技术应用范围的扩展,ZigBee技术吸引了越来越多的注意[2]。目前,ZigBee技术的应用大多集中于工农业等领域,在人们日常家居生活中的应用也在日渐增多[3]。
通过组建ZigBee个域网,结合成熟的全球移动通信系统(GSM)技术去控制ZigBee网络的网关,可远程实现对各个ZigBee终端的控制[4]。这种小规模的网络对节点需求比较少,对数据量要求也不高,而且安全可靠,特别适合在家庭中使用[5]。作者设计了一种基于GSM短信控制的ZigBee开关系统,通过短信服务(SMS)远程控制终端电气设备的开关状态,经测试,验证了系统的可行性。
一个ZigBee网络最多包括255个节点,每个网络中包括若干终端节点和路由节点,通过网络协调器整体的网络节点最多可以达到65 000个[6]。ZigBee网络有星状、树状和网状3种拓扑结构,无论哪一种网络拓扑结构,每个独立的网络都有唯一的网络号(PAN ID)[7]。本系统采用 ZigBee网络中的网状拓扑结构,ZigBee网络中的协调器只是用来建立一个网络,网络建成后协调器作为一个普通的路由节点在网络中运行。如图1所示,系统由终端、路由节点、网关和手机4个部分组成。其工作过程如下:手机通过GSM网络发送一条包含终端标识和控制命令的短信给短信网关,短信网关再通过ZigBee网络将其无线发送给目标终端;如果距离比较远,无线信号会通过终端的上级路由节点进行中继,目标终端根据收到的命令执行一定的动作,如开、关灯。
图1 系统结构示意图Fig.1 Schematic structure of the system
系统中的无线传输模块主要由德州仪器(TI)公司提供的CC2430芯片组成。CC2430芯片在单个芯片上整合了MCU(8051)、32/64/128 KB可编程Flash和8 KB的RAM,还包含模数转换器(ADC)、定时器(Timer)、AES协同处理器、看门狗定时器、32 kHz晶振的休眠模式定时器、上电复位电路(Power Out Detection)及21个可编程的I/O引脚[8]。
如图2所示,终端节点硬件电路主要由7805稳压芯片、ZigBee通信模块、电磁继电器等组成,其中ZigBee通信模块的射频电路如图3所示。由于路由节点和网关节点也需用到该部分,因此将其独立设计至一个印刷电路板上,与其它器件间通过引线连接。电源供给通过AC-DC电源适配器将220 V交流电转换为12 V直流电,7805稳压芯片提供一个5 V的ZigBee通信模块驱动电压,电磁继电器则通过ZigBee通信模块内部8051单片机的I/O口发送控制命令,实现开关动作。
图2 终端节点电路Fig.2 Circuit diagram of end-device node
图3 ZigBee通信模块射频电路Fig.3 RF circuit of ZigBee communication module
路由节点主要也是由CC2430芯片组成,其结构比较简单,在芯片外围加上射频天线模块、阻抗匹配模块、供电模块等即可工作,如图4所示。另外,在路由节点加了LED灯,用来指示网络的加入情况,亮灯表明路由节点已经加入网络。
图4 路由节点示意图Fig.4 Schematic diagram of router node
短信网关部分主要由ZigBee通信模块、GPRS模块和电源管理模块等组成,其中ZigBee模块与GPRS模块通过串口相连,如图5所示。
图5 短信网关节点示意图Fig.5 Schematic diagram of SMS gateway node
系统软件部分设计的关键是短信网关的设计。短信网关一方面能解析手机短信内容将其转换为ZigBee网络控制命令,一方面将ZigBee网络中数据进行转换发送至手机,因此短信网关是GSM网络和ZigBee网络之间通信的“中转站”。短信网关的主要工作流程如图6所示。
网关开机后,首先进行软硬件的初始化;接着搜索周围网络,网关的 ZigBee模块加入合适的ZigBee网络,GPRS模块加入GSM网络;成功加入网络后,GPRS模块等待接收短信;收到短信后通过串口通知ZigBee模块,ZigBee模块发送相应串口命令取出短信内容;若为“合法”短信,发送控制消息至指定ZigBee终端,从而控制终端设备的开关状态,否则将短信删除,继续等待接收消息。
图6 短信网关工作流程Fig.6 Flowchart of SMS gateway
路由节点开机启动后,首先单跳广播一条地址请求消息(Cluster ID:RefNode_Addr_Req)给邻近的所有网关(单跳范围内)。网关接收到地址请求消息后,回复一条包含自己网络地址的消息(Cluster ID:RefNode_Addr_Rsp)给该节点。节点仅处理收到的第一条回复消息(即可近似推测其来自通信效果最佳的网关),以此消息所包含的网络地址作为上报消息的目标地址[9]。
网关开机启动后,首先单跳广播一条扫描请求消息(Cluster ID:RefNode_Scan_Req)给附近的路由节点、协调器节点(单跳范围内)。节点接收到扫描请求消息后,执行上面开机启动后的操作。主要的实现程序代码如下:
上述代码的功能为网关的扫描,在初始化和收到网关扫描请求时调用。
接收到网关回复后提取网关地址作为目标地址的实现代码如下:
短信格式包括消息类型和终端地址,程序中将终端地址宏定义为易于编写和记录的符号:
#define A 0x14 3E
#define B 0x28 7B
短信消息类型如表1所示。
表1 消息类型Tab.1 Message types
例如,按照上表格式用手机编辑短信A1 01 A发送到网关,GPRS模块收到该短信后会从串口发送给ZigBee模块一条提示信息,网关程序中通过AT+CMGR命令读取短信内容[10],然后根据消息的格式将命令无线发给终端。
短信从GPRS串口取出后的处理过程如下:
目标地址存在CMD数组第10和第11位:CMD[9] =0x14,CMD[10] =0x3E,因此上面的程序最终会将开灯的命令(即前面发送的短信A1 01 A)发送给目标终端0x14 3E,从而控制灯的打开。
实际上单个终端节点可以控制多路设备。一个I/O口连接一个受控设备,扩展多个I/O口就可控制多路设备,甚至I/O口通过扩展其它MCU可控制更多路的设备。相应地,手机发送的控制命令就要在原命令的基础上扩展一个或多个字节,一个字节有8位,而每一位可代表一个设备的开关状态,因此一个字节可同时控制8路设备的开关状态。根据受控设备的数目在控制命令中添加相应字节数,就可以实现同时对多个设备开关的控制。
基于ZigBee网络技术设计了一种开关系统,实现了通过短信来控制终端设备的功能。对系统的终端节点、路由节点和网关作了硬件设计,并在ZigBee协议栈的基础上针对具体应用改进了软件设计。将ZigBee网络与GSM网络结合,可有效地结合两者的优势,而且系统组网操作简单易行,具有较高的实用价值。同时,系统的可扩展性比较强,经过对终端软件改进可以方便地增加其他应用[11-12],如定位、温湿度数据采集等。
[1]万力,王鹏.基于Zigbee技术的温湿度监测网络设计与实现[J].低压电器,2010(10):30-33.
WAN Li,WANG Peng.Design and realization of temperature and humidity monitoring network based on ZigBee[J].Low Voltage Apparatus,2010(10):30-33.(in Chinese)
[2]PAN M S,Tsai C H,Tseng Y C.The orphan problem in ZigBee wireless networks[J].IEEE Transactions on Mobile Computing,2009,8(11):1573-1584.
[3]王敦锋,朱名日,庾志衡,等.基于ARM-Linux和ZigBee的自动煮糖数据采集系统[J].仪表技术与传感器,2011,1(1):45-48.
WANG Dun-feng,ZHU Ming-ri,YU Zhi-heng,et al.Automatic control system for refining sugarcane based on embedded ARMLinux and ZigBee[J].Instrument Technique and Sensor,2011,1(1):45-48.(in Chinese)
[4]周怡颋,凌志浩,吴勤勤.ZigBee无线通信技术及其应用探讨[J].自动化仪表,2005,26(6):5-9.
ZHO Yi-ting,LING Zhi-hao,WU Qin-qin.ZigBee wireless communication technology and investigation on its application[J].Process Automation Instrumentation,2005,26(6):5-9.(in Chinese)
[5]董海涛,屈玉贵,赵保华.Zigbee无线传感器网络平台的设计与实现[J].电子技术应用,2007(12):124-126.
DONG Hai-tao,QU Yu-gui,ZHAO Bao-hua.Design and implementation of Zigbee wireless sensor network platform[J].Application of Electronic Technique,2007(12):124-126.(in Chinese)
[6]李劲,程绍艳,李佳林,等.基于ZigBee技术的无线数据采集网络[J].测控技术,2007(8):63-65.
LI Jin,CHENG Shao-yan,LI Jia-lin,et al.Wireless sensor network based on ZigBee technology[J].Measurement& Control Technology,2007(8):63-65.(in Chinese)
[7] ZigBee Alliance Inc. 053474r17 ZigBee Specification: ZigBee Document[S]. San Ramon:ZigBee Standards Organization,2007.
[8]宁炳武,刘军民.基于CC2430的Zigbee网络节点设计[J].电子技术应用,2008(3):95-99.
NING Bing-wu,LIU Jun-min.The design of Zigbee network nodes based on CC2430[J].Application of Electronic Technique,2008(3):95-99.(in Chinese)
[9]Tadakamadla S.Indoor local positioning system for zigbee,based on RSSI[J].Electrical Engineering,2006,6(10):135-143.
[10]Halonen T,Romero J,Melero J.GSM,GPRS and EDGE performance:evolution towards 3G/UMTS[M].USA:Wiley,2003.
[11]张水平,李晓波,张凤琴,等.ZigBee在多传感器信息集成中的应用[J].计算机工程与设计,2012,33(1):41-46.
ZHANG Shi-ping,LI Xiao-bo,ZHANG Feng-qin,et al.Application of ZigBee in multi-sensor information intergrating[J].Computer Engineering and Design,2012,33(1):41-46.(in Chinese)
[12]董庆贺,何倩.基于ZigBee的无线温度监测系统设计[J].计算机应用,2011,31(12):206-208.
DONG Qing-he,HE Qian.Design of wireless temperature monitoring system based on ZigBee[J].Journal of Computer Applications,2011,31(12):206-208.(in Chinese)