城市道路照明越來越多采用LED照明技術(shù)代替?zhèn)鹘y(tǒng)的照明技術(shù),其目的是為了降低對電能的消耗。由于LED使用低壓直流電源,便于附加檢測與控制電路,這對路燈網(wǎng)絡(luò)的智能化管理,進(jìn)一步節(jié)能降耗帶來了方便。對于路燈網(wǎng)絡(luò)的管理與控制,既可以采用電力載波通信技術(shù),也可技術(shù)的快速發(fā)展,使得短距離無線通信技術(shù)在應(yīng)用成本、可靠性與通信速率等方面均已優(yōu)于電力載波通信技術(shù),例如Zigbee短距離無線通信技術(shù)。本文提出一種解決方案,采用短距離無線通信技術(shù)構(gòu)建LED路燈無線傳感網(wǎng)絡(luò),能對LED路燈網(wǎng)絡(luò)任意單盞燈或多盞燈或全網(wǎng)絡(luò)所有燈進(jìn)行開關(guān)、調(diào)光等控制,進(jìn)行發(fā)光亮度、電流參數(shù)等檢測,從而實現(xiàn)對LED路燈網(wǎng)絡(luò)的智能化管理。作為無線傳感網(wǎng)絡(luò),其體系結(jié)構(gòu)應(yīng)該包含四個基本層次:物理層和數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層以及應(yīng)用層。LED路燈無線傳感網(wǎng)絡(luò)采用IEEE 802.15.4標(biāo)準(zhǔn)作為其物理層和數(shù)據(jù)鏈路層的技術(shù)標(biāo)準(zhǔn),網(wǎng)絡(luò)層與應(yīng)用層集成在一起,采用單跳、雙跳以及變跳3種接力通信模式作為網(wǎng)絡(luò)協(xié)議的基礎(chǔ)。本文圍繞LED無線傳感網(wǎng)絡(luò)的體系結(jié)構(gòu),以網(wǎng)絡(luò)拓?fù)浼巴ㄐ殴?jié)點的組成為基礎(chǔ),論述了網(wǎng)絡(luò)層的協(xié)議包格式、路由工作原理,以及節(jié)點通信的設(shè)計流程。
網(wǎng)絡(luò)體系
無線傳感網(wǎng)絡(luò)的網(wǎng)絡(luò)體系是網(wǎng)絡(luò)層實現(xiàn)路由的基礎(chǔ),包括節(jié)點組成及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
路燈傳感網(wǎng)絡(luò)節(jié)點的組成
路燈網(wǎng)絡(luò)由間隔均勻的若干盞路燈組成,每一盞LED路燈均為網(wǎng)絡(luò)的一個通信節(jié)點,用來構(gòu)建無線傳感網(wǎng)絡(luò)。圖1所示,為構(gòu)建無線傳感網(wǎng)絡(luò)LED路燈節(jié)點的組成,除了照明部分的電路外,還附加了對LED電流的采樣、LED發(fā)光亮度的檢測、以及對LED發(fā)光亮度的PWM控制等電路。每一盞LED路燈既是傳感器節(jié)點也是網(wǎng)絡(luò)路由節(jié)點;每一個節(jié)點包含一個微控制器(MCU,如cc2530),都具有射頻通信功能,既能發(fā)送信號也能接收信號;每一個節(jié)點具有32bit(位)的唯一ID號。通過在物理層和MAC層采用IEEE 802.15.4協(xié)議標(biāo)準(zhǔn),結(jié)合網(wǎng)絡(luò)層與應(yīng)用層的協(xié)議,所有這些節(jié)點有機地組合在一起,便構(gòu)成了LED路燈無線傳感網(wǎng)絡(luò)。由于現(xiàn)有的一些網(wǎng)絡(luò)層與應(yīng)用層協(xié)議如Zigbee、RF4CE等并不是很適合LED路燈傳感網(wǎng)絡(luò)應(yīng)用,因此,需要重新設(shè)計網(wǎng)絡(luò)層與應(yīng)用層協(xié)議。
網(wǎng)絡(luò)拓?fù)?/strong>
根據(jù)LED路燈的分布規(guī)律,每盞LED路燈作為網(wǎng)絡(luò)節(jié)點構(gòu)成無線通信網(wǎng)絡(luò),其拓?fù)浣Y(jié)構(gòu)如圖2所示,(a)是信號逐點(單跳)接力傳送拓?fù)浣Y(jié)構(gòu)圖,(b)是信號隔點(雙跳)接力傳送拓?fù)浣Y(jié)構(gòu)圖。為便于下文網(wǎng)絡(luò)應(yīng)用協(xié)議的設(shè)計與討論,作出如下定義:
(1)所有節(jié)點可分為2類,即LED路燈節(jié)點(簡稱LED節(jié)點,如a1 a2 … an , b1 b2 … bn)和路燈控制器節(jié)點(簡稱控制節(jié)點,如a,b);
(2)相鄰節(jié)點之間的距離均為L,每個節(jié)點的無線信號覆蓋半徑大于等于2L;
?。?)根據(jù)節(jié)點的相對位置,節(jié)點可分為前驅(qū)節(jié)點與后繼節(jié)點,離控制器近的是前趨節(jié)點,離控制器遠(yuǎn)的是后繼節(jié)點。例如a1是a2前驅(qū)節(jié)點,a3是a2后繼節(jié)點;同理b2是b4前驅(qū)節(jié)點,b6是b4后繼節(jié)點,以此類推。
?。?)控制節(jié)點與LED節(jié)點之間,LED節(jié)點相互之間,只要無線信號可以覆蓋到,都可以相互通信,不需要設(shè)基站或?qū)iT的路由協(xié)調(diào)裝置。
?。?)每個節(jié)點的32bit唯一ID號由兩部分組成,分別為網(wǎng)絡(luò)ID和節(jié)點地址(編號),均為16bit。同一路燈網(wǎng)絡(luò)所有節(jié)點的網(wǎng)絡(luò)ID相同;從控制節(jié)點開始,節(jié)點地址由小到大順序編排。
網(wǎng)絡(luò)協(xié)議
路燈傳感網(wǎng)絡(luò)協(xié)議包括協(xié)議包的定義與路由協(xié)議的定義,其設(shè)計目標(biāo)是簡單、實用,易實現(xiàn)。
網(wǎng)絡(luò)協(xié)議包格式
路燈傳感網(wǎng)絡(luò)協(xié)議傳輸?shù)?a target="_blank">信息包共有3種類型,分別為命令包、參數(shù)包以及應(yīng)答確認(rèn)包。
?。?)命令包
圖3(a)所示,為控制器節(jié)點對LED路燈節(jié)點下發(fā)的命令包格式。命令有三種類型:針對整個網(wǎng)絡(luò)所有LED節(jié)點的廣播命令、針對部分LED節(jié)點的群組命令以及針對單個LED節(jié)點的單點命令。
命令包各字段定義如下:
包類型:為1;
目的地址:為指定LED節(jié)點的地址;
包序列號:為向指定節(jié)點發(fā)送的包編號;
接力模式:為1時,表示單跳模式;為2時,表示雙跳模式偶鏈;為3時,表示雙跳模式奇鏈;
命令字段的定義方法見表1,表1只列出了部分命令,實際中可以根據(jù)需要增加命令;
表1 命令包命令字段定義
命令參數(shù)字段:用來表示調(diào)光的亮度,數(shù)值越小LED發(fā)光亮度越低,耗電越少,數(shù)值為 0時表示關(guān)燈;
跳數(shù):命令傳送到目的地址所需經(jīng)過的節(jié)點數(shù),最大值為路燈網(wǎng)絡(luò)所有LED節(jié)點的數(shù)量。傳送命令包時,每經(jīng)轉(zhuǎn)發(fā)一次則跳數(shù)減1,當(dāng)跳數(shù)值為0時,命令包不再被轉(zhuǎn)發(fā)。
?。?)參數(shù)包
圖3(b)所示,為LED路燈網(wǎng)絡(luò)節(jié)點上傳的參數(shù)包格式??刂乒?jié)點可采用定時輪詢或即時查詢方式獲取網(wǎng)絡(luò)內(nèi)各LED節(jié)點的狀態(tài)參數(shù),如電流值、發(fā)光亮度值等,各LED節(jié)點只有在接到讀取參數(shù)的命令后才會向控制節(jié)點發(fā)送參數(shù)包。參數(shù)包各字段定義如下:
包類型:為2;
源地址:為上傳參數(shù)LED節(jié)點的地址;
包序列號:為上傳參數(shù)LED節(jié)點發(fā)出的參數(shù)包編號;
接力模式:由于只有在節(jié)點收到讀取狀態(tài)參數(shù)命令后才會發(fā)送參數(shù)包,因此,參數(shù)包的接力模式由命令包的接力模式確定;
狀態(tài)標(biāo)志:為0,表示對應(yīng)LED節(jié)點無故障;為1,表示對應(yīng)節(jié)點有故障;為2,表示對應(yīng)節(jié)點及后繼節(jié)點有故障;
狀態(tài)參數(shù)1-3:為LED節(jié)點的有關(guān)參數(shù),如電流值、電壓值以及LED的發(fā)光亮度值等。
?。?)應(yīng)答確認(rèn)包
圖3(c)所示,為應(yīng)答確認(rèn)包格式。為了實現(xiàn)可靠傳輸,每個節(jié)點在收到命令包或參數(shù)包后需要發(fā)送應(yīng)答確認(rèn)信息包。如果信息包的發(fā)送(轉(zhuǎn)發(fā))方在設(shè)定的時間內(nèi)沒有收到應(yīng)答確認(rèn)包,則會啟動對該信息包的重新發(fā)送。應(yīng)答確認(rèn)包各字段的數(shù)值定義如下:
包類型:為3;
節(jié)點地址:發(fā)出確認(rèn)應(yīng)答包節(jié)點的地址。
確認(rèn)類型:收到信息包的包類型;
確認(rèn)號:為節(jié)點收到信息包的包序列號;
網(wǎng)絡(luò)路由協(xié)議
路燈傳感網(wǎng)絡(luò)路由協(xié)議的核心是各節(jié)點對信息包的轉(zhuǎn)發(fā)機制。由于每一個節(jié)點的信號覆蓋范圍有限,其信息只能向鄰近的節(jié)點發(fā)送,如要將信息送往遠(yuǎn)處節(jié)點則只能依賴中間節(jié)點的多次轉(zhuǎn)發(fā)。根據(jù)前述1.2定義的條件,節(jié)點轉(zhuǎn)發(fā)信息包可以分為三種模式,即單跳接力模式,雙跳接力模式和變跳接力模式,各LED節(jié)點將根據(jù)信息包中接力模式字段的定義進(jìn)行選擇。
單跳接力模式
圖2(a)所示,為單跳接力模式的拓?fù)浣Y(jié)構(gòu)圖。它是一個比較簡單的轉(zhuǎn)發(fā)模式,要求每個節(jié)點無線信號覆蓋的半徑范圍大于節(jié)點間距L即可,信息包只需往鄰近的前驅(qū)節(jié)點或后繼節(jié)點轉(zhuǎn)發(fā)。在這種模式下,節(jié)點處理收到信息包的方法如下:
?、俟?jié)點接收一個命令包(如圖3(a))后,向前驅(qū)節(jié)點發(fā)送接收確認(rèn)應(yīng)答包;將命令包中的跳數(shù)減1;比較節(jié)點自身地址(NA)與命令包中目標(biāo)地址的大小,相等則執(zhí)行包中的命令且無須轉(zhuǎn)發(fā)命令包,不等則向后繼節(jié)點轉(zhuǎn)發(fā)該包;如果是廣播命令(目標(biāo)地址值為0xffff),既在本節(jié)點執(zhí)行該命令同時也向后繼節(jié)點轉(zhuǎn)發(fā)該命令包。轉(zhuǎn)發(fā)時的路由地址為:NA+1。當(dāng)命令包傳送到網(wǎng)絡(luò)中的最后一個LED節(jié)點時,跳數(shù)減1后將為0,包將不再被轉(zhuǎn)發(fā)。
?、诠?jié)點接收到參數(shù)包(如圖3(b))后,只需向后繼節(jié)點發(fā)送接收確認(rèn)包和向前驅(qū)節(jié)點轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)參數(shù)包的路由地址為:NA-1。
?、酃?jié)點收到命令包或參數(shù)包后,必須發(fā)送接收確認(rèn)包(如圖3(c)),當(dāng)收到命令包時,確認(rèn)類型值為1,發(fā)送應(yīng)答確認(rèn)包的路由地址為NA-1;當(dāng)收到參數(shù)包時確認(rèn)類型值為2, 發(fā)送應(yīng)答確認(rèn)包的路由地址為NA+1。
雙跳接力模式
圖2(b)所示,為雙跳接力模式的拓?fù)浣Y(jié)構(gòu)圖。這種模式要求每一個節(jié)點的無線信號覆蓋半徑范圍≥2L。從圖2可知,雙跳接力模式每次跨越兩個節(jié)點,傳送信息包到指定節(jié)點的轉(zhuǎn)發(fā)次數(shù)比單跳接力模式要少一半,因此其傳送時延也要小。在雙跳接力模式下,將整個網(wǎng)絡(luò)所有LED節(jié)點按照其地址值的奇偶性分成2個接力鏈,即奇地址節(jié)點鏈和偶地址節(jié)點鏈??刂乒?jié)點發(fā)送廣播命令時,需要針對奇地址節(jié)點鏈和偶地址節(jié)點鏈分別發(fā)送,命令信息包分別在奇地址節(jié)點鏈和偶地址節(jié)點鏈上同時傳播。在雙跳接力模式下,節(jié)點處理收到信息包的方法如下:
?、俟?jié)點接收到命令包后的處理方法與單跳接力模式基本相同,但包轉(zhuǎn)發(fā)時的路由地址變?yōu)椋篘A+2。
?、谕瑯庸?jié)點接收到數(shù)據(jù)包后的處理方法也與單跳接力模式基本相同,只是在包轉(zhuǎn)發(fā)時的路由地址變?yōu)椋篘A-2。
③節(jié)點收到命令包或參數(shù)包后,必須發(fā)送接收確認(rèn)包,當(dāng)收到命令包時,確認(rèn)類型值為1,發(fā)送應(yīng)答確認(rèn)包的路由地址為NA-2;當(dāng)收到參數(shù)包時確認(rèn)類型值為2, 發(fā)送應(yīng)答確認(rèn)包的路由地址為NA+2。
無論是單跳接力模式還是雙跳接力模式,節(jié)點發(fā)送命令信息包或參數(shù)信息包后,在規(guī)定的時間內(nèi)未收到確認(rèn)信息包,則需要重發(fā),重發(fā)次數(shù)一般不超過3次。
變跳接力模式
變跳接力模式實際上是單跳接力模式和雙跳接力模式的一種補充,主要用于下一跳節(jié)點出現(xiàn)通信故障時。在單跳接力模式或雙跳接力模式工作時,如果在多次重發(fā)后仍收不到下一跳節(jié)點的應(yīng)答確認(rèn)信息包,說明下一跳節(jié)點出現(xiàn)了通信故障。這時通過改變接力模式,由單跳變雙跳或者由雙跳變單跳可以繞開下一跳有通信故障的節(jié)點,繼續(xù)信息包的接力傳送。同時,將故障節(jié)點的相關(guān)信息反饋到控制節(jié)點。變跳接力模式要求每一個節(jié)點的無線信號覆蓋半徑范圍≥2L。變跳接力模式分為兩種情況:
?。?)初始傳送為單跳接力模式
設(shè)LED節(jié)點i的地址為NAi,當(dāng)LED節(jié)點i以單跳模式轉(zhuǎn)發(fā)命令包(或參數(shù)包)時,即使重發(fā),仍然收不到LED節(jié)點i+1(或i-1)的確認(rèn)包,于是斷定下一跳節(jié)點出現(xiàn)故障。這時如果傳送的是命令包則從①開始執(zhí)行,如果傳送的是參數(shù)包則執(zhí)行②,因為故障節(jié)點在傳命令包時已遇上,傳送參數(shù)包時遇故障節(jié)點無須重復(fù)報告故障信息。
?、貺ED節(jié)點i向控制節(jié)點報告故障節(jié)點信息。此時,節(jié)點i向控制節(jié)點發(fā)送參數(shù)包,包的狀態(tài)參數(shù)置為1,源地址為故障節(jié)點的地址,即NAi+1,發(fā)送參數(shù)包的路由地址為NAi-1。
②改變接力模式為雙跳模式,將信息包轉(zhuǎn)發(fā)給節(jié)點i+2(或i-2),以繞開故障節(jié)點,路由地址為NAi+2(或NAi-2),若能收到應(yīng)答確認(rèn)包,則本節(jié)點轉(zhuǎn)發(fā)完成,否則說明遇上了兩個或兩個以上連續(xù)故障節(jié)點,需繼續(xù)執(zhí)行③。
?、廴绻藭r傳送的是命令包,則LED節(jié)點i需向控制節(jié)點報告故障節(jié)點狀態(tài)信息,狀態(tài)參數(shù)包的狀態(tài)標(biāo)志置為2,源地址為故障節(jié)點的地址,即NAi+2,發(fā)送參數(shù)包的路由地址為NAi-1。隨后,轉(zhuǎn)發(fā)中止。
?。?)初始傳送為雙跳接力模式
當(dāng)LED節(jié)點i(地址為NAi)欲以雙跳接力模式轉(zhuǎn)發(fā)命令包(或參數(shù)包)時,必須對包進(jìn)行分析,根據(jù)接力模式字段的值為2或3,可以判定當(dāng)前為偶地址鏈或奇地址鏈接力模式。當(dāng)NAi的值為奇數(shù),跳變模式為奇鏈,或者NAi的值為偶數(shù),跳變模式為偶鏈時,執(zhí)行如下步驟①;當(dāng)NAi的值為奇數(shù),跳變模式為偶鏈,或者NAi的值為偶數(shù),跳變模式為奇鏈時,執(zhí)行如下步驟②;
?、俟?jié)點i以雙跳接力模式轉(zhuǎn)發(fā)命令包(或參數(shù)包),路由地址為NAi+2(或NAi-2),如果收不到應(yīng)答確認(rèn),則下一跳節(jié)點出現(xiàn)故障。如果這時轉(zhuǎn)發(fā)的是命令包,則需向控制節(jié)點報告故障,往其前驅(qū)節(jié)點i-2發(fā)送故障信息參數(shù)包,路由地址為NAi-2,故障信息參數(shù)包的源地址(即故障節(jié)點的地址)為 NAi+2,狀態(tài)標(biāo)志為1。同時,改用單跳接力模式將信息包轉(zhuǎn)發(fā)給節(jié)點i+1(或i-1),以繞開故障節(jié)點,轉(zhuǎn)發(fā)的路由地址為NAi+1(或NAi- 1);若能收到確認(rèn)包,則本節(jié)點轉(zhuǎn)發(fā)完成,否則執(zhí)行③;
?、诠?jié)點i改為單跳接力模式轉(zhuǎn)發(fā)命令包(或參數(shù)包),路由地址為NAi+1(或NAi-1),若能收到確認(rèn)包,則本節(jié)點轉(zhuǎn)發(fā)完成,否則,再改用雙跳接力模式轉(zhuǎn)發(fā),將信息包轉(zhuǎn)發(fā)給節(jié)點i+2(或i-2),以繞開故障節(jié)點,轉(zhuǎn)發(fā)的路由地址為NAi+2(或NAi-2);若能收到確認(rèn)包,則本節(jié)點轉(zhuǎn)發(fā)完成,否則執(zhí)行③;
?、壅f明遇上了兩個或兩個以上連續(xù)故障節(jié)點,LED節(jié)點i需向控制節(jié)點報告故障節(jié)點信息。此時,節(jié)點i向控制節(jié)點發(fā)送故障參數(shù)包的狀態(tài)標(biāo)志為2,源地址為故障節(jié)點的地址,即NAi+1,發(fā)送參數(shù)包,路由地址為NAi-1。隨后轉(zhuǎn)發(fā)中止。
上述變跳接力模式能解決分散的單個通信故障節(jié)點接力傳送問題。但當(dāng)網(wǎng)絡(luò)中出現(xiàn)連續(xù)2個或2個以上通信故障節(jié)點時,則只能報告故障節(jié)點位置而不能再繼續(xù)接力傳送。若要解決連續(xù)多故障節(jié)點的問題,既需要改變接力算法,也需要各節(jié)點的無線信號覆蓋半徑范圍更大。
網(wǎng)絡(luò)節(jié)點工作流程與協(xié)議實現(xiàn)
路燈傳感網(wǎng)絡(luò)上的每一個節(jié)點,既是命令執(zhí)行與狀態(tài)參數(shù)采集的終端節(jié)點,也是路由協(xié)調(diào)工作節(jié)點。各節(jié)點除了接收到信息包進(jìn)入處理流程外,其余時間幾乎都處在監(jiān)聽查詢狀態(tài),檢查是否收到信息包。圖4所示為LED路燈傳感網(wǎng)絡(luò)節(jié)點的工作流程,它是網(wǎng)絡(luò)協(xié)議在節(jié)點上實現(xiàn)過程的描述。
結(jié)束語
通過網(wǎng)絡(luò)體系、網(wǎng)絡(luò)協(xié)議、網(wǎng)絡(luò)節(jié)點工作流程與協(xié)議實現(xiàn)等幾個部分的詳細(xì)介紹,析構(gòu)了LED路燈無線傳感網(wǎng)絡(luò)的組成,希望能為LED路燈無線傳感網(wǎng)絡(luò)的應(yīng)用起到拋磚引玉的作用。LED路燈無線傳感網(wǎng)絡(luò)構(gòu)建的基礎(chǔ)是點到點的通信技術(shù),命令信息要覆蓋全網(wǎng)絡(luò)需要點到點的通信技術(shù)來完成,良好的網(wǎng)絡(luò)協(xié)議是組建傳感網(wǎng)絡(luò)的關(guān)鍵所在,簡易可行的網(wǎng)絡(luò)協(xié)議是實用化的前提。實際應(yīng)用表明,上述方法構(gòu)建的LED路燈無線傳感網(wǎng)絡(luò)具有良好的實時性,能穩(wěn)定、可靠地工作,能滿足對LED路燈網(wǎng)絡(luò)的智能化管理要求。
評論
查看更多