韓 哲,李明照
(洛陽(yáng)理工學(xué)院,河南 洛陽(yáng) 471023)
近幾年,物聯(lián)網(wǎng)技術(shù)發(fā)展突飛猛進(jìn)。無(wú)線傳感網(wǎng)絡(luò)作為物聯(lián)網(wǎng)技術(shù)發(fā)展的核心支撐技術(shù),成為了國(guó)內(nèi)外研究者的研究熱點(diǎn)。目前,無(wú)線傳感網(wǎng)絡(luò)已被廣泛應(yīng)用于環(huán)境監(jiān)測(cè)、智能家居、無(wú)人值守以及軍事偵查等領(lǐng)域?;趬嚎s感知的數(shù)據(jù)收集技術(shù)可降低網(wǎng)絡(luò)發(fā)包量、均衡網(wǎng)絡(luò)能耗、延長(zhǎng)網(wǎng)絡(luò)壽命,已成為無(wú)線傳感網(wǎng)絡(luò)技術(shù)發(fā)展的關(guān)鍵驅(qū)動(dòng)力。然而,現(xiàn)有關(guān)于壓縮感知數(shù)據(jù)收集的研究均局限于理論研究,還無(wú)法確知實(shí)際工程應(yīng)用中的能耗優(yōu)化效果。為進(jìn)一步推動(dòng)壓縮感知數(shù)據(jù)收集技術(shù)的產(chǎn)業(yè)落地,促進(jìn)物聯(lián)網(wǎng)行業(yè)的應(yīng)用發(fā)展,本文設(shè)計(jì)了基于壓縮感知的無(wú)線傳感網(wǎng)絡(luò)協(xié)議棧,包括物理層、MAC層、網(wǎng)絡(luò)層和壓縮感知處理層等相關(guān)協(xié)議。
壓縮感知(Compressive Sensing,CS)理論于2006年由D.Donoho與E.Candes等人首次提出[1]。由于它具有采樣頻率低于奈奎斯特采樣頻率、采樣和壓縮可同時(shí)進(jìn)行等特點(diǎn),一經(jīng)推出就被廣泛應(yīng)用于圖像壓縮、雷達(dá)成像、移動(dòng)通信及核磁成像等領(lǐng)域。Baron等人提出的分布式壓縮感知理論[2]將壓縮感知技術(shù)的應(yīng)用領(lǐng)域擴(kuò)展到了具有相關(guān)性的信號(hào)集壓縮處理上。無(wú)線傳感網(wǎng)絡(luò)的全網(wǎng)感知數(shù)據(jù)組成的信號(hào)向量具有空間和時(shí)間相關(guān)性,將分布式壓縮感知理論應(yīng)用到無(wú)線傳感網(wǎng)的感知數(shù)據(jù)信號(hào)向量的壓縮上不僅可以降低網(wǎng)絡(luò)能耗,節(jié)省傳感網(wǎng)絡(luò)寶貴的能耗資源,還可實(shí)現(xiàn)網(wǎng)絡(luò)的能耗均衡,避免傳感網(wǎng)絡(luò)的“能量空洞”問(wèn)題[3]。
根據(jù)壓縮感知理論,CS數(shù)據(jù)處理具有編碼端簡(jiǎn)單、解碼端復(fù)雜、編碼和采樣同時(shí)進(jìn)行的特點(diǎn)。對(duì)于無(wú)線傳感網(wǎng)絡(luò)的數(shù)據(jù)收集過(guò)程,數(shù)據(jù)編碼和采樣均由網(wǎng)內(nèi)傳感節(jié)點(diǎn)完成,解碼則由網(wǎng)絡(luò)匯聚節(jié)點(diǎn)(Sink)完成。無(wú)線傳感網(wǎng)絡(luò)中的傳感節(jié)點(diǎn)能量和性能受限,Sink節(jié)點(diǎn)通常具有較強(qiáng)的處理性能和能量資源,符合CS數(shù)據(jù)處理的特點(diǎn)。基于壓縮感知的傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮和采樣過(guò)程如圖1所示。感知節(jié)點(diǎn)產(chǎn)生感知數(shù)據(jù)后,根據(jù)觀測(cè)矩陣中的對(duì)應(yīng)權(quán)值,對(duì)自身數(shù)據(jù)加權(quán)處理。在收到網(wǎng)絡(luò)拓?fù)錁?shù)下游節(jié)點(diǎn)發(fā)送的加權(quán)疊加數(shù)據(jù)包后,與自身加權(quán)數(shù)據(jù)疊加求和,再發(fā)送至其上游節(jié)點(diǎn),直至Sink節(jié)點(diǎn)收到全網(wǎng)感知數(shù)據(jù)的加權(quán)疊加數(shù)據(jù)包后,本次觀測(cè)采樣過(guò)程結(jié)束。每輪壓縮感知觀測(cè)采樣分M次進(jìn)行,最終Sink節(jié)點(diǎn)可得到本輪數(shù)據(jù)收集的低維觀測(cè)向量,并利用重構(gòu)算法[4]將接收到的低維觀測(cè)向量重構(gòu)為高維感知數(shù)據(jù)向量。
圖1 基于壓縮感知的數(shù)據(jù)收集過(guò)程
為進(jìn)一步促進(jìn)壓縮感知數(shù)據(jù)收集技術(shù)在實(shí)際應(yīng)用場(chǎng)景中的產(chǎn)業(yè)落地,研究分析了目前較為成熟的Zigbee協(xié)議棧[5]、LoRa協(xié)議棧[6]和其他面向應(yīng)用的傳感網(wǎng)絡(luò)協(xié)議棧[7-9]。本文在實(shí)時(shí)操作系統(tǒng)μCOS-Ⅱ下,針對(duì)工業(yè)應(yīng)用中常用的簇狀拓?fù)鋱?chǎng)景,設(shè)計(jì)了物理層、MAC層、路由層和CS處理層的壓縮感知數(shù)據(jù)收集協(xié)議棧。為保證網(wǎng)內(nèi)各節(jié)點(diǎn)具有統(tǒng)一的數(shù)據(jù)接口和數(shù)據(jù)幀格式,定義網(wǎng)絡(luò)間傳輸數(shù)據(jù)包的幀格式如圖2所示。其中,前導(dǎo)碼定義為“0x AA 44”,用來(lái)指示幀的開(kāi)始標(biāo)記和幀同步使用;數(shù)據(jù)字段定義為可變長(zhǎng)度,支持的最長(zhǎng)數(shù)據(jù)長(zhǎng)度為22字節(jié)。
圖2 網(wǎng)內(nèi)數(shù)據(jù)幀格式
物理層協(xié)議基于NanoPAN5375無(wú)線射頻芯片進(jìn)行設(shè)計(jì)。該射頻芯片采用寬度線性擴(kuò)頻技術(shù),可以較低的功率譜密度收發(fā)無(wú)線信號(hào),具有低功耗、強(qiáng)抗噪等特點(diǎn),同時(shí)支持TDMA、CSMA/CA協(xié)議,支持前向糾錯(cuò)、動(dòng)態(tài)射頻功率調(diào)整、空閑信道評(píng)估(CCA)以及接收信號(hào)強(qiáng)度指示(RSSI)等功能,適用于對(duì)可靠性交付要求較高的應(yīng)用場(chǎng)景。NanoPAN5375無(wú)線射頻的工作頻段為2.4 GHz,共分為4個(gè)信道,信道參數(shù)如表1所示。在無(wú)線通信過(guò)程中,可根據(jù)需要在4個(gè)信道中切換。
表1 NanoPAN5375信道參數(shù)
物理層與MAC層間的層間接口分別預(yù)留了數(shù)據(jù)服務(wù)接入點(diǎn)(PDSap)和管理服務(wù)接入點(diǎn)(PLMESap)。由于NanoPAN5375射頻芯片官方提供了API接口函數(shù),因此物理層和MAC層的數(shù)據(jù)交互基于API函數(shù)庫(kù)進(jìn)行相關(guān)設(shè)計(jì),具體的數(shù)據(jù)交互接口如圖3所示。nTRX Driver中提供了操作硬件底層的實(shí)體函數(shù),用戶可以根據(jù)實(shí)際需求調(diào)用相應(yīng)函數(shù)接口,從而屏蔽底層的硬件操作,將上層應(yīng)用的操作命令直接映射到底層硬件的配置上,降低了物理層的開(kāi)發(fā)難度。
MAC層協(xié)議設(shè)計(jì)主要支持命令下發(fā)和數(shù)據(jù)上報(bào)兩類主要業(yè)務(wù)。因此,設(shè)計(jì)的MAC層幀類型有命令幀、數(shù)據(jù)幀、Hello幀和ACK幀4種類型,對(duì)應(yīng)的幀類型標(biāo)識(shí)分別為0x10、0x01、0x11和0x02。具體的業(yè)務(wù)類型分為ACK單播業(yè)務(wù)、ACK廣播業(yè)務(wù)和NoACK廣播業(yè)務(wù)3大類,其層間接口和業(yè)務(wù)類型關(guān)系如圖4所示。其中,上下行層間接口采用μCOS-Ⅱ操作系統(tǒng)下的信號(hào)量進(jìn)行任務(wù)的切換和業(yè)務(wù)的執(zhí)行。
圖3 物理層協(xié)議接口設(shè)計(jì)
圖4 MAC層協(xié)議接口與業(yè)務(wù)類型設(shè)計(jì)
MAC層協(xié)議在控制無(wú)線節(jié)點(diǎn)接入信道的過(guò)程中,采用基于CSMA/CA的信道接入控制協(xié)議。流程如圖5所示。當(dāng)路由層有數(shù)據(jù)要向外發(fā)送時(shí),首先調(diào)用物理層的CAA機(jī)制判斷信道是否空閑。若信道空閑,則退避DIFS時(shí)間后,接入無(wú)線信道并向外發(fā)送數(shù)據(jù);若信道繁忙,則停止等待,直至信道空閑。若對(duì)應(yīng)業(yè)務(wù)為ACK業(yè)務(wù),則節(jié)點(diǎn)接入信道發(fā)送完數(shù)據(jù)后,開(kāi)啟定時(shí)器等待接收節(jié)點(diǎn)回傳ACK信息。若定時(shí)器終止還為接收到ACK回傳信息,則認(rèn)為數(shù)據(jù)包丟失,節(jié)點(diǎn)需重傳數(shù)據(jù)包。為避免節(jié)點(diǎn)無(wú)限制重傳浪費(fèi)節(jié)點(diǎn)能量,定義最大重傳次數(shù)Max_Retransmission為5,即協(xié)議支持的最大重傳次數(shù)為5次。當(dāng)重傳次數(shù)超過(guò)5時(shí),本次傳輸?shù)臄?shù)據(jù)包將被丟棄。
圖5 基于CSMA/CA的MAC信道接入
協(xié)議棧中網(wǎng)絡(luò)層的主要功能是負(fù)責(zé)路由的構(gòu)建與維護(hù)、網(wǎng)絡(luò)路由分配與管理等,向上承接CS數(shù)據(jù)處理層下發(fā)的數(shù)據(jù),向下負(fù)責(zé)MAC層的數(shù)據(jù)上傳和下發(fā),具體過(guò)程如圖6所示。
圖6 網(wǎng)絡(luò)層協(xié)議與接口設(shè)計(jì)
在實(shí)際工程應(yīng)用中,較為成熟的是簇狀拓?fù)浣Y(jié)構(gòu)。本協(xié)議棧的網(wǎng)絡(luò)層路由將構(gòu)建簇狀拓?fù)浣Y(jié)構(gòu)下的網(wǎng)絡(luò)路由。路由協(xié)議設(shè)計(jì)主要分為路由建立和路由維護(hù)兩部分,支持一對(duì)多、多對(duì)一和一對(duì)一的通信鏈路建立。路由建立過(guò)程采用自頂而下的建網(wǎng)模式,由Sink節(jié)點(diǎn)發(fā)起,并設(shè)定網(wǎng)絡(luò)的組網(wǎng)時(shí)間為T(mén)。在組網(wǎng)時(shí)間0~T1內(nèi),網(wǎng)內(nèi)節(jié)點(diǎn)以概率ps推舉自己為簇首節(jié)點(diǎn)。簇首節(jié)點(diǎn)向Sink發(fā)送組網(wǎng)HELLO數(shù)據(jù)包,Sink收到HELLO消息后向簇首節(jié)點(diǎn)回復(fù)ACK確認(rèn)數(shù)據(jù)包,簇首收到來(lái)自Sink的ACK數(shù)據(jù)包后,則可確認(rèn)自身的簇首身份。在組網(wǎng)時(shí)間T1~T2內(nèi),簇首節(jié)點(diǎn)發(fā)起組網(wǎng),具體過(guò)程如圖7所示。廣播組網(wǎng)HELLO數(shù)據(jù)包,普通節(jié)點(diǎn)收到HELLO數(shù)據(jù)包后更新自身路由表,向簇首發(fā)送ACK確認(rèn)消息。簇首收到ACK確認(rèn)消息后,更新自身路由表。若普通節(jié)點(diǎn)收到多個(gè)簇首的組網(wǎng)HELLO數(shù)據(jù)包,則選擇最早接收到數(shù)據(jù)的簇首回復(fù)ACK確認(rèn)消息。
圖7 簇首節(jié)點(diǎn)組網(wǎng)協(xié)議設(shè)計(jì)
壓縮感知處理層位于應(yīng)用層和網(wǎng)絡(luò)層之間。傳統(tǒng)的網(wǎng)絡(luò)協(xié)議棧在處理數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程中,僅涉及物理層、MAC層和網(wǎng)絡(luò)層協(xié)議,而壓縮感知數(shù)據(jù)收集過(guò)程中的數(shù)據(jù)轉(zhuǎn)發(fā)還將涉及壓縮感知處理層,進(jìn)行數(shù)據(jù)的觀測(cè)采樣、加權(quán)疊加等處理,具體過(guò)程如圖8所示。
圖8 CS處理層協(xié)議
為驗(yàn)證協(xié)議棧的有效性,課題基于Keil MDK集成開(kāi)發(fā)環(huán)境和STM32F407硬件平臺(tái)完成協(xié)議棧的軟件設(shè)計(jì),利用Keil中自帶調(diào)試工具中的Watch窗口測(cè)試協(xié)議在執(zhí)行過(guò)程中的協(xié)議幀字段的變量更新情況,從而判斷協(xié)議的運(yùn)行狀態(tài),利用上位機(jī)輔助顯示界面,解析數(shù)據(jù)傳輸?shù)臄?shù)據(jù)幀和壓縮采樣的觀測(cè)數(shù)據(jù),測(cè)試環(huán)境如圖9所示。
由于CS數(shù)據(jù)處理層僅對(duì)應(yīng)用層感知數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,從測(cè)試的角度僅需驗(yàn)證數(shù)據(jù)交付到路由層后在路由層尋路和MAC層的相關(guān)業(yè)務(wù)數(shù)據(jù)流轉(zhuǎn)功能,即可驗(yàn)證協(xié)議棧的設(shè)計(jì)功能。因此,課題在Keil集成開(kāi)發(fā)環(huán)境下利用基于NanoPAN5375射頻芯片的感知節(jié)點(diǎn)和上位機(jī)軟件分別測(cè)試路由層的數(shù)據(jù)交付、路由構(gòu)建功能和MAC層的業(yè)務(wù)數(shù)據(jù)交付功能,如圖10和圖11所示。測(cè)試結(jié)果表明,協(xié)議棧在組網(wǎng)路由構(gòu)建和MAC層業(yè)務(wù)下發(fā)功能方面具有可行性。
圖9 協(xié)議棧測(cè)試環(huán)境
圖10 路由構(gòu)建測(cè)試
圖11 有確認(rèn)單播業(yè)務(wù)數(shù)據(jù)
本文針對(duì)實(shí)際工程應(yīng)用場(chǎng)景,設(shè)計(jì)了基于壓縮感知的無(wú)線傳感網(wǎng)數(shù)據(jù)收集協(xié)議棧,分別從物理層、MAC層、網(wǎng)絡(luò)層和壓縮感知處理層設(shè)計(jì)了各層的具體協(xié)議。物理層基于NanoPAN5375無(wú)線射頻芯片進(jìn)行設(shè)計(jì),MAC層采用基于CSMA/CA的信道接入機(jī)制分別設(shè)計(jì)了3類不同的業(yè)務(wù)。網(wǎng)絡(luò)層設(shè)計(jì)了在簇狀拓?fù)浣Y(jié)構(gòu)下的路由構(gòu)建和管理等協(xié)議,壓縮感知處理層則根據(jù)壓縮感知技術(shù)原理實(shí)現(xiàn)對(duì)數(shù)據(jù)的壓縮采樣處理。通過(guò)在仿真環(huán)境下的驗(yàn)證,設(shè)計(jì)的協(xié)議棧能夠有效實(shí)現(xiàn)壓縮感知技術(shù)在無(wú)線傳感網(wǎng)絡(luò)數(shù)據(jù)收集中的應(yīng)用。