董發(fā)志 熊成彪 丁洪偉 張穎婕 楊俊東
摘 ?要: 針對當(dāng)前MAC協(xié)議的研究大多停留在軟件仿真階段的問題,設(shè)計一種適用于兩層無線傳感器網(wǎng)絡(luò)的混合型MAC協(xié)議,并利用節(jié)點實現(xiàn)硬件仿真。簇內(nèi)采用門限服務(wù)方式,各節(jié)點接到喚醒通知后,依據(jù)簇頭發(fā)布的輪詢列表,按照順序發(fā)送數(shù)據(jù),實現(xiàn)無沖突通信。簇間采用隨機多址接入,各簇頭隨機爭用信道,向匯聚節(jié)點發(fā)送數(shù)據(jù)。基于Z?Stack進(jìn)行協(xié)議設(shè)計,最后利用CC2530節(jié)點搭建無線傳感器網(wǎng)絡(luò),實現(xiàn)該協(xié)議。實驗結(jié)果表明,使用該協(xié)議的系統(tǒng)能夠正確運行,吞吐量和平均時延、平均排隊隊長的實驗值與理論值一致。
關(guān)鍵詞: 無線傳感器網(wǎng)絡(luò); MAC協(xié)議設(shè)計; 隨機多址接入; 門限服務(wù); 輪詢服務(wù); 硬件仿真
中圖分類號: TN915.04?34; TP393 ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼: A ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)01?0001?04
Implementation of hybrid clustering MAC protocol in wireless sensor networks
DONG Fazhi, XIONG Chengbiao, DING Hongwei, ZHANG Yingjie, YANG Jundong
Abstract: In order to solve the problem that the MAC protocol research still mostly remains in the stage of software simulation, a hybrid MAC protocol suitable for two?layer wireless sensor networks was designed, and hardware simulation was realized by means of nodes. The threshold service mode is adopted within the cluster. After receiving the wake?up notification, each node sends data in sequence according to the polling list issued by the cluster head in order to realize collision?free communication. Random multiple accesses are adopted among clusters, and each cluster head randomly contends for a channel to send data to the sink node. The protocol is designed based on Z?Stack, and the wireless sensor network is built by CC2530 node to realize the protocol finally. The experimental results show that the system using this protocol can operate correctly, and the experimental values of throughput, average delay and average queue length are in line with the theoretical values.
Keywords: WSN; MAC protocol design; random multi?access; threshold service; polling service; hardware simulation
0 ?引 ?言
隨著無線傳感器網(wǎng)絡(luò)(WSN)被廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、國防、生活等各個領(lǐng)域,適用于各類場景的MAC協(xié)議的應(yīng)用研究成為熱點。MAC協(xié)議的設(shè)計首先考慮如何有效地利用能量來延長節(jié)點的壽命[1]。許多研究者提出了很多適用于不同無線傳感器網(wǎng)絡(luò)應(yīng)用的MAC協(xié)議?;诟偁幍腗AC協(xié)議有S?MAC[2],T?MAC[3],B?MAC[4]等?;谡{(diào)度的MAC協(xié)議時分多址接入(TDMA),周期性地給每一個節(jié)點分配一個時隙用于數(shù)據(jù)的接收和發(fā)送,其他節(jié)點可以在此時進(jìn)入休眠,從而節(jié)省了能量。Z?MAC[5]協(xié)議是一種TDMA和載波檢測多路接入(CSMA)結(jié)合的混合協(xié)議,按照優(yōu)先級訪問時槽。它給兩跳鄰居內(nèi)的每個節(jié)點預(yù)先分配一個不同的時槽,并根據(jù)不同爭用條件按不同的傳輸控制策略控制節(jié)點對時槽的訪問[6]。該領(lǐng)域的學(xué)者還進(jìn)行了許多的協(xié)議優(yōu)化研究,但多數(shù)都是利用仿真軟件進(jìn)行驗證,較少實際應(yīng)用于無線傳感器網(wǎng)絡(luò)中。本文針對層次型網(wǎng)絡(luò)結(jié)構(gòu)提出一種混合型的MAC協(xié)議,簇內(nèi)采用輪詢控制,簇間采用隨機多址接入,簇頭隨機爭用信道向匯聚節(jié)點發(fā)送數(shù)據(jù),并在CC2530節(jié)點搭建的無線傳感器網(wǎng)中實現(xiàn)了該協(xié)議。
1 ?網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
本文提出的混合型MAC協(xié)議適用于分簇層次機構(gòu)的無線傳感器網(wǎng)絡(luò),如圖1所示。每個節(jié)點之下均包含相同的節(jié)點個數(shù),本文模型為五個簇。匯聚節(jié)點是整個網(wǎng)絡(luò)的發(fā)起者和維護(hù)者,負(fù)責(zé)接收和處理簇頭消息。簇頭具有路由和數(shù)據(jù)融合的功能,對其子節(jié)點進(jìn)行輪詢服務(wù),接收其發(fā)送的數(shù)據(jù),并轉(zhuǎn)發(fā)至匯聚節(jié)點。普通節(jié)點負(fù)責(zé)數(shù)據(jù)的采集,在簇頭的控制下,在睡眠、發(fā)送等工作狀態(tài)下交替。
2 ?混合型MAC協(xié)議的實現(xiàn)
本文所述的協(xié)議結(jié)合了隨機多址和輪詢機制,簇內(nèi)利用門限服務(wù)機制,由簇頭發(fā)送輪詢列表和喚醒通知,節(jié)點接到通知后,使用門限服務(wù)方式向簇頭發(fā)送數(shù)據(jù)。簇間采用隨機多址,各簇頭隨機搶占信道,向匯聚節(jié)點發(fā)送數(shù)據(jù)。
2.1 ?隨機多址
隨機多址接入?yún)f(xié)議系統(tǒng)如圖2所示。系統(tǒng)每個節(jié)點在每個時隙開始時隨機向匯聚節(jié)點發(fā)送數(shù)據(jù)包,節(jié)點存在發(fā)送和不發(fā)送兩種狀態(tài),若兩個節(jié)點在同一個時隙內(nèi)同時發(fā)送數(shù)據(jù)包,則這兩個數(shù)據(jù)包就會發(fā)生碰撞,匯聚節(jié)點將不能接收到信息。當(dāng)這個時隙中只有一個節(jié)點發(fā)送數(shù)據(jù),匯聚節(jié)點才能正確接收到數(shù)據(jù)包。若當(dāng)前時隙沒有任何一個節(jié)點發(fā)送數(shù)據(jù)包,則該時隙空閑。
時隙式隨機多址的吞吐量理論表達(dá)式可以表示為:
[S=Ge-G] (1)
對等式兩邊同時求導(dǎo)數(shù),得:
[S=e-G-Ge-G=(1-G)e-G] (2)
平均時延為:
[T=1S] (3)
式中:[S]表示吞吐量;[G]表示信息分組的到達(dá)率。當(dāng)[G=1]時,得到吞吐量的最大值為[1e],即0.368。
終端節(jié)點數(shù)為5和20的吞吐量如圖3所示。
從圖3中可以看出,隨機多址接入?yún)f(xié)議的理論最大吞吐量為0.368,終端節(jié)點數(shù)為5時,仿真吞吐量曲線和理論曲線有一定誤差,造成誤差的原因是節(jié)點數(shù)較少。終端節(jié)點數(shù)為20時,二項分布基本符合泊松分布,仿真值和理論值一致。
2.2 ?輪詢服務(wù)
輪詢系統(tǒng)按照其服務(wù)方式的不同,可以分為完全服務(wù)、門限服務(wù)、限定服務(wù)[6?8]三種。完全服務(wù)的過程是:服務(wù)器不僅要將當(dāng)前站點中存在的信息分組服務(wù)完,在服務(wù)過程中進(jìn)入站點的信息分組也要服務(wù)完,直到當(dāng)前站點中不存在信息分組。門限服務(wù)只服務(wù)當(dāng)前站點中所存在的信息分組,對于服務(wù)過程中到達(dá)的信息分組,則緩存在站點中,等待下一次的服務(wù)。限定服務(wù)一般指限定([K=1])服務(wù),即每一次輪詢到的站點只發(fā)送一個信息分組。
對于分簇網(wǎng)絡(luò),將門限服務(wù)方式運用于普通節(jié)點和簇頭的通信。輪詢系統(tǒng)采用馬爾科夫鏈和概率母函數(shù)的方法構(gòu)建數(shù)學(xué)模型[9],以此來分析其性能。門限服務(wù)的平均時延如下[10]:
[E(WG)=12γ-1+11-NλβN-1+γ+λβρ+]
[ ? ? ? ? ? ? ? ? ?Nλβ[2γ+(β-1)]+λβ1-N+1] (4)
平均排隊隊長為:
[gii=Nγλ1-Nλβ] (5)
式中:[N]為終端節(jié)點數(shù)目;[λ]表示信息分組的到達(dá)率;[β] 表示服務(wù)信息分組的服務(wù)率;[γ]表示兩個站點之間的轉(zhuǎn)換時間。
3 ?實驗的實施
3.1 ?傳感器節(jié)點的選擇
本文傳感器節(jié)點選擇德州儀器制造的CC2530,其芯片為TI公司的CC2530。CC2530基于51內(nèi)核,是一個兼容IEEE 802.15.4的真正的片上系統(tǒng)。相比于CC2430,其閃存達(dá)到256 KB,可以滿足大應(yīng)用的需求,擁有強大的地址識別和數(shù)據(jù)包處理能力。CC2530提供了101 dB的鏈路質(zhì)量,接收靈敏度高,抗干擾性強,完全能夠滿足本實驗的需求。
3.2 ?簇結(jié)構(gòu)的劃分
分簇算法是無線傳感器網(wǎng)中實施分層控制的重要方法。分簇算法主要對網(wǎng)絡(luò)中的節(jié)點進(jìn)行層次的劃分,若干相鄰的節(jié)點組成一個簇,每個簇有一個簇頭,各個簇頭構(gòu)成了上層的骨干網(wǎng),所有的簇間通信都通過骨干網(wǎng)轉(zhuǎn)發(fā)[11]。本實驗的層次結(jié)構(gòu)通過修改協(xié)議棧實現(xiàn),Z?Stack協(xié)議棧支持多種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),典型的分為三種類型:星型、樹型、網(wǎng)狀型[12]。為了實現(xiàn)本實驗的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),采用樹型結(jié)構(gòu)。通過修改協(xié)議棧的最大路由深度和各層最多能夠連接的子節(jié)點數(shù),即可形成比較穩(wěn)定、均勻的兩層結(jié)構(gòu)。
3.3 ?軟件設(shè)計
基于Z?Stack進(jìn)行軟件設(shè)計。分別對終端節(jié)點、路由器和協(xié)調(diào)器進(jìn)行程序設(shè)計,實現(xiàn)流程如圖5所示。按下匯聚節(jié)點的按鍵后,整個系統(tǒng)開始工作,普通節(jié)點初始化完成,等待簇頭的命令幀,同時以一定的到達(dá)率產(chǎn)生數(shù)據(jù),將數(shù)據(jù)放入信息緩沖區(qū)中。簇頭發(fā)布輪詢列表按列表發(fā)送喚醒通知,向某個節(jié)點發(fā)送喚醒通知后,產(chǎn)生一個合適的等待時間。在等待時間內(nèi)未收到該節(jié)點的數(shù)據(jù),則觸發(fā)跳轉(zhuǎn)程序,按照列表順序繼續(xù)發(fā)送通知。收到數(shù)據(jù)則隨機將其轉(zhuǎn)發(fā)到匯聚節(jié)點。普通節(jié)點偵聽到發(fā)送命令后將緩沖區(qū)中的信息分組復(fù)制到待發(fā)送緩沖區(qū),并發(fā)送出去,直到發(fā)送緩沖區(qū)中沒有數(shù)據(jù)。5個簇頭用A,B,C,D,E編號。門限服務(wù)中參數(shù)的設(shè)計為[β=1],[γ=1]。
4 ?性能分析
本文實驗分析的方法是利用python程序觀察簇頭和匯聚節(jié)點串口的輸出,可以看到匯聚節(jié)點的輸出為:[A→B→C→D→E],如此反復(fù)。同時將數(shù)據(jù)分別讀取,存儲為兩個文本文件。在進(jìn)行相應(yīng)的處理之后,可以得到相關(guān)數(shù)據(jù)。主要評估的參數(shù)是簇頭及其子節(jié)點組成的輪詢系統(tǒng)的平均時延、平均排隊隊長,以及整個系統(tǒng)的吞吐量。
輪詢系統(tǒng)的平均時延的實驗值計算如下[10]:
[輪詢平均時延實驗值= ? ? ? ? 服務(wù)完所有節(jié)點中信息分組所需的時間各節(jié)點信息分組的總數(shù)]
輪詢的平均排隊隊長的實驗值由下式計算:
[平均排隊隊長實驗值=各節(jié)點信息分組的總數(shù)節(jié)點數(shù)×循環(huán)次數(shù)]
系統(tǒng)吞吐量的實驗值可以由下式計算:
[吞吐量實驗值=匯聚節(jié)點成功接收的信息分組數(shù)發(fā)送的信息分組的總數(shù)]
實驗中選取各個到達(dá)率的前1 000個信息分組來計算相關(guān)指標(biāo),計算輪詢的時延需要知道簇頭節(jié)點服務(wù)完1 000個信息分組所需的時間長度。這個時間利用串口的時間戳來記錄。計算平均排隊隊長所需參數(shù),各節(jié)點信息的總數(shù)為1 000,節(jié)點數(shù)為5,循環(huán)次數(shù)則需要利用程序記錄下服務(wù)完1 000個信息分組所需的循環(huán)次數(shù)。通過理論公式計算的理論值和實測實驗值對比如表1所示。
從表1中可以看出,實驗值與理論值存在一定誤差,但是都在理論值附近波動。要降低誤差可以通過增加節(jié)點數(shù)和信息分組的數(shù)量來實現(xiàn),但是所需的實驗數(shù)據(jù)的收集需要花費更長的時間。
系統(tǒng)的實際吞吐量如圖6所示。從圖6中可以看出,當(dāng)?shù)竭_(dá)率為1時,系統(tǒng)的吞吐量達(dá)到最大。與理論值相比,存在誤差,考慮到實際傳輸過程中的干擾和其他硬件原因,這個誤差是可以接受的。
5 ?結(jié) ?語
針對目前對于無線傳感器網(wǎng)絡(luò)MAC協(xié)議的研究大多停留在軟件仿真階段,本文選取隨機多址接入,并結(jié)合門限服務(wù)機制設(shè)計一種混合型的MAC協(xié)議,將其應(yīng)用于真實的傳感器網(wǎng)絡(luò)中。簇內(nèi)的輪詢通信方式將多跳通信轉(zhuǎn)化為單跳,避免了碰撞產(chǎn)生的能量損耗。所搭建的無線傳感器網(wǎng)絡(luò)能夠正確實現(xiàn)協(xié)議,并且平均時延、平均排隊隊長、吞吐量與理論值一致,邁出了MAC協(xié)議硬件仿真的重要一步,為今后更加復(fù)雜的協(xié)議的硬件實現(xiàn)奠定了基礎(chǔ)。
參考文獻(xiàn)
[1] 王翠霞.無線傳感器網(wǎng)絡(luò)能耗自適應(yīng)機制研究[D].北京:北京工業(yè)大學(xué),2014.
[2] PORTILLO C, MARTINEZ?BAUSET J, PLA V. Modelling of S?MAC for heterogeneous WSN [C]// IFIP International Conference on New Technologies, Mobility and Security. [S.l.]: IEEE, 2018: 1?6.
[3] ZHANG D, CHEN L, XUE F, et al. T?MAC: protecting mandatory access control system integrity from malicious execution environment on ARM?based mobile devices [C]// International Conference on Information Security. [S.l.]: Springer International Publishing AG, 2017: 348?365.
[4] KAMAL A, WARIP M N M, OMAR N, et al. Power consumption optimization based on B?MAC protocol for multi?scenario WSN by Taguchi method [C]// Recent Trends in Information and Communication Technology. [S.l.]: Springer International Publishing AG, 2017: 210?217.
[5] IWATA T, MINEMATSU K, PEYRIN T, et al. ZMAC: a fast tweakable block cipher mode for highly secure message authentication [C]// Advances in Cryptology?CRYPTO 2017. [S.l.]: International Association for Cryptologic Research, 2017: 34?65.
[6] 金喜龍,章國安,葉翔,等.認(rèn)知車載網(wǎng)中基于TDMA/CSMA的混合多信道MAC協(xié)議研究[J].計算機應(yīng)用研究,2018,35(3):874?878.
[7] 楊志軍,丁洪偉,陳傳龍.完全服務(wù)和門限服務(wù)兩級輪詢系統(tǒng)[E(x)]特性分析[J].電子學(xué)報,2014,42(4):774?778.
[8] YANG Z J, DING H W. Characteristics of a two?class polling system model [J]. Tsinghua science and technology, 2014, 19(5): 516?520.
[9] 蘇楊,丁陽洋.非對稱門限服務(wù)與完全服務(wù)的性能解析[J].計算機系統(tǒng)應(yīng)用,2018,27(4):145?150.
[10] 蘇楊,楊志軍,丁陽洋,等.無線傳感器網(wǎng)絡(luò)中輪詢系統(tǒng)控制的實現(xiàn)[J].電子測量技術(shù),2018,41(4):66?70.
[11] 馮咲,張慧檔.無線傳感器網(wǎng)絡(luò)分簇路由中基于自適應(yīng)的簇頭輪換算法[J].傳感技術(shù)學(xué)報,2018,31(6):949?956.
[12] 董道領(lǐng),張峰.基于區(qū)域優(yōu)先的樹型ZigBee網(wǎng)絡(luò)的性能分析[J].信息技術(shù),2017(9):130?133.
作者簡介:董發(fā)志(1993—),男,云南楚雄人,碩士研究生,主要研究方向為無線傳感器網(wǎng)絡(luò)、隨機多址通信系統(tǒng)。
熊成彪(1995—),男,云南楚雄人,碩士研究生,主要研究方向為無線傳感器網(wǎng)絡(luò)、物聯(lián)網(wǎng)。
丁洪偉(1964—),男,江西于都人,博士,教授,博士生導(dǎo)師,主要研究方向為輪詢多址系統(tǒng)、隨機多址系統(tǒng)。