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