無線傳感網(wǎng)絡(luò)的構(gòu)件化軟件開發(fā)
圖3 中構(gòu)件1 和構(gòu)件2 不是提供最底層功能的構(gòu)件,它們將底層構(gòu)件3、構(gòu)件4 和構(gòu)件5 進(jìn)行重新整合,最終使用的是構(gòu)件3、構(gòu)件4 和構(gòu)件5 的功能。所以,通過改進(jìn)后的方案中,讓應(yīng)用構(gòu)件直接調(diào)用構(gòu)件3、構(gòu)件4 和構(gòu)件5,讓構(gòu)件1 和構(gòu)件2 的功能交給應(yīng)用構(gòu)件去完成,這樣提高了代碼的執(zhí)行效率和開發(fā)效率。實(shí)際上,結(jié)合構(gòu)件化系統(tǒng)可知,圖3 的簡(jiǎn)化過程解決了扇出問題,應(yīng)用構(gòu)件只要調(diào)用了一個(gè)硬件抽象層構(gòu)件,就可以在應(yīng)用構(gòu)件內(nèi)任何需要的地方去調(diào)用硬件抽象構(gòu)件所提供的接口中命令。配線構(gòu)件在配線時(shí)也變的簡(jiǎn)單,沒有系統(tǒng)集成構(gòu)件中多個(gè)硬件抽象層構(gòu)件的重復(fù)配線操作。
對(duì)構(gòu)件化系統(tǒng)以及底層硬件抽象構(gòu)件和各具體芯片研究分析可知,系統(tǒng)集成構(gòu)件都是起到上述作用,同時(shí)又引入新的問題。若開發(fā)人員對(duì)硬件抽象構(gòu)件熟悉,就完全可以跨過系統(tǒng)集成構(gòu)件而直接使用硬件抽象層提供的構(gòu)件。這樣就簡(jiǎn)化了原方案中系統(tǒng)集成構(gòu)件之間繁雜的調(diào)用關(guān)系,更重要的是可以大大提高系統(tǒng)的運(yùn)行效率,還以CC2420 系統(tǒng)集成構(gòu)件為例,其改進(jìn)后的構(gòu)件調(diào)用方案如圖4 所示:
圖4 改進(jìn)方案中構(gòu)件間關(guān)系
由圖4 可知,原來方案中的系統(tǒng)集成級(jí)構(gòu)件層的構(gòu)件沒有被調(diào)用,而直接調(diào)用硬件抽象層構(gòu)件。由圖4 與圖2 對(duì)比發(fā)現(xiàn),將原來系統(tǒng)集成層構(gòu)件*能移到PhyP 構(gòu)件中完成,這樣避免了對(duì)底層構(gòu)件的重復(fù)使用,整個(gè)結(jié)構(gòu)更清晰簡(jiǎn)單。因此,需要對(duì)PhyP 構(gòu)件做改進(jìn),使得其能夠完成初始化射頻芯片,調(diào)用射頻芯片發(fā)送和接受數(shù)據(jù)。雖然看起來PhyP 構(gòu)件要比實(shí)際代碼量大,但是對(duì)改進(jìn)后系統(tǒng)運(yùn)行的測(cè)試結(jié)果表明,提高了10%的工作效率,縮減3000 行的代碼量。
3 測(cè)試直接調(diào)用法
將直接調(diào)用法應(yīng)用IEEE802.15.4 的設(shè)計(jì)與實(shí)現(xiàn)。IEEE802.15.4 標(biāo)準(zhǔn)目前已成為事實(shí)上的無線傳感器標(biāo)準(zhǔn),并在各自硬件平臺(tái)上開發(fā)該協(xié)議。以IEEE802.15.4 標(biāo)準(zhǔn)為例,在TinyOS系統(tǒng)、CC2420 射頻芯片的環(huán)境下使用本文直接調(diào)用法來設(shè)計(jì)實(shí)現(xiàn)該標(biāo)準(zhǔn),并測(cè)試其工作性能。
設(shè)計(jì)按照TinyOS 系統(tǒng)的構(gòu)件化編程思路進(jìn)行。物理層將設(shè)計(jì)兩個(gè)構(gòu)件(PhyP,PhyC),相關(guān)操作通過標(biāo)準(zhǔn)中定義的兩個(gè)接口進(jìn)行:數(shù)據(jù)訪問接口(PD)、管理接口(PLME)。構(gòu)件PhyP 是物理層的主要實(shí)現(xiàn)構(gòu)件,它具有初始化構(gòu)件、發(fā)送數(shù)據(jù)、接受數(shù)據(jù)三個(gè)基本功能。MAC 層設(shè)計(jì)兩個(gè)構(gòu)件:MacC、MacP,其中MacP 是主要的執(zhí)行構(gòu)件。MAC 層中有兩種設(shè)備:協(xié)調(diào)器節(jié)點(diǎn)和非協(xié)調(diào)器節(jié)點(diǎn)。協(xié)調(diào)器節(jié)點(diǎn)負(fù)責(zé)建立網(wǎng)絡(luò):確立網(wǎng)絡(luò)號(hào)(PANID)、本節(jié)點(diǎn)的短地址、并產(chǎn)生信標(biāo)幀載荷部分。非協(xié)調(diào)器節(jié)點(diǎn)加入?yún)f(xié)調(diào)器節(jié)點(diǎn)所建立的網(wǎng)絡(luò)中組成更大的個(gè)人區(qū)域網(wǎng)絡(luò)。
3.1 功能測(cè)試
測(cè)試程序運(yùn)行在兩個(gè)對(duì)等的節(jié)點(diǎn)上,分兩個(gè)階段測(cè)試。首先測(cè)試物理層的通信情況:一號(hào)個(gè)節(jié)點(diǎn)產(chǎn)生一個(gè)有效載荷為:0 至9 十個(gè)數(shù)據(jù)的數(shù)據(jù)包并發(fā)送給另外二號(hào)節(jié)點(diǎn),二號(hào)節(jié)點(diǎn)在收到上述數(shù)據(jù)包后原封不動(dòng)將該數(shù)據(jù)包又發(fā)回給剛才發(fā)送者。發(fā)送和接收到的數(shù)據(jù)包的內(nèi)容是一致的,并且信號(hào)燈閃爍正常,說明節(jié)點(diǎn)之間的通信正常,物理層設(shè)計(jì)工作正常。進(jìn)一步測(cè)試MAC 層工作情況:將一號(hào)節(jié)點(diǎn)設(shè)為協(xié)調(diào)器節(jié)點(diǎn),二號(hào)節(jié)點(diǎn)設(shè)置為非協(xié)調(diào)器節(jié)點(diǎn)。一號(hào)節(jié)點(diǎn)初始化并建立一個(gè)PAN 網(wǎng),二號(hào)節(jié)點(diǎn)請(qǐng)求加入一號(hào)節(jié)點(diǎn)所創(chuàng)建的網(wǎng)中,驗(yàn)證網(wǎng)絡(luò)是否工作正常。通過功能測(cè)試可知,整個(gè)工作過程是按照IEEE802.15.4 標(biāo)準(zhǔn)的規(guī)定運(yùn)行,實(shí)現(xiàn)了該標(biāo)準(zhǔn)功能。
3.2 效率測(cè)試
工作效率測(cè)試中應(yīng)用產(chǎn)生50 個(gè)數(shù)據(jù)包后調(diào)用MAC 層發(fā)送接口發(fā)送這50 個(gè)數(shù)據(jù)包,從應(yīng)用調(diào)用MAC 層數(shù)據(jù)接口時(shí)開始計(jì)時(shí),到應(yīng)用層收到包成功發(fā)送的確認(rèn)消息為止。記錄下這個(gè)響應(yīng)時(shí)間,并依次增大發(fā)送數(shù)據(jù)包的的有效載荷,從10 個(gè)字節(jié)增加到90,記錄下有效載和增加時(shí)的響應(yīng)時(shí)間。效率測(cè)試將分別在原始方案和直接調(diào)用法開發(fā)出來的協(xié)議中進(jìn)行,統(tǒng)計(jì)兩種不同方法的工作參數(shù),最后得到的時(shí)間分布如圖5 所示。
圖5 收發(fā)數(shù)據(jù)效率比較
由圖5 可知,在50 個(gè)數(shù)據(jù)包的情況下,當(dāng)數(shù)據(jù)包的有效載荷在10 至50 個(gè)字節(jié)時(shí)二者響應(yīng)時(shí)間差距并不大,響應(yīng)時(shí)間提高了10%左右,當(dāng)有效載荷增加到50 個(gè)字節(jié)以上時(shí),響應(yīng)時(shí)間提高30%,有利于滿足嵌入式系統(tǒng)的實(shí)時(shí)性要求
結(jié)束語
本方案通過分析無線傳感器網(wǎng)絡(luò)現(xiàn)有的開發(fā)方法的不足,提出直接調(diào)用法,并用該方法實(shí)現(xiàn)IEEE802.15.4 標(biāo)準(zhǔn),最終達(dá)到預(yù)期目標(biāo)。方案的移植性高,穩(wěn)定性好,代碼量小,適合無線傳感器資源有限,實(shí)時(shí)性要求高的特點(diǎn)。同時(shí)直接調(diào)用法可以用來開發(fā)其他通信協(xié)議,如:802.11、LEACH、藍(lán)牙等。
評(píng)論