李 瀟 凌志浩,2 左 蕓
(華東理工大學(xué)信息科學(xué)與工程學(xué)院1,上海 200237;化工過程先進控制和優(yōu)化技術(shù)教育部重點實驗室2,上海 200237)
在工業(yè)環(huán)境應(yīng)用過程中,無線傳感器網(wǎng)絡(luò)技術(shù)具有使工業(yè)自動化系統(tǒng)配置更方便、維護成本更低、數(shù)據(jù)傳輸速率更高等特點。但由于網(wǎng)絡(luò)設(shè)備電源能量受限,必須優(yōu)先考慮網(wǎng)絡(luò)設(shè)備分布、數(shù)據(jù)通信方式等能耗[1-2]。無線MESH網(wǎng)絡(luò)具有自形成、自愈性和自組織性,是一種由MESH路由組成主干網(wǎng)的多跳無線網(wǎng)絡(luò)。路由器的移動性小,用來實現(xiàn)路由和配置決策;移動性終端設(shè)備通過網(wǎng)絡(luò)基礎(chǔ)設(shè)施接入網(wǎng)絡(luò)[3]。當前應(yīng)用廣泛的 ZigBee協(xié)議和新提出的 WirelessHART、ISP100、WIA-PA三種主流協(xié)議都支持 MESH結(jié)構(gòu)[4-6]。關(guān)于這方面的應(yīng)用,研究人員已經(jīng)取得一定的研究成果[7]。可見,在工業(yè)環(huán)境中將逐步實現(xiàn)MESH結(jié)構(gòu)的應(yīng)用。
本文首先介紹無線MESH網(wǎng)絡(luò)分類及MESH結(jié)構(gòu)性質(zhì),繼而基于通信網(wǎng)絡(luò)仿真平臺OMNeT++搭建一種MESH結(jié)構(gòu)無線傳感器模型。同時,采用最經(jīng)典的最短路徑算法確定路由路徑,以實現(xiàn)網(wǎng)絡(luò)中數(shù)據(jù)的可靠通信,并對得到的試驗結(jié)果進行總結(jié)分析。
無線網(wǎng)絡(luò)的拓撲結(jié)構(gòu)有多種組態(tài)方式。網(wǎng)絡(luò)基礎(chǔ)拓撲結(jié)構(gòu)分為星型(STAR)、樹型(TREE)、網(wǎng)狀型(MESH)、總線型(BUS)和環(huán)型(RING)等。實際應(yīng)用中,大多采用幾種拓撲相結(jié)合的布網(wǎng)方式。
MESH結(jié)構(gòu)是一種相對自由的網(wǎng)絡(luò)拓撲。由于MESH網(wǎng)絡(luò)結(jié)構(gòu)可實現(xiàn)多路由路徑,使網(wǎng)絡(luò)具有較強的容錯能力和魯棒性。當采用MESH結(jié)構(gòu)時,盡管各個節(jié)點處于對等地位,但可指定某個節(jié)點為簇首節(jié)點,以執(zhí)行附加功能。當簇首節(jié)點因故障、能量耗盡而失效時,可以立刻選擇另一個節(jié)點補充并接管原簇首,執(zhí)行原簇首所實現(xiàn)的功能。
無線MESH網(wǎng)絡(luò)具有分布式網(wǎng)絡(luò)所提供的冗余機制和重新路由功能。通常,無線MESH網(wǎng)絡(luò)由MESH路由和MESH客戶端組成。該網(wǎng)絡(luò)允許每個節(jié)點都發(fā)送和接收信號,終端設(shè)備之間自動連成網(wǎng)狀結(jié)構(gòu),設(shè)備節(jié)點具有自動路由能力。添加或移動設(shè)備時,網(wǎng)絡(luò)能夠自動發(fā)現(xiàn)拓撲變化,并自動調(diào)整通信路由,以獲取最有效的傳輸路徑。無線MESH網(wǎng)絡(luò)的網(wǎng)絡(luò)拓撲共有骨干網(wǎng)型MESH、客戶端型MESH、混合型MESH三種結(jié)構(gòu)。
1.1.1 骨干網(wǎng)型MESH結(jié)構(gòu)
通信網(wǎng)絡(luò)中,MESH路由器通過無線技術(shù)相連,組成具有自動配置、自我愈合能力的網(wǎng)絡(luò)骨干。它們之間以點對點或多次跳轉(zhuǎn)的通信方式相連,形成MESH結(jié)構(gòu)。網(wǎng)絡(luò)中一些MESH路由與上層網(wǎng)絡(luò)連接,使整個骨干網(wǎng)絡(luò)與上層網(wǎng)絡(luò)連通。MESH路由器采用相同無線技術(shù)的客戶端,可以直接與骨干網(wǎng)絡(luò)中的路由相連,從而接入上層網(wǎng)絡(luò)。
1.1.2 客戶端型MESH結(jié)構(gòu)
客戶端型MESH結(jié)構(gòu)網(wǎng)絡(luò)采用多點對多點的通信方式,由使用相同無線技術(shù)的客戶端直接互聯(lián)而成。與星型網(wǎng)絡(luò)相比,客戶端型MESH結(jié)構(gòu)沒有采用銜接節(jié)點,因此每個客戶端設(shè)備必須具有自動配置和路由功能。這樣既可以實現(xiàn)相鄰節(jié)點之間的直接通信,又可保證不相鄰節(jié)點間通過多跳方式完成數(shù)據(jù)通信。
1.1.3 混合型MESH結(jié)構(gòu)
混合型MESH結(jié)構(gòu)網(wǎng)絡(luò)是以上兩種結(jié)構(gòu)網(wǎng)絡(luò)的合理結(jié)合,既有骨干網(wǎng)絡(luò)、客戶端網(wǎng)絡(luò),又在客戶端和路由器之間形成MESH結(jié)構(gòu)的網(wǎng)絡(luò)?;旌闲蚆ESH結(jié)構(gòu)如圖1所示。
圖1 混合型MESH結(jié)構(gòu)Fig.1 Hybrid MESH structure
圖1中,實心圓表示 MESH路由,空心圓表示MESH客戶端。
在MESH結(jié)構(gòu)無線傳感器網(wǎng)絡(luò)中,每個節(jié)點可以使用的鏈路數(shù)較多,這樣能夠避免網(wǎng)絡(luò)“接入點”的繁重工作量,可從根本上解決網(wǎng)絡(luò)中特殊節(jié)點能量消耗過快以及后續(xù)相關(guān)問題。
每個節(jié)點都具有選路功能,一旦某條鏈路故障,節(jié)點可自動跳轉(zhuǎn)到其他可選鏈路,從而提高了網(wǎng)絡(luò)的可靠性。多條可選路徑可減輕服務(wù)執(zhí)行時發(fā)生碰撞的可能性,減少碰撞造成的影響。與星型網(wǎng)絡(luò)相比,MESH結(jié)構(gòu)網(wǎng)使無線鏈路設(shè)計更簡化、可擴展性更高、維護更簡單。
無線傳輸之間互相影響的固有特性所導(dǎo)致的同一信道相鄰節(jié)點間的干擾,以及基于競爭型MAC層接入機制所導(dǎo)致的多跳傳輸?shù)牟淮_定性,是保證無線MESH網(wǎng)絡(luò)實時可靠傳輸需要解決的關(guān)鍵問題。同時,工業(yè)現(xiàn)場環(huán)境的復(fù)雜性和無線傳輸?shù)娜臻g性,使得無線信號在傳輸?shù)倪^程中常常發(fā)生衰變、中斷以及出現(xiàn)各種缺陷,如頻散、多徑時延、干擾和安全相關(guān)問題。因此,工業(yè)無線MESH傳感器網(wǎng)絡(luò)必須解決路由路徑的可靠性、實時性和安全性問題。
考慮到工業(yè)環(huán)境中靜態(tài)設(shè)備對可靠性和網(wǎng)絡(luò)容量的要求,本文選擇混合型MESH結(jié)構(gòu)網(wǎng)絡(luò)作為模型仿真網(wǎng)絡(luò)。
基于C++對象化網(wǎng)絡(luò)建模實驗床(objective modular network testbed in C++,OMNeT++)是一款開源的、面向?qū)ο蟮碾x散事件網(wǎng)絡(luò)模擬器。它是一種用來構(gòu)架實際系統(tǒng)結(jié)構(gòu)的有效工具。其主要特征是分級嵌套模塊和模塊之間以消息的方式進行通信和拓撲語言描述。
在OMNeT++平臺中搭建的網(wǎng)絡(luò)模型由相互之間以消息方式通信的分級嵌套模塊組成[8]。其中,模塊嵌套沒有深度限制,模塊間通過交換消息建立通信。消息代表實際網(wǎng)絡(luò)中的幀、信息包、任務(wù)等可移動實體。消息可以直接發(fā)送到目的地,也可以通過門和鏈接沿預(yù)定義的路徑傳送,傳遞過程對用戶是透明可見的。
在OMNeT++搭建的網(wǎng)絡(luò)模型中,鏈接可以被賦予傳播延時、比特誤差率和數(shù)據(jù)速率三個參數(shù)。傳播延時是由于消息通過信道傳輸而引起的到達時間的延遲量。比特誤差率指定了比特數(shù)據(jù)在傳輸時發(fā)生錯誤的概率。當設(shè)置了一定數(shù)據(jù)速率時,“消息發(fā)送”對應(yīng)于消息的第一個比特的傳送,“消息到達”對應(yīng)于最后一個比特的接收。但數(shù)據(jù)速率在令牌環(huán)協(xié)議和光纖分布式數(shù)據(jù)接口協(xié)議中并不適用。
在搭建仿真模型時,首先創(chuàng)建描述網(wǎng)絡(luò)節(jié)點和相互鏈接的拓撲文件(.ned),然后編寫C++代碼實現(xiàn)模塊功能(.cc),從而完成對通信網(wǎng)絡(luò)的模擬檢測[9]。
本文中搭建的通信網(wǎng)絡(luò)模型僅包括ISO七層網(wǎng)絡(luò)協(xié)議中的三層:物理層、數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層。仿真網(wǎng)絡(luò)由網(wǎng)關(guān)、路由、終端節(jié)點這三種設(shè)備子模塊組成。設(shè)備模塊功能由應(yīng)用層、路由層、物理層子模塊實現(xiàn)。仿真網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 仿真網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Structure of the simulation network
2.2.1 設(shè)備模塊功能
通信網(wǎng)絡(luò)包含網(wǎng)關(guān)、路由器和終端節(jié)點三種設(shè)備。網(wǎng)關(guān)作為網(wǎng)絡(luò)模型中的上層通信設(shè)備,中間層是路由器,終端節(jié)點作為網(wǎng)絡(luò)的通信網(wǎng)絡(luò)終端。網(wǎng)關(guān)與路由器之間為星型連接,路由器與終端設(shè)備之間形成混合型MESH結(jié)構(gòu)。
網(wǎng)關(guān)將本地網(wǎng)絡(luò)與其他工業(yè)網(wǎng)絡(luò)設(shè)備相連接,由有線電源供電,實現(xiàn)協(xié)議轉(zhuǎn)換、數(shù)據(jù)映射、對消息進行本地處理等功能。路由設(shè)備是全功能節(jié)點,由有線電源供電,連接現(xiàn)場終端設(shè)備和網(wǎng)關(guān),具有優(yōu)化網(wǎng)絡(luò)、減少網(wǎng)關(guān)負擔、延長現(xiàn)場終端節(jié)點壽命的作用。終端節(jié)點為精簡功能設(shè)備,在網(wǎng)絡(luò)覆蓋范圍內(nèi)隨機分布,具有獲知自身在本地網(wǎng)絡(luò)的相對位置的能力,負責實現(xiàn)工業(yè)現(xiàn)場數(shù)據(jù)采集等功能。
通信網(wǎng)絡(luò)運行時,終端節(jié)點將在工業(yè)現(xiàn)場中采集到的數(shù)據(jù)發(fā)送到所屬路由設(shè)備進行本地處理;路由設(shè)備對數(shù)據(jù)進行分析,將整合結(jié)果上傳至網(wǎng)關(guān)或發(fā)送請求給該數(shù)據(jù)的終端節(jié)點。上述過程中,通信網(wǎng)絡(luò)通過由路由算法選擇的路由路徑來完成數(shù)據(jù)傳輸。
2.2.2 功能實現(xiàn)模塊
設(shè)備模塊內(nèi)部三個子模塊實現(xiàn)設(shè)備相應(yīng)的應(yīng)用層、路由層、物理層功能,子模塊相互之間通過“門”連接。
應(yīng)用層模塊用于設(shè)定設(shè)備通信地址、數(shù)據(jù)包發(fā)送時間間隔、數(shù)據(jù)包的長度,實現(xiàn)確定數(shù)據(jù)傳輸?shù)哪繕斯?jié)點、產(chǎn)生或接收數(shù)據(jù)包等功能。
路由層模塊用于設(shè)定終端節(jié)點和路由設(shè)備通信距離、數(shù)據(jù)傳輸速率、傳輸延時,建立網(wǎng)絡(luò)設(shè)備與鄰近設(shè)備之間的連接,并完成數(shù)據(jù)路由路徑的選擇任務(wù)。
物理層模塊用于設(shè)定仿真設(shè)備的物理框架結(jié)構(gòu),如發(fā)射接收數(shù)據(jù)端口,實現(xiàn)設(shè)備物理層的數(shù)據(jù)接收、發(fā)送、丟棄等相關(guān)控制。
Dijkstra算法是一種貪心算法,用來解決帶權(quán)圖(權(quán)值為非負數(shù))的單源最短路徑問題,實現(xiàn)尋找從某一源節(jié)點發(fā)送到所有其他節(jié)點的最短路徑的功能。
Dijkstra算法的輸入包含一個有權(quán)重的有向圖G和G中的一個源節(jié)點vi。以V表示G中所有節(jié)點的集合。每一個有向圖中的邊都是由兩個節(jié)點所形成的有序元素對。(u,v)表示從節(jié)點u到節(jié)點v有路徑相連。以E表示所有邊的集合,而邊的權(quán)重則由權(quán)重函數(shù)W:E→[0,∞]定義。因此,W(u,v)就是從節(jié)點 u到節(jié)點v的非負權(quán)。任意兩個節(jié)點之間路徑的權(quán),就是該路徑上所有邊的權(quán)值總和。也就是說,如果路徑(u,v)由邊 e0,e1,…,ek-1組成,那么 W(u,v)定義如下:
已知節(jié)點vi及vj,通過Dijkstra算法可以找到vi到vj的最小權(quán)值路徑,也稱為vi到vj的最短路徑。
對于每一個節(jié)點vi,Dijkstra算法將記錄ki、di和pi三條信息。這三條信息的含義具體說明如下。
①ki是一個布爾值型的標記,它表示到源節(jié)點vi的最短路徑已知。
②di是從vi到vj的已知的最短路徑長度。算法開始時,最短路徑是未知的,di也是不確定的。在算法執(zhí)行期間,算法檢查候選路徑并修改di的值。
③pi是源節(jié)點的前驅(qū)。
在每次執(zhí)行過程中,只有一個節(jié)點的ki設(shè)置為true。在運行O(|V|)次之后算法終止,即可找出當前源節(jié)點vi到vj所有的最短路徑。
本文中,網(wǎng)絡(luò)設(shè)備分布及設(shè)備間的鏈接形成有向圖G。初始化時,每個設(shè)備分別充當源節(jié)點vi,將所有設(shè)備間連接權(quán)值都設(shè)置為1,以跳數(shù)選擇路徑,即上述算法得出的路由路徑為最小跳數(shù)路徑。
采用OMNeT++通信網(wǎng)絡(luò)仿真平臺搭建的通信網(wǎng)絡(luò)模型包含一個網(wǎng)關(guān)設(shè)備、三個路由設(shè)備和60個終端節(jié)點設(shè)備,數(shù)據(jù)傳輸路徑選擇經(jīng)典的最短路徑算法實現(xiàn)。網(wǎng)絡(luò)中數(shù)據(jù)傳輸速率為106bit/s,信道延時為0.01 ms,數(shù)據(jù)包長度為 1024 B。
按源節(jié)點、目的節(jié)點的屬性不同,網(wǎng)絡(luò)通信傳輸分為以下四種數(shù)據(jù)傳輸類型:①工業(yè)現(xiàn)場的終端設(shè)備將采集到的數(shù)據(jù)傳輸?shù)铰酚稍O(shè)備;②路由設(shè)備根據(jù)數(shù)據(jù)包中目的節(jié)點信息確定是否轉(zhuǎn)發(fā)至其他路由設(shè)備或經(jīng)網(wǎng)關(guān)發(fā)送至其他網(wǎng)域;③路由設(shè)備之間必要信息的相互備份;④路由設(shè)備將經(jīng)過處理整合的數(shù)據(jù)上報網(wǎng)關(guān)。混合型MESH結(jié)構(gòu)包含前三種傳輸方式。
在網(wǎng)絡(luò)模型中,定義網(wǎng)關(guān)設(shè)備、路由設(shè)備在網(wǎng)絡(luò)中的位置固定,終端節(jié)點設(shè)備在整個布網(wǎng)范圍內(nèi)隨機分布。
在網(wǎng)絡(luò)初始化時,需要做以下工作:建立網(wǎng)關(guān)與路由設(shè)備間、各路由設(shè)備間的連接;路由設(shè)備根據(jù)自身的通信范圍,搜索鄰近終端設(shè)備并建立連接,同時形成路由表;終端節(jié)點設(shè)備搜索分布在通信范圍內(nèi)的鄰近終端設(shè)備并建立連接,形成路由表。
在通信仿真過程中,源節(jié)點在可選地址中隨機產(chǎn)生數(shù)據(jù)包的目的地址,然后根據(jù)存儲的路由表信息確定數(shù)據(jù)包的傳輸路徑,最后將數(shù)據(jù)包按照選定的路徑傳輸至目的地址。
采集仿真過程的前3200個事件作為分析對象,共完成282個分源節(jié)點和目的節(jié)點間的數(shù)據(jù)包傳輸。數(shù)據(jù)包傳輸信息和傳輸跳數(shù)信息分別如表1、表2所示。
表1 數(shù)據(jù)包傳輸信息Tab.1 Transmission information of the data packet
表2 傳輸跳數(shù)信息Tab.2 Information of transmission hops
由表1和表2可以看出,仿真網(wǎng)絡(luò)隨機產(chǎn)生的數(shù)據(jù)包被均勻地傳輸?shù)礁鱾€路由設(shè)備,且傳輸過程絕大多數(shù)在兩跳之內(nèi)完成。
數(shù)據(jù)包路由路徑如表3所示。
表3 數(shù)據(jù)包路由路徑Tab.3 Routing paths of data packets
在采樣過程中,各數(shù)據(jù)傳輸各自沿上述路徑完成2、4、3、2次數(shù)據(jù)傳遞,驗證了網(wǎng)絡(luò)中路徑傳輸?shù)目煽啃院痛_定性。
本文針對工業(yè)環(huán)境對無線傳感器網(wǎng)絡(luò)的特殊需求,對比現(xiàn)有的無線通信協(xié)議,選擇應(yīng)用靈活的OMNeT++通信網(wǎng)絡(luò)仿真平臺,成功搭建了混合MESH結(jié)構(gòu)無線傳感器網(wǎng)絡(luò)模型。同時,采用經(jīng)典的最短路徑算法搜索源/目的節(jié)點數(shù)據(jù)路由路徑,實現(xiàn)了路由路徑的確定性。
[1]Hu Zhihua,Li Baochun.On the fundamental capacity and lifetime limits of energy-constrained wireless sensor networks[C]//Realtime and Embedded Technology and Applications Symposium,2004:2-9.
[2]牟連佳,牟連泳.無線傳感器網(wǎng)絡(luò)及其在工業(yè)領(lǐng)域應(yīng)用研究[J].工業(yè)控制計算機,2005,18(1):3-5.
[3]Akyldiz I F,Wang Xudong,Wang Weilin.A survey on wireless mesh networks[J].Computer Networks,2005,4(4):445-487.
[4]Li Pengfei,Li Jiakun,Nie Luhua,et al.Research and application of ZigBee protocol stack[C]∥Measuring Technology and Mechatronics Automation,2010,6(2):1031-1034.
[5]Zhao Jingdong,Wang Qin,Yu Feng.A route-based scheduling in wireless multi-hop mesh networks for collision avoidance[C]∥Wireless Communications,2009:1-4.
[6]Anna N,F(xiàn)redrik H,Stig P,et al.When HART goes wireless:understanding and implementing the WirelessHART standard[C]∥Emerging Techologies and Factory Automation,2008:899-907.
[7]Fan Jing,Yin Shitang,Wu Qiong,et al.Study on refined deployment of wireless mesh sensor network[C]∥Wireless Communications Networking and Mobile Computing,2010:1-5.
[8]石為人,黃河,鮮曉東,等.OMNeT++與NS2在無線傳感器網(wǎng)絡(luò)仿真中的比較研究[J].計算機科學(xué),2008(10):53-57.