一种改进的Zigbee网络分层方法

文档序号:7860394阅读:1226来源:国知局
专利名称:一种改进的Zigbee网络分层方法
技术领域
本发明属于无线传感器网络技术领域,涉及对Zigbee网络分层方法的改进。
背景技术
由于无线传感器网络的特点,优化路由算法从而延长整个网络寿命已成为当今研究的热点,而对网络进行合理的层次划分是路由算法优化首先要解决的问题。Zigbee网络所用的是一种簇树状的拓扑结构,这种结构中虽然每个节点也有一个层数,但这个层数只是反应节点是协调器的第几代子节点,在一定情况下可以反应距离上的深度,但是在某一个节点的子设备已满的情况下会出现层数无法反应距离的深度。如图I中的情况图中黑色节点代表协调器,白色节点代表路由器节点。节点A距离协调器较近,但此时协调器的子节点数已经达到最大,不能容纳新的节点加入,所以A选择与之较近的另一个节点B加入网络,此时A的层数为2,但实际上A距协调器的距离与层数为I的节点相同。由于这种情况 的出现,当Zigbee网络没有上位机参与而自行进行全网路由优化时,节点层数不能完全反映节点之间的距离信息,从而得不到最优解,甚至优化后的结果使得数据发送不到网络最边缘的节点。针对Zigbee网络自带分层方法的不足,期望一种节点层数能反映节点距离的Zigbee网络分层方法。

发明内容
本发明的目的在于提供一种改进的Zigbee网络分层方法,替代Zigbee网络自带分层方法,解决节点层数不能反映本节点与网络协调器距离关系的问题,为进一步优化路由算法提供基础。本发明提供的改进的Zigbee网络分层方法采取以下技术方案实现第I、初始化Zigbee网络建立后,协调器初始化层数为0,并发送分层确认帧,协调器发送的分层确认帧,将被在协调器发射功率范围内的所有路由器节点收到;分层确认帧携带的数据为分层确认帧自身的被转发次数,这个被转发次数的初始值为I ;路由器节点将自身的层数初始化为大于本网络最大估计层数的一个任意值;第2、更新自身层数Zigbee网络中的路由器节点收到分层确认帧后,将自身层数与分层确认帧所携带的分层确认帧自身的被转发次数相比较,若前者的值大于后者的值,则路由器节点将自身层数更新为分层确认帧所携带的分层确认帧自身的被转发次数,否则路由器节点不更新层数;第3、转发分层确认帧若路由器节点收到分层确认帧后,更新了自身层数,则路由器节点将分层确认帧所携带的分层确认帧自身的被转发次数加1,并将该条分层确认帧进行转发,若路由器节点没有更新层数,则不转发该条分层确认帧。本发明的优点和积极效果I)本发明提出的改进的Zigbee网络分层方法,其分层确认帧以洪泛路由方式发送到路由器节点,这种方式并不需要计算路由也不需要维护路由表,从而减少了节点的计算能耗。2)本发明方法对洪泛路由方式做了改进,并不对所有的分层确认帧进行转发,只转发使更新层数变小的分层确认帧,减少了资源的浪费,避免出现数据内爆问题。3)本发明方法中,当洪泛过程结束时,每个节点的层数值为此节点本身与协调器之间的最小跳数值,即每个节点的层数都可以反映其与协调器之间的距离关系。



