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