Zigbee节点设备地址分配算法应用研究
2020-12-14蔡彬彬
摘要:ZigBee通信协议采用分布式地址分配机制给网络中每个节点设备分配网络地址,本文在深入研究Zig Bee设备地址分配算法的基础上,以Zig Bee应用最为广泛的树簇拓扑网络结构为例,组建一个包括Zig Bee协调器节点、路由节点及终端设备节点等完整结构的Zig Bee无线网络,给出了详细的节点设备地址分配计算方法及实现流程。
关键词:Zig Bee技术;树簇拓扑;设备节点地址分配
中图分类号:TP212 文献标识码: A
文章编号:1009-3044(2020)28-0074-03
Abstract: ZigBee communication protocol uses distributed address allocation mechanism to assign network address to each node in the network. In this paper, based on the in-depth study of ZigBee device address allocation algorithm, taking ZigBee tree cluster topology network structure which is the most widely used as an example, a ZigBee wireless network including ZigBee coordinator node, routing node and terminal device node is established The detailed calculation method and implementation process of node device address assignment are given.
Key words: Zig Bee;cluster tree network;node address assignment
ZigBee技术是一种近距离、低成本、低功耗、低速率的无线通信技术[1],该技术面向的主要领域是低速个人无线区域网,符合IEEE802.15.4标准,主要适用于监控、工业应用、家庭自动控制(智能家居)以及设备远程控制,目的是满足小型低价设备的无线连接和控制。
本文深入地研究了Zig Bee网络拓扑结构及Zig Bee地址分配机制,以Zig Bee应用最为广泛的树簇拓扑网络结构为例,组建一个包括Zig Bee協调器节点、路由节点及终端设备节点等完整结构的ZigBee无线网络,给出了详细的节点设备地址分配计算方法及实现流程。
1 Zigbee网络拓扑结构的选择
Zigbee网络层协议同时支持星型、树簇型和MESH网(对等网)等三种拓扑形式。树簇网可连接的Zig Bee节点数较多,网络稳定性较好,兼具星型拓扑结构和对等网拓扑的优点,所以在Zig Bee应用中一般可采用树簇拓扑组建网络。如图1所示。为采用Zig Bee树簇结构的网络节点拓扑图。其中,协调器节点承担组建Zig Bee网络任务,是整个网络的中心节点,如果整个系统中,除了Zig Bee外还有其他通信标准,比如GPRS,则Zig Bee还将充当网关节点功能。路由节点负责网络路由,中转监控数据,也可承担终端节点的功能。
图1所示结构中,包括协调器节点一个,根路由节点一个,根路由节点下有子路由节点N1个,其中,路由节点11和路由节点12不同,路由节点11下面除了挂接N2 个子路由节点外,还挂接了M1个终端节点;路由节点12下面只直接挂接了N3个子路由节点。在计算终端节点设备地址时,必须根据其父路由节点连接设备类型情况来进行判断,计算方法在下面进行介绍。
2 巡更设备节点地址分配[3~5]
在协调器节点设备初始化时,应将其网络层NIB属性的nwkUseTreeAlloc的值设定为TRUE(即nwkUseTreeAlloc=TRUE)。
(1)确定参数Cm、Lm、Rm值
首先,应根据设备拓扑结构关系图得出如下三个关键参数值:
1)Cm:nwkMaxChildren的简写,表示Zig Bee网络中单个设备最多允许的子设备数。
根据图1,要确定Cm值,在不考虑设备可扩展的情况下,由拓扑结构,需要比较下面数的最大值max{(M1+N2),N1,N3,M2,M3}。
2)Lm:nwkMaxDepth的简写,表示Zig Bee网络的最大深度
在计算Zig Bee网络的最大深度时,只考虑协调节点和路由节点,不应包括Zig Bee终端节点设备,因此,根据图1的拓扑图,包括一层协调节点和三层路由节点,因此当前网络的最大深度为Lm=4。
3)Rm:nwkMaxRouters的简写,表示Zig Bee设备中子设备中最多允许的路由数。
要确定Rm值,在不考虑设备可扩展的情况下,由拓扑结构,需要比较下面数的最大值max{N1,N2,N3}。
在本案例中,不考虑未来设备节点的扩展,设N1=2,N2=N3=3,M1=M3=3,M2=5,子路由节点112~11N2最大可挂接终端节点数同111,子路由节点121~12N3最大可挂接终端节点数同121,则可得Cm= N2+M1 =6,Rm =3。
(2)计算路由节点偏移量Cskip(d)(包括协调节点)
在具体计算每个设备地址之前,需要计算不同网络深度的偏移量,使用下述公式一:
[Cskip(d)=1+Cm-Rm-Cm×RmLm-d-11-Rm] (1)
将Cm、Lm和Rm值代入偏移量计算公式中,可算得各不同深度节点的偏移量Cskip(d)如下表1所示。
(3)分配路由节点设备地址
将协调节点设备视作第0级路由设备,假设有某深度为d的路由节点L,其父路由节点的子路由数为N,L在其兄弟路由节点中的排序为M(1≤M≤N),则可根据下述公式二计算路由节点设备地址:
路由节点L地址=路由节点(d-1)分配的节点地址+1+(M-1)×Cskip(d-1) (2)
协调节点设备地址首先确定为0,然后计算各级路由节点地址。如表2所示,协调设备节点网络深度d为0,偏移量值Cskip(0) = 79。则由上述公式算得协调节点分配的第1个根路由器路由节点1地址=协调器节点地址+1=0+1=1,如果协调器下还挂接有路由节点2,则路由器2分配的节点地址=协调器节点地址+1+Cskip(0)=0+1+79=80,第3个路由器地址=协调器节点地址+1+2×Cskip(0)=0+1+79×2=159;
路由节点1的子路由节点11地址=路由节点1地址+1 =1+1=2,路由节点1的子路由节点12地址=路由节点1地址+1+Cskip(1) =1+1+25=27;
路由节点11的子路由节点111地址=路由节点11地址+1=3,路由节点11的子路由节点112地址=路由节点11地址+1+Cskip(2)=2+1+7=10,路由节点11的子路由节点113地址=路由节点11地址+1+2*Cskip(2)=2+1+2*7=17;
依次类推,则得到图1所示巡更系統树簇拓扑结构中所有路由节点地址如图2所示。
终端节点设备地址按以上公式(3)进行计算,分为如下两种情况:
1)父路由节点下除了挂接终端设备节点外,还有子路由节点。如图1中,路由节点11,除了挂接3个终端节点外,还挂接3个路由器设备节点111~113。观察图2拓扑结构图,路由节点11的子路由数为3,则参数Rm=3,路由节点11的设备地址为2,则[Aparaent]=2,Cskip(2)=7,则路由节点11挂接的第一个终端节点设备A1=2+7*3+1=24,第二个终端节点设备A2=2+7*3+2=25,第三个终端节点设备A2=2+7*3+3=26。
2)路由节点下除了终端节点不挂接子路由节点,比如路由节点111、112和121~124,以路由节点121上所挂接的3个终端节点设备地址分配为例,因路由节点121的子节点中路由器的个数为0,所以Rm=0,路由节点121的设备地址为28,则[Aparaent]=28,路由节点121上挂接的第一个终端节点设备分配的地址为:28+1*0+1=29,第二个为28+1*0+2=30,即3个终端节点的地址分别为29、30、31。由上述规则,整个拓扑网络分配的终端节点地址如表2所示(包括前述的协调节点和路由节点设备地址)。
3 总结
本文基于Zig Bee分布式地址分配机制,采用树簇拓扑组建ZigBee网络,以一个深度为4的路由、包括21个终端节点的拓扑结构为例,详细地分析了协调节点、路由节点和巡更终端节点的设备地址分配算法,给出了较为详尽的计算过程。该方法可广泛应用于采用树簇拓扑结构组建的Zig Bee网络应用系统中。
参考文献:
[1] 朱益江.基于ZigBee和RFID技术的小区电动自行车防盗控制系统设计[J].连云港职业技术学院学报,2018,31(4):10-13.
[2] 张云,蔡彬彬.基于物联网架构的水文监测系统研究[J].水资源与水工程学报,2012,23(3):173-175.
[3] 吴许俊,王永利.基于两跳邻居的ZigBee网络借地址分配算法[J].科学技术与工程,2013,13(28):8333-8338.
[4] 李鹏翔.ZigBee网络分布式地址分配算法研究[D].重庆:重庆邮电大学,2012.
[5] 丁江江,李娟莉,王学文.基于ZigBee和GPRS融合的矿井提升设备状态监测系统设计[J].中国煤炭,2019,45(2):69-74.
[6] 李晓豁,刘海亮.基于ZigBee和GPS组合的跑步测试系统[J].传感器与微系统,2019,38(3):102-105.
【通联编辑:梁书】