高承志 范賢學(xué)
?
基于OMNeT++的無線傳感器網(wǎng)絡(luò)通信協(xié)議仿真
高承志 范賢學(xué)
(中國電子科技集團(tuán)公司第二十八研究所)
采用OMNeT++軟件構(gòu)建了基于ZigBee/IEEE 802.15.4標(biāo)準(zhǔn)的無線傳感器網(wǎng)絡(luò)通信協(xié)議仿真模型,并仿真驗(yàn)證了關(guān)鍵參數(shù)(從設(shè)備的數(shù)量、BO和SO的取值、是否關(guān)閉GTS模式下的ACK等)對平均端到端時(shí)延和平均丟幀率的影響。
OMNeT++;無線傳感器網(wǎng)絡(luò);通信協(xié)議;ZigBee;IEEE 802.15.4
隨著電子信息和無線通信技術(shù)的飛速發(fā)展,無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSN)應(yīng)用前景越來越廣闊,在許多重要領(lǐng)域都有著潛在的使用價(jià)值[1]。通信協(xié)議負(fù)責(zé)維護(hù)節(jié)點(diǎn)的互聯(lián)、實(shí)現(xiàn)信息傳輸,是無線傳感器網(wǎng)絡(luò)正常工作的關(guān)鍵性技術(shù)[2]。OMNeT++是面向?qū)ο蟮碾x散事件仿真工具,具有強(qiáng)大的圖形用戶界面接口和嵌入式仿真內(nèi)核,可以用來仿真任何離散事件的系統(tǒng),能夠建立目前幾乎所有網(wǎng)絡(luò)對象的基本模型之間的互聯(lián),并且使復(fù)雜的網(wǎng)絡(luò)通信和拓?fù)浣Y(jié)構(gòu)得到簡單而正確的仿真[3]。本文基于OMNeT++構(gòu)建了無線傳感器網(wǎng)絡(luò)通信協(xié)議仿真模型,并對關(guān)鍵指標(biāo)進(jìn)行分析。
ZigBee技術(shù)是一種新興的低成本的用于無線傳感器網(wǎng)絡(luò)的通信協(xié)議,能最大限度地節(jié)省網(wǎng)絡(luò)中的能量,可隨時(shí)連接大量節(jié)點(diǎn),具有較好的容錯(cuò)性和魯棒性,已逐漸成為無線傳感器網(wǎng)絡(luò)的首選通信協(xié)議。ZigBee協(xié)議的結(jié)構(gòu)主要由物理層(port physical layer,PHY)、媒體接入控制層(media access control,MAC)、網(wǎng)絡(luò)層和應(yīng)用層組成。其中PHY和MAC層均采用IEEE 802.15.4標(biāo)準(zhǔn),而網(wǎng)絡(luò)層和應(yīng)用層的標(biāo)準(zhǔn)由ZigBee聯(lián)盟制定,各層之間均有數(shù)據(jù)服務(wù)接口和管理實(shí)體接口。
本文仿真過程中采用的軟件為OMNeT++ 4.6,建立的網(wǎng)絡(luò)模型基于Inetmanet Framework中的WPAN星狀網(wǎng)絡(luò)來實(shí)現(xiàn)。該模型較全面地實(shí)現(xiàn)了IEEE 802.15.4 MAC和PHY,并可方便地?cái)U(kuò)展為基于ZigBee技術(shù)的無線傳感器網(wǎng)絡(luò),在當(dāng)前的無線傳感器網(wǎng)絡(luò)協(xié)議棧仿真研究中被廣泛采用[4]。典型仿真運(yùn)行場景如圖1所示。
圖1典型仿真運(yùn)行場景
網(wǎng)絡(luò)模型采用IEEE802154StarNet,其中host[0]為網(wǎng)絡(luò)協(xié)調(diào)器(中心節(jié)點(diǎn)),host[1]至host[10]為從設(shè)備(傳感器節(jié)點(diǎn))。信道控制模塊負(fù)責(zé)節(jié)點(diǎn)間連接的控制和維護(hù),并獲取節(jié)點(diǎn)的位置和移動(dòng)信息,來確定哪些節(jié)點(diǎn)在通信范圍內(nèi),供節(jié)點(diǎn)的無線接口在傳輸中使用。節(jié)點(diǎn)模型如圖2所示。
節(jié)點(diǎn)模型(IEEE802154Node)中各模塊的主要功能如下:
1) 通告版(notificationBoard)模塊,通告版模塊的主要功能是當(dāng)有“事件”發(fā)生時(shí),通知節(jié)點(diǎn)各模塊,如路由表發(fā)生變化、接口狀態(tài)變化(上/下)、接口配置變化、無線切換、改變無線信道和移動(dòng)節(jié)點(diǎn)位置的變化等;
圖2 節(jié)點(diǎn)模型
2) 移動(dòng)(mobility)模塊,主要功能是處理節(jié)點(diǎn)的移動(dòng)并將節(jié)點(diǎn)的位置改變信息通知信道控制模塊,更新該節(jié)點(diǎn)相關(guān)的連接信息;
3) 顯示(disp)模塊,主要負(fù)責(zé)計(jì)算各節(jié)點(diǎn)的通信覆蓋范圍,并在運(yùn)行時(shí)顯示;
4) 電池(battery)模塊,可以根據(jù)記錄的工作狀態(tài)時(shí)間、無線電功率等數(shù)值即時(shí)測量各個(gè)節(jié)點(diǎn)的能耗;
5) 應(yīng)用(app)模塊,既可以用于模擬數(shù)據(jù)信息的產(chǎn)生,也可以用于收集并分析接收到的數(shù)據(jù)信息,支持多種產(chǎn)生數(shù)據(jù)的方式,如指數(shù)分布等;
6) 網(wǎng)絡(luò)(net)模塊,主要完成星狀網(wǎng)絡(luò)中的數(shù)據(jù)包收發(fā)功能,包括中心節(jié)點(diǎn)到傳感器節(jié)點(diǎn)以及傳感器節(jié)點(diǎn)到中心節(jié)點(diǎn)的數(shù)據(jù)傳送;
7) 接口(nic)模塊,又分為3個(gè)子模塊,如圖3所示。其中ifq模塊主要實(shí)現(xiàn)上層和MAC層之間的緩沖區(qū)功能;MAC模塊主要實(shí)現(xiàn)信道訪問管理、信標(biāo)機(jī)制和協(xié)調(diào)器管理;PHY模塊實(shí)現(xiàn)了無線收發(fā)器的常見功能,如收發(fā)器狀態(tài)轉(zhuǎn)換、空閑信道評估等。
圖3 Nic模塊
網(wǎng)絡(luò)和節(jié)點(diǎn)模型建立完成后,需要進(jìn)行仿真參數(shù)的設(shè)置。OMNeT++中仿真參數(shù)可以在omnetpp.ini文件中設(shè)置,本仿真實(shí)驗(yàn)設(shè)置的主要參數(shù)如下:
#網(wǎng)絡(luò)模型設(shè)置**.numHosts = 16 //節(jié)點(diǎn)數(shù)為16個(gè),包含1個(gè)協(xié)調(diào)器和15個(gè)從設(shè)備**.constraintAreaMaxX = 300m //仿真場景大小設(shè)置為300 m×300 m**.constraintAreaMaxY = 300m#應(yīng)用模塊參數(shù)設(shè)置**.host[0].app.isSink = true //設(shè)置節(jié)點(diǎn)0為流量匯點(diǎn),收集并分析數(shù)據(jù)信息**.host[*].app.isSink = false**.app.packetSize = 50B //應(yīng)用層包的大小**.app.interDepartureTime = exponential(1s) //采用指數(shù)傳輸類型**.host[*].app.trafDest = "host[0]" //目的地址為節(jié)點(diǎn)0#網(wǎng)絡(luò)模塊參數(shù)設(shè)置**.host[0].net.isPANCoor = true //在網(wǎng)絡(luò)層設(shè)置節(jié)點(diǎn)0為協(xié)調(diào)器**.host[*].net.isPANCoor = false#ifq模塊參數(shù)設(shè)置**.nic.ifqType = "DropTailQueue" //配置采用的ifq模塊類型**.ifq.frameCapacity = 1 //緩沖區(qū)容量#MAC模塊參數(shù)設(shè)置**.host[0].**.mac.isPANCoor = true //在MAC層設(shè)置節(jié)點(diǎn)0為協(xié)調(diào)器**.host[*].**.mac.isPANCoor = false**.mac.panCoorName = "host[0]"**.mac.BO = 8 //在[1,14]范圍內(nèi)選取BO值**.mac.SO = 7 //在[0, BO)范圍內(nèi)選取SO值# GTS設(shè)置**.host[*].**.mac.ack4Gts = true //需要確認(rèn)幀**.host[*].**.mac.gtsPayload = 10 //GTS負(fù)載大小**.host[*].**.mac.dataTransMode = 1 //傳輸模式1:direct; 2:indirect; 3: GTS#PHY模塊參數(shù)設(shè)置**.phy.channelNumber = 11 //信道數(shù)11個(gè),默認(rèn)采用2.4GHz頻段的信道**.phy.transmitterPower = 1.0mW //發(fā)射功率**.phy.sensitivity = -90dBm //靈敏度設(shè)置
在本實(shí)驗(yàn)中,用來評估仿真結(jié)果的主要指標(biāo)包括:
1) 平均端到端時(shí)延(mean end-to-end delay,meanE2EDelay),其統(tǒng)計(jì)的是從設(shè)備成功發(fā)送數(shù)據(jù)包給協(xié)調(diào)器的平均時(shí)延,具體計(jì)算方法為
平均端到端時(shí)延 = 協(xié)調(diào)器接收數(shù)據(jù)包的總時(shí)延÷協(xié)調(diào)器收到的數(shù)據(jù)包總數(shù)
2) 平均丟幀率(meanLossRate),是通過PHY模塊每50個(gè)包的丟幀率平均計(jì)算得來。丟幀有2種可能,一是碰撞,二是正在執(zhí)行CCA。PHY模塊每50個(gè)包的丟幀率計(jì)算方法為
丟幀率 = 丟棄的幀數(shù)量÷(成功接收的幀數(shù)量+丟棄的幀數(shù)量)
本文共進(jìn)行了3個(gè)仿真試驗(yàn),仿真一驗(yàn)證了從設(shè)備數(shù)量的影響;仿真二驗(yàn)證了BO和SO取值的影響;仿真三驗(yàn)證了GTS模式下是否需要ACK的影響。
3.1驗(yàn)證從設(shè)備數(shù)量的影響
分別將從設(shè)備的數(shù)量設(shè)置為3個(gè)和15個(gè)(即numHosts設(shè)為4、16),來測試星型網(wǎng)絡(luò)內(nèi)從設(shè)備數(shù)量的增加對平均端到端時(shí)延和平均丟幀率2個(gè)指標(biāo)的影響。圖4是不同從設(shè)備數(shù)量情況下平均端到端時(shí)延的仿真結(jié)果;圖5是平均丟幀率的仿真結(jié)果。
從仿真結(jié)果可以看出,從設(shè)備數(shù)量從3增大到15后,平均端到端時(shí)延并沒有十分明顯的變化,而平均丟幀率卻從不到0.03增大到了0.08以上。因此,從設(shè)備數(shù)量的增加帶來了明顯的平均丟幀率的增加。
(a)從設(shè)備數(shù)量為3
(b)從設(shè)備數(shù)量為15
圖4不同從設(shè)備數(shù)量情況下平均端到端時(shí)延比較
圖5(a)從設(shè)備數(shù)量為3
(b) 從設(shè)備數(shù)量為15
圖5不同從設(shè)備數(shù)量情況下平均丟幀率比較
3.2驗(yàn)證BO和SO值的影響
IEEE 802.15.4網(wǎng)絡(luò)中,有信標(biāo)模式和非信標(biāo)模式2種通信模式可供選擇。在信標(biāo)模式中,協(xié)議引入超幀的概念,實(shí)現(xiàn)協(xié)調(diào)器和從設(shè)備之間的同步,超幀的活動(dòng)部分分為信標(biāo)、競爭訪問周期(contention access period,CAP)和非競爭周期(contention free period,CFP)3個(gè)部分。信標(biāo)指數(shù)(beacon order,BO)決定了發(fā)送信標(biāo)幀的周期,超幀指數(shù)(superframe order,SO)決定了一個(gè)超幀中活動(dòng)部分持續(xù)的時(shí)間,且滿足0<=SO<=BO<=14。
從設(shè)備的數(shù)量設(shè)置為15個(gè)(即numHosts設(shè)為16),BO的取值由8改為4,SO的取值由7改為3,其他參數(shù)保持omnetpp.ini文件中的設(shè)置不變,測試星型網(wǎng)絡(luò)內(nèi)BO和SO取值的減小對平均端到端時(shí)延和平均丟幀率2個(gè)指標(biāo)的影響。圖6是不同BO和SO取值情況下平均端到端時(shí)延的仿真結(jié)果;圖7是平均丟幀率的仿真結(jié)果。
從仿真結(jié)果可以看出,當(dāng)BO和SO的取值變小之后,平均端到端時(shí)延從0.5 s多下降到了0.05 s左右,而平均丟幀率也從0.08以上減小到了不足0.04。因此,減小BO和SO的取值可以顯著降低平均端到端時(shí)延和平均丟幀率。
3.3驗(yàn)證GTS模式下是否需要ACK的影響
GTS機(jī)制是在超幀的非競爭周期(CFP)階段所采用的信道管理機(jī)制,節(jié)點(diǎn)申請到GTS服務(wù)后,在CFP階段無需進(jìn)行信道競爭就可以進(jìn)行通信。
(a) BO=8,SO=7
(b) BO=4,SO=3
圖6不同BO和SO取值情況下平均端到端時(shí)延比較
該仿真需要在omnetpp.ini文件中更改的主要設(shè)置如下:
**.numHosts = 3 //1個(gè)協(xié)調(diào)器,2個(gè)從設(shè)備**.host[0].app.isSink =false //應(yīng)用模塊不需設(shè)置sink節(jié)點(diǎn)**.host[1].app.trafDest="host[0]" //host[1]的應(yīng)用數(shù)據(jù)發(fā)給host[0]**.host[0].app.trafDest = "host[2]" //host[0]的應(yīng)用數(shù)據(jù)發(fā)給host[2]**.mac.BO = 5**.mac.SO = 4**.host[*].**.mac.dataTransMode = 3**.host[1].**.mac.isRecvGTS = false // host[1]為GTS數(shù)據(jù)發(fā)送方**.host[2].**.mac.isRecvGTS = true //host[2]為GTS數(shù)據(jù)接收方
在GTS模式下,本實(shí)驗(yàn)的數(shù)據(jù)傳輸模式是host[1]通過host[0]轉(zhuǎn)發(fā)數(shù)據(jù)給host[2]。本試驗(yàn)測試對比了需要ACK和不需要ACK情況下的平均端到端時(shí)延。仿真結(jié)果見圖8。
從仿真結(jié)果可以看出,關(guān)閉ACK之前,平均端到端時(shí)延超過了1.4s;而關(guān)閉ACK之后,平均端到端時(shí)延僅有不足0.4 s。因此,在假定網(wǎng)絡(luò)環(huán)境一致且不考慮關(guān)閉ACK帶來的網(wǎng)絡(luò)丟包、網(wǎng)絡(luò)重傳等問題的條件下,GTS模式下關(guān)閉ACK可以顯著地降低平均端到端時(shí)延。
(a) 需要ACK
(b) 不需ACK
圖8需要和不需要ACK情況下meanE2EDelay比較
本文采用OMNeT++軟件對基于IEEE 802.15.4標(biāo)準(zhǔn)的無線傳感器網(wǎng)絡(luò)通信協(xié)議進(jìn)行了仿真,仿真結(jié)果顯示:從設(shè)備數(shù)量的增加會(huì)帶來明顯的平均丟幀率的增加;減小BO和SO的取值可以顯著降低平均端到端時(shí)延和平均丟幀率;關(guān)閉GTS模式下的ACK可以顯著地降低平均端到端時(shí)延。仿真結(jié)果將對不同應(yīng)用場景下無線傳感器網(wǎng)絡(luò)通信協(xié)議的選擇及優(yōu)化改進(jìn)起到一定的參考作用。
[1] 陳林星.無線傳感器網(wǎng)絡(luò)技術(shù)與應(yīng)用[M].北京:電子工業(yè)出版社,2009.
[2] 陸冰.實(shí)用無線傳感器網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)及通信協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2011.
[3] 王俊義,魏延恒,仇洪冰,等.OMNeT++網(wǎng)絡(luò)仿真[M].西安:西安電子科技大學(xué)出版社,2014.
[4] 夏鋒.OMNeT++網(wǎng)絡(luò)仿真[M].北京:清華大學(xué)出版社,2013.
Simulation of WSN Communication Protocol Based on OMNeT++
Gao Chengzhi Fan Xianxue
(The 28th Research Institute of China Electronics Technology Group Corporation)
By using the OMNeT++, this paper builds a simulation model for WSN communication protocol based on ZigBee/IEEE802.15.4 standard, and simulates the mean E2E Delay and mean Loss Rate in different parameter settings including the quantity of slave device, the value of BO and SO, sending the ACK in GTS mode or not.
OMNeT++; WSN; Communication Protocol; ZigBee; IEEE802.15.4
高承志,男,1980年生,高級工程師,主要研究方向:通信工程和信息系統(tǒng)總體技術(shù)。E-mail: cgaochengzhi@163.com
范賢學(xué),男,1985年生,工程師,主要研究方向:通信工程和信息系統(tǒng)總體技術(shù)。