祝云凱,李成林,單加響,邱杰凡
(1.浙江杭佳科技發(fā)展有限公司,浙江 杭州 310015;(2.浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江 杭州 310014)
無線傳感器網(wǎng)絡(luò)中的傳感器節(jié)點(diǎn)通過無線的方式進(jìn)行通信,對(duì)節(jié)點(diǎn)的更新修復(fù)通常依賴于已構(gòu)建的無線網(wǎng)絡(luò)。然而,無線網(wǎng)絡(luò)往往存在很大的安全隱患。由于無線網(wǎng)絡(luò)通過電磁波在空中傳輸數(shù)據(jù),只要在該網(wǎng)絡(luò)覆蓋區(qū)域內(nèi)都有可能被截取竊聽數(shù)據(jù),因此,要將數(shù)據(jù)只發(fā)送給指定接收者顯然是不可能的。在傳輸調(diào)試信息時(shí),存在泄露節(jié)點(diǎn)內(nèi)部敏感信息的可能。一旦傳感器節(jié)點(diǎn)內(nèi)部敏感信息發(fā)生泄漏,可能會(huì)影響到整個(gè)網(wǎng)絡(luò)系統(tǒng)的性能與安全。同時(shí),由于節(jié)點(diǎn)通常被部署到難以接觸的地方,無法采用有線連接的方式接收節(jié)點(diǎn)的調(diào)試信息。
以在故宮博物館部署的無線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng)為例,玻璃展柜中的節(jié)點(diǎn)需要封閉至少三個(gè)月才能回收維護(hù)[1]。一旦在封閉期間節(jié)點(diǎn)需要更新修復(fù),為了保證節(jié)點(diǎn)內(nèi)部敏感信息不泄露,需要尋求一種可代替的非接觸式調(diào)試信息傳輸方案。近年來,可見光通信技術(shù)(Visible Light Communication,VLC)不斷發(fā)展,可見光通信以光波作為信息的載體,可進(jìn)行定向傳輸且覆蓋范圍有限可控,具有不易被截取竊聽的特性,為傳感器節(jié)點(diǎn)調(diào)試信息的安全傳輸提供了可靠的通信環(huán)境。如果采用可見光通信進(jìn)行調(diào)試信息傳輸,不僅在無線網(wǎng)絡(luò)出現(xiàn)故障時(shí)可成為替代的調(diào)試交互手段,還能減輕網(wǎng)絡(luò)整體的帶寬壓力[2]。
隨著硬件資源豐富的移動(dòng)終端(如智能手機(jī)、平板電腦等)的普及,越來越多的移動(dòng)終端配備了豐富的傳感器元件,使得移動(dòng)設(shè)備具備了潛在進(jìn)行可見光通信的能力。傳統(tǒng)意義的可見光通信是利用在接收端的光電檢測(cè)器(PD)接收信號(hào),這對(duì)光電檢測(cè)器的精度和靈敏度要求較高。然而,量產(chǎn)型移動(dòng)設(shè)備上配備的光電檢測(cè)器精度較低,無法有效感知到傳感器節(jié)點(diǎn)上LED發(fā)送的頻閃信息。作為可見光通信技術(shù)的一種,光學(xué)相機(jī)通信(Optical Camera Communication,OCC)同樣具有定向通信的隱蔽性。移動(dòng)設(shè)備搭載的CMOS傳感器也具有將光信號(hào)接收并轉(zhuǎn)換成電信號(hào)的功能。因此,可采用光學(xué)相機(jī)采集光信號(hào),實(shí)現(xiàn)信息的傳輸。同時(shí),許多研究者也開始研究光學(xué)相機(jī)在可見光通信中的應(yīng)用。例如文獻(xiàn)[3]將數(shù)據(jù)信息編碼后由個(gè)人電腦鍵盤上的LED指示燈發(fā)送,并采用光學(xué)相機(jī)進(jìn)行拍照捕獲頻閃信息進(jìn)行解碼。張民[4]根據(jù)CMOS傳感器卷簾快門的特性,驗(yàn)證了基于手機(jī)攝像頭進(jìn)行光學(xué)相機(jī)通信的可行性。
我們通過挖掘移動(dòng)終端和傳感器節(jié)點(diǎn)現(xiàn)有可見光模塊的潛能,設(shè)計(jì)了一種調(diào)試信息傳輸方案。如圖1所示,在對(duì)封閉在博物館玻璃展柜中的傳感器節(jié)點(diǎn),采用節(jié)點(diǎn)端的LED作為信號(hào)發(fā)送器,移動(dòng)設(shè)備端的光學(xué)相機(jī)作為信號(hào)接收器來接收傳感器節(jié)點(diǎn)的調(diào)試信息。實(shí)際的硬件交互圖如圖2所示。
圖1 場(chǎng)景示意圖
圖2 系統(tǒng)硬件交互圖
在調(diào)試信息的傳輸過程中,基于光學(xué)相機(jī)的卷簾快門工作機(jī)制可以有效提高數(shù)據(jù)傳輸效率,然而由于可見光具有較高的指向性,輕微的晃動(dòng)也可能對(duì)數(shù)據(jù)傳輸造成影響。此外,由于光學(xué)相機(jī)以圖像幀為單位完成拍攝,而節(jié)點(diǎn)LED發(fā)送一幀數(shù)據(jù)所用時(shí)長需要與光學(xué)相機(jī)的曝光時(shí)間保持一致才能成功傳輸調(diào)試信息。為此,進(jìn)一步提出一種面向卷簾快門的反饋式幀同步方案。該同步方案由移動(dòng)設(shè)備與節(jié)點(diǎn)通信協(xié)同完成信號(hào)的同步傳輸與接收。對(duì)采集到的圖像做實(shí)時(shí)檢測(cè),當(dāng)數(shù)據(jù)發(fā)生丟失時(shí),移動(dòng)設(shè)備端發(fā)送反饋信息,重傳丟失數(shù)據(jù)并再次同步,以此來保證數(shù)據(jù)傳輸質(zhì)量。
目前市場(chǎng)上大多數(shù)移動(dòng)設(shè)備配備的光學(xué)相機(jī)采用的是卷簾快門工作機(jī)制,卷簾快門工作機(jī)制能有效捕獲來自LED的頻閃信息。如圖3所示,卷簾快門不同于全局快門,它在成像的過程中是以逐行曝光的方式采集光信息。由于不同像素行的開始曝光時(shí)間點(diǎn)不同,因此可以利用不同像素行的曝光時(shí)間差來記錄頻閃序列。
因此,在卷簾快門逐行曝光的過程中,如果傳感器節(jié)點(diǎn)上的LED快速閃爍切換狀態(tài),則最終成像的結(jié)果如圖4所示為明暗相間的條紋圖片。
圖3 卷簾快門工作機(jī)制
圖4 卷簾快門采集光信息序列示意圖
采集到的條紋圖片通過圖片處理進(jìn)行解碼,由于在節(jié)點(diǎn)端采用的是OOK調(diào)制方式,根據(jù)明暗條紋的寬度即可解碼出數(shù)據(jù)信息。但是圖片中的一些過渡帶會(huì)影響到解碼的判別。由圖4可知,過渡帶越窄對(duì)解碼判別的影響就越小。通過減少相機(jī)的曝光時(shí)間,可以有效降低過渡帶的寬度。在當(dāng)前Android9.0版本中,智能手機(jī)相機(jī)最新API接口為Camera 2。該接口可手動(dòng)更改或重新配置相機(jī)曝光時(shí)間。實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 不同曝光時(shí)間條件下的成像比較
在光學(xué)相機(jī)通信中,同步一直是最重要的問題之一。首先,光學(xué)相機(jī)的采樣是隨機(jī)進(jìn)行的。它可能在發(fā)送信號(hào)的任何符號(hào)期間發(fā)生,因此任何時(shí)候都有可能丟失任何符號(hào)。其次,幀采樣的間隔是變化的,它取決于圖像傳感器和光學(xué)通道的特性[5]。當(dāng)光學(xué)相機(jī)采集節(jié)點(diǎn)LED頻閃信息時(shí),由于發(fā)送端和接收端沒有統(tǒng)一的開啟時(shí)間以及光學(xué)相機(jī)幀率不穩(wěn)定,會(huì)導(dǎo)致數(shù)據(jù)符號(hào)的丟失。
為此,提出了一種面向卷簾快門的反饋式幀同步方案。在通信過程中,取綠燈作為檢測(cè)同步狀態(tài)的指示燈,黃燈和紅燈在圖像的幀持續(xù)時(shí)間內(nèi)各自連續(xù)發(fā)送一幀數(shù)據(jù)幀,保證一張圖像中的黃燈和紅燈都能成功接收一幀的數(shù)據(jù)。該方案包括兩個(gè)部分:
(1)傳輸開始階段的起始同步;
(2)傳輸中斷后的再次同步。
同時(shí),為了區(qū)分不同的數(shù)據(jù)幀,在每幀數(shù)據(jù)前面加入一段高頻脈沖作為幀頭。數(shù)據(jù)幀結(jié)構(gòu)如表1所示。
表1 數(shù)據(jù)幀結(jié)構(gòu)
起始同步的整個(gè)過程如圖6所示。在起始階段,有很多準(zhǔn)備工作要做,當(dāng)節(jié)點(diǎn)處于就緒狀態(tài)時(shí),三個(gè)LED常亮,移動(dòng)設(shè)備進(jìn)行拍照采集并根據(jù)圖像處理的結(jié)果確定同步參數(shù)的值,同步參數(shù)如圖7所示。移動(dòng)設(shè)備根據(jù)LED燈在圖像中的位置計(jì)算出有效區(qū)域?qū)挾?,記作X。之后移動(dòng)設(shè)備會(huì)將該參數(shù)編碼發(fā)送到節(jié)點(diǎn)端,其中編碼序列中的高脈沖對(duì)應(yīng)bit“1”,低脈沖表示bit“0”。將有效區(qū)域?qū)挾染幋a發(fā)送到節(jié)點(diǎn)端后,節(jié)點(diǎn)端根據(jù)該參數(shù),可計(jì)算出適合于有效區(qū)域?qū)挾鹊腖ED發(fā)射頻率。
圖6 起始同步示意圖
圖7 傳輸參數(shù)示意圖
由于移動(dòng)設(shè)備上的光學(xué)相機(jī)幀率通常在30 fps左右,移動(dòng)設(shè)備捕獲一幀圖像的時(shí)間tp≈33 ms,并且節(jié)點(diǎn)端單個(gè)LED需要在圖像有效區(qū)域范圍內(nèi)完成一幀的數(shù)據(jù)幀傳輸,需要保證該指示燈在有效區(qū)域至少能捕獲兩組數(shù)據(jù)幀,因此根據(jù)幀長和有效區(qū)域曝光時(shí)間可以確定LED的發(fā)射頻率。
在起始同步之后,節(jié)點(diǎn)LED在每幀圖像幀持續(xù)時(shí)間內(nèi)一直重復(fù)發(fā)送對(duì)應(yīng)的數(shù)據(jù)幀。但是由于幀率的不穩(wěn)定,會(huì)導(dǎo)致數(shù)據(jù)條紋在圖像幀中發(fā)生偏移,當(dāng)偏移量超過一幀圖像幀的持續(xù)時(shí)間時(shí),同一幀圖像幀中的單個(gè)LED可能包含相鄰的兩幀數(shù)據(jù)幀。因此采用綠燈作為同步狀態(tài)的檢測(cè),每當(dāng)發(fā)送完一幀數(shù)據(jù)幀時(shí),綠燈會(huì)發(fā)送一段低脈沖分隔兩幀相鄰的數(shù)據(jù)幀,當(dāng)圖像幀中的綠燈檢測(cè)到了暗條紋,則說明該圖像幀中的有效區(qū)域采集到的數(shù)據(jù)包含兩幀相鄰的數(shù)據(jù)幀,同步已經(jīng)失效,需要重新同步。
移動(dòng)設(shè)備端將發(fā)生同步失效的圖像序號(hào)通過閃光燈反饋到節(jié)點(diǎn)端,當(dāng)節(jié)點(diǎn)端接收解碼后,從該序號(hào)表示的數(shù)據(jù)幀重新同步發(fā)送。
本研究將可見光通信應(yīng)用于現(xiàn)有的移動(dòng)設(shè)備和傳感器節(jié)點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于光學(xué)相機(jī)通信的傳感器節(jié)點(diǎn)調(diào)試信息安全傳輸方案。針對(duì)通用CMOS光學(xué)相機(jī)具有幀率不穩(wěn)定的特點(diǎn),還設(shè)計(jì)了幀同步方案以確??焖倏煽康貍鬏斦{(diào)試信息。最后,在智能手機(jī)和通用節(jié)點(diǎn)上,驗(yàn)證了本文設(shè)計(jì)的通信方案在實(shí)際環(huán)境中的可行性。