ZigBee网络地址分配机制及路由失效自修复研究
- 格式:docx
- 大小:43.87 KB
- 文档页数:11
基于ZigBee 的自愈自组网的设计与应用饶达琴,张文超(杭州电子科技大学电子信息学院,浙江杭州310018)摘要:ZigBee 技术为低功耗、低成本、低复杂度、适中数据传输率和且具有自组织功能的无线监控网络的组建提供了坚实的技术基础。
为了增强无线网络在无人值守、远程监控等应用中的稳定性及智能化,本文在分析ZigBee 协议体系结构以及Z_Stack 协议栈基础上,研究了如何基于CC2530组建具有自组网、自愈特性的ZigBee 无线网络,通过对无人值守的通信基站的交流电压、电流和温湿度环境等参数的远程实时监控的试验,实现了网络的自组网与自愈功能,增强了网络的稳定性及智能化。
关键词:ZigBee ;自组网;Z_Stack ;CC2530中图分类号:TN925文献标识码:A文章编号:1674-6236(2012)23-0111-03Design and application of self -organized and self -healing network based on ZigBeeRAO Da -qin ,ZHANG Wen -chao(School of Electronics&Information ,Hangzhou Dianzi University ,Hangzhou 310018,China )Abstract:ZigBee technology provides a substantial basis for wireless monitoring and controlling network with low -power consumption ,low -cost ,low complexity ,moderate -data -rate ,self -organized and self-healing.In order to enhance the stability and intelligent for the wireless network ’s application in the unattended and remote monitoring ,Based on analysis of the basic architecture of ZigBee protocols and Z_Stack ,discusses how to organize a wireless networking with the features of self -organized and self -healing by CC2530.And with the experiment of the remote real -time monitor for industrial frequency voltage value ,current value ,temperature and humidity of unmanned communication stations ,the function of self -organized and self -healing are realized ,enhancing the wireless network stability and intelligent.Key words:ZigBee ;self -organized ;Z_Stack ;CC2530收稿日期:2012-08-09稿件编号:201208028作者简介:饶达琴(1987—),男,江西上饶人,硕士研究生。
Zigbee节点设备地址分配算法应用研究作者:蔡彬彬来源:《电脑知识与技术》2020年第28期摘要:ZigBee通信协议采用分布式地址分配机制给网络中每个节点设备分配网络地址,本文在深入研究Zig Bee设备地址分配算法的基础上,以Zig Bee应用最为广泛的树簇拓扑网络结构为例,组建一个包括Zig Bee协调器节点、路由节点及终端设备节点等完整结构的Zig Bee无线网络,给出了详细的节点设备地址分配计算方法及实现流程。
关键词:Zig Bee技术;树簇拓扑;设备节点地址分配中图分类号:TP212 ; ;文献标识码: A文章编号:1009-3044(2020)28-0074-03Abstract: 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 assignmentZigBee技术是一种近距离、低成本、低功耗、低速率的无线通信技术[1],该技术面向的主要领域是低速个人无线区域网,符合IEEE802.15.4标准,主要适用于监控、工业应用、家庭自动控制(智能家居)以及设备远程控制,目的是满足小型低价设备的无线连接和控制。
ZigBee树型网络地址分配及结构
树型路由机制包括配置树型地址和树型地址的路由。
当协调器建立一个新的网络,它将给自己分配网络地址0,网络深度d=0。
网络深度表示仅仅采用父子关系的网络中,一个传送帧传送到ZigBee协调器所传递的最小跳数。
如“节点A”加入网络并与协调器连接,那么“节点A”的网络深度是1;“节点B”加入网络并与“节点A”连接,那么“节点B”的网络深度是2,依此类推。
在树簇型网络中,协调器和路由器都可以连接N个路由节点和终端节点做为自己的子节点,形成一个个“簇”。
但是协调器和路由器能连接的子节点的数量是不是无限的呢?
协议栈中,有以下几个参数影响网络拓扑的形态:
Cm(nwkMaxChildren):每个父节点可以连接的子节点的总个数;
Rm(nwkMaxRouters):在Cm中,可以是路由节点的个数,Rm<=Cm;
Lm:网络最大深度,协调器的深度为0。
这三个参数的值在Z-stack中分别由变量CskipChldrn、CskipRtrs、MAX_NODE_DEPTH决定。
这三个变量可以在NWK中的nwk_globals.c 和 nwk_globals.h 两个文件中查找。
地址的分配:
每一个节点加入网络时,都会被分配16位
(未完待续)。
Zstack入网退网代码分析网络初始化和路由:网络初始化:协调器(Coordinator)首先在某个频段发起一个网络,网络频段的定义放在DEFAULT_CHANLIST配置文件里。
如果ZDAPP_CONFIG_PANID定义的PAN ID是0xFFFF(代表所有的PAN ID),则协调器根据它的IEEE地址随机确定一个PAN ID。
否则,根据ZDAPP_CONFIG_PANID的定义建立PAN ID。
当节点为Router或者End Device时,设备将会试图加入DEFAULT_ CHANLIST所指定的工作频段。
如果ZDAPP_CONFIG_PANID没有设为0xFFFF,则Router或者End Device会加入ZDAPP_CONFIG_PANID所定义的PAN ID。
设备上电之后会自动的形成或加入网络,如果想设备上电之后不马上加入网络或者在加入网络之前先处理其他事件,可以通过定义HOLD_AUTO_START来实现。
通过调用ZDOInitDevice(int startdelay)来手动定义多久时间(startdelay)之后开始加入网络。
设备如果成功的加入网络,会将网络信息存储在非易失性存储器(NV Flash)里,掉电后仍然保存,这样当再次上电后,设备会自动读取网络信息,这样设备对网络就有一定的记忆功能。
如果需要使用NV Flash的设置,可以通过定义NV_RESTORE宏和关闭SW_BYPASS_NV来使用。
有关网络参数的设置大多保存在协议栈Tools文件夹的f8wConfig.cfg里。
路由:Z-Stack采用无线自组网按需平面距离矢量路由协议AODV,建立一个Hoc网络,支持移动节点,链接失败和数据丢失,能够自组织和自修复。
当一个Router接受到一个信息包之后,NMK层将会进行以下的工作:首先确认目的地,如果目的地就是这个Router的邻居,信息包将会直接传输给目的设备;否则,Router将会确认和目的地址相应的路由表条目,如果对于目的地址能找到有效的路由表条目,信息包将会被传递到该条目中所存储的下一个hop地址;如果找不到有效的路由表条目,路由探测功能将会被启动,信息包将会被缓存直到发现一个新的路由信息。
ZigBee无线网络原理
ZigBee无线网络是一种低功耗、低速率的无线网络通信协议,其原理基于IEEE 802.15.4标准。
它适用于需要将大量节点连
接到一个中心控制器的应用场景,具备自组织、自修复和自动路由等特性。
ZigBee网络由三种设备组成:协调器(Coordinator)、路由器(Router)和终端设备(End Device)。
协调器是网络的核心,负责管理网络配置和协调各个设备的通信。
路由器可以转发数据包,并帮助建立路由表,使数据传输更高效。
终端设备是最简单的节点,功能有限且通信范围较短。
这些设备可以通过无线信道进行通信,并使用MAC层和物理层协议来实现数据传输。
ZigBee网络采用星型、树型或网状拓扑结构,其中协调器处
于网络的根节点,其他设备通过与协调器的直接或间接连接来实现通信。
网络中的节点可以根据实际情况自动组建和拓扑重组,无需手动配置。
在数据传输过程中,ZigBee网络使用CSMA-CA(载波感知多路访问监听)机制来协调节点的发送行为,避免冲突和碰撞。
每个节点都有一个64位的唯一地址,用于标识设备和建立通
信连接。
节点之间可以通过短距离的无线信道进行通信,距离一般在几十米到几百米之间,受限于无线信号传播和环境干扰等因素。
ZigBee网络支持多种应用层协议和功能,例如家庭自动化、
工业控制、智能电网等。
它的低功耗特性使得它在电池供电设备、传感器网络等场景下得到广泛应用。
通过合理设计和优化网络结构和通信机制,ZigBee无线网络可以实现可靠的数据传输和灵活的网络管理。
ZigBee地址模式分析我们知道ZigBee设备有两种地址。
一种是64位IEEE地址(物理),即MAC地址,另一种是16位网络地址。
64位地址使全球唯一的地址,设备将在它的生命周期中一直拥有它。
它通常由制造商或者被安装时设置。
这些地址由IEEE来维护和分配。
我们刚买到的调和上的IEEE地址应该是全部的F,我们可以通过TI的软件SmartRF Flash Programmer重新写入一个IEEE地址,这就像我们的PC上的物理地地类似,在全球范围内物理地址是唯一的。
不过在ZigBee设备中我们也可以更改这个地址,其实也就不确保全球唯一了,当然,在PC上也可以通过软件更改物理地址,不过只要在一个局域网中没有两个相同的物理地址,是一样可以连接互联网。
很多学校里的上网帐号就是和物理地址进行绑定的,分配给一台PC上的IP地址,是不可能在另一个PC上使用,除非修改PC的物理地址。
说多了,其实也就是你应该必须保证在你组成的网络中,不可以写入相同的IEEE地址。
16为网络地址是当设备加入网络后由协调器或路由器分配的。
它在网络中是唯一的,用来在网络中鉴别设备和发送数据。
在这个版本的中Z-Stack-1.4.3-1.2.1中,可以看到下面typedef enum{afAddrNotPresent = AddrNotPresent, //绑定afAddr16Bit = Addr16Bit,//短地址afAddrGroup = AddrGroup, //组发送afAddrBroadcast = AddrBroadcast//广播发送} afAddrMode_t;typedef struct{union{uint16 shortAddr;} addr;afAddrMode_t addrMode;byte endPoint;} afAddrType_t;这里的地址模式只有4种,而没有IEEE地址的什么事,不过可以想像,在一个ZigBee网络中,当ZigBee的协调器建立网络成功以后,终端设备或者路由器设备打开电源开关加入网络时,网络成功后协调如何知道它管辖的表具号呢?这时会分配一个16位的短地址,当加入网络时终端会发送一个响应给协调器,协调器的短地址是知道的因为是0x0000,当设备加入成功后,会产生一个ZDO_STATE_CHANGE_EVT事件,这个事件就是设备加入网络成功后,并在网络中的身份确定后产生的一个事件,我们可以在这里处理,一些初始化,比如可以发送终端的短地址,IEEE地址等,这里协调器接收到以后,可以提取出终端的短地址,其实在终端给协调器发送的每个数据包中,都含有其自身的短地址,如下面的结构体当中的afAddrType_t srcAddr;协调器在接收到短地址后,就可以知道自己下面管辖的终端结点,或者路由结点有那些了,协调器提取到的短地址可以存放到一个非易失性的存储器中,这时如果要使用直接地址模式,也就是单播的话,就可以在这个表中查找,当然这要和上位机的软件结合起来,起码应该让用户看到这些短地址,这种短地址再和某种应用中的属性对应起来。
基于ZigBee的无线传感器网络的自愈功能李振汉;唐余亮;雷鹰【摘要】无线传感器网络(wireless sensor network,WSN)中如何延长路由节点的生命期和保证网络正常运行非常重要.以WSN主控芯片CC2430为硬件基础,建立了在ZigBee协议下固定节点的链状网络路由模型,提出了一种网络自愈的方法,即为每跳路由节点配备一个备用路由节点,利用高斯算法对各路由节点接收信号强度(received signal strength indication,RSSI)值进行检测,依据检测的RSSI值判定电池的供电情况,进而决定是否启动处于睡眠的备用路由代替当前路由承担相应的工作.实验结果表明,在没有环境因素的情况下,可以较好地实现自愈功能.%In wireless sensor network (WSN) ,it's of vital importance to prolong the lifetime of the routing node and to ensure the network running properly. In this paper,a chain network routing model of ZigBee protocol of the fixed nodes is built and a method of self-healing is put forward on the base of CC2430 of the WSN main control chip. The method is firstly to equip every routing node with an alternate routing node. Then,use the Gauss Algorithm to detect the received signal strength indication (RSSI) of the routing node in order to determine the battery power supply state,and then to decide whether to activate the dormant alternate routing node replacing the current routing node to work or not . As the experimental results show,if the environmental factors are ignored, the self-healing function can be achieved.【期刊名称】《厦门大学学报(自然科学版)》【年(卷),期】2012(051)005【总页数】5页(P834-838)【关键词】无线传感器网络;自愈;RSSI;ZigBee【作者】李振汉;唐余亮;雷鹰【作者单位】厦门大学信息科学与技术学院,福建厦门361005;厦门大学信息科学与技术学院,福建厦门361005;厦门大学建筑与土木工程学院,福建厦门361005【正文语种】中文【中图分类】TN915ZigBee是一种低成本、低速率、低功耗的短距离无线通信技术,其主要用于无线传感器网络(wireless sensor network,WSN)技术当中.在WSN中,节点一般采用电池供电,在能量耗尽后无法及时更换电池导致该节点变成死亡节点.作为整个WSN的路由节点,其正常工作与否对整个网络的持续运行至关重要.文献[1]是针对WSN提出了一种基于代理的自愈模型,即通过网络的自主计算可以监视到拒绝服务攻击(denial of service,DoS)等威胁,这样有效避免节点坏死和网络失效,但文献[1]对网络中存在的多种不同的攻击还并未找出一种有效的解决办法.文献[2]对几种组密钥分配方案的WSN自愈方法进行了分析,并指出现有的3种方案都无法满足大规模和资源受限的WSN网络,现有的WSN网络的自愈方法还需深入研究和改进.文献[3-4]通过路由算法的优化提出了一种自愈的方法,实验结果表明节点的生命期得到了提高,但它们的结论都是由仿真分析而来,并不是在实际的WSN实验中得出的.本文借鉴了文献[1]主动监测网络动态的思路,利用接收端接收功率与节点间距离的关系针对固定传感器网络提出了一种新的备用路由的自愈方法,具体设计如下:首先,建立WSN,存储当前工作路由节点的接收信号强度(received signal strength indication,RSSI)[5]值.其次,定时检测当前工作路由的健康状况,判断其是否已经无法正常工作.最后,利用备用路由替换坏死的路由节点进行网络恢复工作.本文的主要创新点在于:1)本文提出了利用节点RSSI值检测路由节点的状况并决定是否启动网络自愈的方法.RSSI检测方法为高斯算法.2)本文以CC2430芯片为硬件基础,建立ZigBee链状网络,对本文提出的理论进行了验证,具有实际的工程应用意义.CC2430是一款符合ZigBee技术的2.4 GHz射频系统单芯片.结合ZigBee协议栈,用户可以进行快速的设计开发.CC2430有4个定时器,提供睡眠模式和工作模式,睡眠模式下仅有0.9μA的流耗,可以很好地延长节点电池寿命,通过外部或定时器中断的方式让CC2430由睡眠模式转入工作模式.CC2430提供数字化的RSSI支持,ZigBee协议栈为此提供了RSSI的编程接口,用户只需调用该接口,即可从CC2430的RSSI寄存器中获取相应的RSSI值.网络结构采用链状网络[6](特殊的树状网络),简化网络模型如图1.图1中当前执行路由功能的路由器R1、R2、R3和R4我们定义为Using_Route,备用的路由节点R2′和R3′定义为Ready_Route.本文设计过程中R1和R4并没有备用节点,原因见实验分析部分.首先,协调器建立网络,为自己分配网络短地址0.然后按照下面公式进行分配其它节点的网络短地址.Using_Route_Addr=Parent_Addr+1;Ready_Router_Addr=Using_Route_Addr+1;Node_Type_Addr=Parent_Addr+2+i;其中Using_Route_Addr表示Using_Route的网络短地址,Parent_Addr表示当前节点的父节点的网络短地址,Ready_route_Addr表示Ready_Route的网络短地址,Node_Type_Addr表示终端节点的网络短地址,i表示第i个加入父节点的终端节点,0<i≤3.这样,在协调器建立网络后,依据上述公式,所有节点都可以快速有序的加入进来.本文设计了网络传输过程中命令包的结构(如图2所示).图2中1 Byte表示1个字节,命令包的第1个字节Packet_ID表示标识符,即通过命令包的第1个字节识别包的功能,第2个字节Length表示包长度,第3个Src_Addr表示源地址,第4个字节Dest_Addr表示目的地址,第5个字节Route_Type表示路由节点的类型,即Using_Route还是Ready_Route,第6个字节RSSI表示接收端接收信号的RSSI值大小.无需人为干预,网络就能在极短的时间内从失效故障中自动恢复所携带的业务,使用户感觉不到网络已出了故障,此为自愈网的定义.其基本原理是使网络具备发现替代传输路由并重新确立通信的能力.本文设计的自愈模型状态机如图3所示.状态机的主要过程为:状态1为开始启动状态,硬件初始化,建立网络,网络建立完毕进入状态2等待状态,写好路由表,分配路由节点类型并让Ready_Route睡眠,发送采集数据命令进入状态3数据采集状态,在数据传输过程中定时进入状态4自愈检测阶段,如果RSSI值检测正常则返回状态3,否则进入状态5网络重建状态,协调器通知存在异常的Using_Route离开网络,通知对应的Ready_Route重新加入网络,为其分配短地址并复制路由表,网络重建完成转入状态2,网络自愈功能完成.无线传感器链状网络组建完成,分配网络短地址后,协调器通知各Using_Route 将其路由表信息发送回来,Using_Route收到后回复相关信息,协调器收到后将各Using_Route路由表信息存储起来,通知Ready_Route进入休眠模式,然后进入定时循环检测模式,即协调器与Using_Route持续通信收集数据,每隔一段时间对各Using_Route节点发送的信号强度(RSSI值)进行检测,检测方法如2.2节所述,检测完成后按照状态机判定机制判定进入相关的状态.WSN中RSSI值与距离d及功率P有如下关系:取参考距离d0=1 m,n为经验值,经过测试我们选取n=1.6,这样式(2)转化成通过实验方法可得到多个P(1)值,采用高斯模型确定P(1)的最佳范围,具体如下:式中,d为接收端与发射端之间的距离(m);d0为参考距离(m),一般取1m;P(d)为距离为d的接收端的接收信号功率(dBm),也就是距离为d的接收端检测到得RSSI值(d Bm);P(d0)为距离为的接收端的接收信号功率(dBm);n是路径损耗指数,是一个与环境相关的值;XdBm是一个均值为0的高斯随机变量(dBm),反映了当距离一定时,接收信号功率的变化.在此,我们忽略XdBm的影响.式(1)可简化为式中,Xi表示参考节点第i个RSSI采样值(通过抓包器获取,单位为dBm);m 为参考节点记录RSSI值的次数;u和σ2分别为m次RSSI值的均值和方差[8].式中,f(x)为参考节点RSSI值的概率密度数;Φ(x)为某节点RSSI值的概率分布函数.由概率论知识可知,取与u值邻近的x值概率大,取与u值远的值概率小;即f(x)值越接近1,x概率越大,反之越小;用概率分布函数解释就是Φ(x):函数值与Φ(u)值(其中Φ(u)=0.5)越接近说明x概率越大,在此选取0.35作为临界点,如式(8):根据式(8)得到2个数值x1和x2(假设x1<x2),这样就可以得到:本文定义[x1,x2]为P(1)的最佳范围值,即当P(1)值变化范围在[x1,x2]之内时,我们认为P(1)值正常.所以可由式(3)计算出距离为d的RSSI 最佳值,在定时检测节点RSSI值的过程中,如果检测值在[x1-16lg d,x2-16lg d]中,则判定该节点正常,如果不在该范围之内,对该节点重新检测,如果5次都不在该范围之内,由式(9)可知,此事件发生的概率为p=0.35=0.002 43,由小概率事件理论可知,p<0.01,即事件为小概率事件,但是居然发生了,由此可得该节点的RSSI值不正常,在不考虑环境和距离因素的情况下由式(3)可判定该节点的电池供电出了问题,进入网络重建状态.在协调器通过RSSI值检测得知某Using_router电池供电不足的消息后,首先,协调器向该Using_Route发送离开网络的命令,然后,通知该Using_Route对应的Ready_Route重新加入协调器,Ready_Route收到后发送入网请求,协调器接收到后将其加入,同时将原来分配给故障Using_Route的地址分配给该路由器,将故障Using_Route路由表[7]信息发送给Ready_Route,该路由器收到后将此信息更新为最新的路由表,该路由节点的Router_Type变为Using_Route,整个网络重建成功,通知其它Ready_Route进入睡眠状态,然后网络又进入传输数据和RSSI值检测状态.以图1的拓扑结构图组建WSN.其中,路由器R1(参考节点)和距离协调器距离1 m,实验过程中可通过R1获取P(1)的最佳范围值.R2、R2′、R3、R3′、R4则为待测节点,通过改变其与协调器的距离来获得不同的接收RSSI值,其中R2和R2′距离协调器的0.64 m,R3和R3′距离协调器4.5m,R4距离协调器10m.R4节点并没有替代节点,R4节点主要用于观察电池供电整个过程RSSI值的变化,R1采用稳定的直流电源供电,保证该处节点的RSSI值稳定,其它节点采用2节1.5 V普通电池供电,整个实验在室内无阻隔环境中完成,基本消除了环境变化干扰.经过长期观察,统计各节点的RSSI值数据,得到结果如图4~7.建立高斯模型如图4所示,通过公式(8)计算得到P(1)最佳范围值为[-67,-63](RSSI值整数化),由公式(3)求的P(0.64)、P(4.5)、P(10)的最佳范围值分别为[-65,-61]、[-77,-73]、[-83,-79],从图形中我们可以看出一开始节点在电能供应充足的情况下RSSI值变化幅度很小,基本保持在最佳范围值内波动,图7中当节点RSSI波动很大时,芯片指示灯逐渐变暗,即此时电池供电不足,这从实验的角度表明了式(3)的合理性,同时,从图5,6可以看出在电池出现供电不足导致RSSI波动很大时,网络自愈功能启动,替代节点很好的代替了原供电不足节点的工作,整个网络恢复正常,图5,6的结果还说明此处工作的节点寿命延长了约1倍,有效提高了网络当中非常重要的路由节点的生命期.本文针对ZigBee组建的网络提出了一种自愈算法,主要是检测网络中是否有因电池电量耗尽而坏死的路由节点和如何避免这种情况的发生,保障整个网络的通畅,整个过程在室内坏境下完成,实验数据表明本文的自愈模型基本解决了电池导致的节点坏死问题,但本算法也带来了一些问题需要进一步研究和解决:首先,节点之间距离的测量可能会带来误差,影响自愈功能的效果;其次,本文是在室内环境下完成,本文自愈算法对于复杂环境之下的干扰是否适应还不清楚,最后,由于协调器作为主控制器需要循环检测路由节点是否正常以及路由节点死亡后重建网络等工作需消耗较大的能量,对于如何减少主控制器的能耗问题还需仔细研究.总之,本文给出了WSN技术上的一种新型的自愈方法.【相关文献】[1] Ma C G,Lin X J,LüH W,et al.ABSR:an agent based selfrecovery model for wireless sensor network[C]//Eighth IEEE International Conference on Dependable,Autonomic and Secure Computing.Chengdu,China:IEEE,2009:400-404.[2] Wang Q H.Practicality analysis of the self-healing group key distribution schemes for resource-constricted wireless sensor networks[C]//Third International Conference on Communications and Mobile Computing.Qingdao,China:IEEE,2011:37-40.[3]刘林峰,吴家皋,邹志强,等.面向节点失效问题的无线传感器网络拓扑自愈算法[J].东南大学学报:自然科学版,2009,39(4):695-699.[4]李予东,黄宏光,向西西.基于能量均衡的ZigBee路由算法优化[J].计算机工程与设计,2011,32(2):397-400.[5]张洁颖,孙懋珩,王侠.基于RSSI和LQI的动态距离估计算法[J].电子测量技术,2007,30(2):142-145.[6]陈俊,唐余亮,雷鹰.基于桥梁结构健康监测的无线传感系统自愈性研究[J].中国新通信,2010,12(7):69-71.[7]章坚武,张璐,应瑛,等.基于ZigBee的RSSI测距研究[J].传感技术学报,2009,22(2):285-288.[8] Li J B,Li J Z,Guo L J,et al.Power-efficient node localization algorithm in wireless sensor networks[C]//APWeb 2006 International Workshops.Harbin,China:Springer,2006:420-430.。
ZigBee网络分布式地址分配算法研究的开题报告一、选题背景随着物联网技术的发展和普及,无线传感器网络(WSN)的应用越来越广泛。
其中,ZigBee是一种低功耗、短距离、低速率的无线传感器网络技术,已经被广泛应用于家居自动化、智能建筑、工业控制等领域。
在ZigBee网络中,每个设备都有一个唯一的64位IEEE地址(Extended Address),用于唯一标识一个设备,并提供路由功能。
作为分布式无线传感器网络,ZigBee网络在适应不断变化的环境中有着更好的性能。
但是,ZigBee网络中的地址分配问题一直是一个研究热点。
当前的ZigBee网络中的设备地址分配方式是由网络协调器(Coordinatror)负责分配地址,这种方式存在单点故障和通信瓶颈等问题。
因此,如何设计一种分布式的地址分配算法,以提高ZigBee网络的可靠性、可扩展性和安全性,成为了一个研究热点和难点。
二、研究目的和内容本文的研究目的是设计一种分布式的ZigBee地址分配算法,通过在网络中的多个设备间协调完成地址分配过程,提高ZigBee网络的可靠性、可扩展性和安全性。
具体研究内容包括:1. 分析当前ZigBee网络中的设备地址分配方式,分析其存在的问题和不足;2. 研究分布式无线传感器网络中的地址分配算法,比较各种算法的优劣;3. 设计一种基于分布式的ZigBee地址分配算法,包括地址分配流程、地址冲突处理、地址管理等方面;4. 利用NS-3仿真工具对设计的算法进行模拟实验证明其可行性和有效性;5. 对设计的算法进行优化和改进。
三、研究方法本文采用以下研究方法:1. 文献调研法:分析已有的ZigBee网络地址分配算法,比较各种算法的优劣,为后续设计提供参考。
2. 理论分析法:针对ZigBee网络中的设备地址分配问题,分析其特点和存在的问题,为设计分布式算法提供理论基础和指导思路。
3. 分布式算法设计法:结合ZigBee网络的特点,设计一种分布式的地址分配算法,并对其进行改进和优化。
ZigBee网络地址分配机制及路由失效自修复研究李清平;刘清华;傅幼萍【摘要】探讨了ZigBee网络中用于路由发现和数据传输的网络地址以逻辑树方式进行分配的机制,以基于Cluster-Tree和AODVjr算法的路由选择策略阐述了ZigBee网络规模与节点转发率及平均延时的关系,并通过OPNET平台仿真某路由节点失效后ZigBee网络的自修复功能,评估了其对网络性能产生的影响.最后通过分析节点自我修复能力、各节点应用层数据传输的影响以及点对点的延时情况,验证了ZigBee网络良好的鲁棒性和收敛性.%The mechanism of allocating network address used in routing discovery and data trans-mission in the ZigBee network by means of logical tree is work address allocation algorithm show s that 16-bit short addresses of terminal equipment having the same parent node are all continuous.Routing strategy based on Cluster-Tree and AODVjr algorithm indicates that with the expansion of ZigBee network,the node forwarding rate is on the decline,the average de-lay reduce gradually.Through the OPNET platform,self-healing function of ZigBee network is emulated after a routing node failure,and its influence on network performance is evaluated. The good astringency and strong robustness of ZigBee network have been tested and verified by analyzing the self-healing capacity of failed nodes,the influence on data transmission in the appli-cation layer of each node and point-to-point delay.【期刊名称】《山东理工大学学报(自然科学版)》【年(卷),期】2018(032)003【总页数】6页(P38-42,47)【关键词】ZigBee网络;网络地址;分配机制;路由失效;自修复能力【作者】李清平;刘清华;傅幼萍【作者单位】浙江育英职业技术学院信息技术分院,浙江杭州310018;浙江育英职业技术学院信息技术分院,浙江杭州310018;杭州万向职业技术学院经济贸易系,浙江杭州310023【正文语种】中文【中图分类】TP393.02基于IEEE802.15.4标准的ZigBee是一种低功耗、近距离的WSN(Wireless Sensor Network,无线传感器网络)通讯技术,具有短时延、低复杂度、自组织、低功耗、免执照频段等特点 [1-4].作为一种新兴的无线通信技术,ZigBee得到了越来越广泛的关注和应用.由于ZigBee联盟直到2005年6月才推出技术规范[5],因此对于IEEE802.15.4和ZigBee的研究仍处于活跃阶段,目前主要存在以下几方面的问题:(1)ZigBee的核心技术之一是动态组网,即网络中的每个节点相隔一定时间,需要以无线信号交流的方式重新组网,这就涉及到网络地址的分配机制问题;(2)由于ZigBee网络中部署了大量微型无线传感器,节点分布密集,每一个网络节点除了自身作为信息采集点和执行来自中心的命令外,还承担着来自网络的数据中转任务.当由于能量耗尽、传感器损坏、环境变化等因素导致节点失效后,ZigBee网络能否有效修复路由路径、确保数据传输,也是技术瓶颈之一.此外,ZigBee网络节点能耗问题、数据传输时延问题以及传输距离问题,均为当前ZigBee技术实际应用亟待解决和完善之处[6-8].1 ZigBee设备类型及网络地址分配机制1.1 ZigBee网络设备类型ZigBee网络的基本单元是节点,按功能可分为全功能设备(Full Function Device,FFD)和简化功能设备(Reduced Function Device,RFD).FFD可用作网络协调器,连接协调器或另一个通信设备,还能发现其它FFD和RFD并建立通信联系.RFD按最少RAM和ROM资源设计成简单的收/发节点,能搜索现有网络,必要时传输数据,向协调器请求数据,多数时间处于休眠状态以节省电池能耗[9].(1)协调器(Coordinator):启动和配置网络的设备,具有最高权限,负责网络正常工作以及保持与网络中其它设备的通信并负责网络ID的分配.一个ZigBee网络只允许有一个ZigBee 协调器.(2)路由器(Router):一种支持关联的设备,能够实现其它节点消息的转发功能,同时还具有为其它子节点分配网络ID的功能,这就意味着路由器和终端设备可以不依赖协调器而自行构成一个ZigBee网络.(3)终端设备(EndDevice):具体执行数据采集和传输的设备,不能转发其它节点消息.1.2 ZigBee网络地址分配机制ZigBee网络中的所有节点都有两个地址:64位的IEEE地址(MAC地址)和16位的网络地址.64位的MAC地址是全球唯一地址,由IEEE组织来分配和维护.16位网络地址是节点加入网络时动态分配的,用于设备识别和数据传输,仅在网络内部使用,采用逻辑树层次机制进行分配 [9-10].网络地址是节点加入网络时由其父节点动态分配的,彼此形成父子关系,所有的节点共同组成树状逻辑关系,逻辑树中的每一个节点都拥有两个参数:网络地址A和网络深度d,网络深度表示仅仅采用父子关系的网络中,一个数据分组发送到ZigBee协调器所传递的最小跳数[10-11].Coordinator是整个ZigBee网络的根节点,当Coordinator建立一个新网络时,它将给自己分配网络地址A0=0,网络深度d0=0.如果节点i加入网络,并且与节点k连接,那么父节点k将根据自身的网络地址AK和网络深度dk,为子节点i分配网络地址Ai和网络深度di=dk+1,网络地址Ai的算法为[10-11]:(1)如果加入的是没有路由功能的RFD节点,则:Ai=AK+Cskip(di)×Rm+i,1≤i≤Cm-Rm.(2)如果加入的是具有路由功能的FFD节点,则:Ai=AK+1+Cskip(di)×(i-1),1≤i≤Rm.式中Cskip(d)=(1)式(1)中:Cskip(d)表示不同深度下父节点拥有的地址数;Cm表示父节点可以拥有的最大子节点数;Lm表示网络最大深度;Rm表示父节点可以拥有的最大子路由节点数.以图1为例说明网络地址的分配算法.协调器Coordinator节点的Cskip(d)=31,所以Coordinator关联的第1个路由器节点Router1分配地址1,第2个路由器节点Router2分配地址1+31=32,第3个路由器节点Router3分配地址32+31=63,第4个路由器节点Router4分配地址63+31=94,各个子路由器节点的地址以此类推.由于终端节点的父节点Coordinator的Rm=4,所以第1个终端节点EndDevice1的地址为0+31*4+1=125,第2个终端节点EndDevice2的地址为0+31*4+2=126,可见网络中所有同一父节点的终端设备的16位短地址都是连续的.图1 ZigBee网络地址分配算法示意图Fig.1 Diagram of address allocation algorithm of ZigBee network2 ZigBee网络路由算法及路由选择路由协议是自组网体系结构的核心部分,ZigBee协议采用Cluster-Tree和AODVjr作为自身的路由算法,主要是发现和维护路由,选择路由并转发数据,监控网络拓扑结构变化等,以达到成本低、功耗低、可靠性高的设计目标[11-12].2.1 ZigBee网络路由算法1)Cluster-Tree路由算法Cluster-Tree算法按树型结构分层遍历,节点根据目的网络地址计算下一跳.假设网络地址为A,网络深度为d的路由节点收到目的地址位为D的数据分组,则根据A<D<A+Cskip(d-1)(2)判断是否为自己的子节点.如果是自己的子节点,则转发给子节点N.N由公式(3)确定,即(3)如果不是自己的子节点,则转发给其父节点.2)AODVjr路由算法AODVjr(AODV Junior)算法是一种按需分配的路由协议,是对AODV(Ad-Hoc On Demand Distance Vector)算法的一种简化改进.首先源节点以广播的方式发送RREQ(Router Request,路由请求分组),具有路由功能的节点收到消息后,建立反向路由,转发RREQ分组,并将源节点到此节点的路由开销添加到路由搜索表和RREQ中,直到目的节点收到此RREQ.目的节点选择开销最少的反向路由,将RREP(Router Replies,路由回复分组)返回源节点,同时所有接收到此RREP分组的节点都将更新自己的邻居表,最终建立各个节点的路由表.2.2 ZigBee网络路由策略按有无路由功能,ZigBee网络节点可分为有路由功能的RN+节点(Coordinator设备、Router设备)和无路由功能的RN-节点(EndDevice设备).RN+节点有足够的存储空间和路由选择能力,执行AODVjr路由算法;RN-节点存储空间受限,不具备路由选择能力,收到分组后只能采用Cluster-Tree算法处理[12-14].不同规模下结合两种算法的ZigBee网络节点转发率和平均延时分别如图2和图3所示. 图2 不同网络规模的节点转发率Fig.2 Forwarding rate of nodes of different network scale图3 不同网络规模的平均延时Fig.3 The average delay of different network scale图2和图3显示,随着网络规模的扩大,ZigBee网络转发节点数占节点总数的比例整体上呈现不断下降趋势,平均延时逐渐减少,其原因在于随着网络规模的扩展,同一区域内的节点密度也随之增加,使得网络节点的转发率不断减小,平均延时因数据传输距离缩短,转发效率提升而降低.3 基于OPNET平台的ZigBee网络路由失效自修复仿真通过OPNET平台,仿真ZigBee网络的某个路由器节点失效后,其关联的子节点如何重新找到路由路径,从而体现ZigBee网络在无需人工干预情况下的自组织功能,并分析和评估由此对整个网络产生的影响.3.1 OPNET仿真平台简介OPNET是一个能够准确分析复杂网络性能和行为的仿真平台,提供Process(进程)、Node(节点)和Network(网络)三层建模机制,三层模型完全对应实际的协议、设备和网络层次,用户通过OPNET平台能完整而深入了解网络的相关特征.采用离散事件驱动模拟机理和混合建模机制,把基于包的分析方法和基于统计的数学建模方法结合起来,在提高仿真效率的同时,可得到详细的模拟结果[15-16].3.2 场景设置及拓扑结构设置一个2 000m×1 750m的ZigBee网络仿真场景,网络中包含一个ZigBee协调器Coordinator、一个ZigBee固定路由器Fixed_Router,一个ZigBee可移动路由器Mobile_Router和两个ZigBee终端节点EndDevice1、EndDevice2.终端节点EndDevice1、EndDevice2都无法直接与协调器Coordinator进行通信,必须通过各自关联的父节点路由器转发数据,EndDevice1通过Fixed_Router路由器接收转发Coordinator传送的数据分组,EndDevice2通过Mobile_Route 路由器接收转发Coordinator传送的数据分组,如图4所示的粗实线展示部分.当Mobile_Route路由器沿着设定的白色细实线轨迹移动到ZigBee网络信号覆盖范围之外时,模拟该节点“失效”后EndDevice2的路由重发现和数据分组新的转发路径如图4虚线展示部分.图4 ZigBee网络路由失效前后数据分组转发路径拓扑图Fig.4 Topological graph of data packet forwarding path before and after the routing failure of ZigBee network3.3 仿真参数设置设置ZigBee仿真场景中所有节点的PAN ID为1,信号传输频段为2 450MHz,发射功率为3mW,接收灵敏度为-85dBm.dBm是无线网络发射功率的绝对值,其计算公式为:10lg(p/1mW)式中,p是以mW为单位的功率值.场景中,仿真节点发射功率为3mW,求得p=10lg3=4.77dBm ;因此,发射功率减去接收灵敏度的差值为4.77-(-85)=89.77dB.自由空间路径损耗公式为FSPL=32.45+20lgd(C)+20lgf(4)式(4)中:FSPL(Free Space Path-Loss)单位为dB;d(C)为视距传播距离,单位km;f为频率,单位MHz.已知f=2 450MHz,FSPL=89.77dB,由式(4)可得d(C)=0.299 80km=299.8m. 从部署的仿真场景可知Coordinator的坐标(1 871,1 263),EndDevice1的坐标(673,970),EndDevice2的坐标(640,1 422),由此可以计算EndDevice1、EndDevice2分别与Coordinator之间的直线距离D(E1-C)=1 233.31m、D(E2-C)=1 241.23m,两者的值都大于视距传播距离d(C),说明两个终端节点接收的数据分组都无法通过协调器直接发送,且D(E1-C)和D(E2-C)两者之间的直线距离D(E1- E2)=453.2m,也大于视距传播距离d(C),说明彼此之间的信号区域不会覆盖重叠[16-18].因此终端节点EndDevice1、EndDevice2必须通过各自的父节点进行数据转发,这为模拟其中某一父节点失效后重新建立路由并转发数据的实验提供了可行性.3.4 仿真结果分析图5显示,Mobile_Route路由器沿着设定的轨迹移动,大约在12min后离开ZigBee网络,节点的路由功能“失效”.图5 Mobile_Route节点路由功能变化情况Fig.5 The variation of routing function of Mobile_Route node图6显示,开始阶段所有节点启动发送和接收工作,数据分组转发速率明显加大,几分钟之后趋于平稳,然后Mobile_Route路由器开始移动至约12min后离开ZigBee网络而路由功能“失效”,EndDevice2节点的接收速率因此而产生抖动现象,在与Mobile_Route路由器失联后,其数据接收中断,但在较短时间内重新恢复了与Coordinator协调器之间的通信,验证了网络设备较强的自我修复功能,同时也显示了ZigBee网络良好的鲁棒性.图6 EndDevice2节点自我修复情况Fig.6 Self-healing of EndDevice2 node 路由节点“失效”后,网络数据传输的变化如图7所示.由于受影响节点能够在极短的时间内实现自我修复,重新恢复中断的收/发路径,因此从网络节点的接收速率来看,路由节点的“失效”对整个ZigBee网络的数据传输影响较小,显示了ZigBee网络良好的收敛性.图8为Coordinator节点到EndDevice2节点的延时曲线.开始时节点延时增大,随后因Mobile_Route的移动引发延时曲线振荡加剧,路由“失效”后,数据传输中断,延时曲线陡然下降,但在很短时间内Coordinator就将数据分组通过Fixed_Router传送给EndDevice2节点,此时点对点延时曲线趋向平稳,进一步验证了ZigBee网络的“失效”自修复能力.图7 ZigBee网络各节点应用层数据分组接收情况Fig.7 Reception of the application layer data packet of each node in the ZigBee network图8 Coordinator节点到EndDevice2节点的延时情况Fig.8 Time delay from Coordinator node to EndDevice2 node4 结束语无线传感器网络WSN涉及嵌入式计算、无线传感器、现代通信、分布式信息处理等交叉学科,为当前无线组网技术的重点研究领域.自组网能力强、自恢复能力强的无线自组网技术标准ZigBee发展迅速,已在部分智能传感器场景中得到应用,智慧城市的建设和发展将进一步推动ZigBee产品的推广应用和不断更新. ZigBee网络存在的问题主要体现在地址分配机制、节点能耗、数据传输时延、传输距离以及路由失效自修复等方面.逻辑树分配机制说明ZigBee网络中同一父节点的终端设备的16位短地址都是连续的,结合Cluster-Tree和AODVjr路由算法的RN+节点和RN-节点路由选择策略,使得网络转发节点数占节点总数的比例随网络规模的扩大呈下降趋势,平均延时逐渐减少,通过设置OPNET平台的仿真场景和拓扑结构,分析了路由失效对数据传输、点对点延时等性能产生的影响,通过路由收敛性验证了ZigBee网络的自我修复能力和网络的鲁棒性.【相关文献】[1]AKYILDIZ I F, SU W, SANKARASUBRAMANIAM Y, et al. A survey on sensor networks[J]. IEEE Communications Magazine, 2002,40(8):102-114.[2]IEEE Std.15.4:Wireless Medium Access Control(MAC) and PhysicalLayer(PHY) Specifications for Low-Rate Wireless Personal AreaNetworks[S]. NewYork: IEEE, 2003. [3]RACHANA B S,RAJESH prehensive survey on effect of mobility over routing issues in wireless multimedia sensor networks[J].International Journal of Pervasive Computing and Communications, 2016,12(4):447-465.[4]MANJEET S,SURENDER K S.A comprehensive review of fuzzy-based clustering techniques in wireless sensor networks[J].Sensor Review,2017,37(3):289-304.[5] 郭昌飞.基于ZigBee的无线传感器组网技术研究与应用[D].北京:北京信息科技大学,2012.[6] 潘恒曦,辛旺,范蟠果.ZigBee在无线传感器网络中的应用[J].机械与电子,2010(S1):245-248.[7] 刘承鹏.无线传感器网络定位算法研究[D].淄博:山东理工大学,2016.[8] 李冉.基于ZigBee无线传感器网络定位的研究[D].广州:广东工业大学,2016.[9] 杨春华.基于ZigBee技术的无线网络协调器的研究[D].成都:西南石油大学,2011.[10] 李明.IEEE802.15.4MAC协议中能耗与时延均衡研究[D].广州:暨南大学,2010.[11] 王月平,耿晓菊,刘春涛,等.IEEE802.15.4MAC协议低功耗研究[J].计算机技术与发展,2009,19(12):139-142,165.[12] 练云翔.无线传感器网络路由算法与能耗模型研究与仿真[D].兰州:兰州交通大学,2016.[13] 周登龙,陈硕.ZigBee网络中不同路由性能的研究与仿真[J]无线互联科技,2012(9):69-71.[14] 穆嘉松,刘开华,史伟光.ZigBee网络中基于节点移动性的路由选择策略[J].天津大学学报,2012,45(4):301-308.[15] 李清平.基于进程核心的网络仿真建模及统计分析[J].武汉理工大学学报(信息与管理工程版),2012,34(6):681-683.[16] 陈敏.OPNET网络仿真[M].北京:清华大学出版社,2004.[17] 范燕,俞洋,李永义,等.基于ZigBee 无线传感器网络的远程监控系统[J].实验室研究与探索,2016,35(1):80-84.[18] 王一棋,何丽莉,胡成全,等.基于ZigBee和Internet的无线智能家居网关系统[J].吉林大学学报(理学版),2015,53(2):302-306.。