基于ZigBee技术的多节点设备无线物联自组网设计*

2014-07-25 07:43张慧熙王李冬吕明琪
网络安全与数据管理 2014年8期
关键词:串口路由终端

安 康,张慧熙,王李冬,吕明琪

(杭州师范大学 钱江学院,浙江 杭州310012)

目前,针对一定区域内信息和设备进行监测和控制多采用有线方式通信,网络在布线和维护过程中由于线路腐蚀和损坏造成网络中断,给正常生产工作带来影响,同时也增加了人力资源成本比重。基于此,从节省成本和网络稳定性考虑,给出一种基于ZigBee技术的多节点设备无线自组网设计方案。

基于IEEE 802.15.4协议的ZigBee技术[1-3]是一种新兴的短距离无线通信技术,具有功耗低、成本低、网络容量大、可靠性和安全性高等特点。采用ZigBee技术[4-6]传感器节点只需要很少的能量,就可以在多个传感器之间相互协调,以接力棒的方式利用无线传输将数据信息从一个传感器传到另一个传感器。ZigBee技术目前被广泛应用到无线工业、精准农业、家庭和楼宇自动化、消费家电以及医疗服务等领域,是国家“十二五”规划中信息技术重点扶持方向。

本文主要内容包括网络节点硬件设计、ZigBee网络结构实现和无线Mesh网络测试。系统利用终端节点采集数据,通过多跳路由汇聚到协调器节点实现多节点设备无线自组网。

1 系统网络结构

系统网络拓扑结构如图1所示,采用基于树状Mesh拓扑结构[1],网络由协调器节点(Coordinator)、路由节点(Router)和终端节点(End Device)3种类型的功能模块构成。

图1 基于树状无线Mesh拓扑网络结构图

2 无线自组网络节点硬件设计

无线自组网络节点能耗决定整个网络的生命周期,从硬件结构看,节点能耗主要在微处理器模块,选择高性能低功耗微处理器可以降低节点能耗,延长网络生命周期。基于此,采用TI公司的CC2530[6-7]作为主控芯片,用于ZigBee的片上系统,内部集成射频收发器、增强型8051内核、8 KB RAM,封装小、功耗低。

2.1 终端节点和路由节点

终端节点主要负责信息采集,通过射频电路传送信息到协调器节点。路由节点允许子设备加入网络,多跳路由并协助终端节点进行通信,完成数据信息的转发,延长数据传输距离。两种节点硬件电路结构如图2所示。路由节点没有传感器电路,由于实现功能不同,两种节点软件驱动也不同。

图2 终端和路由节点硬件结构图

传感器电路负责采集数据并完成数据转换;片上系统CC2530负责对采集信息进行处理以及整个节点设备的任务管理 (包括无线信号的收发处理以及ZigBee协议操作);电路射频部分采用阻抗匹配电路与天线馈线组成[6],用一个巴伦优化处理,满足输入输出匹配电阻(50 Ω)要求[7];液晶电路显示节点状态;Flash ROM 负责存储数据信息;按键电路方便用户对节点设置,如收发数据时通过按键配置;LED电路指示网络连接状态。

2.2 协调器节点

协调器节点硬件结构图如图3所示。节点负责整个网络初始化,确定ZigBee网络ID号和操作的物理信道,并统筹短地址分配,提供数据路由和安全管理服务。协调器节点与终端节点以及路由节点最大的区别在于:(1)协调器节点通过SP3232电路与上位机通信,由于PC与单片机之间接口不一致,通过SP3232实现USB到串口转换;(2)协调器节点负责与终端节点或者路由节点进行信息通信,不具有信息采集功能。

图3 协调器节点硬件结构图

3 ZigBee协议栈软件设计

系统设计 ZigBee协议[7-8]选择 ZigBee-pro,协议栈版本为ZSTACK-CC2530-2.3.0-1.4.0。整个系统无线网络由事先被定义为协调器的主节点建立。

3.1 协调器节点软件设计

