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