專利名稱:一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)維護方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線傳感器網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)維護方法及系統(tǒng)。
背景技術(shù):
Zigbee是一種開放性的低成本、低功耗、低數(shù)據(jù)速率、低復(fù)雜度、雙向傳輸、高可靠性的新型短距離無線通信技術(shù),該技術(shù)應(yīng)用簡單,電池壽命長,成本低,可靠性高,具有自組網(wǎng)和自恢復(fù)能力。Zigbee可以在數(shù)千個節(jié)點之間相互協(xié)調(diào)實現(xiàn)通信。這些節(jié)點只需要很少的能量,以接力的方式通過無線電波將數(shù)據(jù)從一個節(jié)點傳到另一個節(jié)點,所以它們的通信效率非常高。因此Zigbee在傳感器網(wǎng)絡(luò)、智能家居、工業(yè)自動化等領(lǐng)域有著廣泛的應(yīng)用。為了方便的獲知網(wǎng)絡(luò)的信息,需要對網(wǎng)絡(luò)的結(jié)構(gòu)進行監(jiān)控和維護。以基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)為例,目前,主要通過在網(wǎng)絡(luò)的全功能節(jié)點處即網(wǎng)關(guān)節(jié)點和路由節(jié)點處維護一張只與全功能節(jié)點直接 關(guān)聯(lián)的節(jié)點信息的關(guān)聯(lián)表對網(wǎng)絡(luò)進行管理。當(dāng)上述關(guān)聯(lián)表中的節(jié)點發(fā)生變化時,進行更新。但因為只保存直接關(guān)聯(lián)的節(jié)點信息,因此,上述方式無法使用戶從網(wǎng)關(guān)處獲知整個網(wǎng)絡(luò)的主要結(jié)構(gòu)信息。
發(fā)明內(nèi)容
本發(fā)明旨在提供一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)維護方法及系統(tǒng),以實現(xiàn)在網(wǎng)關(guān)節(jié)點處對網(wǎng)絡(luò)中所有節(jié)點信息的維護?;诖?,本發(fā)明提供了一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護方法,所述方法包括網(wǎng)關(guān)節(jié)點預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟;所述網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點的變化,所述網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點變化信息的步驟,所述網(wǎng)關(guān)子節(jié)點包括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點存在父子關(guān)系的路由節(jié)點和/或終端節(jié)占.網(wǎng)絡(luò)中路由節(jié)點檢測到路由子節(jié)點的變化,所述路由節(jié)點生成路由子節(jié)點變化信息并上報至所述網(wǎng)關(guān)節(jié)點的步驟;所述網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)中節(jié)點的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢的步驟,所述網(wǎng)絡(luò)中節(jié)點包括所述網(wǎng)關(guān)子節(jié)點和所述路由子節(jié)點;其中,所述網(wǎng)關(guān)節(jié)點預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟包括;所述網(wǎng)關(guān)節(jié)點在所述網(wǎng)絡(luò)中廣播節(jié)點信息收集命令;網(wǎng)絡(luò)中的節(jié)點根據(jù)收到的所述廣播節(jié)點信息收集命令返回自身的節(jié)點信息至所述網(wǎng)關(guān)節(jié)點;所述網(wǎng)關(guān)節(jié)點將所述網(wǎng)絡(luò)中的節(jié)點返回的所述節(jié)點信息進行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲。優(yōu)選的,所述網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點的變化,生成網(wǎng)關(guān)子節(jié)點變化信息,其中,所述網(wǎng)關(guān)子節(jié)點變化信息包括網(wǎng)關(guān)子節(jié)點加入信息和網(wǎng)關(guān)子節(jié)點丟失信息;所述網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點的變化,生成網(wǎng)關(guān)子節(jié)點加入信息,包括當(dāng)一節(jié)點以所述網(wǎng)關(guān)節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)時,所述網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點加入信息;所述網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點的變化,生成網(wǎng)關(guān) 子節(jié)點丟失信息,包括所述網(wǎng)關(guān)節(jié)點根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳網(wǎng)關(guān)子節(jié)點;所述網(wǎng)關(guān)節(jié)點將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳網(wǎng)關(guān)子節(jié)點;所述網(wǎng)關(guān)節(jié)點根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述下一跳網(wǎng)關(guān)子節(jié)點是否丟失;當(dāng)所述網(wǎng)關(guān)子節(jié)點丟失時,則所述網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點丟失信息。優(yōu)選的,所述網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)中節(jié)點的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,包括當(dāng)所述節(jié)點的變化信息為節(jié)點的加入信息時,所述網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點是否存在于所述網(wǎng)絡(luò)中;若所述節(jié)點存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲的所述節(jié)點的相應(yīng)信息;若所述節(jié)點未存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為所述節(jié)點分配存儲空間,并增加對應(yīng)的父子信息;當(dāng)所述節(jié)點的變化信息為節(jié)點的丟失信息時,所述網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中;若所述節(jié)點存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述節(jié)點的信息;若所述節(jié)點未存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點提示出錯。優(yōu)選的,所述網(wǎng)絡(luò)中路由節(jié)點檢測到路由子節(jié)點的變化,生成路由子節(jié)點變化信息并上報至所述網(wǎng)關(guān)節(jié)點;其中,所述路由子節(jié)點變化信息包括路由子節(jié)點加入信息和路由子節(jié)點丟失信息;所述路由節(jié)點檢測到路由子節(jié)點的變化,生成路由子節(jié)點加入信息,包括當(dāng)一節(jié)點以所述路由節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)時,所述路由節(jié)點生成路由子節(jié)點加入信息;所述路由節(jié)點上報所述路由子節(jié)點加入信息至所述網(wǎng)關(guān)節(jié)點;所述路由節(jié)點檢測到路由子節(jié)點的變化,生成路由子節(jié)點丟失信息,包括所述路由節(jié)點根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳節(jié)點;所述路由節(jié)點將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳節(jié)點;所述路由節(jié)點根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)確定所述下一跳節(jié)點是否丟失;若所述下一跳節(jié)點丟失,且所述下一跳節(jié)點為所述路由節(jié)點的子節(jié)點,則在所述路由節(jié)點的協(xié)議層生成路由子節(jié)點丟失信息并上報至所述路由節(jié)點的應(yīng)用層;當(dāng)所述路由節(jié)點的應(yīng)用層接收到所述路由子節(jié)點丟失信息時,所述路由節(jié)點將所述路由子節(jié)點丟失信息上報至所述網(wǎng)關(guān)節(jié)點;若所述下一跳節(jié)點丟失,且所述下一跳節(jié)點為路由節(jié)點的父節(jié)點,則在所述路由節(jié)點的協(xié)議層生成路由父節(jié)點丟失信息并上報至所述路由節(jié)點的應(yīng)用層;當(dāng)所述路由節(jié)點的應(yīng)用層接收到所述路由父節(jié)點丟失信息時,所述路由節(jié)點開啟節(jié)點加入流程,選擇合適的節(jié)點為父節(jié)點重新加入所述網(wǎng)絡(luò)。優(yōu)選的,所述方法還包括
所述路由節(jié)點根據(jù)所述路由子節(jié)點的變化信息更新存儲于所述路由節(jié)點的路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢所述路由節(jié)點處的拓?fù)浣Y(jié)構(gòu)信息。優(yōu)選的,所述路由節(jié)點根據(jù)所述路由子節(jié)點的變化信息更新存儲于所述路由節(jié)點的路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表包括當(dāng)所述路由子節(jié)點的變化信息為加入信息時,所述路由節(jié)點根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中;若是,則更新在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中所存儲的所述路由子節(jié)點的信息;若否,則在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中為所述路由子節(jié)點分配存儲空間,并增加對應(yīng)的父子信息;當(dāng)所述路由子節(jié)點的變化信息為丟失信息時,所述路由節(jié)點根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中;若是,則所述路由節(jié)點在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中刪除所述路由子節(jié)點的信息;若否,則所述路由節(jié)點提示出錯。優(yōu)選的,所述方法還包括終端節(jié)點根據(jù)待發(fā)送數(shù)據(jù)目的節(jié)點確定下一跳終端父節(jié)點;所述終端節(jié)點發(fā)送所述待發(fā)送數(shù)據(jù)至所述下一跳終端父節(jié)點;所述終端節(jié)點根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述終端父節(jié)點是否丟失;若所述終端父節(jié)點丟失,則生成終端父節(jié)點丟失信息;所述終端節(jié)點根據(jù)所述終端父節(jié)點丟失信息開啟孤點加入流程,選擇所述終端節(jié)點的父節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò);若無法加入,則所述終端節(jié)點開啟節(jié)點加入流程,選擇其他合適的節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)。優(yōu)選的,所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表米用分級動態(tài)鏈表形式,在每一級中存儲上一級節(jié)點對應(yīng)的子節(jié)點信息。對應(yīng)上述方法,本發(fā)明還提供了一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護系統(tǒng),所述系統(tǒng)包括網(wǎng)關(guān)節(jié)點、路由節(jié)點和終端節(jié)點;所述網(wǎng)關(guān)節(jié)點包括網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單兀,用于預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表;網(wǎng)關(guān)子節(jié)點變化信息生成單元,用于在檢測到網(wǎng)關(guān)子節(jié)點的變化時生成網(wǎng)關(guān)子節(jié)點變化信息;所述網(wǎng)關(guān)子節(jié)點包括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點存在父子關(guān)系的路由節(jié)點和/或終端節(jié)點;
網(wǎng)關(guān)更新單元,用于根據(jù)網(wǎng)絡(luò)中節(jié)點的變信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢;所述網(wǎng)絡(luò)中節(jié)點包括所述網(wǎng)關(guān)子節(jié)點和所述路由子節(jié)點;所述路由節(jié)點包括路由子節(jié)點變化信息生成單元,用于在檢測到路由子節(jié)點的變化時生成路由子節(jié)點變化信息并上報至所述網(wǎng)關(guān)節(jié)點;路由節(jié)點信息返回單元,用于根據(jù)接收到的廣播節(jié)點信息收集命令返回自身的節(jié)點信息至所述網(wǎng)關(guān)節(jié)點; 所述終端節(jié)點包括終端節(jié)點信息返回單元,用于根據(jù)接收到的廣播節(jié)點信息收集命令返回自身的節(jié)點信息至所述網(wǎng)關(guān)節(jié)點;所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單元包括廣播單元,用于在所述網(wǎng)絡(luò)中廣播節(jié)點信息收集命令;網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立子單元,用于根據(jù)路由節(jié)點信息返回單元和終端節(jié)點信息返回單元返回的節(jié)點信息進行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲。優(yōu)選的,所述網(wǎng)關(guān)子節(jié)點變化信息生成單元,包括網(wǎng)關(guān)子節(jié)點加入信息生成單元和網(wǎng)關(guān)子節(jié)點丟失信息生成單元;所述網(wǎng)關(guān)子節(jié)點加入信息生成單元,用于在檢測到網(wǎng)關(guān)子節(jié)點的變化時,生成網(wǎng)關(guān)子節(jié)點加入信息;所述網(wǎng)關(guān)子節(jié)點加入信息生成單元,具體用于當(dāng)一節(jié)點以所述網(wǎng)關(guān)節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)時,生成網(wǎng)關(guān)子節(jié)點加入信息;所述網(wǎng)關(guān)子節(jié)點丟失信息生成單元,用于在檢測到網(wǎng)關(guān)子節(jié)點的變化,生成網(wǎng)關(guān)子節(jié)點丟失信息,包括第一下一跳節(jié)點確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳網(wǎng)關(guān)子節(jié)占.第一數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳網(wǎng)關(guān)子節(jié)點;網(wǎng)關(guān)子節(jié)點丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述下一跳網(wǎng)關(guān)子節(jié)點是否丟失;網(wǎng)關(guān)子節(jié)點丟失信息生成子單元,用于當(dāng)所述網(wǎng)關(guān)子節(jié)點丟失時,生成網(wǎng)關(guān)子節(jié)點丟失信息。優(yōu)選的,所述網(wǎng)關(guān)更新單元包括網(wǎng)關(guān)加入信息判斷單元,用于當(dāng)所述節(jié)點的變化信息為節(jié)點的加入信息時,根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點是否存在于所述網(wǎng)絡(luò)中;網(wǎng)關(guān)加入信息更新子單元,用于在所述節(jié)點存在于所述網(wǎng)絡(luò)中時,更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲的所述節(jié)點的相應(yīng)信息;網(wǎng)關(guān)分配單元,用于在所述節(jié)點未存在于所述網(wǎng)絡(luò)中時,在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為所述節(jié)點分配存儲空間,并增加對應(yīng)的父子信息;網(wǎng)關(guān)丟失信息判斷單元,用于當(dāng)所述節(jié)點的變化信息為節(jié)點的丟失信息時,根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中;網(wǎng)關(guān)丟失信息刪除單元,用于在若所述節(jié)點存在于所述網(wǎng)絡(luò)中時,在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述節(jié)點的信息;網(wǎng)關(guān)提示單元,用于在所述節(jié)點未存在于所述網(wǎng)絡(luò)中時,提示出錯。優(yōu)選的,所述路由子節(jié)點變化信息生成單元包括路由子節(jié)點加入信息生成單元和路由子節(jié)點丟失信息生成單元;所述路由子節(jié)點加入信息生成單元,用于在檢測到路由子節(jié)點的變化時,生成路由子節(jié)點加入信息;所述路由子節(jié)點加入信息生成單元,包括 路由子節(jié)點加入信息生成子單元,用于當(dāng)一節(jié)點以所述路由節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)時,生成路由子節(jié)點加入信息;所述路由子節(jié)點丟失信息生成單元,具體用于在檢測到路由子節(jié)點的變化時,生成路由子節(jié)點丟失信息;包括第二下一跳節(jié)點確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳節(jié)點;第二數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳節(jié)點;路由子節(jié)點丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)確定所述路由節(jié)點的下一跳節(jié)點是否丟失;協(xié)議層上報單元,用于在所述下一跳路由子節(jié)點丟失,且所述下一跳路由節(jié)點為所述路由節(jié)點的子節(jié)點時,在所述路由節(jié)點的協(xié)議層生成路由子節(jié)點丟失信息并上報至所述路由節(jié)點的應(yīng)用層;應(yīng)用層上報單元,用于在所述路由節(jié)點的應(yīng)用層接收到所述路由子節(jié)點丟失信息時,將所述路由子節(jié)點丟失信息上報至所述網(wǎng)關(guān)節(jié)點;所述協(xié)議層上報單元,還用于在所述下一跳節(jié)點丟失,且所述下一跳節(jié)點為路由節(jié)點的父節(jié)點時,在所述路由節(jié)點的協(xié)議層生成路由父節(jié)點丟失信息并上報至所述路由節(jié)點的應(yīng)用層;應(yīng)用層上報單元,還用于當(dāng)所述路由節(jié)點的應(yīng)用層接收到所述路由父節(jié)點丟失信息時,開啟節(jié)點加入流程,選擇合適的節(jié)點為父節(jié)點重新加入所述網(wǎng)絡(luò)。優(yōu)選的,所述路由節(jié)點還包括路由更新單元,用于根據(jù)所述路由子節(jié)點的變化信息更新存儲于所述路由節(jié)點的路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢所述路由節(jié)點處的拓?fù)浣Y(jié)構(gòu)信息。優(yōu)選的,所述路由更新單元包括路由加入信息判斷單元,用于當(dāng)所述路由子節(jié)點的變化信息為加入信息時,根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中;路由加入信息更新子單元,用于在所述路由子節(jié)點已經(jīng)存在于所述網(wǎng)絡(luò)中時,更新在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中所存儲的所述路由子節(jié)點的信息;路由分配單元,用于在所述路由子節(jié)點未存在于所述網(wǎng)絡(luò)中時,在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中為所述路由子節(jié)點分配存儲空間,并增加對應(yīng)的父子信息;路由丟失信息判斷單元,用于當(dāng)所述路由子節(jié)點的變化信息為丟失信息時,根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中;路由丟失信息刪除單元,用于在所述路由子節(jié)點已經(jīng)存在于所述網(wǎng)絡(luò)中時,在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中刪除所述路由子節(jié)點的信息;
路由提示單元,用于在所述路由子節(jié)點未存在于所述網(wǎng)絡(luò)中時提示出錯。優(yōu)選的,所述終端節(jié)點還包括終端父節(jié)點確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)目的節(jié)點確定下一跳終端父節(jié)點;終端數(shù)據(jù)發(fā)送單元,用于發(fā)送所述待發(fā)送數(shù)據(jù)至所述下一跳終端父節(jié)點;終端父節(jié)點丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述終端父節(jié)點是否丟失;終端父節(jié)點丟失信息生成單元,用于在所述終端父節(jié)點丟失時,生成終端父節(jié)點丟失 目息;
孤點加入單元,用于根據(jù)所述終端父節(jié)點丟失信息開啟孤點加入流程,選擇所述終端節(jié)點的父節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò);節(jié)點加入單元,用于在所述父節(jié)點無法通過孤點加入流程加入時,開啟節(jié)點加入流程,選擇其他合適的節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果本發(fā)明中網(wǎng)關(guān)節(jié)點預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表;網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點即網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點存在父子關(guān)系的路由節(jié)點和/或終端節(jié)點的變化后生成網(wǎng)關(guān)子節(jié)點變化信息,網(wǎng)絡(luò)中路由節(jié)點檢測到路由子節(jié)點的變化后生成路由子節(jié)點變化信息并上報至所述網(wǎng)關(guān)節(jié)點;網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)中節(jié)點即所述網(wǎng)關(guān)子節(jié)點和所述路由子節(jié)點的變化信息更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,供用戶查詢,通過上述過程使得在網(wǎng)關(guān)節(jié)點處維護了網(wǎng)絡(luò)中所有節(jié)點的信息,在后續(xù)用戶查詢時可以直接從網(wǎng)關(guān)節(jié)點處獲知所有節(jié)點的信息。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明網(wǎng)絡(luò)中各類型節(jié)點連接示意圖;圖2是本發(fā)明方法實施例流程圖;圖3是本發(fā)明中網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點丟失信息流程圖;圖4是本發(fā)明路由節(jié)點生成路由子節(jié)點丟失信息流程圖;圖5是本發(fā)明終端節(jié)點生成終端父節(jié)點變化信息流程圖;圖6是本發(fā)明網(wǎng)關(guān)節(jié)點更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表流程圖;圖7是本發(fā)明網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表結(jié)構(gòu)圖;圖8是本發(fā)明網(wǎng)絡(luò)中各節(jié)點信息維護示意圖;圖9是本發(fā)明系統(tǒng)實施例結(jié)構(gòu)圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。在本發(fā)明中,子節(jié)點和父節(jié)點是依據(jù)基于ZigBee協(xié)議的網(wǎng)絡(luò)中的節(jié)點通信關(guān)系劃分的。當(dāng)網(wǎng)絡(luò)中的某臺設(shè)備通過另一臺設(shè)備加入網(wǎng)絡(luò)時,這兩臺設(shè)備就構(gòu)成了父子關(guān)系,新接入的設(shè)備成為子節(jié)點,而另一臺設(shè)備稱為該子節(jié)點的父節(jié)點。例如,設(shè)備A通過設(shè)備B加入到該ZigBee網(wǎng)絡(luò)中,則設(shè)備A稱為子節(jié)點,設(shè)備B稱為設(shè)備A這個子節(jié)點的父節(jié)點。在網(wǎng)絡(luò)中,節(jié)點包括網(wǎng)關(guān)節(jié)點、路由節(jié)點和終端節(jié)點三種類型。如圖I所示,網(wǎng)關(guān)節(jié)點為al,終端節(jié)點為a3,路由節(jié)點為a2。其中,路由節(jié)點a2和終端節(jié)點a3經(jīng)常會發(fā)生掉電、錯誤、離開或信號變?nèi)醯惹闆r,導(dǎo)致不能被檢測,我們稱之為節(jié)點丟失。當(dāng)有路由節(jié)點a2和終端節(jié)點a3加入網(wǎng)絡(luò)時,為節(jié)點加入。節(jié)點的丟失和加入都是節(jié)點的一種變化,在網(wǎng)絡(luò)中是經(jīng)常發(fā)生的情況。為保證網(wǎng)絡(luò)的穩(wěn)定,用戶需要掌握網(wǎng)絡(luò)的現(xiàn)狀以便及時作出調(diào)整。為此,本發(fā)明實施例I提供了一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護方法,參見圖2,所述方法包括S11、網(wǎng)關(guān)節(jié)點預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟。網(wǎng)關(guān)節(jié)點預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的方法有多種,本發(fā)明實施例2提供了一種具體方式,包括如下步驟所述網(wǎng)關(guān)節(jié)點在所述網(wǎng)絡(luò)中廣播節(jié)點信息收集命令。網(wǎng)絡(luò)中的節(jié)點根據(jù)收到的所述廣播節(jié)點信息收集命令返回自身的節(jié)點信息至所述網(wǎng)關(guān)節(jié)點。所述網(wǎng)關(guān)節(jié)點將所述網(wǎng)絡(luò)中的節(jié)點返回的所述節(jié)點信息進行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲。
需要說明的是,本發(fā)明用以在網(wǎng)關(guān)節(jié)點處查詢網(wǎng)絡(luò)中所有節(jié)點的狀態(tài),因此本發(fā)明中的拓?fù)浣Y(jié)構(gòu)信息表應(yīng)當(dāng)包含建立該信息表時網(wǎng)絡(luò)中所有節(jié)點的信息。S12、所述網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點的變化,所述網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點變化信息的步驟,所述網(wǎng)關(guān)子節(jié)點包括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點存在父子關(guān)系的路由節(jié)點和/或終端節(jié)點。S13、網(wǎng)絡(luò)中路由節(jié)點檢測到路由子節(jié)點的變化,所述路由節(jié)點生成路由子節(jié)點變化信息并上報至所述網(wǎng)關(guān)節(jié)點的步驟。S14、所述網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)中節(jié)點的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢的步驟,所述網(wǎng)絡(luò)中節(jié)點包括所述網(wǎng)關(guān)子節(jié)點和所述路由子節(jié)點。為使本發(fā)明更加清楚,以下分幾部分對上述實施例進行介紹。首先對網(wǎng)關(guān)節(jié)點生成網(wǎng)絡(luò)中網(wǎng)關(guān)子節(jié)點的變化信息進行介紹。在本發(fā)明中,網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點變化信息可以通過多種方法實現(xiàn)。tWn,可以通過網(wǎng)關(guān)節(jié)點周期性查詢的方式。即網(wǎng)關(guān)節(jié)點每隔一定的時間向網(wǎng)關(guān)子節(jié)點發(fā)送查詢信息,若網(wǎng)關(guān)子節(jié)點正?;貜?fù),則認(rèn)為該網(wǎng)關(guān)子節(jié)點正常,否則認(rèn)為該網(wǎng)關(guān)子節(jié)點離開網(wǎng)絡(luò)。但這種方式中網(wǎng)絡(luò)結(jié)構(gòu)信息的反映實時性與查詢周期的長短直接相關(guān),查詢周期設(shè)置較長,系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)信息的變化反映時間就增長,實時性變差。若查詢周期設(shè)置較短,就增大了傳輸?shù)臄?shù)據(jù)量,占用了網(wǎng)絡(luò)有限的資源。另一種方式是通過變化節(jié)點主動上報的方式對網(wǎng)絡(luò)進行監(jiān)控。即當(dāng)網(wǎng)關(guān)子節(jié)點發(fā)生變化時,主動上報變化信息至網(wǎng)關(guān)節(jié)點。但這種方式不具備對突發(fā)情況(如節(jié)點忽然丟失、損壞等)的反映能力。針對此,本發(fā)明實施例3提供了一種優(yōu)選的方式,能夠解決上述兩種方式存在的問題。如前所述,節(jié)點的變化包括節(jié)點加入和節(jié)點丟失兩種情況,對應(yīng)的該優(yōu)選的方式具體包括網(wǎng)關(guān)節(jié)點檢測網(wǎng)關(guān)子節(jié)點的變化生成網(wǎng)關(guān)子節(jié)點加入信息和網(wǎng)關(guān)節(jié)點檢測網(wǎng)關(guān)子節(jié)點的變化,生成網(wǎng)關(guān)子節(jié)點丟失信息。其中,網(wǎng)關(guān)節(jié)點檢測網(wǎng)關(guān)子節(jié)點的變 化生成網(wǎng)關(guān)子節(jié)點加入信息包括當(dāng)一節(jié)點以網(wǎng)關(guān)節(jié)點為父節(jié)點加入網(wǎng)絡(luò)時,網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點加入信息。參見圖3,網(wǎng)關(guān)節(jié)點檢測網(wǎng)關(guān)子節(jié)點的變化生成網(wǎng)關(guān)子節(jié)點丟失信息包括如下步驟S21、網(wǎng)關(guān)節(jié)點根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳網(wǎng)關(guān)子節(jié)點。對于網(wǎng)絡(luò)中的節(jié)點來說,其待發(fā)送數(shù)據(jù)可以是本節(jié)點自己構(gòu)造的數(shù)據(jù),也可以是接收的其它節(jié)點發(fā)送來并由本節(jié)點轉(zhuǎn)發(fā)的數(shù)據(jù)。對于網(wǎng)關(guān)節(jié)點來說,不可能接收其它節(jié)點發(fā)送的數(shù)據(jù),因此,此處的待發(fā)送數(shù)據(jù)實際是指網(wǎng)關(guān)節(jié)點自身構(gòu)造的數(shù)據(jù)。網(wǎng)關(guān)節(jié)點在網(wǎng)絡(luò)層獲取到該待發(fā)送數(shù)據(jù)的目的節(jié)點,進而查詢本節(jié)點所保存的路由表,確定出下一跳節(jié)點。S22、網(wǎng)關(guān)節(jié)點將上述待發(fā)送數(shù)據(jù)發(fā)送至確定出的下一跳網(wǎng)關(guān)子節(jié)點。S23、網(wǎng)關(guān)節(jié)點根據(jù)待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷下一跳網(wǎng)關(guān)子節(jié)點是否丟失。S24、當(dāng)判斷出該下一跳網(wǎng)關(guān)子節(jié)點丟失時,網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點丟失信息。如果確定出的下一跳網(wǎng)關(guān)子節(jié)點仍處于網(wǎng)絡(luò)中,即下一跳網(wǎng)關(guān)子節(jié)點未丟失,則該下一跳網(wǎng)關(guān)子節(jié)點會接收到該待發(fā)送數(shù)據(jù)。如果該下一跳網(wǎng)關(guān)子節(jié)點丟失,則網(wǎng)關(guān)節(jié)點的ZigBee協(xié)議棧底層(即應(yīng)用層以下的協(xié)議層)可以獲知該下一跳網(wǎng)關(guān)子節(jié)點并未接收到該待發(fā)送數(shù)據(jù),同時在該協(xié)議棧底層生成指示該下一跳網(wǎng)關(guān)子節(jié)點丟失的丟失指示消息。本發(fā)明中當(dāng)在協(xié)議棧底層生成該丟失指示消息后,會將該丟失指示消息逐層上報,最終由網(wǎng)絡(luò)層將該丟失指示消息上報給應(yīng)用層的ZigBee設(shè)備對象(ZDO,Zigbee DeviceObiect),以便ZigBee協(xié)議棧中應(yīng)用層的ZigBee設(shè)備對象獲取到該下一跳網(wǎng)關(guān)子節(jié)點丟失的信息。本發(fā)明中為了能夠讓Zigbee協(xié)議棧中應(yīng)用層的應(yīng)用對象獲取到節(jié)點丟失,當(dāng)從ZigBee設(shè)備對象中獲取到丟失指示消息時,提取出該消息中包含的節(jié)點的網(wǎng)絡(luò)信息,并進一步將該節(jié)點的網(wǎng)絡(luò)信息作為節(jié)點丟失信息上報給應(yīng)用對象,進而使得應(yīng)用對象可以實時獲取到節(jié)點丟失信息。需要說明的是,該丟失指示消息中包含的節(jié)點的網(wǎng)絡(luò)信息可以包括丟失節(jié)點的網(wǎng)絡(luò)地址,以及丟失節(jié)點與本節(jié)點的通信關(guān)系,如,丟失節(jié)點為本節(jié)點的子節(jié)點或者丟失節(jié)點為本節(jié)點的父節(jié)點。此處的通信關(guān)系為網(wǎng)關(guān)節(jié)點的子節(jié)點。其中,丟失指示消息中所包含節(jié)點的網(wǎng)絡(luò)信息被認(rèn)為是丟失節(jié)點的網(wǎng)絡(luò)信息。其次,對路由節(jié)點檢測到路由子節(jié)點的變化,生成路由子節(jié)點變化信息進行介紹。同網(wǎng)關(guān)節(jié)點相同,根據(jù)路由子節(jié)點的不同變化,路由節(jié)點在檢測到路由子節(jié)點時可能會生成路由子節(jié)點加入信息,也有可能生成路由子節(jié)點丟失信息。
其中,當(dāng)一節(jié)點以路由節(jié)點為父節(jié)點加入網(wǎng)絡(luò)時,該路由節(jié)點生成路由子節(jié)點加入信息。之后路由節(jié)點會將該信息上報至網(wǎng)關(guān)節(jié)點,以便網(wǎng)關(guān)節(jié)點據(jù)此更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
信息表。同網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點的丟失信息類似,參見圖4,路由節(jié)點生成路由子節(jié)點的丟失信息包括如下步驟S31、路由節(jié)點根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳節(jié)點。S32、路由節(jié)點將待發(fā)送數(shù)據(jù)發(fā)送至所述確定出的下一跳節(jié)點。S33、路由節(jié)點根據(jù)待發(fā)送數(shù)據(jù)的接收狀態(tài)確定該下一跳節(jié)點是否丟失。
S34、若該下一跳節(jié)點丟失,且該下一跳節(jié)點為路由節(jié)點的子節(jié)點,則在路由節(jié)點的協(xié)議層生成路由子節(jié)點丟失信息并上報至路由節(jié)點的應(yīng)用層。S35、當(dāng)路由節(jié)點的應(yīng)用層接收到路由子節(jié)點丟失信息時,路由節(jié)點將路由子節(jié)點丟失信息上報至網(wǎng)關(guān)節(jié)點。S36、若下一跳節(jié)點丟失,且下一跳節(jié)點為路由節(jié)點的父節(jié)點,則在路由節(jié)點的協(xié)議層生成路由父節(jié)點丟失信息并上報至路由節(jié)點的應(yīng)用層。S37、當(dāng)路由節(jié)點的應(yīng)用層接收到路由父節(jié)點丟失信息時,路由節(jié)點開啟節(jié)點加入流程,選擇合適的節(jié)點為父節(jié)點重新加入網(wǎng)絡(luò)。在網(wǎng)絡(luò)中,網(wǎng)關(guān)節(jié)點只有子節(jié)點,其發(fā)送的待發(fā)送數(shù)據(jù)也只能是自己構(gòu)造的。與之不同的是,路由節(jié)點既有子節(jié)點也有父節(jié)點,其發(fā)送的待發(fā)送數(shù)據(jù)既可以是自己構(gòu)造的,也可以是從上一跳節(jié)點接收的。根據(jù)目的節(jié)點的不同,路由節(jié)點有可能將數(shù)據(jù)發(fā)送至父節(jié)點,也有可能發(fā)送至子節(jié)點,即路由節(jié)點的下一跳節(jié)點有可能是路由子節(jié)點,也有可能是路由父節(jié)點。由于后續(xù)的處理方式不同,因此,要對其進行判斷。具體的,如果該路由節(jié)點的下一跳節(jié)點丟失,則路由節(jié)點的ZigBee協(xié)議棧底層(即應(yīng)用層以下的協(xié)議層)可以獲知該下一跳節(jié)點并未接收到該待發(fā)送數(shù)據(jù),同時在該協(xié)議棧底層生成指示該下一跳節(jié)點丟失的丟失指示消息。本發(fā)明中當(dāng)在協(xié)議棧底層生成該丟失指示消息后,會將該丟失指示消息逐層上報,最終由網(wǎng)絡(luò)層將該丟失指示消息上報給應(yīng)用層的ZigBee設(shè)備對象(ZDO, Zigbee Device Obiect),以便ZigBee協(xié)議棧中應(yīng)用層的ZigBee設(shè)備對象獲取到該下一跳節(jié)點丟失的信息。本發(fā)明中為了能夠讓Zigbee協(xié)議棧中應(yīng)用層的應(yīng)用對象獲取到節(jié)點丟失信息,當(dāng)從ZigBee設(shè)備對象中獲取到丟失指示消息時,提取出該消息中包含的節(jié)點的網(wǎng)絡(luò)信息,并進一步將該節(jié)點的網(wǎng)絡(luò)信息作為節(jié)點丟失信息上報給應(yīng)用對象,進而使得應(yīng)用對象可以實時獲取到節(jié)點丟失息。需要說明的是,該丟失指示消息中包含的節(jié)點的網(wǎng)絡(luò)信息可以包括丟失節(jié)點的網(wǎng)絡(luò)地址,以及丟失節(jié)點與路由節(jié)點的通信關(guān)系,如,丟失節(jié)點為路由節(jié)點的子節(jié)點或者丟失節(jié)點為路由節(jié)點的父節(jié)點。當(dāng)應(yīng)用對象根據(jù)節(jié)點丟失信息發(fā)現(xiàn)丟失節(jié)點為路由子節(jié)點時,會將該節(jié)點丟失信息上報至網(wǎng)關(guān)節(jié)點。當(dāng)應(yīng)用對象根據(jù)節(jié)點丟失信息發(fā)現(xiàn)丟失節(jié)點為路由節(jié)點的父節(jié)點時,該應(yīng)用對象開啟節(jié)點加入流程,選擇合適的節(jié)點為父節(jié)點重新加入網(wǎng)絡(luò)。在本發(fā)明中,除網(wǎng)關(guān)節(jié)點和路由節(jié)點檢測節(jié)點變化生成節(jié)點變化信息外,還包括終端節(jié)點檢測節(jié)點變化生成節(jié)點變化信息的步驟。終端節(jié)點只有父節(jié)點,因此,終端節(jié)點根據(jù)對節(jié)點的檢測只會生成終端父節(jié)點變化信息。具體過程如圖5所示,包括S41、終端節(jié)點發(fā)送待發(fā)送數(shù)據(jù)至下一跳終端父節(jié)點。終端節(jié)點的待發(fā)送數(shù)據(jù)是自己構(gòu)造的。S42、終端節(jié)點根據(jù)待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷終端父節(jié)點是否丟失。S43、若終端父節(jié)點丟失,則生成終端父節(jié)點丟失信息。同上述方式類似,如果該終端節(jié)點的父節(jié)點丟失,則終端節(jié)點的ZigBee協(xié)議棧底層(即應(yīng)用層以下的協(xié)議層)可以獲知該終端父節(jié)點并未接收到該待發(fā)送數(shù)據(jù),同時在該協(xié)議棧底層生成指示該終端父節(jié)點丟失的丟失指示消息。本發(fā)明中當(dāng)在協(xié)議棧底層生成該丟失指示消息后,會將該丟失指示消息逐層上報,最終由網(wǎng)絡(luò)層將該丟失指示消息上報給應(yīng)用層的ZigBee設(shè)備對象(ZDO,Zigbee Device Obiect),以便ZigBee協(xié)議棧中應(yīng)用層的ZigBee設(shè)備對象獲取到該終端父節(jié)點丟失的信息。當(dāng)從ZigBee設(shè)備對象中獲取到丟失指示消息時,提取出該消息中包含的節(jié)點的網(wǎng)絡(luò)信息,并進一步將該節(jié)點的網(wǎng)絡(luò)信息作為節(jié)點丟失信息上報給應(yīng)用對象,進而使得應(yīng)用對象可以實時獲取到節(jié)點丟失信息。需要說明的是,該丟失指示消息中包含的節(jié)點的網(wǎng)絡(luò)信息可以包括丟失節(jié)點的網(wǎng)絡(luò)地址,以及丟失節(jié)點與終端節(jié)點的通信關(guān)系,此處為終端節(jié)點的父節(jié)點。S44、終端節(jié)點根據(jù)終端父節(jié)點丟失信息開啟孤點加入流程,選擇終端節(jié)點的父節(jié)點為父節(jié)點加入網(wǎng)絡(luò)。孤點加入流程即以該丟失的父節(jié)點為父節(jié)點,將其重新加入網(wǎng)絡(luò)。S45、若無法加入,則終端節(jié)點開啟節(jié)點加入流程,選擇其他合適的節(jié)點為父節(jié)點 加入網(wǎng)絡(luò)。在原父節(jié)點無法加入時,選擇其他合適的節(jié)點為終端節(jié)點的父節(jié)點加入網(wǎng)絡(luò)。本發(fā)明中,待發(fā)送數(shù)據(jù)可以為任意數(shù)據(jù),如可以為與協(xié)議棧相關(guān)的數(shù)據(jù),也可以是普通通信數(shù)據(jù)。上述過程中涉及發(fā)送待發(fā)送數(shù)據(jù)的節(jié)點判斷下一跳節(jié)點是否接收到待發(fā)送數(shù)據(jù)。其具體判斷方式有多中,其中一種方式為判斷ZigBee協(xié)議棧底層在指定時間內(nèi)是否接收到該下一跳節(jié)點返回的確認(rèn)接收到待發(fā)送數(shù)據(jù)的消息,如果是,則該下一跳節(jié)點處于網(wǎng)絡(luò)中;如果否,則下一跳節(jié)點丟失。也就是說,如果該下一跳節(jié)點接收到待發(fā)送數(shù)據(jù)后,會向其上一跳節(jié)點回復(fù)一個確認(rèn)消息,以表示自己接收到待發(fā)送數(shù)據(jù)。當(dāng)發(fā)送待發(fā)送數(shù)據(jù)的節(jié)點的協(xié)議層在指定時間內(nèi)沒有檢測或接收到該下一跳節(jié)點返回的確認(rèn)消息,則在協(xié)議層中生成指示下一跳節(jié)點丟失的丟失指示消息。需要明確的是,有時候下一跳節(jié)點只是暫時的失去聯(lián)系,而非真正的丟失,尤其是下一跳子節(jié)點,可以通過孤立加入申請,很快的加入網(wǎng)絡(luò),恢復(fù)正常的運行狀態(tài)。因此,在發(fā)現(xiàn)下一跳子節(jié)點失去聯(lián)系時,可定時一段時間,再作判斷。比如定時一段時間比如三秒后,下一跳子節(jié)點仍舊失去聯(lián)系,則確定下一跳子節(jié)點丟失,生成下一跳子節(jié)點丟失信息。關(guān)于上述網(wǎng)關(guān)節(jié)點、路由節(jié)點以及終端節(jié)點檢測節(jié)點的變化生成相關(guān)節(jié)點丟失信息的具體過程可參見申請?zhí)枮?01110391507.0,發(fā)明名稱為“基于ZigBee協(xié)議獲取節(jié)點丟失信息的方法和系統(tǒng)”以及申請?zhí)枮?01110391517. O,發(fā)明名稱為“基于ZigBee協(xié)議獲取節(jié)點丟失信息的方法和系統(tǒng)”的專利申請。此處不再詳述。接下來對網(wǎng)關(guān)節(jié)點更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的過程進行描述。通過上述過程可知,路由節(jié)點會將自身生成的路由子節(jié)點丟失信息以及路由子節(jié)點加入信息上報至網(wǎng)關(guān)節(jié)點,因此,在網(wǎng)關(guān)節(jié)點處就匯集了路由子節(jié)點的變化信息和網(wǎng)關(guān)子節(jié)點的變化信息。網(wǎng)關(guān)節(jié)點根據(jù)這些變化信息更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表。其具體過程參見圖6 S51、判斷節(jié)點的變化信息為節(jié)點的加入信息還是節(jié)點的丟失信息。若為節(jié)點的加入信息,轉(zhuǎn)入步驟S52 ;若為節(jié)點的丟失信息, 轉(zhuǎn)入步驟S55。S52、網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷節(jié)點是否存在于網(wǎng)絡(luò)中。若存在于所述網(wǎng)絡(luò)中,轉(zhuǎn)入步驟S53。若沒有存在于所述網(wǎng)絡(luò)中,則轉(zhuǎn)入步驟S54。S53、網(wǎng)關(guān)節(jié)點更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲的該節(jié)點的相應(yīng)信息。S54、網(wǎng)關(guān)節(jié)點在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為該節(jié)點分配存儲空間,并增加對應(yīng)的父子信息。S55、網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷該節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中。若存在于所述網(wǎng)絡(luò)中,轉(zhuǎn)入步驟S56,若否,轉(zhuǎn)入步驟S57。S56、網(wǎng)關(guān)節(jié)點在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除該節(jié)點的信息。S57、網(wǎng)關(guān)節(jié)點提示出錯??紤]到網(wǎng)關(guān)資源有限,為節(jié)省存儲空間,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表可以選用分級動態(tài)鏈表的形式,具體如圖7所示。本發(fā)明優(yōu)選實施例中,可同時在路由節(jié)點處維護路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢該路由節(jié)點處的拓?fù)浣Y(jié)構(gòu)信息。具體過程如下判斷路由子節(jié)點的變化信息為節(jié)點加入信息還是節(jié)點丟失信息。若為節(jié)點加入信息,則路由節(jié)點根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷該路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中。如果存在于所述網(wǎng)絡(luò)中,則路由節(jié)點更新所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中存儲的該路由子節(jié)點的信息;如果沒有存在于所述網(wǎng)絡(luò)中,則路由節(jié)點在路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中為路由子節(jié)點分配存儲空間,并增加對應(yīng)的父子信息。當(dāng)路由子節(jié)點的變化信息為丟失信息時,路由節(jié)點根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷路由子節(jié)點是否已經(jīng)存在于網(wǎng)絡(luò)中。若存在于所述網(wǎng)絡(luò)中,則路由節(jié)點在路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中刪除該路由子節(jié)點的信息;若否,則所述路由節(jié)點提示出錯。圖8為本發(fā)明中網(wǎng)絡(luò)各節(jié)點信息的維護示意圖。其中,終端節(jié)點生成其父節(jié)點丟失信息,并根據(jù)其父節(jié)點丟失信息開啟孤點加入流程,將父節(jié)點重新加入所述網(wǎng)絡(luò)。其具體加入過程參見之前實施例,此處不再詳述。路由節(jié)點生成路由子節(jié)點加入信息、路由子節(jié)點丟失信息和路由父節(jié)點丟失信息。路由節(jié)點根據(jù)路由父節(jié)點丟失信息開啟節(jié)點加入流程,選擇一個合適的節(jié)點作為父節(jié)點,以此重新加入所述網(wǎng)絡(luò);并根據(jù)路由子節(jié)點加入信息和路由子節(jié)點丟失信息更新路由節(jié)點網(wǎng)絡(luò)結(jié)構(gòu)信息表,同時將路由子節(jié)點加入信息和路由子節(jié)點丟失信息上報至網(wǎng)關(guān)節(jié)點。網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點加入信息、網(wǎng)關(guān)子節(jié)點丟失信息,接收路由節(jié)點上報的路由子節(jié)點加入和路由子節(jié)點丟失信息,并據(jù)此更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表。本發(fā)明實施例4提供了一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護系統(tǒng),參見圖9,所述系統(tǒng)包括網(wǎng)關(guān)節(jié)點1,路由節(jié)點2以及終端節(jié)點3。其中,網(wǎng)關(guān)節(jié)點I包括網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單元11,用于預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表。網(wǎng)關(guān)子節(jié)點變化信息生成單元12,用于在檢測到網(wǎng)關(guān)子節(jié)點的變化時生成網(wǎng)關(guān)子節(jié)點變化信息;所述網(wǎng)關(guān)子節(jié)點包 括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點存在父子關(guān)系的路由節(jié)點和/或終端節(jié)點。網(wǎng)關(guān)更新單元13,用于根據(jù)網(wǎng)絡(luò)中節(jié)點的變信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢;所述網(wǎng)絡(luò)中節(jié)點包括所述網(wǎng)關(guān)子節(jié)點和所述路由子節(jié)點。路由節(jié)點2包括路由子節(jié)點變化信息生成單元21,用于在檢測到路由子節(jié)點的變化時生成路由子節(jié)點變化信息并上報至所述網(wǎng)關(guān)節(jié)點。路由節(jié)點信息返回單元22,用于根據(jù)接收到的廣播節(jié)點信息收集命令返回自身的節(jié)點信息至所述網(wǎng)關(guān)節(jié)點。終端節(jié)點3包括終端節(jié)點信息返回單元31,用于根據(jù)接收到的廣播節(jié)點信息收集命令返回自身的節(jié)點信息至所述網(wǎng)關(guān)節(jié)點。其中,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單元11包括廣播單元111,用于在所述網(wǎng)絡(luò)中廣播節(jié)點信息收集命令。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立子單元112,用于根據(jù)路由節(jié)點信息返回單元22和終端節(jié)點信息返回單元31返回的節(jié)點信息進行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲。在網(wǎng)絡(luò)中節(jié)點的變化分節(jié)點的加入和節(jié)點丟失兩種情況。對應(yīng)的,網(wǎng)關(guān)子節(jié)點變化信息生成單元,包括網(wǎng)關(guān)子節(jié)點加入信息生成單元和網(wǎng)關(guān)子節(jié)點丟失信息生成單元。路由子節(jié)點變化信息生成單元,包括路由子節(jié)點加入信息生成單元和路由子節(jié)點丟失信息生成單元。其中,網(wǎng)關(guān)子節(jié)點加入信息生成單元,用于在檢測到網(wǎng)關(guān)子節(jié)點的變化時,生成網(wǎng)關(guān)子節(jié)點加入信息,其具體用于當(dāng)一節(jié)點以網(wǎng)關(guān)節(jié)點為父節(jié)點加入網(wǎng)絡(luò)時,生成網(wǎng)關(guān)子節(jié)點加入信息。網(wǎng)關(guān)子節(jié)點丟失信息生成單元,用于在檢測到網(wǎng)關(guān)子節(jié)點的變化,生成網(wǎng)關(guān)子節(jié)點丟失信息,包括第一下一跳節(jié)點確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳網(wǎng)關(guān)子節(jié)點。第一數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳網(wǎng)關(guān)子節(jié)點。網(wǎng)關(guān)子節(jié)點丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述下一跳網(wǎng)關(guān)子節(jié)點是否丟失。網(wǎng)關(guān)子節(jié)點丟失信息生成子單元,用于當(dāng)所述網(wǎng)關(guān)子節(jié)點丟失時,生成網(wǎng)關(guān)子節(jié)點丟失信息。所述路由子節(jié)點加入信息生成單元,用于在檢測到路由子節(jié)點的變化時,生成路由子節(jié)點加入信息;具體包括
路由子節(jié)點加入信息生成子單元,用于當(dāng)一節(jié)點以所述路由節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)時,生成路由子節(jié)點加入信息;路由子節(jié)點丟失信息生成單元,具體用于在檢測到路由子節(jié)點的變化時,生成路由子節(jié)點丟失信息;包括第二下一跳節(jié)點確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳節(jié)點;第二數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳節(jié)點;路由子節(jié)點丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)確定所述路由節(jié)點的下一跳節(jié)點是否丟失;協(xié)議層上報單元,用于在所述下一跳路由子節(jié)點丟失,且所述下一跳路由節(jié)點為 所述路由節(jié)點的子節(jié)點時,在所述路由節(jié)點的協(xié)議層生成路由子節(jié)點丟失信息并上報至所述路由節(jié)點的應(yīng)用層;應(yīng)用層上報單元,用于在所述路由節(jié)點的應(yīng)用層接收到所述路由子節(jié)點丟失信息時,將所述路由子節(jié)點丟失信息上報至所述網(wǎng)關(guān)節(jié)點;協(xié)議層上報單元,還用于在所述下一跳節(jié)點丟失,且所述下一跳節(jié)點為路由節(jié)點的父節(jié)點時,在所述路由節(jié)點的協(xié)議層生成路由父節(jié)點丟失信息并上報至所述路由節(jié)點的應(yīng)用層;應(yīng)用層上報單元,還用于當(dāng)所述路由節(jié)點的應(yīng)用層接收到所述路由父節(jié)點丟失信息時,開啟節(jié)點加入流程,選擇合適的節(jié)點為父節(jié)點重新加入所述網(wǎng)絡(luò)。在本發(fā)明中,終端節(jié)點也可檢測其父節(jié)點的變化,生成父節(jié)點變化信息。此時,終端節(jié)點還包括終端父節(jié)點確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)目的節(jié)點確定下一跳終端父節(jié)點;終端數(shù)據(jù)發(fā)送單元,用于發(fā)送所述待發(fā)送數(shù)據(jù)至所述下一跳終端父節(jié)點;終端父節(jié)點丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述終端父節(jié)點是否丟失;終端父節(jié)點丟失信息生成單元,用于在所述終端父節(jié)點丟失時,生成終端父節(jié)點丟失f目息;孤點加入單元,用于根據(jù)所述終端父節(jié)點丟失信息開啟孤點加入流程,選擇所述終端節(jié)點的父節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò);節(jié)點加入單元,用于在所述父節(jié)點無法通過孤點加入流程加入時,開啟節(jié)點加入流程,選擇其他合適的節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)。通過上述介紹可知,路由子節(jié)點丟失信息以及路由子節(jié)點加入信息會被上報至網(wǎng)關(guān)節(jié)點,因此,在網(wǎng)關(guān)節(jié)點處就匯集了路由子節(jié)點的變化信息和網(wǎng)關(guān)子節(jié)點的變化信息。網(wǎng)關(guān)更新單元根據(jù)這些變化信息更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表。網(wǎng)關(guān)更新單元具體包括網(wǎng)關(guān)更新單元包括網(wǎng)關(guān)加入信息判斷單元,用于當(dāng)所述節(jié)點的變化信息為節(jié)點的加入信息時,根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點是否存在于所述網(wǎng)絡(luò)中;網(wǎng)關(guān)加入信息更新子單元,用于在所述節(jié)點存在于所述網(wǎng)絡(luò)中時,更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲的所述節(jié)點的相應(yīng)信息;網(wǎng)關(guān)分配單元,用于在所述節(jié)點未存在于所述網(wǎng)絡(luò)中時,在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為所述節(jié)點分配存儲空間,并增加對應(yīng)的父子信息;網(wǎng)關(guān)丟失信息判斷單元,用于當(dāng)所述節(jié)點的變化信息為節(jié)點的丟失信息時,根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中;網(wǎng)關(guān)丟失信息刪除單元,用于在若所述節(jié)點存在于所述網(wǎng)絡(luò)中時,在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述節(jié)點的信息;網(wǎng)關(guān)提示單元,用于在所述節(jié)點未存在于所述網(wǎng)絡(luò)中時,提示出錯。在本發(fā)明的優(yōu)選實施例中,可同時在路由節(jié)點處維護路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢該路由節(jié)點處的拓?fù)浣Y(jié)構(gòu)信息。此時,路由節(jié)點還包括
路由更新單元,用于根據(jù)所述路由子節(jié)點的變化信息更新存儲于所述路由節(jié)點的路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢所述路由節(jié)點處的拓?fù)浣Y(jié)構(gòu)信息;所述路由更新單元包括路由加入信息判斷單元,用于當(dāng)所述路由子節(jié)點的變化信息為加入信息時,根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中;路由加入信息更新子單元,用于在所述路由子節(jié)點已經(jīng)存在于所述網(wǎng)絡(luò)中時,更新在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中所存儲的所述路由子節(jié)點的信息;路由分配單元,用于在所述路由子節(jié)點未存在于所述網(wǎng)絡(luò)中時,在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中為所述路由子節(jié)點分配存儲空間,并增加對應(yīng)的父子信息;路由丟失信息判斷單元,用于當(dāng)所述路由子節(jié)點的變化信息為丟失信息時,根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中;路由丟失信息刪除單元,用于在所述路由子節(jié)點已經(jīng)存在于所述網(wǎng)絡(luò)中時,在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中刪除所述路由子節(jié)點的信息;路由提示單元,用于在所述路由子節(jié)點未存在于所述網(wǎng)絡(luò)中時提示出錯。值得注意的是,本發(fā)明系統(tǒng)與本發(fā)明的方法相對應(yīng),因此對系統(tǒng)不再詳述,相關(guān)部分參見方法實施例即可。以上對本發(fā)明所提供的一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護方法及系統(tǒng),進行了介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護方法,其特征在于,所述方法包括 網(wǎng)關(guān)節(jié)點預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟; 所述網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點的變化,所述網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點變化信息的步驟,所述網(wǎng)關(guān)子節(jié)點包括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點存在父子關(guān)系的路由節(jié)點和/或終端節(jié)點;網(wǎng)絡(luò)中路由節(jié)點檢測到路由子節(jié)點的變化,所述路由節(jié)點生成路由子節(jié)點變化信息并上報至所述網(wǎng)關(guān)節(jié)點的步驟; 所述網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)中節(jié)點的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢的步驟,所述網(wǎng)絡(luò)中節(jié)點包括所述網(wǎng)關(guān)子節(jié)點和所述路由子節(jié)點; 其中,所述網(wǎng)關(guān)節(jié)點預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟包括; 所述網(wǎng)關(guān)節(jié)點在所述網(wǎng)絡(luò)中廣播節(jié)點信息收集命令; 網(wǎng)絡(luò)中的節(jié)點根據(jù)收到的所述廣播節(jié)點信息收集命令返回自身的節(jié)點信息至所述網(wǎng)關(guān)節(jié)點; 所述網(wǎng)關(guān)節(jié)點將所述網(wǎng)絡(luò)中的節(jié)點返回的所述節(jié)點信息進行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于, 所述網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點的變化,生成網(wǎng)關(guān)子節(jié)點變化信息,其中,所述網(wǎng)關(guān)子節(jié)點變化信息包括網(wǎng)關(guān)子節(jié)點加入信息和網(wǎng)關(guān)子節(jié)點丟失信息; 和/或; 所述網(wǎng)絡(luò)中路由節(jié)點檢測到路由子節(jié)點的變化,生成路由子節(jié)點變化信息并上報至所述網(wǎng)關(guān)節(jié)點;其中,所述路由子節(jié)點變化信息包括路由子節(jié)點加入信息和路由子節(jié)點丟失信息; 所述網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點的變化,生成網(wǎng)關(guān)子節(jié)點加入信息,包括 當(dāng)一節(jié)點以所述網(wǎng)關(guān)節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)時,所述網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點加入信息; 所述網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點的變化,生成網(wǎng)關(guān)子節(jié)點丟失信息,包括 所述網(wǎng)關(guān)節(jié)點根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳網(wǎng)關(guān)子節(jié)點; 所述網(wǎng)關(guān)節(jié)點將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳網(wǎng)關(guān)子節(jié)點; 所述網(wǎng)關(guān)節(jié)點根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述下一跳網(wǎng)關(guān)子節(jié)點是否丟失; 當(dāng)所述網(wǎng)關(guān)子節(jié)點丟失時,則所述網(wǎng)關(guān)節(jié)點生成網(wǎng)關(guān)子節(jié)點丟失信息; 所述路由節(jié)點檢測到路由子節(jié)點的變化,生成路由子節(jié)點加入信息,包括 當(dāng)一節(jié)點以所述路由節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)時,所述路由節(jié)點生成路由子節(jié)點加入信息; 所述路由節(jié)點上報所述路由子節(jié)點加入信息至所述網(wǎng)關(guān)節(jié)點; 所述路由節(jié)點檢測到路由子節(jié)點的變化,生成路由子節(jié)點丟失信息,包括 所述路由節(jié)點根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳節(jié)點; 所述路由節(jié)點將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳節(jié)點; 所述路由節(jié)點根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)確定所述下一跳節(jié)點是否丟失;若所述下一跳節(jié)點丟失,且所述下一跳節(jié)點為所述路由節(jié)點的子節(jié)點,則在所述路由節(jié)點的協(xié)議層生成路由子節(jié)點丟失信息并上報至所述路由節(jié)點的應(yīng)用層; 當(dāng)所述路由節(jié)點的應(yīng)用層接收到所述路由子節(jié)點丟失信息時,所述路由節(jié)點將所述路由子節(jié)點丟失信息上報至所述網(wǎng)關(guān)節(jié)點; 若所述下一跳節(jié)點丟失,且所述下一跳節(jié)點為路由節(jié)點的父節(jié)點,則在所述路由節(jié)點的協(xié)議層生成路由父節(jié)點丟失信息并上報至所述路由節(jié)點的應(yīng)用層; 當(dāng)所述路由節(jié)點的應(yīng)用層接收到所述路由父節(jié)點丟失信息時,所述路由節(jié)點開啟節(jié)點加入流程,選擇合適的節(jié)點為父節(jié)點重新加入所述網(wǎng)絡(luò)。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)中節(jié)點的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,包括 當(dāng)所述節(jié)點的變化信息為節(jié)點的加入信息時,所述網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點是否存在于所述網(wǎng)絡(luò)中; 若所述節(jié)點存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲的所述節(jié)點的相應(yīng)信息; 若所述節(jié)點未存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為所述節(jié)點分配存儲空間,并增加對應(yīng)的父子信息; 當(dāng)所述節(jié)點的變化信息為節(jié)點的丟失信息時,所述網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 若所述節(jié)點存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述節(jié)點的信息; 若所述節(jié)點未存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點提示出錯。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括 所述路由節(jié)點根據(jù)所述路由子節(jié)點的變化信息更新存儲于所述路由節(jié)點的路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢所述路由節(jié)點處的拓?fù)浣Y(jié)構(gòu)信息,具體包括 當(dāng)所述路由子節(jié)點的變化信息為加入信息時,所述路由節(jié)點根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 若是,則更新在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中所存儲的所述路由子節(jié)點的信息;若否,則在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中為所述路由子節(jié)點分配存儲空間,并增加對應(yīng)的父子信息; 當(dāng)所述路由子節(jié)點的變化信息為丟失信息時,所述路由節(jié)點根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 若是,則所述路由節(jié)點在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中刪除所述路由子節(jié)點的信息; 若否,則所述路由節(jié)點提示出錯。
5.根據(jù)權(quán)利要求I至4任一項所述的方法,其特征在于,所述方法還包括終端節(jié)點根據(jù)待發(fā)送數(shù)據(jù)目的節(jié)點確定下一跳終端父節(jié)點; 所述終端節(jié)點發(fā)送所述待發(fā)送數(shù)據(jù)至所述下一跳終端父節(jié)點; 所述終端節(jié)點根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述終端父節(jié)點是否丟失; 若所述終端父節(jié)點丟失,則生成終端父節(jié)點丟失信息;所述終端節(jié)點根據(jù)所述終端父節(jié)點丟失信息開啟孤點加入流程,選擇所述終端節(jié)點的父節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò); 若無法加入,則所述終端節(jié)點開啟節(jié)點加入流程,選擇其他合適的節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)。
6.一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護系統(tǒng),其特征在于,所述系統(tǒng)包括網(wǎng)關(guān)節(jié)點、路由節(jié)點和終端節(jié)點; 所述網(wǎng)關(guān)節(jié)點包括 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單元,用于預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表; 網(wǎng)關(guān)子節(jié)點變化信息生成單元,用于在檢測到網(wǎng)關(guān)子節(jié)點的變化時生成網(wǎng)關(guān)子節(jié)點變化信息;所述網(wǎng)關(guān)子節(jié)點包括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點存在父子關(guān)系的路由節(jié)點和/或終端節(jié)占. 網(wǎng)關(guān)更新單元,用于根據(jù)網(wǎng)絡(luò)中節(jié)點的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢;所述網(wǎng)絡(luò)中節(jié)點包括所述網(wǎng)關(guān)子節(jié)點和所述路由子節(jié)點; 所述路由節(jié)點包括 路由子節(jié)點變化信息生成單元,用于在檢測到路由子節(jié)點的變化時生成路由子節(jié)點變化信息并上報至所述網(wǎng)關(guān)節(jié)點; 路由節(jié)點信息返回單元,用于根據(jù)接收到的廣播節(jié)點信息收集命令返回自身的節(jié)點信息至所述網(wǎng)關(guān)節(jié)點; 所述終端節(jié)點包括 終端節(jié)點信息返回單元,用于根據(jù)接收到的廣播節(jié)點信息收集命令返回自身的節(jié)點信息至所述網(wǎng)關(guān)節(jié)點; 所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單元包括 廣播單元,用于在所述網(wǎng)絡(luò)中廣播節(jié)點信息收集命令; 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立子單元,用于根據(jù)路由節(jié)點信息返回單元和終端節(jié)點信息返回單元返回的節(jié)點信息進行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于, 所述網(wǎng)關(guān)子節(jié)點變化信息生成單元,包括網(wǎng)關(guān)子節(jié)點加入信息生成單元和網(wǎng)關(guān)子節(jié)點丟失彳目息生成單兀; 和/或; 所述路由子節(jié)點變化信息生成單元,包括路由子節(jié)點加入信息生成單元和路由子節(jié)點丟失彳目息生成單兀; 所述網(wǎng)關(guān)子節(jié)點加入信息生成單元,用于在檢測到網(wǎng)關(guān)子節(jié)點的變化時,生成網(wǎng)關(guān)子節(jié)點加入信息; 所述網(wǎng)關(guān)子節(jié)點加入信息生成單元,具體用于當(dāng)一節(jié)點以所述網(wǎng)關(guān)節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)時,生成網(wǎng)關(guān)子節(jié)點加入信息; 所述網(wǎng)關(guān)子節(jié)點丟失信息生成單元,用于在檢測到網(wǎng)關(guān)子節(jié)點的變化,生成網(wǎng)關(guān)子節(jié)點丟失信息,包括 第一下一跳節(jié)點確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳網(wǎng)關(guān)子節(jié)點; 第一數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳網(wǎng)關(guān)子節(jié)點;網(wǎng)關(guān)子節(jié)點丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述下一跳網(wǎng)關(guān)子節(jié)點是否丟失; 網(wǎng)關(guān)子節(jié)點丟失信息生成子單元,用于當(dāng)所述網(wǎng)關(guān)子節(jié)點丟失時,生成網(wǎng)關(guān)子節(jié)點丟失f目息; 所述路由子節(jié)點加入信息生成單元,用于在檢測到路由子節(jié)點的變化時,生成路由子節(jié)點加入信息; 所述路由子節(jié)點加入信息生成單元,包括 路由子節(jié)點加入信息生成子單元,用于當(dāng)一節(jié)點以所述路由節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)時,生成路由子節(jié)點加入信息; 所述路由子節(jié)點丟失信息生成單元,具體用于在檢測到路由子節(jié)點的變化時,生成路由子節(jié)點丟失信息;包括 第二下一跳節(jié)點確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點確定下一跳節(jié)點; 第二數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳節(jié)點; 路由子節(jié)點丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)確定所述路由節(jié)點的下一跳節(jié)點是否丟失; 協(xié)議層上報單元,用于在所述下一跳路由子節(jié)點丟失,且所述下一跳路由節(jié)點為所述路由節(jié)點的子節(jié)點時,在所述路由節(jié)點的協(xié)議層生成路由子節(jié)點丟失信息并上報至所述路由節(jié)點的應(yīng)用層; 應(yīng)用層上報單元,用于在所述路由節(jié)點的應(yīng)用層接收到所述路由子節(jié)點丟失信息時,將所述路由子節(jié)點丟失信息上報至所述網(wǎng)關(guān)節(jié)點; 所述協(xié)議層上報單元,還用于在所述下一跳節(jié)點丟失,且所述下一跳節(jié)點為路由節(jié)點的父節(jié)點時,在所述路由節(jié)點的協(xié)議層生成路由父節(jié)點丟失信息并上報至所述路由節(jié)點的應(yīng)用層; 應(yīng)用層上報單元,還用于當(dāng)所述路由節(jié)點的應(yīng)用層接收到所述路由父節(jié)點丟失信息時,開啟節(jié)點加入流程,選擇合適的節(jié)點為父節(jié)點重新加入所述網(wǎng)絡(luò)。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述網(wǎng)關(guān)更新單元包括 網(wǎng)關(guān)加入信息判斷單元,用于當(dāng)所述節(jié)點的變化信息為節(jié)點的加入信息時,根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點是否存在于所述網(wǎng)絡(luò)中; 網(wǎng)關(guān)加入信息更新子單元,用于在所述節(jié)點存在于所述網(wǎng)絡(luò)中時,更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲的所述節(jié)點的相應(yīng)信息; 網(wǎng)關(guān)分配單元,用于在所述節(jié)點未存在于所述網(wǎng)絡(luò)中時,在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為所述節(jié)點分配存儲空間,并增加對應(yīng)的父子信息; 網(wǎng)關(guān)丟失信息判斷單元,用于當(dāng)所述節(jié)點的變化信息為節(jié)點的丟失信息時,根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 網(wǎng)關(guān)丟失信息刪除單元,用于在若所述節(jié)點存在于所述網(wǎng)絡(luò)中時,在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述節(jié)點的信息; 網(wǎng)關(guān)提示單元,用于在所述節(jié)點未存在于所述網(wǎng)絡(luò)中時,提示出錯。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述路由節(jié)點還包括 路由更新單元,用于根據(jù)所述路由子節(jié)點的變化信息更新存儲于所述路由節(jié)點的路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢所述路由節(jié)點處的拓?fù)浣Y(jié)構(gòu)信息; 所述路由更新單元包括 路由加入信息判斷單元,用于當(dāng)所述路由子節(jié)點的變化信息為加入信息時,根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 路由加入信息更新子單元,用于在所述路由子節(jié)點已經(jīng)存在于所述網(wǎng)絡(luò)中時,更新在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中所存儲的所述路由子節(jié)點的信息; 路由分配單元,用于在所述路由子節(jié)點未存在于所述網(wǎng)絡(luò)中時,在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中為所述路由子節(jié)點分配存儲空間,并增加對應(yīng)的父子信息; 路由丟失信息判斷單元,用于當(dāng)所述路由子節(jié)點的變化信息為丟失信息時,根據(jù)路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 路由丟失信息刪除單元,用于在所述路由子節(jié)點已經(jīng)存在于所述網(wǎng)絡(luò)中時,在所述路由節(jié)點拓?fù)浣Y(jié)構(gòu)信息表中刪除所述路由子節(jié)點的信息; 路由提示單元,用于在所述路由子節(jié)點未存在于所述網(wǎng)絡(luò)中時提示出錯。
10.根據(jù)權(quán)利要求6-9任一項所述的系統(tǒng),其特征在于,所述終端節(jié)點還包括 終端父節(jié)點確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)目的節(jié)點確定下一跳終端父節(jié)點; 終端數(shù)據(jù)發(fā)送單元,用于發(fā)送所述待發(fā)送數(shù)據(jù)至所述下一跳終端父節(jié)點; 終端父節(jié)點丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述終端父節(jié)點是否丟失; 終端父節(jié)點丟失信息生成單元,用于在所述終端父節(jié)點丟失時,生成終端父節(jié)點丟失信息; 孤點加入單元,用于根據(jù)所述終端父節(jié)點丟失信息開啟孤點加入流程,選擇所述終端節(jié)點的父節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò); 節(jié)點加入單元,用于在所述父節(jié)點無法通過孤點加入流程加入時,開啟節(jié)點加入流程,選擇其他合適的節(jié)點為父節(jié)點加入所述網(wǎng)絡(luò)。
全文摘要
本發(fā)明提供了一種基于Zigbee協(xié)議的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護方法及系統(tǒng),其中,所述方法包括網(wǎng)關(guān)節(jié)點預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟;所述網(wǎng)關(guān)節(jié)點檢測到網(wǎng)關(guān)子節(jié)點的變化并生成網(wǎng)關(guān)子節(jié)點變化信息的步驟;網(wǎng)絡(luò)中路由節(jié)點檢測到路由子節(jié)點的變化并生成路由子節(jié)點變化信息并上報至網(wǎng)關(guān)節(jié)點的步驟;所述網(wǎng)關(guān)節(jié)點根據(jù)網(wǎng)關(guān)子節(jié)點和路由子節(jié)點的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶查詢的步驟。通過本發(fā)明的方法,實現(xiàn)了在網(wǎng)關(guān)節(jié)點處存儲并維護有網(wǎng)絡(luò)中的所有節(jié)點的信息,解決了現(xiàn)有技術(shù)中不能在網(wǎng)關(guān)節(jié)點獲知網(wǎng)絡(luò)中的網(wǎng)絡(luò)結(jié)構(gòu)信息的問題。
文檔編號H04W84/18GK102970702SQ20121051034
公開日2013年3月13日 申請日期2012年12月3日 優(yōu)先權(quán)日2012年12月3日
發(fā)明者陳嵐, 龔關(guān)飛, 李瑩, 俞雪婷 申請人:中國科學(xué)院微電子研究所