3串口雙串口2串口WiFi多跳通訊實(shí)現(xiàn)二
串口轉(zhuǎn)WiFi在工業(yè)控制領(lǐng)域廣泛的應(yīng)用,工業(yè)控制領(lǐng)域通常距離比較遠(yuǎn)環(huán)境比較復(fù)雜。所以就有超遠(yuǎn)距離通訊的需求,通常我們使用多跳的方式實(shí)現(xiàn)WiFi遠(yuǎn)距離傳輸。即如果實(shí)現(xiàn)遠(yuǎn)距離的A與C進(jìn)行通訊,我們可以在A與C之間增加一個(gè)模塊B,這樣,B充擔(dān)中繼的作用。以下以simpleWiFi的S2W-M02以及S2W-M03中所實(shí)現(xiàn)的多跳機(jī)制進(jìn)行描述。S2WM02、S2WM03已經(jīng)穩(wěn)定的運(yùn)用到了很多超長距離通訊環(huán)境,該算法穩(wěn)定性以及大量現(xiàn)場驗(yàn)證。并且該系列串口轉(zhuǎn)WiFi模塊可以實(shí)現(xiàn)2串口、雙串口、3串口和多串口的通訊,各個(gè)通訊相互完全獨(dú)立,可以同時(shí)支持多個(gè)串口設(shè)備進(jìn)行數(shù)據(jù)通訊。
本節(jié)主要描述多跳路由算法:
1、協(xié)議概述
1.1.1 協(xié)議概述
該多跳路由實(shí)際上是 DSR和 DSDV的綜合,以 DSDV為基礎(chǔ),采用DSR中的按需路由思想進(jìn)行改進(jìn)。它采用了DSR中路由發(fā)現(xiàn)和路由維護(hù)的原理,結(jié)合了DSDV的逐跳(hop-by-hop)路由,順序編號和路由維護(hù)階段的周期更新機(jī)制。與DSDV保存完整的路由表不同的是,基于按需路由思想的多跳路由只有在有需要的時(shí)候才建立路由,這與DSDV相比的好處是能減少大量維護(hù)路由所需的開銷。與DSR相比,多跳路由的優(yōu)勢在于源路由并不需要包括在每一個(gè)數(shù)據(jù)分組中,這樣能減少路由協(xié)議的開銷。多跳路由協(xié)議可以實(shí)現(xiàn)在移動(dòng)終端動(dòng)態(tài)的、自發(fā)的路由,使移動(dòng)終端很快的獲得通向所需目的地的路由,而且不用維護(hù)當(dāng)前沒有使用的路由信息,還能對鏈路狀態(tài)和拓?fù)涞淖兓龀隹焖俚姆磻?yīng)。多跳路由使用路由請求序列號來保證無環(huán)路。避免了通常 Bellman-foul 算法的無窮計(jì)數(shù)(count-to-infinite)的問題,并且提供了很快的收斂速度。鑒于多跳路由路由協(xié)議功能強(qiáng)大而又便于實(shí)現(xiàn)的優(yōu)點(diǎn),故其成為嵌入式系統(tǒng)下UART 轉(zhuǎn)WiFi 路由協(xié)議的首選。
圖 1 RREQ幀格式
圖 2 RREP幀格式
路由請求分組RREQ的轉(zhuǎn)發(fā)過程類似于DSR協(xié)議。簡單描述如下:收到“路由請求”分組的節(jié)點(diǎn),在路由表中設(shè)置反向路徑表項(xiàng)指向源節(jié)點(diǎn)。目的是使RREP分組能夠返回源節(jié)點(diǎn)。當(dāng)目標(biāo)節(jié)點(diǎn)接到RREQ 分組時(shí),它就發(fā)送RREP分組。RREP分組沿著反向路徑(RREQ分組經(jīng)過時(shí)形成的路徑的反方向)到達(dá)源節(jié)點(diǎn)。
1.1.1 路由發(fā)現(xiàn)過程
(1)結(jié)點(diǎn)在需要時(shí)(路徑不存在或者無效),向其鄰居廣播RREQ分組用于路由發(fā)現(xiàn)。
(2)對接收到RREQ的結(jié)點(diǎn)作如下處理:
創(chuàng)建一個(gè)表項(xiàng),用于記錄反向路徑;
如果在“路由發(fā)現(xiàn)定時(shí)”內(nèi)已收到一個(gè)具有相同標(biāo)識的RREQ分組,則拋棄該分組,不作任何處理;否則,更新該反向路由表項(xiàng);
如果滿足如下兩個(gè)條件:
①:該結(jié)點(diǎn)就是信宿;
②:結(jié)點(diǎn)的路由表中有到信宿的活動(dòng)表項(xiàng),且表項(xiàng)的序列號大于RREQ中的信宿序列號;
則結(jié)點(diǎn)產(chǎn)生“路由回答分組”RREP,并發(fā)送到信源;否則,更新RREQ分組,并廣播更新后的RREQ分組 。
(3)RREP的傳播:RREP中的內(nèi)容包括:跳計(jì)數(shù)、信宿序列號、信宿地址、信源地址、生存時(shí)間等。結(jié)點(diǎn)通過前面建立的反向路由反饋給源結(jié)點(diǎn),并且是以單播方式發(fā)送;
(4)轉(zhuǎn)發(fā)RREP的中間結(jié)點(diǎn)會更新路由表,記錄轉(zhuǎn)發(fā)路由的下游結(jié)點(diǎn)、跳數(shù)、生存時(shí)間、目的序列號等內(nèi)容,并根據(jù)先前記錄的反向路由將RREP報(bào)文轉(zhuǎn)發(fā)給上游結(jié)點(diǎn),直至源結(jié)點(diǎn);
(5)源結(jié)點(diǎn)收到RREP報(bào)文后,就獲得了到目的結(jié)點(diǎn)的路由,接下來,源結(jié)點(diǎn)就可以用該路由進(jìn)行數(shù)據(jù)報(bào)文的發(fā)送了。
上述算法已經(jīng)大量的應(yīng)用到了現(xiàn)場,能夠?qū)崿F(xiàn)穩(wěn)定的多跳通訊。參考simpleWiFi的S2W-M02多串口2串口3串口雙串口以及三串口的通訊模塊。后續(xù)文章會詳細(xì)介紹多跳路由保持實(shí)現(xiàn)。

提交
3串口多串口雙2串口轉(zhuǎn)WiFi多跳實(shí)現(xiàn)四
有線以太網(wǎng)RJ45網(wǎng)口轉(zhuǎn)無線WiFi方案
3串口多雙串口2串口轉(zhuǎn)WiFi多跳通訊
以串口S2W-M02為例說明Modbus
工業(yè)串口設(shè)備RS232或485設(shè)備通過WiFi聯(lián)網(wǎng)傳輸方案