面向鏈式無線傳感器網絡的分簇路由系統及方法
【技術領域】
[0001]本發明涉及無線網絡技術,具體地說是一種面向鏈式無線傳感器網絡的分簇路由系統及方法。
【背景技術】
[0002]近年來,無線傳感器網絡廣泛應用。輸電線路監測、鐵路監測、地鐵監測、邊境監測等應用,具有分散性大、距離長、難以維護等特點。前較廣泛采用的周期性人工、直升機、機器人巡檢的方式,不僅需要高開銷、高勞動強度,也難于持續地對整個系統進行監測。為此,基于網絡的監控系統成為這類應用實現的必然。然而,基于有線網絡的監測系統具有布設困難、成本高、維護不便等問題。那么,基于無線技術的監測系統是未來的發展趨勢。但是,GSM、WIMAX、CDMA等移動通信技術,對于全方位的監測系統來說依舊過于昂貴,因此現有的系統僅用于部分關鍵的環節。無線傳感器網絡以其實時在線、大面積覆蓋、自配置自組織、低成本、靈活、維護方便等優點,成為這類應用的首選技術。
[0003]對于上述輸電線路監測、鐵路監測、地鐵監測、邊境監測等應用,無線傳感器網絡通常部署在無人值守的區域,更換電池困難或電池成本較高。為此,低能耗成為該類無線傳感器網絡的首要需求,系統一般要求電池供電的節點工作5年以上。此外,這類應用對無線傳感器網絡的實時性也提出了要求。以智能電網中的數據采集與監控系統(SupervisoryControl and Data Acquisit1n, SCADA)為例,數據采集周期通常為4?8秒,特別當異常事件或警告產生時,需要及時傳輸到監控中心。
[0004]鏈式或者帶狀的網絡拓撲結構對路由算法的設計提出如下挑戰:
[0005](I)漏斗效應嚴重,越靠近匯聚節點(Sink),數據積累越多,因此越靠近Sink的節點的能量耗散越快,需要充分考慮位置對于路由的影響。
[0006](2)輸電線路監測、鐵路監測、地鐵監測、邊境監測等應用的特殊性,使得網絡的拓撲結構還呈現局部相對集中的特點。分簇路由算法因其支持數據聚合、減少節點接入信道次數、提升網絡性能的優勢,而成為廣泛采用的路由算法。分簇路由算法可以通過簇首來保證實時性,同時網絡中大部分節點都處于低能耗狀態。再者,相對于平面路由,它不需要復雜的路由維護,具有可擴展性強的特點。但是,分簇路由算法也存在能耗不均的問題,具體包括兩方面:1)簇內能耗不均。同一個簇內,簇成員數據量大小不同,導致簇首進行簇內數據收集、簇間路由計算以及數據轉發所需的能耗不同;2)簇間能耗不均,具體表現在簇內節點數不一致導致不同簇首的能耗不均勻。
[0007]現有典型的分簇路由算法中,LEACH采用了隨機簇首選擇機制,但未考慮節點的剩余能量,有可能導致部分簇首能耗消耗過快,進而影響網絡壽命;此外,LEACH算法面向單跳通信,可擴展性差。LEACH_C和LEACH-F都是由基站負責挑選簇首,計算量較大、可擴展性差,并且基站需要收集全局信息,控制開銷大。PEGASIS算法采用貪心算法,根據每個節點的地理位置信息選擇簇首,需要知道每個節點的位置信息,并且由于平均通信距離較短導致跳數增加,進而增加了延遲。HEED是一種分布式成簇算法,節點依據剩余能量和簇內通信代價計算成為簇首的概率。綜上,現有典型的分簇路由算法都是針對平面拓撲結構設計,沒有考慮輸電線路等應用中鏈式拓撲結構帶來的漏斗效應、能耗不均等影響。
【發明內容】
[0008]針對現有典型的分簇路由算法都是面向平面拓撲結構設計,沒有考慮輸電線路等應用中鏈式拓撲結構帶來的漏斗效應、能耗不均等影響,本發明提出了一種面向鏈式無線傳感器網絡的分簇路由系統及方法,利用鏈式拓撲潛在的位置信息,設計了節點地址命名機制及分簇路由算法,在減少了路由建立和路由維護的開銷同時,解決了漏斗效應和能耗不均的問題。
[0009]為解決上述技術問題,本發明采用的技術方案是:一種面向鏈式無線傳感器網絡的分簇路由系統,包括根據節點之間的距離劃分的若干個緊密集,每個緊密集包括若干個基本傳感器節點和/或數據中繼節點;所述每個基本傳感器節點安裝有傳感器,用于采集該緊密集中的數據;所述數據中繼節點不安裝傳感器,用于數據的轉發;所述基本傳感器節點和/或數據中繼節點安裝中低功率收發器;所述每個緊密集中的一個節點設置為簇首,其余節點為普通簇成員,其中普通簇成員用于將數據發送給簇首;
[0010]還包括增強中繼節點,安裝大功率收發器,用于與各個緊密集中的簇首進行通信。
[0011]所述每個緊密集中的節點按照其地理位置信息分配有一個地址。
[0012]一種面向鏈式無線傳感器網絡的分簇路由方法,包括以下步驟:
[0013]節點緊密集構造階段,按照多個基本傳感器節點和/或數據中繼節點之間的距離將無線傳感器網絡劃分為若干個緊密集,并基于地理位置信息,為緊密集中的節點分配地址;利用現有的LEACH算法,選取緊密集中的一個節點作為簇首,緊密集中的其余節點作為普通簇成員,簇首和普通簇成員構成一個簇;一個緊密集中的簇首也充當其他簇的普通簇成員;
[0014]數據收集階段,普通簇成員以多跳傳輸方式,采用基于命名機制的分簇路由算法將無線傳感器網絡中的數據發送給簇首,再由簇首轉發到增強中繼節點。
[0015]還包括:
[0016]簇首輪換階段,當普通簇成員檢測到簇首的剩余能量低于預設的閾值,或者簇首失效時,緊密集內重新選取簇首。
[0017]所述簇首輪換階段具體包括以下實現過程:
[0018]簇首以時間T為周期,周期性廣播包含自身剩余能量的簇首更新報文;
[0019]普通簇成員若發現當前簇首的剩余能量與自身能量的比值低于閾值l/α,則向緊密集內廣播簇首變更請求;
[0020]緊密集中的所有節點收到簇首變更請求信息后,向當前簇首報告其自身能量;
[0021]當前簇首收集完所有普通簇成員的能量信息后,按照能量從高到低的順序排序,選擇剩余能量最多的普通簇成員作為新簇首,并向新簇首發送簇首變更報文,隨后向無線傳感器網絡廣播簇首變更消息;
[0022]若當前簇首失效,普通簇成員在T時間內收不到簇首變更請求,則普通簇成員廣播簇首變更請求,收集同一緊密集中所有節點的剩余能量信息,選擇同一緊密集中剩余能量最大的節點作為簇首,并廣播新簇首信息。
[0023]所述節點緊密集構造階段具體包括以下實現過程:
[0024]當節點加入網絡時,廣播一個加入請求,獲取周圍節點的緊密集信息;
[0025]當加入節點收到包含緊密集信息的加入響應后,通過響應報文RSSI值從高到低的順序決定待加入的緊密集;加入節點選擇RSSI值最高項對應的緊密集,并向此緊密集廣播自身地址信息;
[0026]基于鏈式拓撲信息,按照緊密集中節點的加入順序,為緊密集中的節點分配地址;
[0027]緊密集中的所有成員更新自身的緊密集成員表;如果沒有待選擇的緊密集,則力口入節點建立一個新的緊密集,并且自動成為該緊密集的簇首。
[0028]所述緊密集信息包括緊密集編號以及緊密集成員表;所述緊密集成員表包括同一緊密集中節點的地址。
[0029]所述基于鏈式拓撲信息,按照緊密集中節點的加入順序,為緊密集中的節點分配地址,具體包括以下過程:
[0030]地址命名方法:節點地址包括三個域:ERN_ADDR域、DENSESET_ADDR域以及BASIC_ADDR域;其中,ERN_ADDR域表示節點所屬的ERN節點的地址;DENSESET_ADDR域表示節點所隸屬的緊密集的地址,若節點不屬于任何簇,則表示最鄰近的緊密集地址;BASIC_ADDR域用來區分同一緊密集內的不同節點;
[0031 ] 地址分配過程:包括ERN_ADDR域、DENSESET_ADDR域以及BASIC_ADDR域的地址分配;
[0032]所述ERN_ADDR域的地址分配:按照增強中繼節點加入的順序,從I開始,依次為ERN節點順序分配地址,隸屬于該增強中繼節點的其他節點的ERN_ADDR域即為對應的增強中繼節點的地址;
[0033]DENSESET_ADDR域的地址分配:增強中繼節點處的緊密集稱為O號簇,簇內節點的DENSESET_ADDR域為0,隨后左右最鄰近它的緊密集被加入網絡,依次表示為I號簇和2號簇;
[0034]BASIC_ADDR域的地址分配:按節點加入的先后順序為緊密集內的所有節點分配BASIC_ADDR 域地址。
[0035]所述數據收集階段的基于命名機制的分簇路由算法包括下行路由和上行路由兩個過程;
[0036]所述下行路由的具體實現過程包括:如果報文目的地址的DENSESET_ADDR域