謝顯杰,何亞南,袁建明,劉發(fā)穩(wěn),黃智睿,方 芳
(昆明冶金高等??茖W(xué)校計(jì)算機(jī)信息學(xué)院,云南 昆明 650033)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks, WSN)是目前在現(xiàn)實(shí)生活中應(yīng)用較為廣泛的熱點(diǎn)技術(shù),通過將一系列傳感器放入到監(jiān)測區(qū)域,實(shí)現(xiàn)對(duì)監(jiān)測對(duì)象數(shù)據(jù)的采集,將采集到的數(shù)據(jù)通過無線傳輸?shù)姆绞絺鬏斨羺R聚節(jié)點(diǎn),最終以報(bào)表等形式展現(xiàn)在人類面前,實(shí)現(xiàn)物理、計(jì)算機(jī)、人類社會(huì)3方面的銜接[1]。而無線傳感器網(wǎng)絡(luò)MAC協(xié)議直接影響無線傳輸過程中無線信道的傳輸方式[2],研究和優(yōu)化MAC協(xié)議就是研究如何對(duì)節(jié)點(diǎn)的資源進(jìn)行合理的配置。無線傳感器網(wǎng)絡(luò)最典型的特點(diǎn)就是資源的有限性。放入監(jiān)測區(qū)域的無線節(jié)點(diǎn)由于監(jiān)測環(huán)境的制約,能量往往難以得到及時(shí)補(bǔ)充,因此我們需要減少節(jié)點(diǎn)能量的無謂開銷以保證節(jié)點(diǎn)能夠更長久地運(yùn)行,而在相同情況下節(jié)點(diǎn)的平均排隊(duì)隊(duì)長越小代表著節(jié)點(diǎn)能量的開銷越少。本文提出的一種區(qū)分優(yōu)先級(jí)的無線傳感器網(wǎng)絡(luò)MAC協(xié)議,無線傳感器網(wǎng)絡(luò)操作系統(tǒng)TinyOS實(shí)現(xiàn)與傳統(tǒng)的S-MAC、T-MAC、Z-MAC協(xié)議相比較,在負(fù)載較低時(shí)其平均排隊(duì)隊(duì)長有著較好的表現(xiàn),負(fù)載較高時(shí)也有著較好的QoS保障。
圖1 區(qū)分優(yōu)先級(jí)的無線傳感器 網(wǎng)絡(luò)MAC協(xié)議模型Fig.1 Prioritized MAC protocol model of wireless sensor network
區(qū)分優(yōu)先級(jí)的無線傳感器網(wǎng)絡(luò)MAC協(xié)議模型如圖1所示,其工作原理為:在無線傳感器網(wǎng)絡(luò)中有2個(gè)優(yōu)先級(jí),一個(gè)站點(diǎn)被標(biāo)識(shí)為高優(yōu)先級(jí)站點(diǎn),記為h站點(diǎn),其余站點(diǎn)標(biāo)識(shí)為低優(yōu)先級(jí)站點(diǎn)。該協(xié)議模型的控制流程為:服務(wù)器首先對(duì)站點(diǎn)h采用完全服務(wù)策略進(jìn)行服務(wù),當(dāng)站點(diǎn)h中的信息為空時(shí)轉(zhuǎn)入一個(gè)普通站點(diǎn)進(jìn)行服務(wù),對(duì)普通站點(diǎn)中的某個(gè)隊(duì)列i使用門限服務(wù)策略進(jìn)行服務(wù),在此服務(wù)期間到達(dá)的信息則轉(zhuǎn)入到下一個(gè)服務(wù)期間進(jìn)行服務(wù),服務(wù)器對(duì)普通站點(diǎn)i服務(wù)完成后,再轉(zhuǎn)入站點(diǎn)h進(jìn)行服務(wù),之后按照相同的方式對(duì)下一站點(diǎn)進(jìn)行服務(wù),依此方式周期性地進(jìn)行服務(wù)。
為了能夠有效地對(duì)無線傳感器網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)優(yōu)先級(jí)進(jìn)行控制,本研究將動(dòng)態(tài)組織的無線傳感器網(wǎng)絡(luò)劃分為相對(duì)穩(wěn)定的簇結(jié)構(gòu),以確保大規(guī)模的無線傳感器網(wǎng)絡(luò)能夠在不降低通信質(zhì)量的情況下正常工作。
本文對(duì)對(duì)系統(tǒng)模型內(nèi)的 MAC幀結(jié)構(gòu)進(jìn)行設(shè)計(jì),如圖2所示,在IEEE 802.15.4 MAC命令幀的基礎(chǔ)上加入優(yōu)先級(jí)字段,在開始傳輸時(shí)簇頭節(jié)點(diǎn)首先對(duì)無線傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)廣播該命令幀,用于告知網(wǎng)絡(luò)中各簇內(nèi)節(jié)點(diǎn)的優(yōu)先級(jí)。
圖2 MAC命令幀結(jié)構(gòu)設(shè)計(jì)Fig.2 MAC command frame structure design
在無線傳感器網(wǎng)絡(luò)MAC協(xié)議的設(shè)計(jì)過程中,根據(jù)所設(shè)計(jì)的MAC協(xié)議模型的運(yùn)行機(jī)制及流程,采用以超幀為周期的MAC幀結(jié)構(gòu)進(jìn)行通信。具體的MAC幀結(jié)構(gòu)如圖3所示。
圖3 以超幀為周期的MAC幀結(jié)構(gòu)設(shè)計(jì)Fig.3 MAC frame structure design with superframe as the period
由于服務(wù)器的服務(wù)時(shí)間是視服務(wù)站點(diǎn)中的信息分組數(shù)所決定的,因此采用的超幀結(jié)構(gòu)并不規(guī)定擁有時(shí)隙的數(shù)目,其時(shí)隙是一個(gè)動(dòng)態(tài)變化的數(shù)目。本研究所設(shè)計(jì)的幀結(jié)構(gòu)以超幀為一個(gè)周期對(duì)某個(gè)站點(diǎn)進(jìn)行服務(wù),以信標(biāo)幀作為其轉(zhuǎn)換的間隔。信標(biāo)幀中添加服務(wù)地址和輪詢方式2個(gè)字段,服務(wù)地址從存儲(chǔ)器中的輪詢表中按序讀取出來,用于告知下一個(gè)進(jìn)行服務(wù)的地址;輪詢方式字段的添加用于告知選擇何種輪詢方式進(jìn)行服務(wù)。在數(shù)據(jù)幀中添加收發(fā)器狀態(tài)、節(jié)點(diǎn)號(hào)和剩余包數(shù)目計(jì)數(shù)3個(gè)字段,收發(fā)器狀態(tài)字段用于控制節(jié)點(diǎn)的收發(fā)器狀態(tài);節(jié)點(diǎn)號(hào)字段用于對(duì)節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)進(jìn)行標(biāo)識(shí);剩余包數(shù)目計(jì)數(shù)字段用于計(jì)算未發(fā)送的包數(shù)目,如果剩余包數(shù)目計(jì)數(shù)為0則結(jié)束此次超幀,繼續(xù)發(fā)送信標(biāo)幀對(duì)下一個(gè)站點(diǎn)進(jìn)行服務(wù)。
在MAC命令幀廣播完成之后,以超幀為周期進(jìn)行通信,簇頭節(jié)點(diǎn)內(nèi)存儲(chǔ)著服務(wù)器服務(wù)節(jié)點(diǎn)的順序,以此實(shí)現(xiàn)對(duì)系統(tǒng)工作流程的控制。在服務(wù)器對(duì)站點(diǎn)進(jìn)行服務(wù)的過程中,建立輪詢表以分辨服務(wù)過程中的優(yōu)先級(jí)且記錄查詢順序。表1中列出了簇內(nèi)節(jié)點(diǎn)查詢順序、節(jié)點(diǎn)地址以及優(yōu)先級(jí)別之間的關(guān)系。由于模型中有2種不同優(yōu)先級(jí)的站點(diǎn),采用優(yōu)先級(jí)1、2來代表站點(diǎn)的優(yōu)先級(jí),1代表高優(yōu)先級(jí)別的站點(diǎn),2則代表低優(yōu)先級(jí)別的站點(diǎn)。
表1 區(qū)分優(yōu)先級(jí)的MAC協(xié)議模型輪詢表Tab.1 Priority MAC protocol model polling
為了方便對(duì)模型的控制,本研究將高優(yōu)先級(jí)2號(hào)節(jié)點(diǎn)放于第一位,服務(wù)器首先對(duì)2號(hào)節(jié)點(diǎn)進(jìn)行訪問和完全服務(wù),之后對(duì)查詢順序號(hào)為2的6號(hào)節(jié)點(diǎn)進(jìn)行訪問和門限服務(wù),服務(wù)器依查詢順序?qū)?jié)點(diǎn)進(jìn)行周期性的服務(wù)。當(dāng)服務(wù)器對(duì)5號(hào)節(jié)點(diǎn)服務(wù)后轉(zhuǎn)入下一個(gè)低優(yōu)先級(jí)節(jié)點(diǎn)即6號(hào)節(jié)點(diǎn),以此類推循環(huán)完成節(jié)點(diǎn)的訪問。
具體的模型工作流程如下:
1)啟動(dòng)系統(tǒng),建立簇結(jié)構(gòu),簇頭節(jié)點(diǎn)發(fā)布輪詢表;
2)判斷節(jié)點(diǎn)是否為簇頭節(jié)點(diǎn),如果是則開始按照輪詢表向查詢順序?yàn)?的節(jié)點(diǎn)發(fā)送信標(biāo)幀用于喚醒節(jié)點(diǎn),依次進(jìn)行對(duì)節(jié)點(diǎn)數(shù)據(jù)的接收,否則等待接收簇頭節(jié)點(diǎn)發(fā)送的信標(biāo)幀;
3)簇內(nèi)節(jié)點(diǎn)是否收到信標(biāo)幀,如收到則開始向簇頭節(jié)點(diǎn)按照輪詢方式(門限、完全、限定)發(fā)送數(shù)據(jù)到簇頭節(jié)點(diǎn),未收到則繼續(xù)等待信標(biāo)幀信號(hào);
4)數(shù)據(jù)發(fā)送完畢之后如需繼續(xù)采集信息則轉(zhuǎn)向下一節(jié)點(diǎn),否則結(jié)束數(shù)據(jù)采集。
區(qū)分優(yōu)先級(jí)的無線傳感器網(wǎng)絡(luò)MAC協(xié)議的實(shí)現(xiàn)需要無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)、平臺(tái)來搭建實(shí)際的實(shí)驗(yàn)環(huán)境。本研究選用的CC2538節(jié)點(diǎn)作為以MAC協(xié)議實(shí)現(xiàn)的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),是一款由TI公司研發(fā)的高性能SoC,能夠適用于要求嚴(yán)格的實(shí)際應(yīng)用環(huán)境。作為MAC協(xié)議模型實(shí)現(xiàn)的平臺(tái),TinyOS是一款開源的嵌入式操作系統(tǒng),也是一種基于事件驅(qū)動(dòng)的微型操作系統(tǒng)。其所開發(fā)的應(yīng)用程序編譯后所占的空間比較小(大多在 30 kB 以下),針對(duì)傳感器存儲(chǔ)空間小、資源量少的問題能夠予以解決。
區(qū)分優(yōu)先級(jí)的MAC協(xié)議,優(yōu)先級(jí)別有不同的節(jié)點(diǎn),針對(duì)于不同的節(jié)點(diǎn)有不同的工作方式,各類節(jié)點(diǎn)工作方式如下:
1)簇頭節(jié)點(diǎn)工作方式。
①初始化簇頭節(jié)點(diǎn);
②對(duì)高優(yōu)先級(jí)節(jié)點(diǎn)h進(jìn)行服務(wù);
③接收數(shù)據(jù)后判斷節(jié)點(diǎn)h中剩余信息分組數(shù)是否為0;
④如果信息分組數(shù)為0則查詢輪詢表,查詢輪詢表對(duì)下一個(gè)低優(yōu)先級(jí)節(jié)點(diǎn)發(fā)送通知并進(jìn)行服務(wù),否則繼續(xù)接收信息分組;
⑤判斷當(dāng)前低優(yōu)先級(jí)節(jié)點(diǎn)中剩余信息分組數(shù)是否為0,如果是重復(fù)步驟②—⑤,否則繼續(xù)接收信息分組。
2)簇內(nèi)節(jié)點(diǎn)工作方式。
由于簇內(nèi)節(jié)點(diǎn)優(yōu)先級(jí)別不同,傳感器的網(wǎng)絡(luò)MAC協(xié)議有著不同的服務(wù)方式。定義優(yōu)先級(jí)別為1的節(jié)點(diǎn)按照完全服務(wù)的方式進(jìn)行,優(yōu)先級(jí)別為2的節(jié)點(diǎn)按照門限服務(wù)方式進(jìn)行服務(wù),并依據(jù)輪詢表周期性進(jìn)行服務(wù)。由于TinyOS是一種基于事件驅(qū)動(dòng)的系統(tǒng),簇內(nèi)節(jié)點(diǎn)工作方式如下:
優(yōu)先級(jí)別為1的節(jié)點(diǎn)工作方式
①初始化簇內(nèi)節(jié)點(diǎn);
②接收到簇頭節(jié)點(diǎn)的喚醒通知,開始向簇頭節(jié)點(diǎn)發(fā)送信息分組,發(fā)送期間到達(dá)的信息分組也將一同發(fā)送給簇頭節(jié)點(diǎn),直至該簇內(nèi)節(jié)點(diǎn)內(nèi)信息分組數(shù)為空。
優(yōu)先級(jí)別為2的節(jié)點(diǎn)工作方式
①初始化簇內(nèi)節(jié)點(diǎn);
②接收到簇頭節(jié)點(diǎn)的喚醒通知,開始向簇頭節(jié)點(diǎn)發(fā)送信息分組,發(fā)送期間到達(dá)的信息分組轉(zhuǎn)入下一次服務(wù)再發(fā)送。
圖4 4類MAC協(xié)議平均排隊(duì)隊(duì)長比較Fig.4 Comparison of the average queue length of the four types of MAC protocols
將CC2538節(jié)點(diǎn)放入監(jiān)測環(huán)境中,設(shè)定節(jié)點(diǎn)到達(dá)的信息分組數(shù)滿足泊松分布,信息分組長度為 100 bits,數(shù)據(jù)率為 54 Mbit/s,在此實(shí)驗(yàn)條件下對(duì)S-MAC協(xié)議、T-MAC協(xié)議、Z-MAC協(xié)議以及區(qū)分優(yōu)先級(jí)的無線傳感器網(wǎng)絡(luò)MAC協(xié)議進(jìn)行實(shí)驗(yàn)研究。圖4是每類MAC協(xié)議經(jīng)過10次實(shí)驗(yàn)之后取的平均排隊(duì)隊(duì)長平均值所繪制的曲線。
從圖4中可以得到以下實(shí)驗(yàn)結(jié)果:
1)4類MAC協(xié)議的平均排隊(duì)隊(duì)長均隨著節(jié)點(diǎn)負(fù)載的增加而增加,S-MAC協(xié)議相比較于其它3類MAC協(xié)議其平均排隊(duì)隊(duì)長增長更為明顯。
2)總體來說平均排隊(duì)隊(duì)長的關(guān)系為S-MAC>T-MAC>Z-MAC>區(qū)分優(yōu)先級(jí)的MAC協(xié)議。區(qū)分優(yōu)先級(jí)的MAC協(xié)議中在負(fù)載較低時(shí)高于Z-MAC協(xié)議,低于T-MAC協(xié)議,負(fù)載較高時(shí)低于Z-MAC協(xié)議,可見所設(shè)計(jì)的區(qū)分優(yōu)先級(jí)的MAC協(xié)議相比較于傳統(tǒng)的MAC協(xié)議平均排隊(duì)隊(duì)長更小,能夠減少節(jié)點(diǎn)的能量開銷,有著較好的QoS保障。
3)基于TinyOS的4類MAC協(xié)議實(shí)現(xiàn),發(fā)現(xiàn)本文對(duì)幀結(jié)構(gòu)、系統(tǒng)工作流程的設(shè)計(jì)以及工作節(jié)點(diǎn)功能的設(shè)計(jì)能有效地對(duì)4類MAC協(xié)議實(shí)際性能進(jìn)行驗(yàn)證。
本文基于TinyOS系統(tǒng)對(duì)Corte-M3為處理器的CC2538節(jié)點(diǎn)進(jìn)行研究,提出一種區(qū)分優(yōu)先級(jí)的無線傳感器網(wǎng)絡(luò)MAC協(xié)議,對(duì)該MAC協(xié)議在TinyOS系統(tǒng)上的實(shí)現(xiàn)進(jìn)行了詳細(xì)的設(shè)計(jì),最終在實(shí)際的應(yīng)用環(huán)境中進(jìn)行實(shí)驗(yàn)。與傳統(tǒng)的MAC協(xié)議相比較,區(qū)分優(yōu)先級(jí)的無線傳感器網(wǎng)絡(luò)MAC協(xié)議在負(fù)載較低時(shí)其平均排隊(duì)隊(duì)長有著較好的表現(xiàn),效率略高于Z-MAC協(xié)議。在負(fù)載較大時(shí),其區(qū)分優(yōu)先級(jí)的優(yōu)勢能充分體現(xiàn)出來,相同負(fù)載情況下在4類MAC協(xié)議中其平均排隊(duì)隊(duì)長是最小的,說明在負(fù)載較高時(shí)區(qū)分優(yōu)先級(jí)的無線傳感器網(wǎng)絡(luò)MAC協(xié)議有著更好的QoS保障,能夠有效降低節(jié)點(diǎn)的能量開銷,從而使無線傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)能更持久地工作。