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

提交
3串口多串口雙2串口轉WiFi多跳實現四
有線以太網RJ45網口轉無線WiFi方案
3串口多雙串口2串口轉WiFi多跳通訊
以串口S2W-M02為例說明Modbus
工業串口設備RS232或485設備通過WiFi聯網傳輸方案