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