實現LED路燈網絡的智能監控
(2)參數包
本文引用地址:http://www.czjhyjcfj.com/article/271884.htm圖3(b)所示,為LED路燈網絡節點上傳的參數包格式。控制節點可采用定時輪詢或即時查詢方式獲取網絡內各LED節點的狀態參數,如電流值、發光亮度值等,各LED節點只有在接到讀取參數的命令后才會向控制節點發送參數包。參數包各字段定義如下:
包類型:為2;
源地址:為上傳參數LED節點的地址;
包序列號:為上傳參數LED節點發出的參數包編號;
接力模式:由于只有在節點收到讀取狀態參數命令后才會發送參數包,因此,參數包的接力模式由命令包的接力模式確定;
狀態標志:為0,表示對應LED節點無故障;為1,表示對應節點有故障;為2,表示對應節點及后繼節點有故障;
狀態參數1-3:為LED節點的有關參數,如電流值、電壓值以及LED的發光亮度值等。
(3)應答確認包
圖3(c)所示,為應答確認包格式。為了實現可靠傳輸,每個節點在收到命令包或參數包后需要發送應答確認信息包。如果信息包的發送(轉發)方在設定的時間內沒有收到應答確認包,則會啟動對該信息包的重新發送。應答確認包各字段的數值定義如下:
包類型:為3;
節點地址:發出確認應答包節點的地址。
確認類型:收到信息包的包類型;
確認號:為節點收到信息包的包序列號;
2.2網絡路由協議
LED路燈傳感網絡路由協議的核心是各節點對信息包的轉發機制。由于每一個節點的信號覆蓋范圍有限,其信息只能向鄰近的節點發送,如要將信息送往遠處節點則只能依賴中間節點的多次轉發。根據前述1.2定義的條件,節點轉發信息包可以分為三種模式,即單跳接力模式,雙跳接力模式和變跳接力模式,各LED節點將根據信息包中接力模式字段的定義進行選擇。
2.2.1單跳接力模式
圖2(a)所示,為單跳接力模式的拓撲結構圖。它是一個比較簡單的轉發模式,要求每個節點無線信號覆蓋的半徑范圍大于節點間距L即可,信息包只需往鄰近的前驅節點或后繼節點轉發。在這種模式下,節點處理收到信息包的方法如下:
①節點接收一個命令包(如圖3(a))后,向前驅節點發送接收確認應答包;將命令包中的跳數減1;比較節點自身地址(NA)與命令包中目標地址的大小,相等則執行包中的命令且無須轉發命令包,不等則向后繼節點轉發該包;如果是廣播命令(目標地址值為0xffff),既在本節點執行該命令同時也向后繼節點轉發該命令包。轉發時的路由地址為:NA+1.當命令包傳送到網絡中的最后一個LED節點時,跳數減1后將為0,包將不再被轉發。
②節點接收到參數包(如圖3(b))后,只需向后繼節點發送接收確認包和向前驅節點轉發,轉發參數包的路由地址為:NA-1.
③節點收到命令包或參數包后,必須發送接收確認包(如圖3(c)),當收到命令包時,確認類型值為1,發送應答確認包的路由地址為NA-1;當收到參數包時確認類型值為2,發送應答確認包的路由地址為NA+1.
2.2.2雙跳接力模式
圖2(b)所示,為雙跳接力模式的拓撲結構圖。這種模式要求每一個節點的無線信號覆蓋半徑范圍≥2L.從圖2可知,雙跳接力模式每次跨越兩個節點,傳送信息包到指定節點的轉發次數比單跳接力模式要少一半,因此其傳送時延也要小。在雙跳接力模式下,將整個網絡所有LED節點按照其地址值的奇偶性分成2個接力鏈,即奇地址節點鏈和偶地址節點鏈。控制節點發送廣播命令時,需要針對奇地址節點鏈和偶地址節點鏈分別發送,命令信息包分別在奇地址節點鏈和偶地址節點鏈上同時傳播。在雙跳接力模式下,節點處理收到信息包的方法如下:
①節點接收到命令包后的處理方法與單跳接力模式基本相同,但包轉發時的路由地址變為:NA+2.
②同樣節點接收到數據包后的處理方法也與單跳接力模式基本相同,只是在包轉發時的路由地址變為:NA-2.
③節點收到命令包或參數包后,必須發送接收確認包,當收到命令包時,確認類型值為1,發送應答確認包的路由地址為NA-2;當收到參數包時確認類型值為2,發送應答確認包的路由地址為NA+2.
無論是單跳接力模式還是雙跳接力模式,節點發送命令信息包或參數信息包后,在規定的時間內未收到確認信息包,則需要重發,重發次數一般不超過3次。
2.2.3變跳接力模式
變跳接力模式實際上是單跳接力模式和雙跳接力模式的一種補充,主要用于下一跳節點出現通信故障時。在單跳接力模式或雙跳接力模式工作時,如果在多次重發后仍收不到下一跳節點的應答確認信息包,說明下一跳節點出現了通信故障。這時通過改變接力模式,由單跳變雙跳或者由雙跳變單跳可以繞開下一跳有通信故障的節點,繼續信息包的接力傳送。同時,將故障節點的相關信息反饋到控制節點。變跳接力模式要求每一個節點的無線信號覆蓋半徑范圍≥2L.變跳接力模式分為兩種情況:
(1)初始傳送為單跳接力模式
設LED節點i的地址為NAi,當LED節點i以單跳模式轉發命令包(或參數包)時,即使重發,仍然收不到LED節點i+1(或i-1)的確認包,于是斷定下一跳節點出現故障。這時如果傳送的是命令包則從①開始執行,如果傳送的是參數包則執行②,因為故障節點在傳命令包時已遇上,傳送參數包時遇故障節點無須重復報告故障信息。
①LED節點i向控制節點報告故障節點信息。此時,節點i向控制節點發送參數包,包的狀態參數置為1,源地址為故障節點的地址,即NAi+1,發送參數包的路由地址為NAi-1.
②改變接力模式為雙跳模式,將信息包轉發給節點i+2(或i-2),以繞開故障節點,路由地址為NAi+2(或NAi-2),若能收到應答確認包,則本節點轉發完成,否則說明遇上了兩個或兩個以上連續故障節點,需繼續執行③。
③如果此時傳送的是命令包,則LED節點i需向控制節點報告故障節點狀態信息,狀態參數包的狀態標志置為2,源地址為故障節點的地址,即NAi+2,發送參數包的路由地址為NAi-1.隨后,轉發中止。
(2)初始傳送為雙跳接力模式
當LED節點i(地址為NAi)欲以雙跳接力模式轉發命令包(或參數包)時,必須對包進行分析,根據接力模式字段的值為2或3,可以判定當前為偶地址鏈或奇地址鏈接力模式。當NAi的值為奇數,跳變模式為奇鏈,或者NAi的值為偶數,跳變模式為偶鏈時,執行如下步驟①;當NAi的值為奇數,跳變模式為偶鏈,或者NAi的值為偶數,跳變模式為奇鏈時,執行如下步驟②;
①節點i以雙跳接力模式轉發命令包(或參數包),路由地址為NAi+2(或NAi-2),如果收不到應答確認,則下一跳節點出現故障。如果這時轉發的是命令包,則需向控制節點報告故障,往其前驅節點i-2發送故障信息參數包,路由地址為NAi-2,故障信息參數包的源地址(即故障節點的地址)為NAi+2,狀態標志為1.同時,改用單跳接力模式將信息包轉發給節點i+1(或i-1),以繞開故障節點,轉發的路由地址為NAi+1(或NAi-1);若能收到確認包,則本節點轉發完成,否則執行③;
②節點i改為單跳接力模式轉發命令包(或參數包),路由地址為NAi+1(或NAi-1),若能收到確認包,則本節點轉發完成,否則,再改用雙跳接力模式轉發,將信息包轉發給節點i+2(或i-2),以繞開故障節點,轉發的路由地址為NAi+2(或NAi-2);若能收到確認包,則本節點轉發完成,否則執行③;
③說明遇上了兩個或兩個以上連續故障節點,LED節點i需向控制節點報告故障節點信息。此時,節點i向控制節點發送故障參數包的狀態標志為2,源地址為故障節點的地址,即NAi+1,發送參數包,路由地址為NAi-1.隨后轉發中止。
上述變跳接力模式能解決分散的單個通信故障節點接力傳送問題。但當網絡中出現連續2個或2個以上通信故障節點時,則只能報告故障節點位置而不能再繼續接力傳送。若要解決連續多故障節點的問題,既需要改變接力算法,也需要各節點的無線信號覆蓋半徑范圍更大。
led燈相關文章:led燈原理
調光開關相關文章:調光開關原理
評論