版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、簡(jiǎn)介無(wú)線傳感器網(wǎng)絡(luò)(WSNs)在廣泛的適用領(lǐng)域的發(fā)揮了重要作用。然而編程和重組過(guò)程在 無(wú)線傳感器網(wǎng)絡(luò)中很復(fù)雜,這種結(jié)果源于在無(wú)線傳感器網(wǎng)絡(luò)中不同的硬件及軟件平臺(tái),以及 在傳輸節(jié)點(diǎn)上有限的內(nèi)存和能源資源,不穩(wěn)定的無(wú)線傳輸過(guò)程等。因此,對(duì)于無(wú)線傳感器網(wǎng) 絡(luò)的用戶,設(shè)計(jì)和實(shí)施有效的用戶友好的集成開(kāi)發(fā)環(huán)境是重要的。幾個(gè)相關(guān)的機(jī)制已經(jīng)實(shí)現(xiàn), 如腳本語(yǔ)言的機(jī)器,動(dòng)態(tài)鏈接機(jī)制、嵌入式Java虛擬機(jī)。但是這些方法不適合高度資源緊缺 傳感器節(jié)點(diǎn)。在本文中,一個(gè)名叫EMIDE中間件實(shí)現(xiàn)提供一個(gè)用戶友好的無(wú)線傳感器網(wǎng)絡(luò)的 IDE。這種中間件通過(guò)將應(yīng)用程序的部分從一個(gè)底層系統(tǒng)中分離,簡(jiǎn)化了用戶編程過(guò)程,提高 重編程效
2、率。此外,它對(duì)應(yīng)用程序開(kāi)發(fā)提供了足夠的功能,而且對(duì)于內(nèi)存和能源的要求也較 低。為了評(píng)估EMIDE的表現(xiàn),本文比較了它與嵌入式Java虛擬機(jī)Contiki動(dòng)態(tài)鏈接機(jī)制方 面資源消耗,應(yīng)用程序代碼大小和執(zhí)行效率。事實(shí)表明, EMIDE 是一種有效地用戶友好的 無(wú)線傳感器網(wǎng)絡(luò)IDE。即使在高度資源緊缺的傳感器節(jié)點(diǎn)中也可以表現(xiàn)良好。無(wú)線傳感器網(wǎng)絡(luò),在各種不同的領(lǐng)域,例如精準(zhǔn)農(nóng)業(yè)、工業(yè)監(jiān)控和控制、智能醫(yī)療護(hù)理,智 能家居、軍事戰(zhàn)場(chǎng)監(jiān)視等等發(fā)揮了重要作用。它的廣泛適用的領(lǐng)域使無(wú)線傳感器網(wǎng)絡(luò)技術(shù)現(xiàn) 在成為一個(gè)關(guān)鍵和熱點(diǎn)問(wèn)題。在無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)開(kāi)發(fā)時(shí)編程和重組是兩個(gè)重要的階段。編程過(guò)程中面臨的挑戰(zhàn)主 要集中
3、在兩個(gè)方面,一是無(wú)線傳感器網(wǎng)絡(luò)的用戶可能不是專家,另一個(gè)是硬件在無(wú)線傳感器網(wǎng) 絡(luò)和軟件平臺(tái)是多樣的。重編程過(guò)程中,更新一個(gè)小代碼的大小是另一個(gè)關(guān)鍵的挑戰(zhàn),因?yàn)榇?碼大小將會(huì)在能源消耗和新代碼在無(wú)線傳輸中成功概率中有重要影響。因此,實(shí)現(xiàn)一個(gè)用戶 友好的無(wú)線傳感器網(wǎng)絡(luò)集成開(kāi)發(fā)環(huán)境(IDE)來(lái)應(yīng)對(duì)這些挑戰(zhàn)時(shí)重要的。此外,傳感器節(jié)點(diǎn)大多 是配備有限內(nèi)存和能源資源,因此任何信號(hào)針對(duì)這一目標(biāo)應(yīng)該有一個(gè)低資源要求。一個(gè)有效的方法來(lái)解決上面的挑戰(zhàn)是開(kāi)發(fā)一個(gè)中間件將整個(gè)軟件的空間進(jìn)入這兩個(gè)應(yīng)用 程序和系統(tǒng)的空間,并提供足夠的從系統(tǒng)的服務(wù)的應(yīng)用程序的一個(gè)空間。如圖1 所描繪。通過(guò)這種方式,不僅應(yīng)用程序編程過(guò)程將被
4、簡(jiǎn)化為無(wú)線傳感器網(wǎng)絡(luò)的用戶只需要專注在應(yīng)用 程序空間而不需要考慮底層系統(tǒng)的細(xì)節(jié),并且通過(guò)只替換更改部分而不是所有代碼也提高了 重編程的性能。在從系統(tǒng)中分離應(yīng)用程序的部分已經(jīng)有幾個(gè)相關(guān)的機(jī)制發(fā)展出來(lái),如腳本語(yǔ)言,可加載的 模塊和嵌入Java虛擬機(jī)(EJVM)。然而,對(duì)于嚴(yán)格的資源有限的無(wú)線傳感器節(jié)點(diǎn)這些方法內(nèi)存 和能源資源消費(fèi)太高。因此,實(shí)現(xiàn)高效的用戶友好的無(wú)線傳感器網(wǎng)絡(luò)的IDE與低資源消耗是 本文的目標(biāo)。構(gòu)成本文的第一個(gè)是對(duì)于腳本語(yǔ)言,動(dòng)態(tài)鏈接和 java 虛擬機(jī)在是否提供對(duì)于無(wú)線傳感器 網(wǎng)絡(luò)用戶友好集中開(kāi)發(fā)環(huán)境的性能評(píng)估。第二個(gè)是設(shè)計(jì),實(shí)現(xiàn)并且評(píng)估一個(gè)新的高效中間件 EMIDE。此外,一個(gè)實(shí)
5、際的遠(yuǎn)程重編程工程也被提出及待解決。二 相關(guān)工作腳本語(yǔ)言,動(dòng)態(tài)鏈接和EJVM都是將應(yīng)用程序從低級(jí)系統(tǒng)中分離。因此,一個(gè)相比傳統(tǒng)單 片機(jī)更友好的集中開(kāi)發(fā)環(huán)境在此提供給用戶腳本語(yǔ)言腳本語(yǔ)言已經(jīng)在幾個(gè)不同的地方實(shí)現(xiàn),例如TCL機(jī),Python機(jī)等。它避免了程序編譯過(guò) 程,鑒于在無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的高有限資源要求。動(dòng)態(tài)鏈接 動(dòng)態(tài)鏈接方法使用可加載的模塊來(lái)執(zhí)行編程和重編程,只有部分的系統(tǒng)在部署新程序時(shí)需要修改。它在一些操作系統(tǒng)中實(shí)現(xiàn)了,如Contiki, SOS等,這通常需要操縱系統(tǒng)支持??杉虞d模塊不應(yīng)該只包含代碼和數(shù)據(jù),也需要函數(shù)和變量的引用。在被裝載到目標(biāo)設(shè)備 , 這些引用應(yīng)該決定物理地址之前被執(zhí)行
6、。這個(gè)解決方法被一個(gè)在運(yùn)行時(shí)的動(dòng)態(tài)鏈接所操作, 并且一個(gè)有著所有全局變量和函數(shù)的符號(hào)名稱表及相應(yīng)的地址需要被創(chuàng)建和保留在系統(tǒng)核 心中雖然動(dòng)態(tài)鏈接機(jī)制比單片機(jī)系統(tǒng)簡(jiǎn)化了編程和重編程過(guò)程,模塊大小仍然比預(yù)鏈接更大, 這是由于在模塊中包含額外的參考信息。此外,系統(tǒng)運(yùn)行時(shí)的開(kāi)銷,無(wú)論能源消耗,執(zhí)行時(shí) 間,或是內(nèi)存需求也高于預(yù)鏈接模型。嵌入式j(luò)ava虛擬機(jī)自從JAVA虛擬機(jī)通過(guò)應(yīng)用高度抽象的java語(yǔ)言和在無(wú)線傳感器網(wǎng)絡(luò)中尋址使用字節(jié)碼 來(lái)簡(jiǎn)化應(yīng)用程序的編程,幾種嵌入式j(luò)ava虛擬機(jī)被開(kāi)發(fā)出來(lái),例如TakaTuka VM,大吉嶺 VM,KESOVM,LeJOS,NanoVM,simpleRTJ,Sent
7、illa,Squawk 等等。simpleRTJ 是一個(gè)簡(jiǎn)單的實(shí)時(shí)的小內(nèi)存占用及有著潔凈空間的用于實(shí)現(xiàn)小型嵌入式的 java VM/OS 操縱系統(tǒng),它被選擇,研究和移植到了無(wú)線傳感器網(wǎng)絡(luò)的活動(dòng)節(jié)點(diǎn),用來(lái)評(píng)估 嵌入式j(luò)ava虛擬機(jī)的表現(xiàn)。它的基本描述如圖2,這張圖上它的所有關(guān)鍵特性都可以由任何 像樣的 java 虛擬機(jī)實(shí)現(xiàn),包括如下:1)小內(nèi)存占用空間:SimpleRTJ不需要比18到24 kb ROM更多空間和約0.2 kb內(nèi)存空間來(lái)運(yùn)行。此外,它 使用優(yōu)化的組標(biāo)準(zhǔn)庫(kù),在應(yīng)用程序預(yù)編譯過(guò)程中在類文件鏈接和替換所有的符號(hào)的引用與偏 移和索引。這些操作保持Java應(yīng)用程序小內(nèi)存占用并且簡(jiǎn)化系統(tǒng)運(yùn)行
8、時(shí)體系結(jié)構(gòu),使EJVM 是能夠被用在許多無(wú)線傳感器網(wǎng)絡(luò)平臺(tái),如配備活動(dòng)節(jié)點(diǎn)的單片機(jī)AT91SAM7S256。2)作為一個(gè)獨(dú)立的小型Java操作系統(tǒng)運(yùn)行SimpleRTJ內(nèi)置支持了管理Java堆內(nèi)存應(yīng)用程序執(zhí)行,它可以動(dòng)態(tài)分配內(nèi)存空間的類實(shí) 例和方法幀,這使得它被用在沒(méi)有實(shí)時(shí)操縱系統(tǒng)支持的獨(dú)立目標(biāo)設(shè)備。3)線程支持SimpleRTJ提供了線程支持與等待/通知同步和對(duì)象監(jiān)視器鎖。它使java線程可以執(zhí)行 多個(gè)獨(dú)立任務(wù)的,它使用周期中斷(例如實(shí)時(shí)中斷)實(shí)施先占式時(shí)間片線程切換。所有線程 都有相同的優(yōu)先級(jí)的除了事件線程創(chuàng)建的javax.events.package。事件線程有優(yōu)先于其他的執(zhí) 行順序,因
9、此,適當(dāng)?shù)臅r(shí)間句柄可以確保當(dāng)事件被觸發(fā)時(shí)的快速運(yùn)行。有了線程支持,一個(gè) 靈活的編程環(huán)境將提供給無(wú)線傳感器網(wǎng)絡(luò)的用戶。4)異步事件支持:處理異步事件對(duì)于嵌入式軟件開(kāi)發(fā)是非常重要的。在SimpleRTJ中,異步事件涉及很多 情況,如從數(shù)據(jù)接口中接收數(shù)據(jù),對(duì)于輸入數(shù)字信號(hào)和模擬信號(hào)的變換,還有一些需要軟件 關(guān)注的變化。異步事件處理被封裝在javax.events.package中。在事件類被實(shí)例化和適當(dāng)?shù)氖?件和事件句柄注冊(cè)后,線程進(jìn)入休眠狀態(tài),只有當(dāng)外部事件在系統(tǒng)的本地代碼中調(diào)用才喚醒, 然后對(duì)于喚醒事件的句柄將會(huì)被調(diào)用。在simpleRTJ異步事件使得無(wú)線傳感器網(wǎng)絡(luò)的用戶可 以在應(yīng)用程序中處理低
10、級(jí)事件,這對(duì)于無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)是非常有意義的。5)垃圾收集支持simpleRTJ支持從java應(yīng)用程序中收集未使用的對(duì)象。它在新類或新方法框架沒(méi)有足夠 空間被創(chuàng)建時(shí)自動(dòng)調(diào)用。而且,如果空閑內(nèi)存下降到一定水平,為了避免內(nèi)存碎片和提高新 分配的效率堆壓縮會(huì)被執(zhí)行。6)異構(gòu)性simpleRTJ完全實(shí)現(xiàn)了異常處理,并且對(duì)于java的編程接口也完全支持。此外,simpleRTJ 可以獨(dú)立和配置許多啟動(dòng)配置選項(xiàng),這使得它可以執(zhí)行不同的 java 應(yīng)用程序而沒(méi)有每一次 都重新加載的必要。實(shí)驗(yàn)工作證明 simpleRTJ 可以幫助無(wú)線傳感器網(wǎng)絡(luò)用戶通過(guò)使用流行并且熟悉的 java 語(yǔ)言在傳感器平臺(tái)上設(shè)計(jì)
11、程序,同時(shí)它的支持多任務(wù)編程,事件處理和從應(yīng)用空間的異常處 理也改善了用戶開(kāi)發(fā)過(guò)程的性能。它已經(jīng)證明它可以提供一個(gè)用戶友好的無(wú)線傳感器網(wǎng)絡(luò)集 中開(kāi)發(fā)環(huán)境,尤其是在異構(gòu)的無(wú)線傳感器的網(wǎng)絡(luò)環(huán)境。但是,它同樣具有一些缺點(diǎn)。首先, 即使做一個(gè)簡(jiǎn)單的led閃爍程序,它的java應(yīng)用程序映像也會(huì)超過(guò)2kb,這相對(duì)于無(wú)線傳感 器網(wǎng)絡(luò)的重編程任務(wù)來(lái)說(shuō)太大了。其次simpleRTJ的執(zhí)行效率因?yàn)轭~外的解釋操作會(huì)比本地 代碼的執(zhí)行效率低一些。這兩點(diǎn)是嵌入式j(luò)ava虛擬機(jī)所固有的缺點(diǎn)。因此,對(duì)于高度資源 有限的無(wú)線傳感器節(jié)點(diǎn)來(lái)說(shuō),嵌入式j(luò)ava虛擬機(jī)就顯得有點(diǎn)過(guò)時(shí)了。三 高效的對(duì)用戶友好的集中開(kāi)發(fā)環(huán)境動(dòng)態(tài)鏈接和嵌入
12、式j(luò)ava虛擬機(jī)的缺點(diǎn)激勵(lì)我們?cè)O(shè)計(jì)和實(shí)現(xiàn)一個(gè)不僅對(duì)用戶友好,同時(shí)也 適用于高度能源和內(nèi)存有限節(jié)點(diǎn)的中間件。本文將介紹EMIDE, 個(gè)有效地中間件,足以 應(yīng)付這些挑戰(zhàn)。EMIDE的基本設(shè)計(jì)原則為了使EMIDE達(dá)到這些嚴(yán)格的要求,它的基本原則是設(shè)計(jì)如下:EMIDE將是一個(gè)將應(yīng)用程序從系統(tǒng)部分剝離的中間件(中間層) 除了字節(jié)碼使用本機(jī)代碼,以避免額外的時(shí)間和精力消耗在解釋過(guò)程。 使用預(yù)鏈接代碼而不是動(dòng)態(tài)鏈接模塊以減少應(yīng)用程序代碼大小和降低內(nèi)存和能源在引 用解析過(guò)程中的消耗使用與操作系統(tǒng)一致的應(yīng)用程序編程語(yǔ)言。因?yàn)樵谇度胧絡(luò)ava虛擬機(jī)中,應(yīng)用程序與系統(tǒng)空間中的語(yǔ)言不一樣,是使用java語(yǔ)言 的,因此
13、在系統(tǒng)空間中會(huì)有一個(gè)新的運(yùn)行時(shí)的環(huán)境被建立以便于代碼的執(zhí)行。使用相同的語(yǔ) 言的兩個(gè)空間將避免這個(gè)問(wèn)題和簡(jiǎn)化系統(tǒng)運(yùn)行時(shí)體系結(jié)構(gòu)。EMIDE的基本功能實(shí)現(xiàn)圖 3 描述了 EMIDE 的基本功能實(shí)現(xiàn)。整個(gè)過(guò)程可以概括為四個(gè)步驟:1)用戶和實(shí)現(xiàn)者函數(shù)聲明:EMIDE 為每個(gè)系統(tǒng)空間到應(yīng)用程序提供了函數(shù)接口。對(duì)于每個(gè)接口,應(yīng)用程序的用戶 函數(shù)和一個(gè)相應(yīng)的系統(tǒng)實(shí)現(xiàn)函數(shù)應(yīng)該分別在這兩個(gè)空間中定義2)內(nèi)存資源分配因?yàn)閼?yīng)用程序和系統(tǒng)代碼將被執(zhí)行在同一個(gè)目標(biāo)設(shè)備,有必要在一個(gè)實(shí)時(shí)運(yùn)行的系統(tǒng)環(huán) 境,并且這個(gè)系統(tǒng)儲(chǔ)存在特定的ROM和RAM內(nèi)存空間中實(shí)行預(yù)鏈接。3)鏈接操作預(yù)鏈接的優(yōu)勢(shì)在于較小應(yīng)用程序代碼,高速執(zhí)行速度
14、,低資源消耗,因此預(yù)鏈接將會(huì)在 EMIDE 使用。然而,任何在系統(tǒng)項(xiàng)目的變化都可能使得應(yīng)用程序用戶函數(shù)變得毫無(wú)用處, 因?yàn)楫?dāng)應(yīng)用程序被連接時(shí),實(shí)現(xiàn)函數(shù)的地址將會(huì)變化。 EMIDE 通過(guò)提供一個(gè)應(yīng)用程序和系 統(tǒng)空間之間的實(shí)現(xiàn)函數(shù)跳轉(zhuǎn)表來(lái)解決這個(gè)問(wèn)題。這個(gè)表將在一個(gè)固定的地址。這個(gè)表會(huì)將應(yīng) 用程序用戶函數(shù)鏈接到適當(dāng)?shù)牡刂范皇侵苯舆B接到系統(tǒng)實(shí)現(xiàn)函數(shù)。在這之后,系統(tǒng)重建函 數(shù)將不會(huì)影響到代碼的執(zhí)行,因?yàn)閷?shí)現(xiàn)函數(shù)在跳轉(zhuǎn)表內(nèi)是不會(huì)改變的。4)輸入?yún)?shù)的傳遞和返回 因?yàn)檎麄€(gè)空間被中間件成兩個(gè)空間,所以中間件將必須承擔(dān)將應(yīng)用程序函數(shù)參數(shù)輸入到系統(tǒng)以及返回值的工作。在嵌入式j(luò)ava虛擬機(jī)中,這項(xiàng)工作是由jav
15、a方法中的幀堆棧進(jìn)行 的。而在EMIDE中,不需要這一步,這是因?yàn)閼?yīng)用程序和系統(tǒng)是由相同的語(yǔ)言和編譯器構(gòu) 成,因此兩個(gè)空間之間的代碼執(zhí)行沒(méi)有任何障礙,可以簡(jiǎn)單的看做一個(gè)常見(jiàn)的系統(tǒng)功能圖4顯示了為實(shí)現(xiàn)擴(kuò)展功能的EMIDE原理圖。在應(yīng)用程序空間,注冊(cè)功能被提供到系統(tǒng)空間任務(wù)隊(duì)列中。一旦一個(gè)應(yīng)用程序任務(wù)被 注冊(cè),它將會(huì)成為一個(gè)等待由系統(tǒng)任務(wù)管理器調(diào)度的任務(wù)。分配各每個(gè)注冊(cè)了的應(yīng)用程序任務(wù)有兩個(gè)參數(shù)。一個(gè)是任務(wù)優(yōu)先級(jí),它決定了將任務(wù)插 入到系統(tǒng)任務(wù)序列的哪個(gè)位置。一個(gè)具有高優(yōu)先級(jí)的任務(wù)將會(huì)優(yōu)先于其他具有低優(yōu)先級(jí)的任 務(wù)執(zhí)行。另一個(gè)參數(shù)是執(zhí)行歸因,這個(gè)參數(shù)可以指派任務(wù)是重復(fù)執(zhí)行還是一次執(zhí)行。在一次 執(zhí)行
16、情況下,任務(wù)將會(huì)在執(zhí)行完畢后從任務(wù)隊(duì)列中刪除,而對(duì)于重復(fù)執(zhí)行模式,它將有系統(tǒng) 任務(wù)管理器按照一定的時(shí)間間隔調(diào)用,直到一個(gè)取消注冊(cè)函數(shù)由應(yīng)用程序調(diào)用。此外,任務(wù)隊(duì)列管理系統(tǒng)內(nèi)置于EMIDE中,以支持任務(wù)進(jìn)入,返回和退出操縱。由于上述的設(shè)計(jì)和實(shí)現(xiàn),應(yīng)用程序和系統(tǒng)能都在函數(shù)調(diào)用和參數(shù)傳遞方面彼此交流。因 此在EMIDE必然可以支持在應(yīng)用程序空間中支持處理低級(jí)中斷事件。中斷處理的注冊(cè)和一 個(gè)通常任務(wù)的區(qū)別主要在于中斷類型的參數(shù)的聲明。該參數(shù)將用于將應(yīng)用程序中斷處理與一 個(gè)專用的系統(tǒng)中斷處理所綁定。圖 5 演示了一個(gè)支持多任務(wù)處理和在應(yīng)用程序空間處理底層中斷的實(shí)例程序Fi gure 5. Appicti
17、li Fi gure 5. Appictili on ex a nip le with muli-lsks tind low-level i nl e itu pl ioi handling support/*iiiulii-Tasiis and h w-ie vet iitivri-npTMit hit adit ttfi frmspacv */甘h: cl ndc int in bin i vfl id)/ register an applicatifln tad k- r il- ll j; t lt i in rr p】;irl:_;iiTiT;il_l;ii】dler,PACK_/R
18、RIVA: EVENT);S* fJiiL- upplLcutLoii tak to y: I LglStL-IL-d *voi. upp_rnsk_lilir_crd_(IcclihtmSciis (u fvcii)/in the night, turn off the waterLTiark sensor. When daylight arrive!;, rciitart wotcnyiark sensorif(scii5fl DataGct_lLght) 100) sc iisfir_!itopdcc ago 11Sc n sor id);else Jil-ror _stanftilvu
19、go 11Sl-r.or id);S/* Process low-level ntcrruptioii from, tIk application program. *:vo id i i tr p_ p ac k_ arr h al_h aidlcr.-pp Me isag_t * *zn sorDatajiack)if sensor data package arrived, forward St by US.VRT to Edge Routerapp ScndMc gcTbUa rtfcuM rData_pack, SLZof(AppMc?i5iagc_t);s四.實(shí)驗(yàn)工作為了評(píng)估EMI
20、DE,我們對(duì)比了在一個(gè)活動(dòng)節(jié)點(diǎn)上simpleRTJ與Contiki動(dòng)態(tài)鏈接的內(nèi)存 需求,應(yīng)用程序映像大小和應(yīng)用程序執(zhí)行速度。這個(gè)活動(dòng)節(jié)點(diǎn),如圖6 所示,是一個(gè)配備了 一個(gè)ATMEGA1281單片機(jī)與128字節(jié)的ROM和8 kb的RAM,1個(gè)光傳感器,1個(gè)溫度傳感 器,1個(gè)空氣濕度傳感器,3個(gè)十邊形傳感器、4個(gè)水印傳感器、1個(gè)IEEE802.15.4 ZigBee無(wú) 線訪問(wèn)存儲(chǔ)媒體,還有一個(gè)RS232 / USB從接口。A.性能比較內(nèi)存資源需求因?yàn)?simpleRTJ 有著一些特色功能,如垃圾收集,異常處理等,這些功能相關(guān)的代碼沒(méi) 有被編譯,故不在比較行列中表1顯示了所需內(nèi)存資源的比較結(jié)果。J
21、ABLE LCOMPARISOX RHSLLTS OF REQUIRED MEMORY RnS()l;RCTSROM(kilobytes)RAM (bytes)Contikilinking(Compact ELF5718EJVM simpleR FJ (JAVA bytecode20300EMIDE1.640對(duì)于simpleRTJ來(lái)說(shuō),高達(dá)320字節(jié)的RAN和幾乎20k字節(jié)的ROM只是它執(zhí)行的基本需 求。對(duì)于Contiki動(dòng)態(tài)鏈接機(jī)制來(lái)說(shuō),要求5.7k字節(jié)的ROM和18字節(jié)的RAM。而對(duì)于EMIDE 來(lái)說(shuō),只要求1.6k字節(jié)的ROM和40字節(jié)的RAM。EMIDE的ROM用于儲(chǔ)存中間跳表, 任務(wù)
22、注冊(cè)和任務(wù)隊(duì)列管理,RAM空間預(yù)留給任務(wù)隊(duì)列??梢钥吹紼MIDE適用于高度資源 有限的節(jié)點(diǎn)。應(yīng)用程序映像大小E = Et + Es + Ep + Ef 應(yīng)用程序映像大小是衡量性能評(píng)估的一個(gè)關(guān)鍵指標(biāo),因?yàn)樗谥鼐幊踢^(guò)程中對(duì)能源消費(fèi)有 著重要影響。Et是表示重編程過(guò)程中通過(guò)網(wǎng)絡(luò)更新所消費(fèi)的能源。Es是代碼暫時(shí)存儲(chǔ)在目 標(biāo)設(shè)備的能源消耗。比如說(shuō)在Contiki動(dòng)態(tài)鏈接中用于進(jìn)一步調(diào)用的儲(chǔ)存在外部ROM中的 原始代碼。Ep原始代碼處理時(shí)消耗的能源,例如代碼的再連接和遷移操作。Ef是存儲(chǔ)到閃 存的最終執(zhí)行代碼所消耗的能量。Es和Ep在EMIDE和嵌入式j(luò)ava虛擬機(jī)中不存在。Et和Ef它們的大小和更新代
23、碼的大 小成正比。通常, Et=PtSc,Ef=PfSc。Sc是更新代碼的大小,Pt和Pf是常數(shù),大小分別是與不同的無(wú)線網(wǎng)絡(luò)傳輸協(xié)議與目標(biāo)設(shè)備 的硬件特性所決定。因?yàn)樵跓o(wú)線網(wǎng)絡(luò)中某些情況下,轉(zhuǎn)移 1 位所需的能量相當(dāng)于一個(gè) 100MIPS/M的處理器處理3000條指令的能量,Pt不是一個(gè)小數(shù)值。因此,一個(gè)小代碼的重 編程是非常重要的,尤其是對(duì)于資源有限的傳感器節(jié)點(diǎn)來(lái)說(shuō)。比較來(lái)看,如圖7所示的一個(gè)無(wú)線傳感器網(wǎng)絡(luò)程序分別由C語(yǔ)言和java語(yǔ)言所寫(xiě)。/* Ex a tuple bi C /* Ex a tuple bi C tariff i(tc for LMiDE and Dynamic link
24、ing mechanism */Fincludc mt main(void)/ Configure WSN node typeii od _typc(L);/ Configure device sleep periodnodcEslecppcriodt 10000);/ Chanel setiiodccJiaiuicIscC IS);/ Configure logical, network address nodc_sct staticctAddr( 12);/ Control sensorsens oi_ star t(tc nip crat ureid);/ start WSN netwo
25、rkii ctw()rJ;_start();/* Example i/t J A V A Ituuifie for LJV M simpleRTJ Vimport m/;chss Teststatic void niain(Stnng args) wsn.nodcJypcCLJ;ns ii - ii o de_E_s 1 cc pp cri d( 10 000); wsn.nodc_chanlie 1 sct( IS );號(hào)ii n()dc_sct_staticNctAddr( 12 j: ns ii .scnsoi_st ail (tempest urc_i d): si.ncturork_
26、start();Figure 7. Exanip e for i ma ge size co nip a ri so nJ ABLE ll. Comparisox Results of Applicatka- Macih SizeMeehan ismCode sic (bytes)Monolithic system(Kul iniLigeJ111516Conliki dyiiinic linking (Compact ELF)1568EJVM simpleRFJ (JAVA bytecode)2232EM IDE68映像大小比較如表2.結(jié)果來(lái)看 EMIDE 相比其他方法有著巨大的優(yōu)勢(shì)。3)引用
27、代碼執(zhí)行效率EMIDE和Contiki動(dòng)態(tài)鏈接使用本地代碼,而simpleRTJ使用字節(jié)碼。為了比較這兩種 代碼的執(zhí)行效率,創(chuàng)建了一個(gè)應(yīng)用實(shí)例,分別讓本地代碼和字節(jié)碼循環(huán)執(zhí)行一個(gè)用戶函數(shù)一 百萬(wàn)次。在這個(gè)ilive節(jié)點(diǎn)執(zhí)行后的比較如表3所示。從結(jié)果來(lái)看,EMIDE明見(jiàn)好于java的 字節(jié)碼。TABLE 11L Executive Efficiency Comparison ResultsCodeTypeExecutive detailsExecutiveTime VoItae(V)Cm vent (inA)EnergyCoHsnmptioH(mJ)Byiecotle121531(X538272
28、*5Native code3731(X61176.6B.無(wú)線傳感器網(wǎng)絡(luò)的建立和遠(yuǎn)程重編程在本實(shí)驗(yàn)中,一個(gè)星形傳感器網(wǎng)絡(luò)被建立,其中有著 1 個(gè)作為協(xié)調(diào)器的 ilive 節(jié)點(diǎn),和 10個(gè)終端節(jié)點(diǎn),這個(gè)網(wǎng)絡(luò)遵循IEEE802.15.4 ZigBee規(guī)范。因?yàn)樾切尉W(wǎng)絡(luò)可以比其他ZigBee 網(wǎng)絡(luò)更加適合基礎(chǔ)研究。協(xié)調(diào)器節(jié)點(diǎn)負(fù)責(zé)新網(wǎng)絡(luò)的設(shè)立,設(shè)備連接和與外部網(wǎng)絡(luò)的通信。而 終端節(jié)點(diǎn)負(fù)責(zé)收集傳感信息和將數(shù)據(jù)包發(fā)送給協(xié)調(diào)器。傳感器網(wǎng)絡(luò)可以被用戶終端設(shè)備通過(guò)互聯(lián)網(wǎng)遠(yuǎn)程控制,例如筆記本電腦,PDA,移動(dòng) 電話等,如圖 8XEndDcvi ,-. 訪曲純心 bnditeviQeFi gure 8. Net wor k IXEndDcvi ,-. 訪曲純心 bnditeviQeFi gure 8. Net wor k I op ology stnic lureInternet 一 、Wireless Sensor NeUorkMobilePhoneRouterWeb無(wú)線傳感器網(wǎng)絡(luò)的工作和重編程過(guò)程可以概括為以下5個(gè)步驟:1)同步過(guò)程所有終端同步工作,以保證數(shù)據(jù)收集是在同一時(shí)間。這是必要的數(shù)據(jù)比較,分析和校準(zhǔn) 操作
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能車庫(kù)監(jiān)控系統(tǒng)采購(gòu)合同范例4篇
- 個(gè)人健康保險(xiǎn)合同2024年度5篇
- 2025版門窗行業(yè)綠色供應(yīng)鏈管理合作協(xié)議3篇
- 科技助力學(xué)生健康教育傳染病防治新途徑
- 二零二五版電視劇劇本改編與衍生作品開(kāi)發(fā)合同5篇
- 二零二五版高效風(fēng)力發(fā)電機(jī)組采購(gòu)合同協(xié)議3篇
- 二零二五版帶私人影院二手住宅買賣合同3篇
- 智能家居廣告設(shè)計(jì)思路解析打造未來(lái)生活體驗(yàn)
- 教育信息化背景下的教室衛(wèi)生管理
- 小區(qū)火災(zāi)事故頻發(fā)原因剖析與預(yù)防措施
- 2024企業(yè)答謝晚宴會(huì)務(wù)合同3篇
- 中華人民共和國(guó)文物保護(hù)法
- 節(jié)前物業(yè)安全培訓(xùn)
- 高甘油三酯血癥相關(guān)的器官損傷
- 牙膏項(xiàng)目創(chuàng)業(yè)計(jì)劃書(shū)
- 油畫(huà)人體200張東方姑娘的極致美
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第三章運(yùn)動(dòng)能力與個(gè)體差異
- 人教A版必修五《斐波那契數(shù)列》教案及教學(xué)反思
- 風(fēng)電工程需要編寫(xiě)的專項(xiàng)施工方案及危大工程目錄
- 商業(yè)計(jì)劃書(shū)(BP)財(cái)務(wù)計(jì)劃風(fēng)險(xiǎn)控制資本退出與附錄的撰寫(xiě)秘籍
- 七年級(jí)下冊(cè)《Reading 1 A brave young man》優(yōu)質(zhì)課教案牛津譯林版-七年級(jí)英語(yǔ)教案
評(píng)論
0/150
提交評(píng)論