新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 基于無(wú)線傳感器網(wǎng)絡(luò)仿真平臺(tái)的研究

基于無(wú)線傳感器網(wǎng)絡(luò)仿真平臺(tái)的研究

——
作者: 時(shí)間:2007-07-06 來(lái)源: 收藏

一、引言

     網(wǎng)絡(luò)(WSN)日新月異,各種網(wǎng)絡(luò)方案和協(xié)議日趨復(fù)雜,網(wǎng)絡(luò)規(guī)模日趨龐大,對(duì)網(wǎng)絡(luò)研究人員而言,掌握網(wǎng)絡(luò)仿真的重要性是不言而喻的。WSN仿真能夠在一個(gè)可控制的環(huán)境里研究WSN應(yīng)用,包括操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議棧,能夠仿真數(shù)量眾多的節(jié)點(diǎn),能夠觀察由不可預(yù)測(cè)的干擾和噪聲引起的難以琢磨的節(jié)點(diǎn)間的相互作用,獲取節(jié)點(diǎn)間詳細(xì)的細(xì)節(jié),從而提高節(jié)點(diǎn)投放后的網(wǎng)絡(luò)成功率,減少投放后的網(wǎng)絡(luò)維護(hù)工作。目前網(wǎng)絡(luò)使用的仿真工具主要有NS2、TinyOS、OPNET、OMNET++等等。其中TinyOS是專(zhuān)門(mén)針對(duì)網(wǎng)絡(luò)的特點(diǎn)而研究開(kāi)發(fā)的。

二、傳感器網(wǎng)絡(luò)仿真簡(jiǎn)介

     在傳感器網(wǎng)絡(luò)中,單個(gè)傳感器節(jié)點(diǎn)有兩個(gè)很突出的特點(diǎn)。一個(gè)特點(diǎn)是它的并發(fā)性很密集;另一個(gè)特點(diǎn)是傳感器節(jié)點(diǎn)模塊化程度很高.上述這些特點(diǎn)使得無(wú)線傳感器網(wǎng)絡(luò)仿真需要解決可擴(kuò)展性與仿真效率、分布與異步特性、動(dòng)態(tài)性、綜合仿真平臺(tái)等等問(wèn)題。

三、無(wú)線傳感器網(wǎng)絡(luò)常用仿真工具

     無(wú)線傳感器網(wǎng)絡(luò)常用仿真工具有NS2、OPNET、OMNET++、TinyOS,下面我們簡(jiǎn)要介紹它們各自的性能和特點(diǎn)。

3.1 NS2
     NS是一種可擴(kuò)展、以配置和可編程的時(shí)間驅(qū)動(dòng)的仿真工具,它是由REAL仿真器發(fā)展而來(lái).在NS的設(shè)計(jì)中,使用C++和OTCL兩種程序設(shè)計(jì)語(yǔ)言, C++是一種相對(duì)運(yùn)行速度較快但是轉(zhuǎn)換比較慢的語(yǔ)言,所以C++語(yǔ)言被用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議, 編寫(xiě)NS底層的仿真引擎; OTCL是運(yùn)行速度較慢,但可以快速轉(zhuǎn)換的腳本語(yǔ)言,正好和C++互補(bǔ),所以O(shè)TCL語(yǔ)言被用來(lái)配置仿真中各種參數(shù),建立仿真的整體結(jié)構(gòu), OTCL的腳本通過(guò)調(diào)用引擎中各類(lèi)屬性、方法,定義網(wǎng)絡(luò)的拓?fù)?配置源節(jié)點(diǎn)、目的節(jié)點(diǎn)建立鏈接,產(chǎn)生所有事件的時(shí)間表,運(yùn)行并跟蹤仿真結(jié)果,還可以對(duì)結(jié)果進(jìn)行相應(yīng)的統(tǒng)計(jì)處理或制圖.NS可以提供有線網(wǎng)絡(luò)、無(wú)線網(wǎng)絡(luò)中鏈路層及其上層精確到數(shù)據(jù)包的一系列行為仿真。NS中的許多協(xié)議都和真實(shí)代碼十分接近,其真實(shí)性和可靠性是非常高的。

