3串口多串口雙串口以及2串口轉(zhuǎn)WiFi多跳通訊實(shí)現(xiàn)三
——網(wǎng)關(guān)發(fā)現(xiàn)協(xié)議
串口轉(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)場(chǎng)驗(yàn)證。并且該系列串口轉(zhuǎn)WiFi模塊可以實(shí)現(xiàn)2串口、雙串口、3串口和多串口的通訊,各個(gè)通訊相互完全獨(dú)立,可以同時(shí)支持多個(gè)串口設(shè)備進(jìn)行數(shù)據(jù)通訊。
本節(jié)主要描述多跳路由算法:
- 網(wǎng)關(guān)發(fā)現(xiàn)協(xié)議
- 協(xié)議概述
該網(wǎng)關(guān)發(fā)現(xiàn)協(xié)議依附 “Hello”報(bào)文,在報(bào)文后增加了extension type,type格式定義為4,length為5,extension內(nèi)容中前4個(gè)字節(jié)為網(wǎng)關(guān)IP地址,最后一個(gè)字節(jié)為節(jié)點(diǎn)到網(wǎng)關(guān)的跳數(shù)。網(wǎng)關(guān)節(jié)點(diǎn)廣播的Hello報(bào)文跳數(shù)始終為0。

如上圖所示,網(wǎng)關(guān)節(jié)點(diǎn)G進(jìn)入Adhoc網(wǎng)絡(luò)后,廣播的Hello報(bào)文中攜帶了網(wǎng)關(guān)extension域,其鄰居節(jié)點(diǎn)A首先收到該Hello幀,經(jīng)過解析處理后,發(fā)現(xiàn)網(wǎng)關(guān)G,并建立到網(wǎng)關(guān)G的路由;到網(wǎng)關(guān)G的路由建立成功后,更新其Hello幀,在Hello幀的最后需要添加網(wǎng)關(guān)extension域(前4個(gè)字節(jié)為網(wǎng)關(guān)G的IP地址,最后1個(gè)字節(jié)表示到網(wǎng)關(guān)的跳數(shù)為1);接著,節(jié)點(diǎn)B會(huì)收到A廣播的Hello,經(jīng)過解析處理后,發(fā)現(xiàn)網(wǎng)關(guān)G,并建立到網(wǎng)關(guān)G的路由;路由建立成功后,更新Hello幀,在Hello幀的最后需要添加網(wǎng)關(guān)extension域(前4個(gè)字節(jié)為網(wǎng)關(guān)G的IP地址,最后1個(gè)字節(jié)表示到網(wǎng)關(guān)的跳數(shù)為2);依次類推,節(jié)點(diǎn)C和D隨后也建立了到網(wǎng)關(guān)的路由。
上述算法已經(jīng)大量的應(yīng)用到了現(xiàn)場(chǎng),能夠?qū)崿F(xiàn)穩(wěn)定的多跳通訊。參考simpleWiFi的S2W-M02多串口2串口3串口雙串口以及三串口的通訊模塊。后續(xù)文章會(huì)詳細(xì)介紹多跳路由保持實(shí)現(xiàn)。
|