城市道路照明越來越多采用LED照明技術代替傳統的照明技術,其目的是為了降低對電能的消耗。由于LED使用低壓直流電源,便于附加檢測與控制電路,這對路燈網絡的智能化管理,進一步節能降耗帶來了方便。對于路燈網絡的管理與控制,既可以采用電力載波通信技術,也可技術的快速發展,使得短距離無線通信技術在應用成本、可靠性與通信速率等方面均已優于電力載波通信技術,例如Zigbee短距離無線通信技術。本文提出一種解決方案,采用短距離無線通信技術構建LED路燈無線傳感網絡,能對LED路燈網絡任意單盞燈或多盞燈或全網絡所有燈進行開關、調光等控制,進行發光亮度、電流參數等檢測,從而實現對LED路燈網絡的智能化管理。作為無線傳感網絡,其體系結構應該包含四個基本層次:物理層和數據鏈路層、網絡層以及應用層。LED路燈無線傳感網絡采用IEEE 802.15.4標準作為其物理層和數據鏈路層的技術標準,網絡層與應用層集成在一起,采用單跳、雙跳以及變跳3種接力通信模式作為網絡協議的基礎。本文圍繞LED無線傳感網絡的體系結構,以網絡拓撲及通信節點的組成為基礎,論述了網絡層的協議包格式、路由工作原理,以及節點通信的設計流程。
網絡體系
無線傳感網絡的網絡體系是網絡層實現路由的基礎,包括節點組成及網絡拓撲結構。
路燈傳感網絡節點的組成
路燈網絡由間隔均勻的若干盞路燈組成,每一盞LED路燈均為網絡的一個通信節點,用來構建無線傳感網絡。圖1所示,為構建無線傳感網絡LED路燈節點的組成,除了照明部分的電路外,還附加了對LED電流的采樣、LED發光亮度的檢測、以及對LED發光亮度的PWM控制等電路。每一盞LED路燈既是傳感器節點也是網絡路由節點;每一個節點包含一個微控制器(MCU,如cc2530),都具有射頻通信功能,既能發送信號也能接收信號;每一個節點具有32bit(位)的唯一ID號。通過在物理層和MAC層采用IEEE 802.15.4協議標準,結合網絡層與應用層的協議,所有這些節點有機地組合在一起,便構成了LED路燈無線傳感網絡。由于現有的一些網絡層與應用層協議如Zigbee、RF4CE等并不是很適合LED路燈傳感網絡應用,因此,需要重新設計網絡層與應用層協議。
網絡拓撲
根據LED路燈的分布規律,每盞LED路燈作為網絡節點構成無線通信網絡,其拓撲結構如圖2所示,(a)是信號逐點(單跳)接力傳送拓撲結構圖,(b)是信號隔點(雙跳)接力傳送拓撲結構圖。為便于下文網絡應用協議的設計與討論,作出如下定義:
(1)所有節點可分為2類,即LED路燈節點(簡稱LED節點,如a1 a2 … an , b1 b2 … bn)和路燈控制器節點(簡稱控制節點,如a,b);
(2)相鄰節點之間的距離均為L,每個節點的無線信號覆蓋半徑大于等于2L;
(3)根據節點的相對位置,節點可分為前驅節點與后繼節點,離控制器近的是前趨節點,離控制器遠的是后繼節點。例如a1是a2前驅節點,a3是a2后繼節點;同理b2是b4前驅節點,b6是b4后繼節點,以此類推。
(4)控制節點與LED節點之間,LED節點相互之間,只要無線信號可以覆蓋到,都可以相互通信,不需要設基站或專門的路由協調裝置。
(5)每個節點的32bit唯一ID號由兩部分組成,分別為網絡ID和節點地址(編號),均為16bit。同一路燈網絡所有節點的網絡ID相同;從控制節點開始,節點地址由小到大順序編排。
網絡協議
路燈傳感網絡協議包括協議包的定義與路由協議的定義,其設計目標是簡單、實用,易實現。
網絡協議包格式
路燈傳感網絡協議傳輸的信息包共有3種類型,分別為命令包、參數包以及應答確認包。
(1)命令包
圖3(a)所示,為控制器節點對LED路燈節點下發的命令包格式。命令有三種類型:針對整個網絡所有LED節點的廣播命令、針對部分LED節點的群組命令以及針對單個LED節點的單點命令。
命令包各字段定義如下:
包類型:為1;
目的地址:為指定LED節點的地址;
包序列號:為向指定節點發送的包編號;
接力模式:為1時,表示單跳模式;為2時,表示雙跳模式偶鏈;為3時,表示雙跳模式奇鏈;
命令字段的定義方法見表1,表1只列出了部分命令,實際中可以根據需要增加命令;
表1 命令包命令字段定義
命令參數字段:用來表示調光的亮度,數值越小LED發光亮度越低,耗電越少,數值為 0時表示關燈;
跳數:命令傳送到目的地址所需經過的節點數,最大值為路燈網絡所有LED節點的數量。傳送命令包時,每經轉發一次則跳數減1,當跳數值為0時,命令包不再被轉發。
(2)參數包
圖3(b)所示,為LED路燈網絡節點上傳的參數包格式。控制節點可采用定時輪詢或即時查詢方式獲取網絡內各LED節點的狀態參數,如電流值、發光亮度值等,各LED節點只有在接到讀取參數的命令后才會向控制節點發送參數包。參數包各字段定義如下:
包類型:為2;
源地址:為上傳參數LED節點的地址;
包序列號:為上傳參數LED節點發出的參數包編號;
接力模式:由于只有在節點收到讀取狀態參數命令后才會發送參數包,因此,參數包的接力模式由命令包的接力模式確定;
狀態標志:為0,表示對應LED節點無故障;為1,表示對應節點有故障;為2,表示對應節點及后繼節點有故障;
狀態參數1-3:為LED節點的有關參數,如電流值、電壓值以及LED的發光亮度值等。
(3)應答確認包
圖3(c)所示,為應答確認包格式。為了實現可靠傳輸,每個節點在收到命令包或參數包后需要發送應答確認信息包。如果信息包的發送(轉發)方在設定的時間內沒有收到應答確認包,則會啟動對該信息包的重新發送。應答確認包各字段的數值定義如下:
包類型:為3;
節點地址:發出確認應答包節點的地址。
確認類型:收到信息包的包類型;
確認號:為節點收到信息包的包序列號;
網絡路由協議
路燈傳感網絡路由協議的核心是各節點對信息包的轉發機制。由于每一個節點的信號覆蓋范圍有限,其信息只能向鄰近的節點發送,如要將信息送往遠處節點則只能依賴中間節點的多次轉發。根據前述1.2定義的條件,節點轉發信息包可以分為三種模式,即單跳接力模式,雙跳接力模式和變跳接力模式,各LED節點將根據信息包中接力模式字段的定義進行選擇。
單跳接力模式
圖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(b)所示,為雙跳接力模式的拓撲結構圖。這種模式要求每一個節點的無線信號覆蓋半徑范圍≥2L。從圖2可知,雙跳接力模式每次跨越兩個節點,傳送信息包到指定節點的轉發次數比單跳接力模式要少一半,因此其傳送時延也要小。在雙跳接力模式下,將整個網絡所有LED節點按照其地址值的奇偶性分成2個接力鏈,即奇地址節點鏈和偶地址節點鏈。控制節點發送廣播命令時,需要針對奇地址節點鏈和偶地址節點鏈分別發送,命令信息包分別在奇地址節點鏈和偶地址節點鏈上同時傳播。在雙跳接力模式下,節點處理收到信息包的方法如下:
①節點接收到命令包后的處理方法與單跳接力模式基本相同,但包轉發時的路由地址變為:NA+2。
②同樣節點接收到數據包后的處理方法也與單跳接力模式基本相同,只是在包轉發時的路由地址變為:NA-2。
③節點收到命令包或參數包后,必須發送接收確認包,當收到命令包時,確認類型值為1,發送應答確認包的路由地址為NA-2;當收到參數包時確認類型值為2, 發送應答確認包的路由地址為NA+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個以上通信故障節點時,則只能報告故障節點位置而不能再繼續接力傳送。若要解決連續多故障節點的問題,既需要改變接力算法,也需要各節點的無線信號覆蓋半徑范圍更大。
網絡節點工作流程與協議實現
路燈傳感網絡上的每一個節點,既是命令執行與狀態參數采集的終端節點,也是路由協調工作節點。各節點除了接收到信息包進入處理流程外,其余時間幾乎都處在監聽查詢狀態,檢查是否收到信息包。圖4所示為LED路燈傳感網絡節點的工作流程,它是網絡協議在節點上實現過程的描述。
結束語
通過網絡體系、網絡協議、網絡節點工作流程與協議實現等幾個部分的詳細介紹,析構了LED路燈無線傳感網絡的組成,希望能為LED路燈無線傳感網絡的應用起到拋磚引玉的作用。LED路燈無線傳感網絡構建的基礎是點到點的通信技術,命令信息要覆蓋全網絡需要點到點的通信技術來完成,良好的網絡協議是組建傳感網絡的關鍵所在,簡易可行的網絡協議是實用化的前提。實際應用表明,上述方法構建的LED路燈無線傳感網絡具有良好的實時性,能穩定、可靠地工作,能滿足對LED路燈網絡的智能化管理要求。
評論
查看更多