3.2 OPNET
     OPNET是在MIT研究成果的基礎(chǔ)上由MIL3公司開(kāi)發(fā)的網(wǎng)絡(luò)仿真軟件產(chǎn)品。  OPNET的主要特點(diǎn)包括以下幾個(gè)方面:(1)采用面向?qū)ο蟮募夹g(shù),對(duì)象的屬性可以任意配置,每一對(duì)象屬于相應(yīng)行為和功能的類(lèi),可以通過(guò)定義新的類(lèi)來(lái)滿足不同的系統(tǒng)要求; (2)OPNET提供了各種通信網(wǎng)絡(luò)和信息系統(tǒng)的處理構(gòu)件和模塊;(3) OPNET采用圖形化界面建模,為使用者提供三層(網(wǎng)絡(luò)層、節(jié)點(diǎn)層、進(jìn)程層)建模機(jī)制來(lái)描述現(xiàn)實(shí)的系統(tǒng);(4) OPNET在過(guò)程層次中使用有限狀態(tài)機(jī)來(lái)對(duì)其它協(xié)議和過(guò)程進(jìn)行建模,用戶模型及OPNET內(nèi)置模型將會(huì)自動(dòng)生成C語(yǔ)言實(shí)現(xiàn)可執(zhí)行的高效、高離散事件的模擬流程;(5) OPNET內(nèi)建了很多性能分析器,它會(huì)自動(dòng)采集模擬過(guò)程的結(jié)果數(shù)據(jù);(6)OPNET幾乎預(yù)定義了所有常用的業(yè)務(wù)模型,如均勻分布、泊松分布、歐蘭分等。

3.3 OMNET++
     OMNET++是面向?qū)ο蟮碾x散事件模擬工具,為基于進(jìn)程式和事件驅(qū)動(dòng)兩種方式的仿真提供了支持。 OMNET++采用混合式的建模方式,同時(shí)使用了OMNET++特有的ned(Network Discription,網(wǎng)絡(luò)描述)語(yǔ)言和C++進(jìn)行建模。OMNET++主要由六個(gè)部分組成:仿真內(nèi)核庫(kù)、網(wǎng)絡(luò)描述語(yǔ)言的編譯器、圖形化的網(wǎng)絡(luò)編譯器、仿真程序的圖形化用戶接口、仿真程序的命令行用戶接口和圖形化的向量輸出工具。OMNET++的主要模型拓?fù)涿枋稣Z(yǔ)言NED,采用它可以完成一個(gè)網(wǎng)絡(luò)模型的描述。 網(wǎng)絡(luò)描述包括下列組件:輸入申明、信道定義、系統(tǒng)模塊定義、簡(jiǎn)單模塊和復(fù)合模塊定義。使用NED描述網(wǎng)絡(luò),產(chǎn)生.NED文件,該文件不能直接被C++編譯器使用,需要首先采用OMNET++提供的編譯工具NEDC將.NED文件編譯成.cpp文件。最后,使用C++編譯器將這些文件與用戶和自己設(shè)計(jì)的簡(jiǎn)單模塊程序連接成可執(zhí)行程序。

