吳磊 袁宗勝
摘要:針對工業(yè)應用背景,探索433MHz下的MANET設(shè)計與實現(xiàn)。采用了平面結(jié)構(gòu)的網(wǎng)絡(luò)拓撲和分層的網(wǎng)絡(luò)協(xié)議棧結(jié)構(gòu)。以STC12 系列單片機和nRF905為核心射頻芯片,構(gòu)建了低功耗、通用性強網(wǎng)絡(luò)節(jié)點。MAC層協(xié)議采用優(yōu)化的CSMA/CA,降低了網(wǎng)絡(luò)碰撞。對DSR路由算法進行了優(yōu)化和改進,有效抑制了廣播風暴,提了網(wǎng)絡(luò)吞吐率。模擬了工業(yè)應用場景,提供了溫度的采集、繼電器和指示燈控制的實現(xiàn)。最終設(shè)計實現(xiàn)的MANET功能完善、性能優(yōu)秀,有廣泛的應用前景。
關(guān)鍵詞:MANTA;DSR;自組網(wǎng);協(xié)議棧
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)13-0226-04
Abstract: According to the industrial application background, the design and implementation of MANET under 433MHz is explored. Network topology and layered network protocol stack structure with planar structure. With STC12 Series MCU and nRF905 as the core of the RF chip, low power consumption, strong network node. MAC layer protocol uses the optimized CSMA/CA, reduces the network collision. The DSR routing algorithm is optimized and improved, which effectively inhibits the broadcast storm and improves the network throughput. Simulated the industrial application scenarios, provided the temperature acquisition, the relay and the indicator light control realization. The final design and implementation of the MANET function, excellent performance, has a wide range of application prospects.
Key words: MANTA; DSR; ad hoc network; protocol stack
MANET (Mobile Ad Hoc Network),即移動Ad Hoc網(wǎng)絡(luò),也可稱為移動自組織網(wǎng)絡(luò)。MANET是一種無中心、自組織、分布式、動態(tài)、多跳的無線網(wǎng)絡(luò)。
伴隨著工業(yè)4.0熱潮的到來,工業(yè)控制、工業(yè)傳感線網(wǎng)絡(luò)、戶外作業(yè)等領(lǐng)域?qū)ANET有了巨大的需求。國內(nèi)外對MANET設(shè)計和實現(xiàn)的研究工作,在各個層面都取得了一定的突破。路由協(xié)議的研究工作已經(jīng)取得了很大進展。整體的設(shè)計與實現(xiàn)方案也取得了進步。一些在2.4Ghz頻段下的MANET進入了實用階段。但是,2.4Ghz 頻段的無線通信,在復雜的工業(yè)生產(chǎn)環(huán)境中面臨難題。相比之下,433MHz下的無線通信在工業(yè)生產(chǎn)環(huán)境中有著明顯優(yōu)勢。然而433MHz下的MANET尚未有成熟的方案。
探索在433MHz下的MANET設(shè)計與實現(xiàn)有了很大的科研和應用意義。網(wǎng)絡(luò)層的路由策略是MANTA設(shè)計與實現(xiàn)過程中的關(guān)鍵環(huán)節(jié)。將DSR路由算法MANET中進行優(yōu)化、改進和移植是一項開拓性的工作,也給其他路由算法的移植帶來技術(shù)上的指導意義。
1 總體方案設(shè)計
1.1 需求分析
根據(jù)應用背景,對設(shè)計實現(xiàn)一個在433MHz下的MANET進行需求分析。提出如下需求:
1)網(wǎng)絡(luò)是個MANET,能夠運行在工業(yè)環(huán)境中,使用433MHz頻段。
2)網(wǎng)絡(luò)無中心節(jié)點,節(jié)點數(shù)不超過10個,可輕量構(gòu)建,支持3跳路由轉(zhuǎn)發(fā)。
3)網(wǎng)絡(luò)性能穩(wěn)定,數(shù)據(jù)傳輸可靠,吞吐量高,端到端延時小,高能效。
4)網(wǎng)絡(luò)節(jié)點體積小,可攜帶,運行持續(xù)、穩(wěn)定,處理器芯片通用性強。
5)對網(wǎng)絡(luò)應用前景進行探索,組溫度傳感器網(wǎng)絡(luò)和工業(yè)控制網(wǎng)絡(luò)。
1.2 概要設(shè)計
移動節(jié)點構(gòu)成了網(wǎng)絡(luò)的主體。每個節(jié)點既是終端節(jié)點又是路由中轉(zhuǎn)節(jié)點。每個節(jié)點通過無線方式與網(wǎng)絡(luò)中的其他節(jié)點通信。
1)功能設(shè)計
網(wǎng)絡(luò)的構(gòu)建和變動對終端節(jié)點透明,網(wǎng)絡(luò)具有自組織性。網(wǎng)絡(luò)提供任意節(jié)點之間,端到端的透明數(shù)據(jù)傳輸。如圖1。
2)體系結(jié)構(gòu)設(shè)計
體系結(jié)構(gòu)的設(shè)計主要包括網(wǎng)絡(luò)拓撲結(jié)構(gòu)設(shè)計和協(xié)議棧結(jié)構(gòu)設(shè)計。
根據(jù)需求分析可知,要設(shè)計的目標MANET,規(guī)模小,都在433MHz頻段下通信。故此,目標MANET的網(wǎng)絡(luò)拓撲結(jié)構(gòu)使用平面結(jié)構(gòu)。根據(jù)MANET自身的特點,可以將433MHz下MANET的協(xié)議棧劃分為五層。如圖2所示。
3)MAC協(xié)議選擇
載波監(jiān)聽多址訪問(CSMA)協(xié)議,是一個優(yōu)秀異步競爭協(xié)議。對MANET的特點有很好地適應。故此,在MAC層采用CSMA/CA協(xié)議實現(xiàn)。
4)路由算法選擇
常見的MANET路由算法有AODV、DSR、TORA 。文獻[1]仿真模擬了三種路由算法,得知在MANET中,DSR 算法表現(xiàn)了較高的性能。此外,DSR路由算法簡潔、穩(wěn)定且容易優(yōu)化和移植,適合小型網(wǎng)絡(luò)。 因此,要設(shè)計的MANET可以基于DSR路由算法實現(xiàn)。
2 節(jié)點詳情設(shè)計
統(tǒng)籌考慮節(jié)點自身特征和工業(yè)應用環(huán)境,節(jié)點的詳情設(shè)計需要從以下幾個方面出發(fā):穩(wěn)定、輕量、可擴展、能耗低、低成本等。
2.1 節(jié)點架構(gòu)設(shè)計
節(jié)點的主要組成部分包括:處理器,電源及供電模塊,無線收發(fā)模塊,電量檢測模塊,溫度傳感器,控制模塊,外部存儲模塊,通信接口,狀態(tài)提示模塊。
2.2 核心器件選型
根據(jù)節(jié)點的構(gòu)架設(shè)計框圖,可知處理器芯片和無線收發(fā)芯片對節(jié)點整體的功能實現(xiàn)和性能表現(xiàn)啟到?jīng)Q定性的作用。
1)無線收發(fā)芯片。Nordic VLSI 公司的射頻芯片nRF905,可工作于433MHz頻段;封裝體積(5×5mm)小;電路集成度高,只需要加少量外圍電路就可以工作;通過SPI總線與處理器通信,傳輸速度快、誤碼率低;有多種工作模式,功率可調(diào),能效高;功能集成度高,對對MAC層協(xié)議支持好,芯片普及率高價格合適。因此采用nRF905作為無線收發(fā)模塊的核心芯片。
2)對于處理器芯片的選擇需要以下幾個方面:運行速率、存儲容量大小,集成度,功耗高低,體積大小,價格等。綜合節(jié)點具體需求,最終選STC12C5A60S2_ PDIP-40作為處理器芯片。STC12C5A60S2是款增強型的C51內(nèi)核單片機。完全兼容8051 系列單片,并且速度快,能耗低。
3)其他芯片。其他模塊的芯片對節(jié)點的整體性能影響不大。參考常見方案其他模塊的核心芯片的最終選擇為:通信接口采用MAX232芯片進行串口電平轉(zhuǎn)換。溫度傳感器采用單總線的DS18B20傳感器。狀態(tài)提示模塊,使用蜂鳴器和led指示燈,支持串行鏈接的12864屏幕??刂颇K采用工業(yè)級的5v直流繼電器。
2.3 硬件整體實現(xiàn)
結(jié)合所選擇的核心元器件可將節(jié)點架構(gòu)設(shè)計圖3進一步細化。根據(jù)芯片技術(shù)手冊進行電路原理圖設(shè)計。根據(jù)電路原理圖進行電路板的設(shè)計。為了減少數(shù)字信號對無線收發(fā)模塊的干擾,需要將電路板中的模擬地和數(shù)字地隔離,也要將無線收發(fā)模塊與主模塊的電路板分離設(shè)計,通過插槽連接。
3 軟件設(shè)計與實現(xiàn)
3.1 MAC協(xié)議的軟件實現(xiàn)
1)節(jié)點實時檢測無線信道上的載波信號,當信道上沒有載波信號的時間持續(xù)一定的長度時,就看做是信道空閑。這個時長被稱為DIFS(分散幀空間)。若節(jié)點有發(fā)送信號的要求,需要滿足信道空閑的條件,不能滿足就繼續(xù)等待,直到信道空閑為止。
載波檢測協(xié)議被集成在了nRF905芯片內(nèi)部,使得nRF905 CSMA/CA 有了很好的結(jié)合。nRF905專用的芯片引腳CD用于載波檢測。CD 引腳出現(xiàn)高電平的時候,說明同頻率的信道正在被使用。載波檢測的實現(xiàn)函數(shù)如下:
bool CSMA(void)
{
將nRF905 設(shè)置為接收模式;
while (檢測預設(shè)的時間值)
{
if(CD 出現(xiàn)高電平)
return ture;
檢測預設(shè)的時間值減一;
}
return false;
}
2)退避算法
在同一通信環(huán)境中,同一時刻可能有多個節(jié)點在等待著信道空閑狀態(tài)的滿足,因此當信道從占用狀態(tài)轉(zhuǎn)變到到空閑狀態(tài)的時刻,最有可能發(fā)生沖突。此時節(jié)點還應該有退避等待策略。
“指數(shù)退避”策略是退避等待的常用算法。在該算法中:節(jié)點第一次檢測到當信道從占用狀態(tài)轉(zhuǎn)變到到空閑狀態(tài)時初始化一個計數(shù)器。然后退避一段時間,繼續(xù)檢測信道狀態(tài)。若信道是空閑狀態(tài)就將計數(shù)器減一,否則不更改計數(shù)器的值。如此往復知道知道計數(shù)器的值為零,就得到了信道的使用權(quán)。在往復的過程中,每次退避的時長與循環(huán)次數(shù)的二進制指數(shù)相關(guān)。
“指數(shù)退避”算法的實現(xiàn)流程,如圖4所示。NB表示退避次數(shù),CW表示嘗試次數(shù),BE表示后退指數(shù)。根據(jù)測量可知DIFS的值應設(shè)為250us。根據(jù)nRF905的收發(fā)模式切換時間可,將BE初始值設(shè)為2,上限值4。
3.2 DSR路由算法
1)DSR路由算法實現(xiàn)過程
DSR算法實現(xiàn)了源路由的機制。源節(jié)點向目的節(jié)點發(fā)送數(shù)據(jù)包時,需要在數(shù)據(jù)包的頭部添加完整的路由信息。路由發(fā)現(xiàn)和路由維護是節(jié)點獲得和維護路由信息的兩個主要過程。
①路由發(fā)現(xiàn)過程
當源節(jié)點有數(shù)據(jù)包發(fā)送需要時,首先會查看自己的路由表內(nèi)有沒有到目的節(jié)點的信息,若有就直接使用,否則發(fā)起一次路由發(fā)現(xiàn)過程。源節(jié)點以泛洪廣播的方式發(fā)送路由請求(Route Request ,RREQ)包。路由請求包的格式如表1。其中Sid表示源節(jié)點的地址,Did表示目的節(jié)點的地址,Route record用來記錄該包被轉(zhuǎn)發(fā)的路徑,Request id記錄源節(jié)點發(fā)出的RREQ包的序列號。
②路由維護過程
如果網(wǎng)絡(luò)中的某節(jié)點知道自己發(fā)送或者轉(zhuǎn)發(fā)的一個源路由數(shù)據(jù)包沒有成功交付到下一跳時,則認為鏈路中斷。該節(jié)點會向源節(jié)點反向發(fā)一個路由出錯信息 RERR(Route Error)包。路徑上的節(jié)點在收到RERR包后,會將相應的路由信息從路由表中刪除。此外源節(jié)點可以按照已知路由向目的節(jié)點發(fā)送一個應答請求包。目的節(jié)點收到應答請求包后向源節(jié)點回復一個應答確認包,使得源節(jié)點認為相應的路由信息可用。如果在一定時間內(nèi),源節(jié)點沒有收到相應的應答確認包,則認為相應的路由信息不可用。然后刪除對應的路由信息,重新發(fā)起路由發(fā)現(xiàn)過程。
2)DSR路由算法的改進
結(jié)合前文概要設(shè)計和DSR的特點,為了進一步提高DSR路由算法的效率,從以下幾個方面進行DSR的優(yōu)化和改進。
①網(wǎng)絡(luò)中任意兩節(jié)點之間最大路由跳數(shù)設(shè)置為 3跳,即每條路徑上最大包含5個節(jié)點。為了避免網(wǎng)絡(luò)廣播包在網(wǎng)絡(luò)中被無限的轉(zhuǎn)發(fā),為每一個網(wǎng)絡(luò)包設(shè)置一個生存時間值(Time To Live,TTL)。
②為減少路由發(fā)現(xiàn)過程的發(fā)起次數(shù),在中間節(jié)點在獲得路由應答包后,可以提取其中的路由信息,得知本節(jié)點到源節(jié)點和目的節(jié)點了路由。
③節(jié)點路由表中的記錄條數(shù)最多為10條。當路由表已經(jīng)存滿而新的記錄又需要記錄時,則按照FIFO策略淘汰舊記錄。
④為應對網(wǎng)絡(luò)被分隔的情形,防止一些節(jié)點頻繁的發(fā)送路由請求包。建立等待路由應答表,記錄源節(jié)點向目的節(jié)點發(fā)送路由請求包后,等待路由回復包的狀態(tài)。
3.3節(jié)點中軟件的程序?qū)崿F(xiàn)
網(wǎng)絡(luò)中的節(jié)點既是終端節(jié)點,又是路由節(jié)點,同時還可以通過串口與其他設(shè)備交互。因此節(jié)點中運行的程序是多任務和事件驅(qū)動的。根據(jù)TC12C5A60S2的計算和存儲能力,通用的操作系統(tǒng)并不適合加載到芯片上。為此,節(jié)點中的程序需要實現(xiàn)多任務的調(diào)度和事件的實時響應。這些的實現(xiàn)離不開各種任務表和數(shù)據(jù)緩沖區(qū),以及狀態(tài)表的支持。
為在計算和存儲能力有限的TC12C5A60S2概要設(shè)計中的網(wǎng)絡(luò)全協(xié)議棧功能,自定義的網(wǎng)絡(luò)包格式?jīng)]有完全遵守標準的DSR協(xié)議規(guī)約。根據(jù)上文中在433MHz下MANET的設(shè)計要求,對DSR的網(wǎng)絡(luò)包進行了個性化定義和輕量級的優(yōu)化。
網(wǎng)路包包括:路由請求包、路由應答包、源路由包和路由出錯信息包等。
各類狀態(tài)表包括:路由表、SID_QId快查表、nRF收緩沖區(qū)、待發(fā)送任務表、等待路由應答表和串口收緩沖區(qū)等
整體軟件設(shè)計中,采用全協(xié)議棧的緩沖區(qū)和狀態(tài)表共享,實現(xiàn)了基于事件的實時響應和短作業(yè)優(yōu)先的任務調(diào)度策略。節(jié)點主程序流程,如圖5所示。部分處理函數(shù)的偽代碼實現(xiàn),見附錄。
4驗證分析
節(jié)點的通信距離對網(wǎng)絡(luò)的整體性能會有很大的影響。在組網(wǎng)測試之前,首先進行的是點對點的數(shù)據(jù)收發(fā)測試,用以獲得節(jié)點的有效通信距離。考慮到對通信影響的諸多因素,實驗設(shè)置了多種場景進行點對點的通信距離測試。測試結(jié)果如表2。
PC和網(wǎng)絡(luò)中的節(jié)點通過異步通信串口鏈接。在PC中使用串口調(diào)試助手,向節(jié)點發(fā)送數(shù)據(jù),進行連續(xù)數(shù)據(jù)傳輸試驗測試。測試網(wǎng)絡(luò)吞吐率:在工業(yè)生產(chǎn)環(huán)境中。測試1個節(jié)點至10節(jié)點網(wǎng)絡(luò)中點對點,1跳、2跳、3跳情況下的吞吐率。將網(wǎng)絡(luò)包的大小設(shè)置為32字節(jié)。結(jié)果如表3。
網(wǎng)絡(luò)中點對點的數(shù)據(jù)傳輸吞吐率約為16 kb/s 。隨著網(wǎng)絡(luò)規(guī)模的增多網(wǎng)絡(luò)的吞吐率會下降。最終趨于穩(wěn)定。10節(jié)點,3跳路由的網(wǎng)絡(luò)數(shù)據(jù)傳輸吞吐率數(shù)據(jù)傳輸吞吐率5 kb/s。從最終的測試結(jié)果可知,設(shè)計實現(xiàn)的MANET功能完善性能優(yōu)秀,有廣泛的應用前景。達到了預期目標。
參考文獻:
[1] 張簡麗, 許洪光. 基于DSR的路由協(xié)議綜述[J]. 通信技術(shù), 2009,42(1): 137-139.
[2] Jubin J, Tornow J D. The DARPA packet radio network protocols[J]. Proceeding of the IEEE, 1987,75(1): 21-32.
[3] Tamilarasi,Muthu,Palanuivelu,T.G. A strategy to reduce the control packet load of MANETs withi bidirectional links using DSR[J]. International Journal of Network Management, 2008,18(4):365-379.
[4] 夏輝, 賈智平, 張志勇. 移動Ad Hoc網(wǎng)絡(luò)中基于鏈路穩(wěn)定性預測的組播路由協(xié)議[J]. 計算機學報, 2013, 36(5): 926-936.
[5] 吳磊, 皮智. 一種改進型DSR-I路由協(xié)議的設(shè)計與仿真[J]. 計算機技術(shù)與發(fā)展, 2016, 26(2): 17-21.
[6] 李波波,龍昭華. 基于蟻群優(yōu)化的Ad Hoc網(wǎng)絡(luò)Qos路由[J]. 計算機工程與設(shè)計, 2016, 37(1): 13-16.
[7] 孟利民,宋文波. 移動自組網(wǎng)路由協(xié)議研究[M]. 北京: 人民郵電出版社, 2012.
[8] 王輝. NS2網(wǎng)絡(luò)模擬器的原理和應用[M]. 西安: 西北工業(yè)大學出版社, 2008.
[9] Ahmad Shakeel,Awand Irfan. Performance analysis of DSR & extended DSR protocols[C].Proceedings-IEEE Military Communications Conference MILCOM,2007.
[10] Steven W,Jason D,Michael B.A Protocol for Adaptive Multicast Transmission in Packet Radio Networks[C]. The 2010 Military Communications Conference, 2010.