多跳自組織可休眠路由算法
【專利摘要】本發(fā)明公開(kāi)了適用于煤礦井下采空區(qū)等區(qū)域使用的多跳自組織可休眠路由算法,是一種能量消耗較少、負(fù)載較為均衡的無(wú)線傳感器網(wǎng)絡(luò)的同步路由算法,整個(gè)無(wú)線傳感器網(wǎng)絡(luò)是由協(xié)調(diào)器節(jié)點(diǎn)發(fā)起和建立,協(xié)調(diào)器發(fā)送“組網(wǎng)消息”,其它節(jié)點(diǎn)收到“組網(wǎng)消息”后,將“組網(wǎng)消息”進(jìn)行轉(zhuǎn)發(fā),并將發(fā)送“組網(wǎng)消息”的源節(jié)點(diǎn)作為該節(jié)點(diǎn)的上行節(jié)點(diǎn),上傳自身數(shù)據(jù),對(duì)于其它節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù),通過(guò)該節(jié)點(diǎn)的上行節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),所有信息最終匯聚于協(xié)調(diào)器節(jié)點(diǎn),通過(guò)“組網(wǎng)消息”的下行轉(zhuǎn)發(fā)和數(shù)據(jù)的上傳,達(dá)到組網(wǎng)和數(shù)據(jù)上傳。組網(wǎng)過(guò)程實(shí)際上是一次最新路由表生成過(guò)程,所組網(wǎng)絡(luò)具有很好的環(huán)境適應(yīng)性、抗毀性和靈活性,適用于通信環(huán)境變化劇烈場(chǎng)景下無(wú)線傳感器網(wǎng)絡(luò)的組網(wǎng)。
【專利說(shuō)明】多跳自組織可休眠路由算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及無(wú)線傳感器網(wǎng)絡(luò)的路由算法,尤其是低能耗的多跳自組織可休眠路由 算法。
【背景技術(shù)】
[0002] 傳統(tǒng)的無(wú)線傳感器網(wǎng)絡(luò)的路由算法中,通常將節(jié)點(diǎn)的類型分為三類,第一類為 Sink節(jié)點(diǎn),即協(xié)調(diào)器節(jié)點(diǎn),Sink節(jié)點(diǎn)的作用是負(fù)責(zé)整個(gè)網(wǎng)絡(luò)的建立、傳感數(shù)據(jù)的匯聚,路由 計(jì)算和控制;第二類為路由節(jié)點(diǎn),路由節(jié)點(diǎn)既能采集數(shù)據(jù)又能起到路由的作用,需要長(zhǎng)時(shí)間 的工作來(lái)以保持網(wǎng)絡(luò)暢通,這類節(jié)點(diǎn)在傳感器網(wǎng)絡(luò)中是不可以休眠的;第三類為終端節(jié)點(diǎn), 這類節(jié)點(diǎn)的功能只有數(shù)據(jù)采集和數(shù)據(jù)上傳的功能,不具備路由功能,該類節(jié)點(diǎn)可以休眠。顯 然,在經(jīng)典無(wú)線傳感器網(wǎng)絡(luò)路由算法下,路由節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)都需要長(zhǎng)時(shí)間的保持工作 狀態(tài),不可休眠。對(duì)于煤礦來(lái)說(shuō),井下環(huán)境復(fù)雜,而需要部署傳感器節(jié)點(diǎn)的很多區(qū)域無(wú)法長(zhǎng) 期供電,例如煤礦采空區(qū)中部署傳感器網(wǎng)絡(luò)節(jié)點(diǎn),由于采空區(qū)的塌落,只能采用電池進(jìn)行一 次性供電。在采空區(qū)監(jiān)測(cè)傳感器網(wǎng)絡(luò)中,為了保證在一定能量供應(yīng)下,延長(zhǎng)網(wǎng)絡(luò)的工作時(shí) 間,傳感器節(jié)點(diǎn)需要休眠。顯然,傳統(tǒng)的無(wú)線傳感器網(wǎng)絡(luò)的路由算法無(wú)法滿足煤礦實(shí)際需 求。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的在于:提出一種適用于煤礦井下采空區(qū)等區(qū)域使用的多跳自組織可 休眠路由算法,該算法將路由節(jié)點(diǎn)和終端節(jié)點(diǎn)的特性結(jié)合在一起,既保證其數(shù)據(jù)傳輸和轉(zhuǎn) 發(fā)功能的可靠性,又能使節(jié)點(diǎn)在不啟用的時(shí)候能夠休眠,減小能量的開(kāi)銷,解決傳統(tǒng)無(wú)線傳 感器網(wǎng)絡(luò)路由節(jié)點(diǎn)功耗過(guò)高、無(wú)法休眠問(wèn)題,滿足長(zhǎng)周期低通信量的數(shù)據(jù)傳輸要求。
[0004] 為達(dá)到上述發(fā)明目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:一種多跳自組織可休眠 路由算法,其特征是該路由算法的整個(gè)通信過(guò)程由以下階段組成:(1)協(xié)調(diào)器節(jié)點(diǎn)向路由 節(jié)點(diǎn)發(fā)起組網(wǎng)命令階段;(2)路由節(jié)點(diǎn)組網(wǎng)階段;(3)數(shù)據(jù)上行和下行傳輸階段;(3)網(wǎng)絡(luò) 休眠階段。
[0005] 進(jìn)一步的,所述路由節(jié)點(diǎn)組網(wǎng)階段包括以下的具體步驟: 步驟1-1 :每一個(gè)通信周期開(kāi)始時(shí),由網(wǎng)絡(luò)中的協(xié)調(diào)器節(jié)點(diǎn)廣播一條"組網(wǎng)消息",消息 內(nèi)容包含自身的地址信息,自身的能量強(qiáng)度值和信號(hào)強(qiáng)度值; 步驟1-2 :網(wǎng)絡(luò)中路由節(jié)點(diǎn)在一個(gè)通信周期內(nèi)第一次接收到"組網(wǎng)消息"時(shí),立即啟動(dòng) 一個(gè)本地組網(wǎng)定時(shí)器,該組網(wǎng)定時(shí)器用于限制組網(wǎng)階段的最大時(shí)間;當(dāng)該節(jié)點(diǎn)第一次接收 至IJ"組網(wǎng)消息"時(shí),則開(kāi)啟該定時(shí)器,并倒數(shù)計(jì)時(shí),當(dāng)?shù)箶?shù)計(jì)時(shí)完成之后,則宣告本路由節(jié)點(diǎn) 的組網(wǎng)過(guò)程結(jié)束; 步驟1-3:在步驟1-2組網(wǎng)定時(shí)器倒數(shù)計(jì)時(shí)結(jié)束之前,該路由節(jié)點(diǎn)在接收到"組網(wǎng)消息" 后,將所述"組網(wǎng)信息"中能量強(qiáng)度值和信號(hào)強(qiáng)度值進(jìn)行加權(quán)平均得到路由選擇值,此值和 自身路由表中的每條能量和信號(hào)強(qiáng)度加權(quán)值進(jìn)行比較: 若該節(jié)點(diǎn)路由表中的路由信息條數(shù)小于三條,則在路由表中登記目的地址、能量和信 號(hào)強(qiáng)度信息;登記路由表時(shí),將目的節(jié)點(diǎn)的地址信息、能量和信號(hào)強(qiáng)度的加權(quán)值按升序排列 并存儲(chǔ);若路由表中的路由信息條數(shù)大于等于三條且新入路由信息的加權(quán)值大于路由表中 最小一項(xiàng)的加權(quán)值,則需要更新路由表;更新路由表時(shí),原有路由表中能量和信號(hào)強(qiáng)度加權(quán) 值最小的一條路由信息將被刪除,新入路由信息和保留的路由信息,按照加權(quán)值的大小升 序排列的方式,更新路由表; 若路由表中的路由信息條數(shù)大于等于三條且新加入信息的加權(quán)值小于路由表中最小 一項(xiàng)的加權(quán)值,則無(wú)需更新路由表中的信息; 步驟1-4 :在步驟1-3完成之后,該路由節(jié)點(diǎn)發(fā)送本節(jié)點(diǎn)的唯一一次"組網(wǎng)消息",以觸 發(fā)后續(xù)路由節(jié)點(diǎn)的組網(wǎng)過(guò)程;重復(fù)步驟1-3繼續(xù)等待其它節(jié)點(diǎn)發(fā)來(lái)的"組網(wǎng)消息",更新節(jié) 點(diǎn)的路由表; 步驟1-5 :在步驟1-2中,若組網(wǎng)定時(shí)器定時(shí)結(jié)束,則關(guān)閉該路由節(jié)點(diǎn)的組網(wǎng)功能,該節(jié) 點(diǎn)不再接受和處理"組網(wǎng)消息",該節(jié)點(diǎn)的路由表不再更新。
[0006] 進(jìn)一步的,路由節(jié)點(diǎn)在數(shù)據(jù)傳輸階段包括以下幾個(gè)步驟: 步驟2-1 :在步驟1-5完成之后,組網(wǎng)定時(shí)器清零,該路由節(jié)點(diǎn)按照IEEE802. 15. 4的規(guī) 范生成"數(shù)據(jù)幀",根據(jù)所生成的節(jié)點(diǎn)上行路由表,選取路由表中加權(quán)值最大的上行節(jié)點(diǎn)作 為上行路由節(jié)點(diǎn)地址,自動(dòng)向上行傳送一次節(jié)點(diǎn)自身數(shù)據(jù)即"數(shù)據(jù)幀";在發(fā)送"數(shù)據(jù)幀"之 后,節(jié)點(diǎn)需要等待上行節(jié)點(diǎn)回復(fù)"確認(rèn)接收消息"; 步驟2-2 :在步驟2-1中,若發(fā)送數(shù)據(jù)的節(jié)點(diǎn)沒(méi)有收到上行節(jié)點(diǎn)的"確認(rèn)接收消息",則 節(jié)點(diǎn)需要向該上行節(jié)點(diǎn)重發(fā)數(shù)據(jù),若仍無(wú)收到"確認(rèn)接收信息"則再次重發(fā)"數(shù)據(jù)幀",直到 重復(fù)發(fā)送的次數(shù)等于K次,其中,K不大于五次,則判定數(shù)據(jù)發(fā)送不成功;若發(fā)送數(shù)據(jù)的節(jié)點(diǎn) 收到上行節(jié)點(diǎn)"確認(rèn)接收信息",則本次數(shù)據(jù)發(fā)送結(jié)束; 步驟2-3 :在步驟2-2中,若目標(biāo)節(jié)點(diǎn)超過(guò)K次,重發(fā)仍然沒(méi)有回復(fù),則路由節(jié)點(diǎn)需要重 新選取上行節(jié)點(diǎn),在本路由節(jié)點(diǎn)路由表中,刪除發(fā)送不成功的上行節(jié)點(diǎn)地址;路由節(jié)點(diǎn)重新 按照加權(quán)值的大小在路由表中選取加權(quán)值最大的一個(gè)新的上行地址,將該路由節(jié)點(diǎn)地址作 為該次發(fā)送數(shù)據(jù)的上行路由節(jié)點(diǎn)地址,按照IEEE802. 15. 4的規(guī)范生成數(shù)據(jù)幀,并按照步驟 2-1的數(shù)據(jù)發(fā)送過(guò)程重新發(fā)送數(shù)據(jù),并等待對(duì)方節(jié)點(diǎn)確認(rèn)接收回復(fù),若對(duì)方節(jié)點(diǎn)確認(rèn)接收則 判定數(shù)據(jù)發(fā)送成功;若上行節(jié)點(diǎn)未回復(fù)"確認(rèn)收到消息",則根據(jù)步驟2-2所述,向上行節(jié)點(diǎn) 重新發(fā)送"數(shù)據(jù)幀";若重發(fā)"數(shù)據(jù)幀"之后,收到對(duì)方節(jié)點(diǎn)發(fā)送的"確認(rèn)收到消息",則判定 數(shù)據(jù)發(fā)送成功;若仍無(wú)收到確認(rèn)收到消息"則再次重發(fā)"數(shù)據(jù)幀",直到重復(fù)發(fā)送的次數(shù)等于 K次則判定數(shù)據(jù)發(fā)送不成功; 步驟2-4 :上行路由節(jié)點(diǎn)在收到"數(shù)據(jù)幀"后,則查找自身上行路由表,按照2-2原則轉(zhuǎn) 發(fā)"數(shù)據(jù)幀"。
[0007] 步驟2-5 :在數(shù)據(jù)傳輸階段,若節(jié)點(diǎn)收到來(lái)自協(xié)調(diào)器的"控制消息幀",首先判定目 標(biāo)地址是否與自身地址一致;若一致,則節(jié)點(diǎn)按照控制消息的內(nèi)容傳送相關(guān)的數(shù)據(jù)或執(zhí)行 相關(guān)的指令;若不一致,則以廣播方式轉(zhuǎn)發(fā)該"控制消息幀";其次判斷跳數(shù),若該"控制消息 幀"的跳數(shù)已經(jīng)達(dá)到最大跳數(shù)則拋棄該控制消息;若沒(méi)有達(dá)到最大跳數(shù)則廣播轉(zhuǎn)發(fā)。
[0008] 進(jìn)一步的,該協(xié)調(diào)器節(jié)點(diǎn)在數(shù)據(jù)傳輸過(guò)程包括以下幾個(gè)步驟: 步驟4-1 :如步驟1-1所述,在發(fā)起一次組網(wǎng)過(guò)程之后,協(xié)調(diào)器節(jié)點(diǎn)就處于數(shù)據(jù)傳輸過(guò) 程中,等待接收其它節(jié)點(diǎn)上傳的數(shù)據(jù); 步驟4-2 :在步驟4-1中,每接收一條"數(shù)據(jù)幀"之后,協(xié)調(diào)器節(jié)點(diǎn)便啟動(dòng)一次數(shù)據(jù)定時(shí) 器,進(jìn)行定時(shí)計(jì)數(shù),若在計(jì)時(shí)結(jié)束之前收到了下一條"數(shù)據(jù)幀"則重置計(jì)數(shù)器,并且將"數(shù)據(jù) 幀"內(nèi)容進(jìn)行存儲(chǔ),若該數(shù)據(jù)的源節(jié)點(diǎn)是新加入節(jié)點(diǎn),則在協(xié)調(diào)器節(jié)點(diǎn)的網(wǎng)絡(luò)登記表中登記 該源節(jié)點(diǎn)的地址信息,若已存在該源節(jié)點(diǎn)的地址信息,則不必在網(wǎng)絡(luò)節(jié)點(diǎn)登記表中登記;若 數(shù)據(jù)定時(shí)器定時(shí)到,則判定該次數(shù)據(jù)接收結(jié)束; 步驟4-3 :在數(shù)據(jù)傳輸?shù)倪^(guò)程中,若協(xié)調(diào)器需要向某一節(jié)點(diǎn)索要數(shù)據(jù)或者控制節(jié)點(diǎn)的 狀態(tài),則需要向該節(jié)點(diǎn)發(fā)送"控制消息";協(xié)調(diào)器節(jié)點(diǎn)發(fā)送"控制消息"時(shí),需要重置數(shù)據(jù)定時(shí) 器,保證協(xié)調(diào)器節(jié)點(diǎn)仍然處于數(shù)據(jù)傳輸過(guò)程中;"控制消息"通過(guò)廣播的方式發(fā)送,"控制消 息"中含有目的節(jié)點(diǎn)地址信息,其它節(jié)點(diǎn)收到之后,判斷是否與自身節(jié)點(diǎn)地址相同,若地址 信息與自身不相同則轉(zhuǎn)發(fā),直到傳達(dá)到目的節(jié)點(diǎn);若判斷控制消息中的地址信息與自身節(jié) 點(diǎn)地址一致,則根據(jù)控制消息中的指令執(zhí)行;"該控制消息"規(guī)定有最大跳數(shù)M,當(dāng)轉(zhuǎn)發(fā)超過(guò) M數(shù)之后,后續(xù)不再轉(zhuǎn)發(fā)該"控制消息";協(xié)調(diào)器在發(fā)送"控制消息"之后,等待對(duì)方節(jié)點(diǎn)回復(fù) "數(shù)據(jù)消息";若數(shù)據(jù)定時(shí)器時(shí)間到,則判定該次數(shù)據(jù)接收結(jié)束,協(xié)調(diào)器不再等待對(duì)方節(jié)點(diǎn)回 復(fù)。
[0009] 進(jìn)一步的,節(jié)點(diǎn)休眠過(guò)程包括以下幾個(gè)步驟: 步驟3-1 :當(dāng)數(shù)據(jù)定時(shí)器時(shí)間到,則協(xié)調(diào)器認(rèn)為數(shù)據(jù)傳輸過(guò)程結(jié)束之后,協(xié)調(diào)器節(jié)點(diǎn)向 全網(wǎng)廣播發(fā)送"休眠消息",休眠消息中帶有時(shí)間戳,同時(shí),協(xié)調(diào)器節(jié)點(diǎn)備份網(wǎng)絡(luò)節(jié)點(diǎn)登記 表;其它節(jié)點(diǎn)在收到廣播的休眠消息之后按照時(shí)間戳中的時(shí)間,考慮傳輸延遲后,設(shè)定休眠 時(shí)間,并廣播轉(zhuǎn)發(fā)該"休眠消息",然后關(guān)閉無(wú)線收發(fā)和相關(guān)外圍電路并清空路由表,一個(gè)通 信周期宣布結(jié)束,進(jìn)入休眠狀態(tài),并且按照約定的休眠時(shí)間,各個(gè)節(jié)點(diǎn)自行蘇醒。
[0010] 進(jìn)一步的,所述步驟1-3中的加權(quán)值的計(jì)算方法如下:加權(quán)值=a*電池電壓+b* 信號(hào)強(qiáng)度;所述的a>0是電池電壓在加權(quán)值的比重,b>0是信號(hào)強(qiáng)度占加權(quán)值的比重,并且 a+b=l〇
[0011] 本發(fā)明的優(yōu)點(diǎn)是:該方法能將整個(gè)網(wǎng)絡(luò)的能量消耗降低,延長(zhǎng)整個(gè)傳感器網(wǎng)絡(luò)的 生命周期,在路由方面有更好的適應(yīng)性、靈活性和抗毀性。
【專利附圖】
【附圖說(shuō)明】
[0012] 圖1為協(xié)調(diào)器節(jié)點(diǎn)廣播建立路由表的過(guò)程; 圖2和圖3是路由節(jié)點(diǎn)組網(wǎng)和廣播轉(zhuǎn)發(fā)組網(wǎng)信息的過(guò)程; 圖4和圖5是該路由算法形成的一種典型的網(wǎng)絡(luò)結(jié)構(gòu); 圖6為節(jié)點(diǎn)上行數(shù)據(jù)通信經(jīng)過(guò)的一種典型路徑; 圖7節(jié)點(diǎn)組網(wǎng)的流程圖; 圖8 -般節(jié)點(diǎn)接收和轉(zhuǎn)發(fā)數(shù)據(jù)的流程圖; 圖9協(xié)調(diào)器節(jié)點(diǎn)接收和轉(zhuǎn)發(fā)數(shù)據(jù)的流程圖; 圖10 -般節(jié)點(diǎn)發(fā)送數(shù)據(jù)的流程圖; 圖11 一般節(jié)點(diǎn)休眠過(guò)程的流程圖; 圖12協(xié)調(diào)器數(shù)據(jù)傳輸過(guò)程發(fā)送控制消息的流程。
【具體實(shí)施方式】
[0013] 下面通過(guò)實(shí)施例,并結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體的說(shuō)明。應(yīng)理 解,這些實(shí)施例僅用于說(shuō)明本發(fā)明而不是用于限制本發(fā)明的范圍。
[0014] 實(shí)施例:本實(shí)施例的多跳自組織可休眠路由算法類似于洪泛算法,但是每次向協(xié) 調(diào)器節(jié)點(diǎn)發(fā)送數(shù)據(jù)都為單點(diǎn)定向傳播,通信之前需要組網(wǎng),組網(wǎng)之后再進(jìn)行傳送數(shù)據(jù);也就 是說(shuō),無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)之間如果需要進(jìn)行數(shù)據(jù)傳輸,首先需要組網(wǎng),節(jié)點(diǎn)保存各自周圍 上行至協(xié)調(diào)器方向的上行節(jié)點(diǎn)路由信息,根據(jù)路由信息和加權(quán)值進(jìn)行選取發(fā)送數(shù)據(jù)的上行 節(jié)點(diǎn),接收到數(shù)據(jù)的中間節(jié)點(diǎn)根據(jù)其自身建立的連接(路由表中的信息)進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā); 最終數(shù)據(jù)匯聚于協(xié)調(diào)器節(jié)點(diǎn),該路由模式結(jié)合煤礦受限空間的節(jié)點(diǎn)布置方式和煤礦井下環(huán) 境特性實(shí)施部署。
[0015] 每個(gè)節(jié)點(diǎn)在一個(gè)通信周期內(nèi)保存的路由表,該路由表包括目標(biāo)節(jié)點(diǎn)的地址、下一 跳節(jié)點(diǎn)的地址、下一跳節(jié)點(diǎn)的電壓值和信號(hào)強(qiáng)度值以及電壓值和信號(hào)強(qiáng)度值生成的加權(quán) 值,該加權(quán)值用于在數(shù)據(jù)傳輸時(shí),比較并確定數(shù)據(jù)傳輸方向中使用,加權(quán)值較大表示該上行 路由的路由情況較好,更適合進(jìn)行傳輸。
[0016] 至此可以看出本路由算法至少包括以下幾點(diǎn):其一,每個(gè)通信周期開(kāi)始時(shí),需要重 新建立路由,路由具有很好的實(shí)時(shí)性,并且在通信周期結(jié)束時(shí)需要將當(dāng)前的路由表清除;其 二,鑒于煤礦井下受限空間無(wú)線條件惡劣,上行至協(xié)調(diào)器方向采用路由轉(zhuǎn)發(fā)的方式傳輸數(shù) 據(jù),下行發(fā)布命令均采用廣播的方式,廣播方式保持系統(tǒng)冗余可以提高穩(wěn)定性,上行定點(diǎn)上 傳保證了一定的傳輸效率;其三,當(dāng)一個(gè)通信周期結(jié)束時(shí),系統(tǒng)中的一般節(jié)點(diǎn)都需要關(guān)閉無(wú) 線功能,進(jìn)入休眠狀態(tài),可以盡可能的延長(zhǎng)節(jié)點(diǎn)的壽命。
[0017] 如圖1、圖2、圖3所示為路由組網(wǎng)的算法過(guò)程,圖1中協(xié)調(diào)器節(jié)點(diǎn)發(fā)起一次組網(wǎng)的 過(guò)程,周圍的鄰居節(jié)點(diǎn)收到組網(wǎng)的請(qǐng)求之后進(jìn)入組網(wǎng)的等待時(shí)隙,并將協(xié)調(diào)器節(jié)點(diǎn)的消息 存入路由表中,并啟動(dòng)定時(shí)器,等待組網(wǎng)定時(shí)結(jié)束之后該節(jié)點(diǎn)的組網(wǎng)過(guò)程宣告結(jié)束。這些協(xié) 調(diào)器周圍的鄰居節(jié)點(diǎn)在組網(wǎng)定時(shí)器定時(shí)結(jié)束之后,也會(huì)發(fā)起一次組網(wǎng)給自身的周圍鄰居節(jié) 點(diǎn),發(fā)送一次組網(wǎng)消息,周圍未進(jìn)行組網(wǎng)過(guò)程的路由節(jié)點(diǎn)在接收到組網(wǎng)消息之后,同樣地, 也要在路由表中存儲(chǔ)發(fā)起組網(wǎng)的節(jié)點(diǎn)的地址信息,并根據(jù)組網(wǎng)消息中包含的能量和信號(hào)強(qiáng) 度值計(jì)算組網(wǎng)消息的能量和信號(hào)強(qiáng)度的加權(quán)值,作為該上行節(jié)點(diǎn)的加權(quán)值,衡量傳輸?shù)目?靠性,并在路由表中存儲(chǔ)加權(quán)值最高的三個(gè)上行節(jié)點(diǎn)地址,節(jié)省網(wǎng)絡(luò)資源。
[0018]當(dāng)該節(jié)點(diǎn)的組網(wǎng)過(guò)程宣告結(jié)束時(shí),該節(jié)點(diǎn)便進(jìn)入數(shù)據(jù)傳輸階段,根據(jù)路由表中的 路由項(xiàng),選出加權(quán)值最高的上行節(jié)點(diǎn)地址,并向其發(fā)送需要傳輸?shù)臄?shù)據(jù)。傳輸完畢之后,等 待上行節(jié)點(diǎn)響應(yīng)接收確認(rèn)幀,確認(rèn)數(shù)據(jù)接收之后便宣告當(dāng)前傳輸過(guò)程結(jié)束。若上行節(jié)點(diǎn)沒(méi) 有回復(fù)接收確認(rèn),則重啟數(shù)據(jù)傳送過(guò)程,首先在路由表中刪除該路由上行節(jié)點(diǎn)信息,在剩下 的節(jié)點(diǎn)中選出加權(quán)值最高的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸,同樣地,在數(shù)據(jù)傳輸后等待上行節(jié)點(diǎn)響應(yīng) 接收確認(rèn)幀。由于工作時(shí)間和能量的限制,重啟數(shù)據(jù)傳送過(guò)程只進(jìn)行三次。當(dāng)?shù)谌沃貑?數(shù)據(jù)傳送過(guò)程失敗之后,則宣告?zhèn)鬏斒。辉賴L試重傳數(shù)據(jù)。同樣地,在轉(zhuǎn)發(fā)數(shù)據(jù)的過(guò)程 中,節(jié)點(diǎn)會(huì)更正需要傳輸數(shù)據(jù)中上行節(jié)點(diǎn)的地址信息,改為自身上行的地址,再發(fā)送給自身 上行地址。其中,組網(wǎng)消息的數(shù)據(jù)結(jié)構(gòu)如表1所示: 表1組網(wǎng)消息的數(shù)據(jù)結(jié)構(gòu)
【權(quán)利要求】
1. 多跳自組織可休眠路由算法,其特征是該路由算法的整個(gè)通信過(guò)程由以下階段組 成:(1)協(xié)調(diào)器節(jié)點(diǎn)向路由節(jié)點(diǎn)發(fā)起組網(wǎng)命令階段;(2)路由節(jié)點(diǎn)組網(wǎng)階段;(3)數(shù)據(jù)上行 和下行傳輸階段;(3)網(wǎng)絡(luò)休眠階段。
2. 根據(jù)權(quán)利要求1所述的多跳自組織可休眠路由算法,其特征是所述路由節(jié)點(diǎn)組網(wǎng)階 段包括以下的具體步驟: 步驟1-1 :每一個(gè)通信周期開(kāi)始時(shí),由網(wǎng)絡(luò)中的協(xié)調(diào)器節(jié)點(diǎn)廣播一條"組網(wǎng)消息",消息 內(nèi)容包含自身的地址信息,自身的能量強(qiáng)度值和信號(hào)強(qiáng)度值; 步驟1-2 :網(wǎng)絡(luò)中路由節(jié)點(diǎn)在一個(gè)通信周期內(nèi)第一次接收到"組網(wǎng)消息"時(shí),立即啟動(dòng) 一個(gè)本地組網(wǎng)定時(shí)器,該組網(wǎng)定時(shí)器用于限制組網(wǎng)階段的最大時(shí)間;當(dāng)該節(jié)點(diǎn)第一次接收 至IJ "組網(wǎng)消息"時(shí),則開(kāi)啟該定時(shí)器,并倒數(shù)計(jì)時(shí),當(dāng)?shù)箶?shù)計(jì)時(shí)完成之后,則宣告本路由節(jié)點(diǎn) 的組網(wǎng)過(guò)程結(jié)束; 步驟1-3 :在步驟1-2組網(wǎng)定時(shí)器倒數(shù)計(jì)時(shí)結(jié)束之前,該路由節(jié)點(diǎn)在接收到"組網(wǎng)消息" 后,將所述"組網(wǎng)信息"中能量強(qiáng)度值和信號(hào)強(qiáng)度值進(jìn)行加權(quán)平均得到路由選擇值,此值和 自身路由表中的每條能量和信號(hào)強(qiáng)度加權(quán)值進(jìn)行比較: 若該節(jié)點(diǎn)路由表中的路由信息條數(shù)小于三條,則在路由表中登記目的地址、能量和信 號(hào)強(qiáng)度信息;登記路由表時(shí),將目的節(jié)點(diǎn)的地址信息、能量和信號(hào)強(qiáng)度的加權(quán)值按升序排列 并存儲(chǔ);若路由表中的路由信息條數(shù)大于等于三條且新入路由信息的加權(quán)值大于路由表中 最小一項(xiàng)的加權(quán)值,則需要更新路由表;更新路由表時(shí),原有路由表中能量和信號(hào)強(qiáng)度加權(quán) 值最小的一條路由信息將被刪除,新入路由信息和保留的路由信息,按照加權(quán)值的大小升 序排列的方式,更新路由表; 若路由表中的路由信息條數(shù)大于等于三條且新加入信息的加權(quán)值小于路由表中最小 一項(xiàng)的加權(quán)值,則無(wú)需更新路由表中的信息; 步驟1-4 :在步驟1-3完成之后,該路由節(jié)點(diǎn)發(fā)送本節(jié)點(diǎn)的唯一一次"組網(wǎng)消息",以觸 發(fā)后續(xù)路由節(jié)點(diǎn)的組網(wǎng)過(guò)程;重復(fù)步驟1-3繼續(xù)等待其它節(jié)點(diǎn)發(fā)來(lái)的"組網(wǎng)消息",更新節(jié) 點(diǎn)的路由表; 步驟1-5 :在步驟1-2中,若組網(wǎng)定時(shí)器定時(shí)結(jié)束,則關(guān)閉該路由節(jié)點(diǎn)的組網(wǎng)功能,該節(jié) 點(diǎn)不再接受和處理"組網(wǎng)消息",該節(jié)點(diǎn)的路由表不再更新。
3. 根據(jù)權(quán)利要求2所述的多跳自組織可休眠路由算法,其特征是路由節(jié)點(diǎn)在數(shù)據(jù)傳輸 階段包括以下幾個(gè)步驟: 步驟2-1 :在步驟1-5完成之后,組網(wǎng)定時(shí)器清零,該路由節(jié)點(diǎn)按照IEEE802. 15. 4的規(guī) 范生成"數(shù)據(jù)幀",根據(jù)所生成的節(jié)點(diǎn)上行路由表,選取路由表中加權(quán)值最大的上行節(jié)點(diǎn)作 為上行路由節(jié)點(diǎn)地址,自動(dòng)向上行傳送一次節(jié)點(diǎn)自身數(shù)據(jù)即"數(shù)據(jù)幀";在發(fā)送"數(shù)據(jù)幀"之 后,節(jié)點(diǎn)需要等待上行節(jié)點(diǎn)回復(fù)"確認(rèn)接收消息"; 步驟2-2 :在步驟2-1中,若發(fā)送數(shù)據(jù)的節(jié)點(diǎn)沒(méi)有收到上行節(jié)點(diǎn)的"確認(rèn)接收消息",則 節(jié)點(diǎn)需要向該上行節(jié)點(diǎn)重發(fā)數(shù)據(jù),若仍無(wú)收到"確認(rèn)接收信息"則再次重發(fā)"數(shù)據(jù)幀",直到 重復(fù)發(fā)送的次數(shù)等于K次,其中,K不大于五次,則判定數(shù)據(jù)發(fā)送不成功;若發(fā)送數(shù)據(jù)的節(jié)點(diǎn) 收到上行節(jié)點(diǎn)"確認(rèn)接收信息",則本次數(shù)據(jù)發(fā)送結(jié)束; 步驟2-3 :在步驟2-2中,若目標(biāo)節(jié)點(diǎn)超過(guò)K次,重發(fā)仍然沒(méi)有回復(fù),則路由節(jié)點(diǎn)需要重 新選取上行節(jié)點(diǎn),在本路由節(jié)點(diǎn)路由表中,刪除發(fā)送不成功的上行節(jié)點(diǎn)地址;路由節(jié)點(diǎn)重新 按照加權(quán)值的大小在路由表中選取加權(quán)值最大的一個(gè)新的上行地址,將該路由節(jié)點(diǎn)地址作 為該次發(fā)送數(shù)據(jù)的上行路由節(jié)點(diǎn)地址,按照IEEE802. 15. 4的規(guī)范生成數(shù)據(jù)幀,并按照步驟 2-1的數(shù)據(jù)發(fā)送過(guò)程重新發(fā)送數(shù)據(jù),并等待對(duì)方節(jié)點(diǎn)確認(rèn)接收回復(fù),若對(duì)方節(jié)點(diǎn)確認(rèn)接收則 判定數(shù)據(jù)發(fā)送成功;若上行節(jié)點(diǎn)未回復(fù)"確認(rèn)收到消息",則根據(jù)步驟2-2所述,向上行節(jié)點(diǎn) 重新發(fā)送"數(shù)據(jù)幀";若重發(fā)"數(shù)據(jù)幀"之后,收到對(duì)方節(jié)點(diǎn)發(fā)送的"確認(rèn)收到消息",則判定 數(shù)據(jù)發(fā)送成功;若仍無(wú)收到確認(rèn)收到消息"則再次重發(fā)"數(shù)據(jù)幀",直到重復(fù)發(fā)送的次數(shù)等于 K次則判定數(shù)據(jù)發(fā)送不成功; 步驟2-4 :上行路由節(jié)點(diǎn)在收到"數(shù)據(jù)幀"后,則查找自身上行路由表,按照2-2原則轉(zhuǎn) 發(fā)"數(shù)據(jù)幀"; 步驟2-5:在數(shù)據(jù)傳輸階段,若節(jié)點(diǎn)收到來(lái)自協(xié)調(diào)器的"控制消息幀",首先判定目標(biāo)地 址是否與自身地址一致;若一致,則節(jié)點(diǎn)按照控制消息的內(nèi)容傳送相關(guān)的數(shù)據(jù)或執(zhí)行相關(guān) 的指令;若不一致,則以廣播方式轉(zhuǎn)發(fā)該"控制消息幀";其次判斷跳數(shù),若該"控制消息幀" 的跳數(shù)已經(jīng)達(dá)到最大跳數(shù)則拋棄該控制消息;若沒(méi)有達(dá)到最大跳數(shù)則廣播轉(zhuǎn)發(fā)。
4. 根據(jù)權(quán)利要求3所述的多跳自組織可休眠路由算法,其特征是該協(xié)調(diào)器節(jié)點(diǎn)在數(shù)據(jù) 傳輸過(guò)程包括以下幾個(gè)步驟: 步驟4-1 :如步驟1-1所述,在發(fā)起一次組網(wǎng)過(guò)程之后,協(xié)調(diào)器節(jié)點(diǎn)就處于數(shù)據(jù)傳輸過(guò) 程中,等待接收其它節(jié)點(diǎn)上傳的數(shù)據(jù); 步驟4-2 :在步驟4-1中,每接收一條"數(shù)據(jù)幀"之后,協(xié)調(diào)器節(jié)點(diǎn)便啟動(dòng)一次數(shù)據(jù)定時(shí) 器,進(jìn)行定時(shí)計(jì)數(shù),若在計(jì)時(shí)結(jié)束之前收到了下一條"數(shù)據(jù)幀"則重置計(jì)數(shù)器,并且將"數(shù)據(jù) 幀"內(nèi)容進(jìn)行存儲(chǔ),若該數(shù)據(jù)的源節(jié)點(diǎn)是新加入節(jié)點(diǎn),則在協(xié)調(diào)器節(jié)點(diǎn)的網(wǎng)絡(luò)登記表中登記 該源節(jié)點(diǎn)的地址信息,若已存在該源節(jié)點(diǎn)的地址信息,則不必在網(wǎng)絡(luò)節(jié)點(diǎn)登記表中登記;若 數(shù)據(jù)定時(shí)器定時(shí)到,則判定該次數(shù)據(jù)接收結(jié)束; 步驟4-3 :在數(shù)據(jù)傳輸?shù)倪^(guò)程中,若協(xié)調(diào)器需要向某一節(jié)點(diǎn)索要數(shù)據(jù)或者控制節(jié)點(diǎn)的 狀態(tài),則需要向該節(jié)點(diǎn)發(fā)送"控制消息";協(xié)調(diào)器節(jié)點(diǎn)發(fā)送"控制消息"時(shí),需要重置數(shù)據(jù)定時(shí) 器,保證協(xié)調(diào)器節(jié)點(diǎn)仍然處于數(shù)據(jù)傳輸過(guò)程中;"控制消息"通過(guò)廣播的方式發(fā)送,"控制消 息"中含有目的節(jié)點(diǎn)地址信息,其它節(jié)點(diǎn)收到之后,判斷是否與自身節(jié)點(diǎn)地址相同,若地址 信息與自身不相同則轉(zhuǎn)發(fā),直到傳達(dá)到目的節(jié)點(diǎn);若判斷控制消息中的地址信息與自身節(jié) 點(diǎn)地址一致,則根據(jù)控制消息中的指令執(zhí)行;"該控制消息"規(guī)定有最大跳數(shù)M,當(dāng)轉(zhuǎn)發(fā)超過(guò) M數(shù)之后,后續(xù)不再轉(zhuǎn)發(fā)該"控制消息";協(xié)調(diào)器在發(fā)送"控制消息"之后,等待對(duì)方節(jié)點(diǎn)回復(fù) "數(shù)據(jù)消息";若數(shù)據(jù)定時(shí)器時(shí)間到,則判定該次數(shù)據(jù)接收結(jié)束,協(xié)調(diào)器不再等待對(duì)方節(jié)點(diǎn)回 復(fù)。
5. 根據(jù)權(quán)利要求3所述的多跳自組織可休眠路由算法,其特征是節(jié)點(diǎn)休眠過(guò)程包括以 下幾個(gè)步驟: 步驟3-1 :當(dāng)數(shù)據(jù)定時(shí)器時(shí)間到,則協(xié)調(diào)器認(rèn)為數(shù)據(jù)傳輸過(guò)程結(jié)束之后,協(xié)調(diào)器節(jié)點(diǎn)向 全網(wǎng)廣播發(fā)送"休眠消息",休眠消息中帶有時(shí)間戳,同時(shí),協(xié)調(diào)器節(jié)點(diǎn)備份網(wǎng)絡(luò)節(jié)點(diǎn)登記 表;其它節(jié)點(diǎn)在收到廣播的休眠消息之后按照時(shí)間戳中的時(shí)間,考慮傳輸延遲后,設(shè)定休眠 時(shí)間,并廣播轉(zhuǎn)發(fā)該"休眠消息",然后關(guān)閉無(wú)線收發(fā)和相關(guān)外圍電路并清空路由表,一個(gè)通 信周期宣布結(jié)束,進(jìn)入休眠狀態(tài),并且按照約定的休眠時(shí)間,各個(gè)節(jié)點(diǎn)自行蘇醒。
6. 根據(jù)權(quán)利要求2所述的多跳自組織可休眠路由算法,其特征是所述步驟1-3中的加 權(quán)值的計(jì)算方法如下:加權(quán)值=a*電池電壓+b*信號(hào)強(qiáng)度;所述的a>0是電池電壓在加權(quán)值 的比重,b>0是信號(hào)強(qiáng)度占加權(quán)值的比重,并且a+b=l。
【文檔編號(hào)】H04W40/28GK104320829SQ201410631017
【公開(kāi)日】2015年1月28日 申請(qǐng)日期:2014年11月12日 優(yōu)先權(quán)日:2014年11月12日
【發(fā)明者】華鋼, 顧博聞, 黃冬勃, 王永星, 姜代紅 申請(qǐng)人:中國(guó)礦業(yè)大學(xué)