3.4 TinyOS
     TinyOS是專(zhuān)門(mén)針對(duì)傳感器研發(fā)出的操作系統(tǒng)。在TinyOS上編程序使用的語(yǔ)言為nesC(C language for network embedded systems) 語(yǔ)言。

     nesC語(yǔ)言是由C語(yǔ)言擴(kuò)展而來(lái)的,意在把組件化/模塊化思想和TinyOS基于事件驅(qū)動(dòng)的執(zhí)行模型結(jié)合起來(lái)。 nesC 組件有Module(模塊)和Configuration(連接配置文件)兩種。在模塊中主要實(shí)現(xiàn)代碼的編制,在連接配置文件中主要是將各個(gè)組件和模塊連接起來(lái)成為一個(gè)整體。

     TinyOS程序采用的是模塊化設(shè)計(jì),所以它的程序核心往往都很小,能夠突破傳感器存儲(chǔ)資源少的限制,這能夠讓TinyOS很有效的運(yùn)行在無(wú)線傳感器網(wǎng)絡(luò)上并去執(zhí)行相應(yīng)的管理工作等。TinyOS的特點(diǎn)主要體現(xiàn)在以下幾個(gè)方面:

     (1)組件化編程(Componented-Based Architecture)。TinyOS的組件通常可以分為以下三類(lèi):硬件抽象組件、合成組件、高層次的軟件組件;硬件抽象組件將物理硬件映射到TinyOS組件模型.合成硬件組件模擬高級(jí)硬件的行為.高層次軟件模塊完成控制、路由以及數(shù)據(jù)傳輸?shù)?。}

     (2)事件驅(qū)動(dòng)模式(Event-Driven Architecture)。事件驅(qū)動(dòng)分為硬件驅(qū)動(dòng)和軟件事件驅(qū)動(dòng)。硬件事件驅(qū)動(dòng)也就是由一個(gè)硬件發(fā)出中斷,然后進(jìn)入中斷處理函數(shù)。而軟件驅(qū)動(dòng)則是通過(guò)singal關(guān)鍵字發(fā)出一個(gè)事件。

     (3)任務(wù)和事件并發(fā)模式(Tasks And Events Concurrency Model)。任務(wù)用在對(duì)于時(shí)間要求不是很高的應(yīng)用中,任務(wù)之間是平等的,即在執(zhí)行時(shí)是按順序先后來(lái)的,而不能相互搶占,TinyOS對(duì)任務(wù)是按簡(jiǎn)單的FIFO隊(duì)列進(jìn)行處理的。事件用在對(duì)于時(shí)間的要求很?chē)?yán)格的應(yīng)用中,而且它可以占先優(yōu)于任務(wù)和其他事件執(zhí)行。

     (4)分段執(zhí)行(Split-Phase Operations)。在TinyOS中由于tasks 之間不能互相占先執(zhí)行,所以TinyOS沒(méi)有提供任何阻塞操作,為了讓一個(gè)耗時(shí)較長(zhǎng)的操作盡快完成,一般來(lái)說(shuō)都是將對(duì)這個(gè)操作的需求和這個(gè)操作的完成分開(kāi)來(lái)實(shí)現(xiàn),以便獲得較高的執(zhí)行效率。

     (5) 輕量級(jí)線程(lightweight thread)。輕量級(jí)線程(task, 即TinyOS中的任務(wù))按FIFO方式進(jìn)行調(diào)度,輕量級(jí)線程之間不允許搶占;而硬件處理線程(在TinyOS中,稱(chēng)為硬件處理器),即中斷處理線程可以打斷用戶的輕量級(jí)線程和低優(yōu)先級(jí)的中斷處理線程,對(duì)硬件中斷進(jìn)行快速處理響應(yīng)。

     (6) 主動(dòng)通信消息(active message)。每一個(gè)消息都維護(hù)一個(gè)應(yīng)用層和處理器。當(dāng)目標(biāo)節(jié)點(diǎn)收到這個(gè)消息后,就會(huì)把消息中的數(shù)據(jù)作為參數(shù),并傳遞給應(yīng)用層的處理器進(jìn)行處理。應(yīng)用層的處理器一般完成消息數(shù)據(jù)的解包操作、計(jì)算處理或發(fā)送響應(yīng)消息等工作。