协调器软件设计包括初始化设备、协调器组网、路由节点和传感器节点入网以及数据信息处理(包括数据收发功能)等。协调器节点上电后监测到ZigBee网络,则协调器节点作为路由节点加入到该网络;若监测无网络,则该节点作为协调器节点构建ZigBee网络,终端节点和路由节点加入到该网络。ZigBee网络在2.4 GHz频带划分 16个信道,步长值为 5 MHz,编号为 11~26[7-8],载波频率 fc=2 405+5(k-11)MHz,k取值为 11~26。协调器通过调用函数MAC_MlmeScanReq((macMlmeScan-Req_t*)pData)对信道能量扫描,能量水平高标志该信道无线信号活跃,协调器根据能量扫描信息选择一个可以利用的信道建立自己的无线网络。另外,每个协调器设备已经具有唯一固定的64 bit MAC地址作为组网标识,同时必须分配给自己一个16 bit的网络短地址(PAN ID),节点设备使用短地址通信可以使网络更轻量级、更加高效。PAN ID值可以在ZDAPP_CONFIG_PAN_ID中进行修改,协调器默认网络短地址为0x0000。协调器节点的主要功能是对网络中各子节点进行管理,接收各子节点的状态信息并将信息上报上位机进行数据处理。图4为协调器通信流程图。

图4 协调器通信流程图

3.2 路由节点软件设计

路由节点一旦监测到网络便会自动绑定[7-8]到一个相应的协调器节点或者父路由节点,申请加入网络。作为入网申请,无论是路由节点还是终端节点,都需要对设备进行配置,作为路由节点令logiclType=ZG_DEVICETYPE_ROUTER,通过调用函数zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE,sizeof(),&logicalType)选择路由节点。在路由节点上加载系统引导项,令startOption=ZCD_STARTOPI_AUTO_START,通过调用函数 zb_WriteConfiguration(ZCD_NV_STARTUP_OPTION,sizeof(),&startOption)驱动路由节点启动系统。路由节点申请入网成功后若有其他节点申请加入,需要判断申请节点是路由节点还是终端节点,为节点配置系统加载项,完成节点入网工作。若节点入网成功则该路由节点为申请入网节点分配网络地址,通过多跳数据转发机制进行数据交换,并根据选择的路由节点转发数据,提供网络的连通性,数据的发送和接收通过应用层调用完成数据帧ACK应答机制[8]。图5给出了路由节点通信流程图。

图5 路由节点通信流程图

3.3 终端感知节点软件设计

终端感知节点主要完成信息采集,通过路由节点传送到协调器节点以RS232方式进行传输供上位机对数据进行处理。终端节点上电后,对节点设备进行配置,令logiclType=ZG_DEVICETYPE_ENDDEVICE,通过调用ZDO_Start()申请加入父节点。但是在终端节点入网之前,路由或者协调器节点无法获得终端节点的网络地址,可通过对设备绑定解决该问题[7-8]。终端节点调用zb_Bind-DeviceRequest()发出绑定请求,并通过zb_AllowBindResponse()对配对请求作出响应,同时路由或者协调器节点执行 zb_BindDevice(TRUE,clusterID,NULL)与终端节点发生绑定,如果绑定成功则绑定表建立在路由或者协调器节点上,绑定表中的ClusterID(簇标识符)值相等,且属性相反。通过clusterID获得终端节点的网络地址,绑定成功后终端节点执行zb_SendDataReques()周期性发送采集的数据信息。图6为终端节点通信流程图。

4 节点网络自组织和自愈功能测试

图6 终端节点通信流程图

进行ZigBee组网测试时,通过设置4个节点(其中1个协调器节点、两个路由节点、1个终端感知节点)进行自组和自愈网络测试。采用串口调试助手和TI公司监控软件ZigBee_Sensor_Monitor进行组网测试。串口配置:端口号COM8,波特率 38 400 b/s、8位数据位、1位停止位。测试过程中,系统通过串口实现协调器与上位机监控端通信。协调器汇聚各个节点采集的信息,串口接收到的数据帧定义[8]如表1所示。

由于每个网络只能拥有网络内唯一一个协调器,协调器通电后,初始化其中64位IEEE地址为0x(00124B-0001FA9D87),网络短地址 PAN ID为 0x0000,协调器执行zb_BindDevice()接收其他节点绑定请求,组建网络。

