蔡彬彬
摘要:ZigBee网络层协议的核心内容是协调设备组网和接收设备入网,本文深入研究ZigBee网络层协议,详细分析了ZigBee网络的组网流程和数据收发过程,采用一组ZigBee节点组建树簇拓扑,对组网过程进行了测试,经测试,节点可以灵活构成无线传感器网络,网络性能稳定。论文为基于ZigBee技术的应用开发提供了技术参考依据。
关键词:ZigBee;组网;树簇;网络拓扑
中图分类号:TP92 文献标识码: J
文章编号:1009-3044(2020)30-0013-03
Abstract: ZigBee network and receiving devices are the core contents of the ZigBee network layer protocol. The article was based on the further research of three network topology structure characteristics and the device type about ZigBee, and then put forward the networking process and data transceiver of the ZigBee network, which provided the technical reference for the application development based on ZigBee technology.
Key words: ZigBee; Networking; Tree Cluster; Network topology
1 引言
ZigBee是一种低复杂度、低功耗、低数据速率的无线通信技术,采用ZigBee技术组建无线传感器网络具有可扩展性强、免布线的特点[1]。利用ZigBee技术构建无线传感网首先要确定拓扑结构,需要考虑网络的节点功耗、网络稳定性等几个方面,保证网内的所有节点都能被访问到。
本文深入研究ZigBee网络层协议,详细分析了ZigBee网络的组网流程和数据收发过程,采用一组ZigBee节点组建树簇拓扑,对组网过程进行了测试,经测试,节点可以灵活构成无线传感器网络,网络性能稳定。论文为基于ZigBee技术的应用开发提供了技术参考依据。
2 ZigBee网络拓扑结构分析[2]
ZigBee网络层支持星型、树簇型和点对点拓扑结构,见图1。
如果一个ZigBee设备想加入一个ZigBee网络,应首先和网络中的一个设备发生关联,协调设备节点可通过发送信标帧为网络中的其他设备提供同步服务。
3 协调节点组网过程分析[3,4]
3.1 协调节点组网
如图2所示,协调节点通过在APL层、NWK层和MAC层之间发送ZigBee特点的原语方式来组建网络。首先,ZigBee协调节点设备发送NLME-NETWORK-FORMATION.request原語,NWK层收到request请求原语后,发送请求扫描MLME-SCAN.request原语,收到该原语后,MAC层执行能量检测扫描任务,搜索可能存在的干扰,扫描所有信道,排序并将不符合能量强度的信道去除。
接着,NWK层发送MLME-SCAN.request到MAC层,请求MAC层搜索邻近的ZigBee节点设备,选择网络节点数最少的第一个信道来创建新的ZigBee网络,NWK层发送MLME-SET.Request原语,由MAC层将macPANID设定为PAN标识,将协调节点网络地址设为0x0000。当协调节点选定地址后,MAC层启动新的PAN,NWK层收到PAN启动状态后,向APL层发送NLME-NETWORK-FORMATION.confirm证实原语,通过三层之间的交互,协调器成功创建一个新网络。
3.2 协调节点允许设备加入网络
如图3所示,当协调器节点成功组建新网络后,通过NLME-PERMIT-JOINING.request原语来限时允许其他ZigBee设备加入ZigBee网络。在ZigBee网络中,只有ZigBee协调节点或路由节点才能够允许其他ZigBee设备加入ZigBee网络。当设备成功进入网络后,再次发送NLME-PERMIT-JOINING.request原语,把其中的PermitDuration参数设置为0x00,此时将禁止设备加入网络。
3.3 协调节点接收设备入网
如图4所示,ZigBee协调器发送MLME-ASSICIATE.indicationMAC原语把一个ZigBee节点设备加入网络。协调节点为新加入节点分配一个唯一的16位网络地址。并在近邻表中为新加入的ZigBee子设备增加一条记录,通过向MAC层发送响应原语,指示设备关联成功。NLME向APL层发送NLME-JOIN.indication原语,通知新节点设备已经成功入网。
4 路由设备加入ZigBee网络
如图5所示,路由节点APL层向NWK层发送NLME-NETWORK-DISCOVERY.request原语,请求加入网络。节点NWK层收到原语后,发送MLME-SCAN.request原语到MAC层,MAC执行扫描,每收到一个有效信标帧后,就向NWK层发送一个MLME-BEACON-NOTIFY.indication指示原语。
路由设备将检查协议ID字段,看它是否与自身的协议标识匹配。当MAC层完成扫描向并发送MLME-SCAN.confirm原语后,NWK层向APL层发送NLME-NETWORK-DISCOVERY.confirm原语,把网络描述信息发给节点设备应用层。
路由设备应用层接收到NLME-NETWORK-DISCOVERY.confirm原语后,即获知了节点设备邻近区域内的网络信息。此时,设备应用层就向NLME发送NLME-JOIN.request原语,将RejoinNetwork参数设置为FALSE,JoinAsRouter参数设置为TURE。如路由节点成功入网,则其NWK层将收到一个16位的逻辑地址号,路由节点即可使用该逻辑地址来通信。
5 终端节点设备加入ZigBee网络
如图6为终端节点加入ZigBee网络的主流程。终端节点设备首先完成节点自身的各项初始化工作,包括芯片初始化evbInit()、协议栈初始化aplInit()等流程。完成各项初始化工作后,终端节点设备加入一个已存在的ZigBee网络过程,该过程与路由节点入网过程基本类似,不同处在于因为终端节点设备的JoinAsRouter参数设置为FALSE。如果终端设备成功加入网络中,NWK层将收到一个16位逻辑地址,则终端设备以后就可以使用该逻辑地址来通信。其NWK层还会设置相应近邻表记录中的Relationship字段,指示该近邻设备是它的父设备。
将ZigBee協调器节点与主机连接,通信方式为RS-232,采用串口调试助手观察协调器组网的全过程信息。首先打开协调器电源,随后协调节点的指示LED点亮,表示协调器组网成功,如图7所示,串口调试助手显示协调器的设备地址是0x0000000000000001,PANID是0x00001347。
然后打开其中一个路由器节点电源,此时路由器节点的红色LED点亮,表明节点成功加入ZigBee网络,如图8所示,串口调试助手显示该路由器节点成功加入网络,分配得到的网络短地址是0x1699,并显示了其父设备(协调器节点)的相关信息。
最后打开某终端节点设备电源,如果成功加入网络,则相关信息也会反馈到主机。如图8所示,显示新加入的终端设备的长地址为0x0000000000000006,PANID为0x00001347。
7 总结
ZigBee网络层协议的核心内容是ZigBee组网和接收设备入网,本文深入研究ZigBee协议原理,给出了ZigBee网络的组网流程和数据收发过程,经测试表明,节点可以灵活构成无线传感器网络,网络性能稳定,论文为基于ZigBee技术的应用开发提供了技术参考依据。
参考文献:
[1] 王翥,郝晓强,魏德宝.基于WSN和GPRS网络的远程水质监测系统[J].仪表技术与传感器,2010(1):48-49,52.
[2] 杨萌,赵亮.基于ZigBee技术的无线传感网络研究[J].电子技术与软件工程,2015(1):34.
[3] 薛艳亮,胡建萍,王江柱.基于分布式编址机制的ZigBee组网技术研究[J].杭州电子科技大学学报,2008,28(2):33-36.
[4] 吴许俊,王永利.基于两跳邻居的ZigBee网络借地址分配算法[J].科学技术与工程,2013,13(28):8333-8338.
[5] 李鹏翔.ZigBee网络分布式地址分配算法研究[D].重庆:重庆邮电大学,2012.
[6] 尹甲,别红霞.ZigBee地址分配算法及树路由算法改进[J].软件,2013,34(1):129-132.
【通联编辑:梁书】