|
多串口轉WiFi多跳路由通訊實現二
串口轉WiFi在(zai)工(gong)業(ye)控(kong)製(zhi)領(ling)域(yu)廣(guang)泛(fan)的(de)應(ying)用(yong),工(gong)業(ye)控(kong)製(zhi)領(ling)域(yu)通(tong)常(chang)距(ju)離(li)比(bi)較(jiao)遠(yuan)環(huan)境(jing)比(bi)較(jiao)複(fu)雜(za)。所(suo)以(yi)就(jiu)有(you)超(chao)遠(yuan)距(ju)離(li)通(tong)訊(xun)的(de)需(xu)求(qiu),通(tong)常(chang)我(wo)們(men)使(shi)用(yong)多(duo)跳(tiao)的(de)方(fang)式(shi)實(shi)現(xian)WiFi遠距離傳輸。即如果實現遠距離的A與C進行通訊,我們可以在A與C之間增加一個模塊B,這樣,B充但重疾的作用。以下以simpleWiFi的S2W-M02以及S2W-M03中所實現的多跳機製進行描述。S2WM02、S2WM03已經穩定的運用到了很多超長距離通訊環境,該算法穩定性以及大量現場驗證。並且該係列串口轉WiFi模塊可以實現2串口、雙串口、3串口和多串口的通訊,各個通訊相互完全獨立,可以同時支持多個串口設備進行數據通訊。
本節主要描述多跳路由算法:
- 協議概述
- 協議概述
該多跳路由實際上是 DSR和 DSDV的綜合,以 DSDV為基礎,采用DSR中的按需路由思想進行改進。它采用了DSR中路由發現和路由維護的原理,結合了DSDV的逐跳(hop-by-hop)路由,順序編號和路由維護階段的周期更新機製。與DSDV保存完整的路由表不同的是,基於按需路由思想的多跳路由隻有在有需要的時候才建立路由,這與DSDV相比的好處是能減少大量維護路由所需的開銷。與DSRxiangbi,duotiaoluyoudeyoushizaiyuyuanluyoubingbuxuyaobaokuozaimeiyigeshujufenzuzhong,zheyangnengjianshaoluyouxieyidekaixiao。duotiaoluyouxieyikeyishixianzaiyidongzhongduandongtaide、自(zi)發(fa)的(de)路(lu)由(you),使(shi)移(yi)動(dong)終(zhong)端(duan)很(hen)快(kuai)的(de)獲(huo)得(de)通(tong)向(xiang)所(suo)需(xu)目(mu)的(de)地(di)的(de)路(lu)由(you),而(er)且(qie)不(bu)用(yong)維(wei)護(hu)當(dang)前(qian)沒(mei)有(you)使(shi)用(yong)的(de)路(lu)由(you)信(xin)息(xi),還(hai)能(neng)對(dui)鏈(lian)路(lu)狀(zhuang)態(tai)和(he)拓(tuo)撲(pu)的(de)變(bian)化(hua)做(zuo)出(chu)快(kuai)速(su)的(de)反(fan)應(ying)。多(duo)跳(tiao)路(lu)由(you)使(shi)用(yong)路(lu)由(you)請(qing)求(qiu)序(xu)列(lie)號(hao)來(lai)保(bao)證(zheng)無(wu)環(huan)路(lu)。避(bi)免(mian)了(le)通(tong)常(chang) Bellman-foul 算法的無窮計數(count-to-infinite)的問題,並且提供了很快的收斂速度。鑒於多跳路由路由協議功能強大而又便於實現的優點,故其成為嵌入式係統下UART 轉WiFi 路由協議的首選。

圖 1 RREQ幀格式

圖 2 RREP幀格式
路由請求分組RREQ的轉發過程類似於DSR協議。簡單描述如下:收到“路由請求”分組的節點,在路由表中設置反向路徑表項指向源節點。目的是使RREP分組能夠返回源節點。當目標節點接到RREQ 分組時,它就發送RREP分組。RREP分組沿著反向路徑(RREQ分組經過時形成的路徑的反方向)到達源節點。
- 路由發現過程
(1)結點在需要時(路徑不存在或者無效),向其鄰居廣播RREQ分組用於路由發現。
(2)對接收到RREQ的結點作如下處理:
創建一個表項,用於記錄反向路徑;
如果在“路由發現定時”內已收到一個具有相同標識的RREQ分組,則拋棄該分組,不作任何處理;否則,更新該反向路由表項;
如果滿足如下兩個條件:
①:該結點就是信宿;
②:結點的路由表中有到信宿的活動表項,且表項的序列號大於RREQ中的信宿序列號;
則結點產生“路由回答分組”RREP,並發送到信源;否則,更新RREQ分組,並廣播更新後的RREQ分組 。
(3)RREP的傳播:RREP中的內容包括:跳計數、信宿序列號、信宿地址、信源地址、生存時間等。結點通過前麵建立的反向路由反饋給源結點,並且是以單播方式發送;
(4)轉發RREP的中間結點會更新路由表,記錄轉發路由的下遊結點、跳數、生存時間、目的序列號等內容,並根據先前記錄的反向路由將RREP報文轉發給上遊結點,直至源結點;
(5)源結點收到RREP報文後,就獲得了到目的結點的路由,接下來,源結點就可以用該路由進行數據報文的發送了。

上述算法已經大量的應用到了現場,能夠實現穩定的多跳通訊。參考simpleWiFi的S2W-M02多串口2串口3串口雙串口以及三串口的通訊模塊。後續文章會詳細介紹多跳路由保持實現。
|