路由节点1上电后,自动搜索父节点 (即协调器节点)加入网络,入网成功则路由节点1周期性发送节点信息经协调器上传到PC端,串口接收到数据信息为0x(FE 0A 46 87 01 00 02 00 04 00 FF FF 00 00 CC),根据表1中对数据帧定义,其中路由节点1短地址PAN ID为 0x0001,其父节点 PAN ID为0x0000。继续将路由节点2上电加入到网络中,路由节点2搜索父节点(即协调器节点),入网成功后路由节点2周期性发送数据信息,上位机通过串口接收数据信息为0x(FE 0A 46 87 3E 14 02 00 04 00 FF FF 00 00 E7),根据表1中对数据帧定义,其中路由节点2短地址PAN ID为0x143E,其父节点PAN ID为0x0000。

继续将终端节点上电加入到网络中,终端节点自动搜索并绑定到距离其最近的路由节点2,成功入网后终端节点周期性地将采集到的信息通过路由节点2和协调器节点上传到PC端。串口接收数据信息为:0x(FE 0A 46 87 6D 28 02 00 04 00 14 23 3E 14 95),其终端节点短地址PAN ID为0x286D,其父节点PAN ID为0x143E,信息位0x14表示当前采集温度为 20℃,4个节点无需人工干预,组网成功,实现了网络拓扑结构的自动组建功能。终端节点入网成功后通过上位机组网监控界面如图7所示。

表1 数据帧格式

设定路由节点2故障,中断信号传输,则终端节点会自动搜索网络找到距离其最近的父节点(即路由节点1),绑定并入网成功,同时周期性地向协调器发送采集数据信息。串口接收到的数据信息为:0x(FE 0A 46 87 30 14 02 00 04 00 13 23 01 00 D8)。其中终端节点短地址 PAN ID为 0x1430,其父节点 PAN ID为 0x0001,信息位0x13表示当前采集温度为19℃。当节点2发生故障时,网络能够自我修复,并对网络拓扑结构进行相应的调整,无须人工干扰,系统能够正常工作。节点自我修复后上位机组网监控界面如图8所示。

图7 节点组网结构图

图8 节点修复组网结构图

本文给出了一种基于ZigBee技术多节点设备无线自组网方案,详细介绍了节点硬件电路和软件系统设计,通过对多个节点进行组网测试完成网络的自组织连接和自愈修复功能,使网络系统运行正常。节点设备具有通信协议简单可靠、灵敏度高、测量准确、功耗低,节点布置灵活、系统易于扩展等优点。另外,系统可应用于农村蔬菜种植、花卉园艺等各种类型温室大棚环境的智能化监控、智能家居节点设备的组网、工业节点的无线定位、医疗物联网等领域,具有较大的市场竞争力和广阔的应用前景。

[1]GISLASON D.ZigBee wireless networks[M].Elsevier Inc,2008.

[2]王龙山,马俊.基于物联网的家居综合监测系统[J].电子技术应用,2013,39(2):78-81.

[3]曹明勤,张涛,王建.基于 ZigBee的农业物联网监测系统的设计与实现[J].电子技术应用,2013,39(12):86-89.

[4]崔逊学,赵湛,王成.无线传感器网络的领域应用与设计技术[M].北京:国防工业出版社,2009.

[5]GILL K,Yang Shuanghua,Yao Fang,et al.A ZigBee-based home automation system[J].IEEE Transactions on Consumer Electronics,2009,55(2):422-430.

[6]Zhang Chunlong,Zhang Min,Su Yongsheng,et al.Smart home design based on ZigBee wireless sensor network[C].International ICST Conference on Communications and Networking,2012:463-466.

[7]王凤.基于CC2530的 ZigBee无线传感器网络的设计与实现[D].西安:西安电子科技大学,2012.

[8]FARAHANI S.ZigBee wireless networks and transceivers[M].Butlington:Newnes,2008.

猜你喜欢
串口路由终端
浅谈AB PLC串口跟RFID传感器的通讯应用
X美术馆首届三年展:“终端〉_How Do We Begin?”
铁路数据网路由汇聚引发的路由迭代问题研究
通信控制服务器(CCS)维护终端的设计与实现
一种基于虚拟分扇的簇间多跳路由算法
探究路由与环路的问题
GSM-R手持终端呼叫FAS失败案例分析
基于预期延迟值的扩散转发路由算法
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索