董發(fā)志 熊成彪 丁洪偉 張穎婕 楊俊東
摘 ?要: 針對當(dāng)前MAC協(xié)議的研究大多停留在軟件仿真階段的問題,設(shè)計(jì)一種適用于兩層無線傳感器網(wǎng)絡(luò)的混合型MAC協(xié)議,并利用節(jié)點(diǎn)實(shí)現(xiàn)硬件仿真。簇內(nèi)采用門限服務(wù)方式,各節(jié)點(diǎn)接到喚醒通知后,依據(jù)簇頭發(fā)布的輪詢列表,按照順序發(fā)送數(shù)據(jù),實(shí)現(xiàn)無沖突通信。簇間采用隨機(jī)多址接入,各簇頭隨機(jī)爭用信道,向匯聚節(jié)點(diǎn)發(fā)送數(shù)據(jù)。基于Z?Stack進(jìn)行協(xié)議設(shè)計(jì),最后利用CC2530節(jié)點(diǎn)搭建無線傳感器網(wǎng)絡(luò),實(shí)現(xiàn)該協(xié)議。實(shí)驗(yàn)結(jié)果表明,使用該協(xié)議的系統(tǒng)能夠正確運(yùn)行,吞吐量和平均時(shí)延、平均排隊(duì)隊(duì)長的實(shí)驗(yàn)值與理論值一致。
關(guān)鍵詞: 無線傳感器網(wǎng)絡(luò); MAC協(xié)議設(shè)計(jì); 隨機(jī)多址接入; 門限服務(wù); 輪詢服務(wù); 硬件仿真
中圖分類號(hào): TN915.04?34; TP393 ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? 文章編號(hào): 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è)、國防、生活等各個(gè)領(lǐng)域,適用于各類場景的MAC協(xié)議的應(yīng)用研究成為熱點(diǎn)。MAC協(xié)議的設(shè)計(jì)首先考慮如何有效地利用能量來延長節(jié)點(diǎn)的壽命[1]。許多研究者提出了很多適用于不同無線傳感器網(wǎng)絡(luò)應(yīng)用的MAC協(xié)議?;诟偁幍腗AC協(xié)議有S?MAC[2],T?MAC[3],B?MAC[4]等?;谡{(diào)度的MAC協(xié)議時(shí)分多址接入(TDMA),周期性地給每一個(gè)節(jié)點(diǎn)分配一個(gè)時(shí)隙用于數(shù)據(jù)的接收和發(fā)送,其他節(jié)點(diǎn)可以在此時(shí)進(jìn)入休眠,從而節(jié)省了能量。Z?MAC[5]協(xié)議是一種TDMA和載波檢測多路接入(CSMA)結(jié)合的混合協(xié)議,按照優(yōu)先級(jí)訪問時(shí)槽。它給兩跳鄰居內(nèi)的每個(gè)節(jié)點(diǎn)預(yù)先分配一個(gè)不同的時(shí)槽,并根據(jù)不同爭用條件按不同的傳輸控制策略控制節(jié)點(diǎn)對時(shí)槽的訪問[6]。該領(lǐng)域的學(xué)者還進(jìn)行了許多的協(xié)議優(yōu)化研究,但多數(shù)都是利用仿真軟件進(jìn)行驗(yàn)證,較少實(shí)際應(yīng)用于無線傳感器網(wǎng)絡(luò)中。本文針對層次型網(wǎng)絡(luò)結(jié)構(gòu)提出一種混合型的MAC協(xié)議,簇內(nèi)采用輪詢控制,簇間采用隨機(jī)多址接入,簇頭隨機(jī)爭用信道向匯聚節(jié)點(diǎn)發(fā)送數(shù)據(jù),并在CC2530節(jié)點(diǎn)搭建的無線傳感器網(wǎng)中實(shí)現(xiàn)了該協(xié)議。
1 ?網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
本文提出的混合型MAC協(xié)議適用于分簇層次機(jī)構(gòu)的無線傳感器網(wǎng)絡(luò),如圖1所示。每個(gè)節(jié)點(diǎn)之下均包含相同的節(jié)點(diǎn)個(gè)數(shù),本文模型為五個(gè)簇。匯聚節(jié)點(diǎn)是整個(gè)網(wǎng)絡(luò)的發(fā)起者和維護(hù)者,負(fù)責(zé)接收和處理簇頭消息。簇頭具有路由和數(shù)據(jù)融合的功能,對其子節(jié)點(diǎn)進(jìn)行輪詢服務(wù),接收其發(fā)送的數(shù)據(jù),并轉(zhuǎn)發(fā)至匯聚節(jié)點(diǎn)。普通節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的采集,在簇頭的控制下,在睡眠、發(fā)送等工作狀態(tài)下交替。
2 ?混合型MAC協(xié)議的實(shí)現(xiàn)
本文所述的協(xié)議結(jié)合了隨機(jī)多址和輪詢機(jī)制,簇內(nèi)利用門限服務(wù)機(jī)制,由簇頭發(fā)送輪詢列表和喚醒通知,節(jié)點(diǎn)接到通知后,使用門限服務(wù)方式向簇頭發(fā)送數(shù)據(jù)。簇間采用隨機(jī)多址,各簇頭隨機(jī)搶占信道,向匯聚節(jié)點(diǎn)發(fā)送數(shù)據(jù)。
2.1 ?隨機(jī)多址
隨機(jī)多址接入?yún)f(xié)議系統(tǒng)如圖2所示。系統(tǒng)每個(gè)節(jié)點(diǎn)在每個(gè)時(shí)隙開始時(shí)隨機(jī)向匯聚節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,節(jié)點(diǎn)存在發(fā)送和不發(fā)送兩種狀態(tài),若兩個(gè)節(jié)點(diǎn)在同一個(gè)時(shí)隙內(nèi)同時(shí)發(fā)送數(shù)據(jù)包,則這兩個(gè)數(shù)據(jù)包就會(huì)發(fā)生碰撞,匯聚節(jié)點(diǎn)將不能接收到信息。當(dāng)這個(gè)時(shí)隙中只有一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù),匯聚節(jié)點(diǎn)才能正確接收到數(shù)據(jù)包。若當(dāng)前時(shí)隙沒有任何一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,則該時(shí)隙空閑。
時(shí)隙式隨機(jī)多址的吞吐量理論表達(dá)式可以表示為:
[S=Ge-G] (1)
對等式兩邊同時(shí)求導(dǎo)數(shù),得:
[S=e-G-Ge-G=(1-G)e-G] (2)
平均時(shí)延為:
[T=1S] (3)
式中:[S]表示吞吐量;[G]表示信息分組的到達(dá)率。當(dāng)[G=1]時(shí),得到吞吐量的最大值為[1e],即0.368。
終端節(jié)點(diǎn)數(shù)為5和20的吞吐量如圖3所示。
從圖3中可以看出,隨機(jī)多址接入?yún)f(xié)議的理論最大吞吐量為0.368,終端節(jié)點(diǎn)數(shù)為5時(shí),仿真吞吐量曲線和理論曲線有一定誤差,造成誤差的原因是節(jié)點(diǎn)數(shù)較少。終端節(jié)點(diǎn)數(shù)為20時(shí),二項(xiàng)分布基本符合泊松分布,仿真值和理論值一致。
2.2 ?輪詢服務(wù)
輪詢系統(tǒng)按照其服務(wù)方式的不同,可以分為完全服務(wù)、門限服務(wù)、限定服務(wù)[6?8]三種。完全服務(wù)的過程是:服務(wù)器不僅要將當(dāng)前站點(diǎn)中存在的信息分組服務(wù)完,在服務(wù)過程中進(jìn)入站點(diǎn)的信息分組也要服務(wù)完,直到當(dāng)前站點(diǎn)中不存在信息分組。門限服務(wù)只服務(wù)當(dāng)前站點(diǎn)中所存在的信息分組,對于服務(wù)過程中到達(dá)的信息分組,則緩存在站點(diǎn)中,等待下一次的服務(wù)。限定服務(wù)一般指限定([K=1])服務(wù),即每一次輪詢到的站點(diǎn)只發(fā)送一個(gè)信息分組。
對于分簇網(wǎng)絡(luò),將門限服務(wù)方式運(yùn)用于普通節(jié)點(diǎn)和簇頭的通信。輪詢系統(tǒng)采用馬爾科夫鏈和概率母函數(shù)的方法構(gòu)建數(shù)學(xué)模型[9],以此來分析其性能。門限服務(wù)的平均時(shí)延如下[10]:
[E(WG)=12γ-1+11-NλβN-1+γ+λβρ+]
[ ? ? ? ? ? ? ? ? ?Nλβ[2γ+(β-1)]+λβ1-N+1] (4)
平均排隊(duì)隊(duì)長為:
[gii=Nγλ1-Nλβ] (5)
式中:[N]為終端節(jié)點(diǎn)數(shù)目;[λ]表示信息分組的到達(dá)率;[β] 表示服務(wù)信息分組的服務(wù)率;[γ]表示兩個(gè)站點(diǎn)之間的轉(zhuǎn)換時(shí)間。
3 ?實(shí)驗(yàn)的實(shí)施
3.1 ?傳感器節(jié)點(diǎn)的選擇
本文傳感器節(jié)點(diǎn)選擇德州儀器制造的CC2530,其芯片為TI公司的CC2530。CC2530基于51內(nèi)核,是一個(gè)兼容IEEE 802.15.4的真正的片上系統(tǒng)。相比于CC2430,其閃存達(dá)到256 KB,可以滿足大應(yīng)用的需求,擁有強(qiáng)大的地址識(shí)別和數(shù)據(jù)包處理能力。CC2530提供了101 dB的鏈路質(zhì)量,接收靈敏度高,抗干擾性強(qiáng),完全能夠滿足本實(shí)驗(yàn)的需求。
3.2 ?簇結(jié)構(gòu)的劃分
分簇算法是無線傳感器網(wǎng)中實(shí)施分層控制的重要方法。分簇算法主要對網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行層次的劃分,若干相鄰的節(jié)點(diǎn)組成一個(gè)簇,每個(gè)簇有一個(gè)簇頭,各個(gè)簇頭構(gòu)成了上層的骨干網(wǎng),所有的簇間通信都通過骨干網(wǎng)轉(zhuǎn)發(fā)[11]。本實(shí)驗(yàn)的層次結(jié)構(gòu)通過修改協(xié)議棧實(shí)現(xiàn),Z?Stack協(xié)議棧支持多種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),典型的分為三種類型:星型、樹型、網(wǎng)狀型[12]。為了實(shí)現(xiàn)本實(shí)驗(yàn)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),采用樹型結(jié)構(gòu)。通過修改協(xié)議棧的最大路由深度和各層最多能夠連接的子節(jié)點(diǎn)數(shù),即可形成比較穩(wěn)定、均勻的兩層結(jié)構(gòu)。
3.3 ?軟件設(shè)計(jì)
基于Z?Stack進(jìn)行軟件設(shè)計(jì)。分別對終端節(jié)點(diǎn)、路由器和協(xié)調(diào)器進(jìn)行程序設(shè)計(jì),實(shí)現(xiàn)流程如圖5所示。按下匯聚節(jié)點(diǎn)的按鍵后,整個(gè)系統(tǒng)開始工作,普通節(jié)點(diǎn)初始化完成,等待簇頭的命令幀,同時(shí)以一定的到達(dá)率產(chǎn)生數(shù)據(jù),將數(shù)據(jù)放入信息緩沖區(qū)中。簇頭發(fā)布輪詢列表按列表發(fā)送喚醒通知,向某個(gè)節(jié)點(diǎn)發(fā)送喚醒通知后,產(chǎn)生一個(gè)合適的等待時(shí)間。在等待時(shí)間內(nèi)未收到該節(jié)點(diǎn)的數(shù)據(jù),則觸發(fā)跳轉(zhuǎn)程序,按照列表順序繼續(xù)發(fā)送通知。收到數(shù)據(jù)則隨機(jī)將其轉(zhuǎn)發(fā)到匯聚節(jié)點(diǎn)。普通節(jié)點(diǎn)偵聽到發(fā)送命令后將緩沖區(qū)中的信息分組復(fù)制到待發(fā)送緩沖區(qū),并發(fā)送出去,直到發(fā)送緩沖區(qū)中沒有數(shù)據(jù)。5個(gè)簇頭用A,B,C,D,E編號(hào)。門限服務(wù)中參數(shù)的設(shè)計(jì)為[β=1],[γ=1]。
4 ?性能分析
本文實(shí)驗(yàn)分析的方法是利用python程序觀察簇頭和匯聚節(jié)點(diǎn)串口的輸出,可以看到匯聚節(jié)點(diǎn)的輸出為:[A→B→C→D→E],如此反復(fù)。同時(shí)將數(shù)據(jù)分別讀取,存儲(chǔ)為兩個(gè)文本文件。在進(jìn)行相應(yīng)的處理之后,可以得到相關(guān)數(shù)據(jù)。主要評估的參數(shù)是簇頭及其子節(jié)點(diǎn)組成的輪詢系統(tǒng)的平均時(shí)延、平均排隊(duì)隊(duì)長,以及整個(gè)系統(tǒng)的吞吐量。
輪詢系統(tǒng)的平均時(shí)延的實(shí)驗(yàn)值計(jì)算如下[10]:
[輪詢平均時(shí)延實(shí)驗(yàn)值= ? ? ? ? 服務(wù)完所有節(jié)點(diǎn)中信息分組所需的時(shí)間各節(jié)點(diǎn)信息分組的總數(shù)]
輪詢的平均排隊(duì)隊(duì)長的實(shí)驗(yàn)值由下式計(jì)算:
[平均排隊(duì)隊(duì)長實(shí)驗(yàn)值=各節(jié)點(diǎn)信息分組的總數(shù)節(jié)點(diǎn)數(shù)×循環(huán)次數(shù)]
系統(tǒng)吞吐量的實(shí)驗(yàn)值可以由下式計(jì)算:
[吞吐量實(shí)驗(yàn)值=匯聚節(jié)點(diǎn)成功接收的信息分組數(shù)發(fā)送的信息分組的總數(shù)]
實(shí)驗(yàn)中選取各個(gè)到達(dá)率的前1 000個(gè)信息分組來計(jì)算相關(guān)指標(biāo),計(jì)算輪詢的時(shí)延需要知道簇頭節(jié)點(diǎn)服務(wù)完1 000個(gè)信息分組所需的時(shí)間長度。這個(gè)時(shí)間利用串口的時(shí)間戳來記錄。計(jì)算平均排隊(duì)隊(duì)長所需參數(shù),各節(jié)點(diǎn)信息的總數(shù)為1 000,節(jié)點(diǎn)數(shù)為5,循環(huán)次數(shù)則需要利用程序記錄下服務(wù)完1 000個(gè)信息分組所需的循環(huán)次數(shù)。通過理論公式計(jì)算的理論值和實(shí)測實(shí)驗(yàn)值對比如表1所示。
從表1中可以看出,實(shí)驗(yàn)值與理論值存在一定誤差,但是都在理論值附近波動(dòng)。要降低誤差可以通過增加節(jié)點(diǎn)數(shù)和信息分組的數(shù)量來實(shí)現(xiàn),但是所需的實(shí)驗(yàn)數(shù)據(jù)的收集需要花費(fèi)更長的時(shí)間。
系統(tǒng)的實(shí)際吞吐量如圖6所示。從圖6中可以看出,當(dāng)?shù)竭_(dá)率為1時(shí),系統(tǒng)的吞吐量達(dá)到最大。與理論值相比,存在誤差,考慮到實(shí)際傳輸過程中的干擾和其他硬件原因,這個(gè)誤差是可以接受的。
5 ?結(jié) ?語
針對目前對于無線傳感器網(wǎng)絡(luò)MAC協(xié)議的研究大多停留在軟件仿真階段,本文選取隨機(jī)多址接入,并結(jié)合門限服務(wù)機(jī)制設(shè)計(jì)一種混合型的MAC協(xié)議,將其應(yīng)用于真實(shí)的傳感器網(wǎng)絡(luò)中。簇內(nèi)的輪詢通信方式將多跳通信轉(zhuǎn)化為單跳,避免了碰撞產(chǎn)生的能量損耗。所搭建的無線傳感器網(wǎng)絡(luò)能夠正確實(shí)現(xiàn)協(xié)議,并且平均時(shí)延、平均排隊(duì)隊(duì)長、吞吐量與理論值一致,邁出了MAC協(xié)議硬件仿真的重要一步,為今后更加復(fù)雜的協(xié)議的硬件實(shí)現(xiàn)奠定了基礎(chǔ)。
參考文獻(xiàn)
[1] 王翠霞.無線傳感器網(wǎng)絡(luò)能耗自適應(yīng)機(jī)制研究[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].計(jì)算機(jī)應(yīng)用研究,2018,35(3):874?878.
[7] 楊志軍,丁洪偉,陳傳龍.完全服務(wù)和門限服務(wù)兩級(jí)輪詢系統(tǒng)[E(x)]特性分析[J].電子學(xué)報(bào),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].計(jì)算機(jī)系統(tǒng)應(yīng)用,2018,27(4):145?150.
[10] 蘇楊,楊志軍,丁陽洋,等.無線傳感器網(wǎng)絡(luò)中輪詢系統(tǒng)控制的實(shí)現(xiàn)[J].電子測量技術(shù),2018,41(4):66?70.
[11] 馮咲,張慧檔.無線傳感器網(wǎng)絡(luò)分簇路由中基于自適應(yīng)的簇頭輪換算法[J].傳感技術(shù)學(xué)報(bào),2018,31(6):949?956.
[12] 董道領(lǐng),張峰.基于區(qū)域優(yōu)先的樹型ZigBee網(wǎng)絡(luò)的性能分析[J].信息技術(shù),2017(9):130?133.
作者簡介:董發(fā)志(1993—),男,云南楚雄人,碩士研究生,主要研究方向?yàn)闊o線傳感器網(wǎng)絡(luò)、隨機(jī)多址通信系統(tǒng)。
熊成彪(1995—),男,云南楚雄人,碩士研究生,主要研究方向?yàn)闊o線傳感器網(wǎng)絡(luò)、物聯(lián)網(wǎng)。
丁洪偉(1964—),男,江西于都人,博士,教授,博士生導(dǎo)師,主要研究方向?yàn)檩喸兌嘀废到y(tǒng)、隨機(jī)多址系統(tǒng)。