無線傳感器網(wǎng)絡(luò)拓?fù)涞谋O(jiān)控與維護(hù)
在同一條數(shù)據(jù)通路上的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)時(shí),數(shù)據(jù)傳遞路徑上的各個(gè)節(jié)點(diǎn)都會(huì)發(fā)現(xiàn)其父節(jié)點(diǎn)(數(shù)據(jù)由下而上)或者子節(jié)點(diǎn)(數(shù)據(jù)由上而下)的丟失,進(jìn)而調(diào)用void ZDOSynclndicationCB(byte type,uint16 shortAddr)函數(shù)。如圖4所示,如果網(wǎng)關(guān)發(fā)送數(shù)據(jù)到終端節(jié)點(diǎn)1,則在網(wǎng)關(guān)到終端節(jié)點(diǎn)1數(shù)據(jù)路徑上的所有節(jié)點(diǎn)(網(wǎng)關(guān)、路由1、路由2、終端1)都能夠發(fā)現(xiàn)其了節(jié)點(diǎn)的丟失;終端節(jié)點(diǎn)1發(fā)送數(shù)據(jù)到網(wǎng)關(guān),則路徑1上的所有節(jié)點(diǎn)都能發(fā)現(xiàn)其父節(jié)點(diǎn)的丟失。
該方法通過建立數(shù)據(jù)通路上起始節(jié)點(diǎn)和末端節(jié)點(diǎn)的數(shù)據(jù)通訊來實(shí)現(xiàn)整條路徑上節(jié)點(diǎn)丟失情況的獲取。其具體操作過程分為兩個(gè)部分:其一是父節(jié)點(diǎn)丟失情況的獲取。由前面提到的實(shí)施條件可知,終端節(jié)點(diǎn)無需任何人為操作就能夠發(fā)現(xiàn)其父節(jié)點(diǎn)的丟失,而無需對此部分做特殊處理,因而只需對路由節(jié)點(diǎn)做出處理。而由路由葉子節(jié)點(diǎn)(如圖4中路由節(jié)點(diǎn)2、4)向網(wǎng)關(guān)發(fā)送數(shù)據(jù)時(shí),則可實(shí)現(xiàn)整條路徑上所有節(jié)點(diǎn)丟失情況的獲取。其二是了節(jié)點(diǎn)丟失情況的獲取。子節(jié)點(diǎn)丟失的獲取可以通過網(wǎng)關(guān)向葉子節(jié)點(diǎn)(圖4中所有終端節(jié)點(diǎn)和路由4)發(fā)送數(shù)據(jù)的方法來覆蓋整個(gè)網(wǎng)絡(luò)中的所有節(jié)點(diǎn),從而使全部節(jié)點(diǎn)都能夠發(fā)現(xiàn)其了節(jié)點(diǎn)的丟失情況。
人為加入上述兩部分?jǐn)?shù)據(jù)通訊后,只要整個(gè)網(wǎng)絡(luò)中有節(jié)點(diǎn)丟失,該丟失節(jié)點(diǎn)的父節(jié)點(diǎn)和子節(jié)點(diǎn)都會(huì)產(chǎn)生失步函數(shù)voidZDO_SyncIndicat ionCB(byte type,uint16 shortAddr)的調(diào)用,這樣就可以簡單地在該函數(shù)中添加向上層應(yīng)用報(bào)告的功能,實(shí)現(xiàn)網(wǎng)絡(luò)中節(jié)點(diǎn)丟失信息獲取。并且數(shù)據(jù)通訊量由原來的28條減少到6條,從而大大減少了數(shù)據(jù)消耗和由此帶來的系統(tǒng)資源占用。
3 網(wǎng)絡(luò)維護(hù)
Z-stack協(xié)議棧在全功能節(jié)點(diǎn)中只維護(hù)與本節(jié)點(diǎn)直接關(guān)聯(lián)的節(jié)點(diǎn)信息的關(guān)聯(lián)表,沒有整體網(wǎng)絡(luò)信息的存儲(chǔ)功能。為了解決Z-stack關(guān)于網(wǎng)絡(luò)全貌信息缺失的缺陷,結(jié)合本文提出的網(wǎng)絡(luò)監(jiān)控方法,設(shè)計(jì)一種維護(hù)的方法,在占用少量資源的情況下獲取整個(gè)網(wǎng)絡(luò)的拓?fù)湫畔?,并將信息整合到網(wǎng)關(guān)節(jié)點(diǎn)中統(tǒng)一維護(hù)和管理,從而建立網(wǎng)絡(luò)拓?fù)涞墓芾磙k法,實(shí)現(xiàn)具有自組織、自適應(yīng)能力的智能網(wǎng)絡(luò)管理機(jī)制。
3.1 管理模式
網(wǎng)絡(luò)信息管理可采用搜集模式和監(jiān)控模式相結(jié)合的方式。搜集模式通過發(fā)送指令搜集網(wǎng)絡(luò)拓?fù)湫畔?,賦予用戶即時(shí)獲取當(dāng)前網(wǎng)絡(luò)結(jié)構(gòu)的能力;監(jiān)控模式通過監(jiān)控從網(wǎng)絡(luò)組建起歷史網(wǎng)絡(luò)的結(jié)構(gòu)變化,實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)湫畔⒏拢瑥亩蠟楫?dāng)前網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
搜集模式在實(shí)現(xiàn)時(shí),首先由網(wǎng)關(guān)設(shè)備廣播一個(gè)命令來搜集設(shè)備信息;然后,收到廣播信息的路由節(jié)點(diǎn)再按照一定的數(shù)據(jù)格式,由網(wǎng)關(guān)返回子節(jié)點(diǎn)關(guān)聯(lián)信息;當(dāng)網(wǎng)關(guān)收到各個(gè)路由節(jié)點(diǎn)的返回信息后,再將其組合為整個(gè)網(wǎng)絡(luò)中的設(shè)備信息。
監(jiān)控模式則是從網(wǎng)絡(luò)形成起,網(wǎng)關(guān)節(jié)點(diǎn)就開始監(jiān)控所有節(jié)點(diǎn)的狀態(tài);當(dāng)路由節(jié)點(diǎn)檢測到其子節(jié)點(diǎn)加入或者退出的時(shí)候,向網(wǎng)關(guān)上報(bào)該子節(jié)點(diǎn)的狀態(tài)變化信息,而網(wǎng)關(guān)節(jié)點(diǎn)檢測到子節(jié)點(diǎn)加入或者退出則不用上報(bào),直接在網(wǎng)關(guān)內(nèi)部處理;當(dāng)網(wǎng)關(guān)接收到路由節(jié)點(diǎn)上報(bào)的狀態(tài)信息后,就會(huì)刪除或者增加該路由子節(jié)點(diǎn)的關(guān)聯(lián)信息,同時(shí)更新整體網(wǎng)絡(luò)結(jié)構(gòu)。
3.2 網(wǎng)絡(luò)拓?fù)浯鎯?chǔ)結(jié)構(gòu)
網(wǎng)關(guān)節(jié)點(diǎn)作為整個(gè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)管理的中心,負(fù)責(zé)拓?fù)浣Y(jié)構(gòu)的添加、刪除和更新,因此,必須在網(wǎng)關(guān)節(jié)點(diǎn)存儲(chǔ)整體的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息。受網(wǎng)關(guān)資源的限制,本文采用分級動(dòng)態(tài)鏈表的形式保存網(wǎng)絡(luò)拓?fù)湫畔?,以便以較少的資源占用實(shí)現(xiàn)拓?fù)湫畔⒌膭?dòng)態(tài)存儲(chǔ)。本設(shè)計(jì)的網(wǎng)絡(luò)拓?fù)浯鎯?chǔ)結(jié)構(gòu)如圖5所示。
圖5中,AssocLisHead是裝載路由節(jié)點(diǎn)頭信息的數(shù)組,包含有該路由節(jié)點(diǎn)的長地址、短地址、父節(jié)點(diǎn)短地址和擁有的子節(jié)點(diǎn)數(shù)以及指向其子節(jié)點(diǎn)鏈表assoc list的頭指針;assoclist鏈表中記載著這一路由下的了節(jié)點(diǎn)信息,包括子節(jié)點(diǎn)的短地址、長地址、類型、連接狀態(tài)等。在該路由下每增加一個(gè)子節(jié)點(diǎn),就會(huì)在assoc list鏈表中添加一個(gè)節(jié)點(diǎn)信息,當(dāng)節(jié)點(diǎn)離開時(shí),又會(huì)將相對應(yīng)的鏈表刪除。這樣,網(wǎng)關(guān)就可以方便地對當(dāng)前網(wǎng)絡(luò)中的昕有節(jié)點(diǎn)的拓?fù)浜拖嚓P(guān)信息進(jìn)行查找、更新、維護(hù)。
3.3 網(wǎng)絡(luò)維護(hù)方案
網(wǎng)絡(luò)維護(hù)的實(shí)施要建立網(wǎng)絡(luò)中所有類型節(jié)點(diǎn)間的區(qū)分與協(xié)作機(jī)制。區(qū)分是根據(jù)節(jié)點(diǎn)類型的不同、事件類型的不同做出區(qū)別處理;協(xié)作是在所有節(jié)點(diǎn)間建立連動(dòng)響應(yīng)機(jī)制,相互配合,并實(shí)現(xiàn)信息的匯聚和統(tǒng)一管理。具體的網(wǎng)絡(luò)維護(hù)分為事件響應(yīng)和信息維護(hù)兩部分。
3. 3. 1 拓?fù)渥兓录捻憫?yīng)
拓?fù)渥兓饕侵腹?jié)點(diǎn)加入事件和節(jié)點(diǎn)退出事件。當(dāng)節(jié)點(diǎn)加入事件是指節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),其父節(jié)點(diǎn)負(fù)責(zé)將該子節(jié)點(diǎn)加入信息上報(bào)網(wǎng)關(guān);節(jié)點(diǎn)退出事件則是指獲取到的網(wǎng)絡(luò)節(jié)點(diǎn)丟失信息的處理。處理可分為兩種情況:一種是當(dāng)傳遞來的type=1時(shí),即丟失節(jié)點(diǎn)為本節(jié)點(diǎn)的父節(jié)點(diǎn)時(shí),開啟網(wǎng)絡(luò)加入流程,使節(jié)點(diǎn)可以重新加入網(wǎng)絡(luò),并恢復(fù)網(wǎng)絡(luò)的正常運(yùn)行;第二種情況是type=0時(shí),即本節(jié)點(diǎn)發(fā)現(xiàn)其中一子節(jié)點(diǎn)丟失。本方法對于長時(shí)間無法連接的子節(jié)點(diǎn),將啟動(dòng)移除(LEAVE)流程,將該子節(jié)點(diǎn)從網(wǎng)絡(luò)中刪除,同時(shí)向網(wǎng)關(guān)節(jié)點(diǎn)報(bào)告子節(jié)點(diǎn)退出的消息。
需要注意的是:當(dāng)子節(jié)點(diǎn)丟失時(shí),有的時(shí)候是真正丟失了(長時(shí)間或永久無法連接),但更多的時(shí)候只是暫時(shí)地失去聯(lián)系,隨著子節(jié)點(diǎn)的重新加入申請,又可以加入網(wǎng)絡(luò),恢復(fù)正常的運(yùn)行狀態(tài)。因此,設(shè)計(jì)時(shí)需要將暫時(shí)失步和真正丟失這兩種情況區(qū)分開,再分別做出合理的處理。
評論