TinyOS操作系統(tǒng)中常用的仿真平臺(tái)主要是TOSSIM和Avrora

     (1)TOSSIM(TinyOS simulation)是一個(gè)支持基于TinyOS的應(yīng)用在PC機(jī)上運(yùn)行的模擬器.TOSSIM運(yùn)行和傳感器硬件相同的代碼,仿真編譯器能直接從TinyOS應(yīng)用的組件表中編譯生成仿真程序。

     (2)Avrora是一種專(zhuān)門(mén)為Atmel和Mica2節(jié)點(diǎn)上以AVR單片機(jī)語(yǔ)言編寫(xiě)的程序提供仿真分析的工具。它的主要特點(diǎn)如下:1) 為AVR單片機(jī)提供了cycle accurate級(jí)的仿真,使靜態(tài)程序可以準(zhǔn)確的運(yùn)行。它可以仿真片上(chip-on)設(shè)備驅(qū)動(dòng)程序,并為片外(off-chip)程序提供了有規(guī)則的接口;2)可以添加監(jiān)測(cè)代碼來(lái)報(bào)告仿真程序運(yùn)行的性能,或者可以在仿真結(jié)束后收集統(tǒng)計(jì)數(shù)據(jù),并產(chǎn)生報(bào)告;3)提供了一套基本的監(jiān)控器來(lái)剖析程序,這有助于分析程序的執(zhí)行模式和資源使用等等;4)Avrora可以用gdb調(diào)試程序;5) Avrora可以為程序提供一個(gè)程序流圖,通過(guò)這個(gè)流程圖可以清楚的表示機(jī)器代碼程序的結(jié)構(gòu)和組織;6) Avrora中提供了分析能量消耗的工具,并且可以設(shè)置設(shè)備的帶電大小;7) Avrora可以用來(lái)限制程序的最大堆棧空間,它會(huì)提供一些關(guān)于目前程序中的最大的堆棧結(jié)構(gòu),和一些關(guān)于空間和時(shí)間消耗的信息報(bào)告。

3.5性能比較

     TinyOS 用行為建模,可以仿真跨層協(xié)議;仿真程序移植到節(jié)點(diǎn)上,不需要二次編碼。
     通過(guò)對(duì)上述幾種仿真軟件的分析比較,我們可以清楚的看到各個(gè)仿真軟件的特點(diǎn)、適用范圍,我們可以根據(jù)研究需要選擇適合的仿真軟件,使得我們的學(xué)習(xí)研究可以事半功倍。

結(jié)束語(yǔ)

     網(wǎng)絡(luò)仿真技術(shù)為通信網(wǎng)絡(luò)規(guī)劃和優(yōu)化提供了一種科學(xué)高效的方法。網(wǎng)絡(luò)仿真在國(guó)內(nèi)是近幾年才發(fā)展起來(lái)的,但在國(guó)外網(wǎng)絡(luò)仿真技術(shù)已經(jīng)相當(dāng)成熟,我們應(yīng)該大膽地借鑒國(guó)外先進(jìn)技術(shù),促進(jìn)國(guó)內(nèi)網(wǎng)絡(luò)仿真技術(shù)迅速發(fā)展。

參考文獻(xiàn)
【1】于海斌,曾鵬等.智能無(wú)線傳感器網(wǎng)絡(luò).科學(xué)出版社,2006,p283~p303,
【2】石懷偉,李明生,王少華,網(wǎng)絡(luò)仿真技術(shù)與OPNET應(yīng)用實(shí)踐,計(jì)算機(jī)系統(tǒng)應(yīng)用2006.第3期
【3】李玥,吳辰文,基于OMNeT++地TCP/IP協(xié)議仿真,蘭州交通大學(xué)學(xué)報(bào)(自然科學(xué)版),2005年8月
【4】袁紅林,徐晨,章國(guó)安,TOSSIM:無(wú)線傳感器網(wǎng)絡(luò)仿真環(huán)境,傳感器與儀表儀器 ,2006年第22卷第7-1期

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


c++相關(guān)文章:c++教程


傳感器相關(guān)文章:傳感器工作原理


風(fēng)速傳感器相關(guān)文章:風(fēng)速傳感器原理


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