楊兆輝+梁麗麗+姜宇
[摘 要] 針對無線傳感器網絡節點在網絡中失去連接變成鏈路故障節點問題,提出了一種優化的基于ZigBee傳感器網絡設計思路。利用節點感知自身網絡連接狀態變化的方式,減少了網絡資源的消耗;利用節點轉移的方式,擴展了節點重新加入網絡的處理機制。仿真實驗證明,該方法有效地增加了故障節點重新加入網絡的成功率。
[關鍵詞] ZigBee;故障節點;網絡失聯;子樹節點
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2017. 17. 074
[中圖分類號] TP212.9 [文獻標識碼] A [文章編號] 1673 - 0194(2017)17- 0163- 02
0 引 言
近年來,隨著物聯網技術的飛速發展,作為物聯網技術的基礎支撐技術之一的無線傳感器網絡技術也不斷成熟。Zig Bee 專注于無線通信網絡技術,也是嵌入式應用的一大熱點,針對孤立子樹的問題應用動態重構樹方法恢復,但此節點若要重新加入網絡不能更充分地利用地址空間。
1 ZigBee網絡自主配置技術
1.1 ZigBee網絡鏈路故障
鏈路故障節點是指失去網絡連接的節點,在樹形拓撲結構中找不到父節點,當與父節點失聯后,在樹形拓撲結構中ZigBee的數據采集是向匯聚節點發送信息,所以當鏈路故障發生后也就無法成功地向匯聚節點發送數據。
在這個樹形拓撲結構中節點需要和協調器保持數據同步,此時R1節點失去網絡連接,那么R1與R2就會斷開,R2以及后代節點也就形成了孤立子樹,無法再接收到同步消息。
1.2 鏈路故障節點重新加入網絡自主配置方案設計
1.2.1 無子節點的鏈路故障節點
如果鏈路故障節點無子節點,當重新發起網絡請求時,如父節點有空余的地址空間,則根據地址分配公式 Cskip 計算網絡地址,如無地址空間則拒絕其加入,該故障節點會經過一段時間重新再發起請求。
1.2.2 有子節點的鏈路故障節點
若鏈路故障節點有子節點,要重新加入網絡就必須考慮孤立子樹問題。鏈路故障節點充當子樹網絡的代理協調器,向所有子樹網絡發送消息,在發送請求時同時考慮子樹的節點數、高度等參數。如果請求失敗則放棄代理子樹按照鏈路故障節點重新加入網絡過程。
2 ZigBee網絡設計原型系統實現
2.1 系統的總體實現結構
ZigBee網絡具有自行組網能力,自主配置并收發數據,由路由節點、終端節點、協調器節點組成,而網絡的具體角色需要代碼來設定,由于網絡中只有一個協調器,所以首先編譯該部分源碼,終端節點能耗低因此代碼也簡單。
實現步驟:通過Socket接口與網關進行通信實現數據收發;緩存區負責存儲數據,當緩存區存滿時就向數據庫中插入數據也就是數據緩存;從緩存表中提取網絡拓撲信息也就是網絡拓撲繪制;軟件把采集到的傳感數據存入數據庫中,以便提供給用戶查詢也就是數據庫管理。
2.2 鏈路網絡狀態檢測
檢測網絡狀態只要是對鏈路故障的排查,當節點已成為故障節點,故障節點需要發起重新加入網絡的申請,啟動用于同步信標的定時器并設置其計數值,若收到信標消息計數器清零,否則計數器值加1,當累加值超過5時,其值的設定一方面依據Z-Stack 協議棧源代碼 f8w Config.cfg 文件中的宏定義:-DBEACON_REQUEST_DELAY=1000,為了避免向已發生故障的節點發送數據,需要在該周期內判斷是否發生故障。
2.3 更新子樹節點信息
鏈路故障節點有子節點時,如果成功加入網絡,則攜帶的整棵子樹需要更新狀態,此時需要廣播狀態更新消息,使節點同步更新高度、地址、網絡等信息,主要代碼如下:
void Sub_Tree_Update(){
SUBTREE_UPDATE sub_update;
for(int i=0;i if(AF_DataRequest(&SampleApp_SubUbdate_DstAddr,// &SampleApp_epDesc, SAMPLEAPP_SUBTREE_UPDATE_CLUSTERID, (uint16)sizeof(sub_update), (uint8*)sub_update, &SampleApp_TranslD, AF_DISCV_ROUTE, //AF_DISCV_ROUTE, AF_DEFAULT_RADIUS==afStatus_SUCCESS){} 3 基于MATLAB仿真平臺實驗測試與結果分析 為了評價基于ZigBee的傳感器網絡設計的性能,本文將與ZigBee標準協議下的修復能力相關算法應用MATLAB仿真進行了比較。 (1)生成網絡拓撲:在仿真環境中模擬生成 Zig Bee 網絡節點。 (2)設置故障點:將帶子節點的網絡節點設置為故障節點。 (3)變化節點個數:改變ZED和ZR進行測試。 將上述實驗結果換算成節點加入率,繪制節點加入率隨節點數量變化的曲線圖: 圖1和圖2顯示當 ZED 在節點中比例越高其節點加入率急劇下降,在修復鏈路故障后,鏈路故障節點重新加入網絡處理機制的修復能力比 ZigBee 標準協議修復能力有所提高,但隨 ZED 比例提高。 基于ZigBee的傳感器網絡設計,可以滿足實際運行的需要。在與 ZigBee 標準協議對比下,可以看出鏈路故障節點重新加入網絡處理機制在處理鏈路故障節點重新加入網絡時的成功率要比 ZigBee 標準協議有所提高。 主要參考文獻 [1]劉濤濤.基于ZigBee技術的設備狀態監測與故障診斷系統設計[D].太原:中北大學,2014. [2]李蔚.基于ZigBee的無線傳感器網絡通信協議棧設計與實現[D].成都:電子科技大學,2012. [3] 朱思建.基于開源系統的無線傳感器網絡組網的研究[D].武漢:湖北工業大學,2014.