一種改進的Zigbee網絡分層方法
2023-04-28 11:39:26
專利名稱:一種改進的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日
發明者孫青林, 龐毅, 王超, 陳增強 申請人:南開大學