图I为Zigbee网络分层方法示意图;图2为改进的Zigbee网络分层方法流程图;图3为节点均匀分布情况下网络分层仿真图;图4分层实际运行场景;图5分层确认过程所抓取的数据包示意图;图6协调器信息收集过程所抓取的数据包示意图。
具体实施例方式下面结合附图对本发明的示范性实施例做一描述。为了简洁起见,并非实施方案的所有特征都加以描述。在如下的描述中,对那些无线传感器领域中众所周知的功能或结构不作详细描述。实施例I :使用NS2 (Network Simulator Version 2)对本发明提出的一种改进的 Zigbee网络分层进行仿真。使用NS2进行网络仿真,需要使用C++和OTcl语言联合编程,即需要在底层编写C++代码完成路由协议等组件的添加或修改,然后再编写OTcl脚本仿真。NS2的具体结构及编程方法可参考文献[1],黄化吉、冯穗力、秦丽娇等所著书籍《NS网络模拟和协议仿真》,人民邮电出版社,2006年。需要在底层用C++语言编写路由协议对应的程序来实现本发明提出的方法。程序设计思路依照本发明方法如下第I、初始化Zigbee网络建立后,协调器初始化层数为0,并发送分层确认帧,协调器发送的分层确认帧,将被在协调器发射功率范围内的所有路由器节点收到;分层确认帧携带的数据为分层确认帧自身的被转发次数,这个被转发次数的初始值为I ;路由器节点将自身的层数初始化为255 (本实施例中Zigbee网络最大估计层数为4层,所以将路由器节点层数的初始值设置为大于4即可,本实验例中设置为255);第2、更新自身层数Zigbee网络中的路由器节点收到分层确认帧后,将自身层数与分层确认帧所携带的分层确认帧自身的被转发次数相比较,若前者的值大于后者的值,则路由器节点将自身
层数更新为分层确认帧所携带的分层确认帧自身的被转发次数,否则路由器节点不更新层
数;第3、转发分层确认帧若路由器节点收到分层确认帧后,更新了自身层数,则路由器节点将分层确认帧
所携带的分层确认帧自身的被转发次数加1,并将该条分层确认帧进行转发,若路由器节点
没有更新层数,则不转发该条分层确认帧。仿真场景在尺寸为50m*50m的场地中,均匀分布101个节点来进行分层的模拟; 以下是OTcl脚本进行全局变量的设定。
set val(iin) 101;# 节点个数
set val(rp) MFlood;#路由方式为改进的洪泛路由
set val(chan) Channel/WirelessChannel;#信道模型选择无线信道
set val(prop) Propagation/TwoRayGround ;# radio-propagation model
set val(netif) Phy/WirelessPhy/802_l 54 ;# 设覽物理层
set val(rnac) Mac/802_15—4;# 设 ri! mac .,U
set val(ifq) Queue/DropTail/PriQueue;# 设 V'i 队列校 A
set val(ll)LL;# link layer type
set val(ant) Antenna/OmniAntenna;# 人线役切
setval(Ifqlen) 50;#队列中可容纳的最大数椐包数Fl
set val(x)50;#设置场景的长宽范围
set val(y)50;#设置场景的长宽范围节点配置
Phy/WirelessPhy set CSThresh_ $dist(12m);# 设定信号所能发射的距离
Phy/WirelessPhy set RXThresh_ Sciist( 12m)
Sns— node-config -adhocRouting $val(rp) \ ;# Ix Ii1^r! I i -IlType Sval(Il) \
-macType $val(mac) \;#设定 mac 紐办议
权利要求
1.一种改进的Zigbee网络分层方法,其特征在于该方法包括 第I、初始化 Zigbee网络建立后,协调器初始化层数为O,并发送分层确认帧,协调器发送的分层确认帧,将被在协调器发射功率范围内的所有路由器节点收到;分层确认帧携带的数据为分层确认帧自身被转发次数,这个被转发次数的初始值为I ;路由器节点将自身的层数初始化为大于本网络最大估计层数的一个任意值; 第2、更新自身层数 Zigbee网络中的路由器节点收到分层确认帧后,将自身层数与分层确认帧所携带的分层确认帧自身被转发次数相比较,若前者的值大于后者的值,则路由器节点将自身层数更新为分层确认帧所携带的分层确认帧自身的被转发次数,否则路由器节点不更新层数; 第3、转发分层确认中贞 若路由器节点收到分层确认帧后,更新了自身层数,则路由器节点将分层确认帧所携带的分层确认帧自身的被转发次数加1,并将该条分层确认帧进行转发,若路由器节点没有更新层数,则不转发该条分层确认帧。
全文摘要
一种改进的Zigbee网络分层方法。本发明公开了一种改进的Zigbee网络分层方法,具体方法如下Zigbee网络建立后,协调器初始化层数为0,其他节点初始化层数为一极大值(大于本网络最大估计层数即可),然后协调器开始广播分层确认帧,节点收到分层确认帧后,根据层数更新机制更新自己的层数,即层数更新为当前层数和分层确认帧的转发次数之中的较小值,同时转发分层确认帧转发,直至分层确认帧分发到整个网络。节点可能会多次收到分层确认帧,为了防止资源浪费,引入帧转发控制机制,即不对所有分层确认帧进行转发,只转发使更新层数变小的分层确认帧。本发明解决了Zigbee网络分层方法在某些情况下,节点层数不能反映节点与网络协调器距离的问题。
文档编号H04W16/22GK102802166SQ201210339920
公开日2012年11月28日 申请日期2012年9月14日 优先权日2012年9月14日
发明者孙青林, 庞毅, 王超, 陈增强 申请人:南开大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1