呼 風(fēng),趙菊敏,李燈熬
(太原理工大學(xué) a.信息與計(jì)算機(jī)學(xué)院,b.大數(shù)據(jù)學(xué)院,c.山西省空間信息網(wǎng)絡(luò)工程技術(shù)研究中心,山西 晉中 030600)
目前射頻識別(radio frequency identification,RFID)技術(shù)是物聯(lián)網(wǎng)的關(guān)鍵技術(shù),已經(jīng)應(yīng)用于人們生活中各個方面[1-2]。但是,由于傳統(tǒng)的RFID標(biāo)簽不具有可計(jì)算的能力,無法滿足目前對感知應(yīng)用的巨大需求,因此研究者提出CRFID技術(shù)以滿足目前的感知計(jì)算需求,其中CRFID標(biāo)簽中性能較好的是無源識別和感知平臺(wireless identification and sensing platform,WISP)[3].RFID系統(tǒng)和CRFID系統(tǒng)都遵循EPC通信協(xié)議,根據(jù)EPC協(xié)議規(guī)定,閱讀器每次與標(biāo)簽通信過程中可以向標(biāo)簽請求上百字節(jié)的數(shù)據(jù),但實(shí)際上,即使是經(jīng)典的RFID系統(tǒng)也無法實(shí)現(xiàn)快速、穩(wěn)定的數(shù)據(jù)傳輸。目前針對無源感知系統(tǒng)性能提升的研究有很多,HARMONY采用預(yù)計(jì)算CRC的方式大大降低了計(jì)算延遲,優(yōu)化了系統(tǒng)性能[4]。STOCK能夠通過Read命令立即確認(rèn)下行鏈路數(shù)據(jù),提升下行鏈路傳輸速度,并且實(shí)現(xiàn)了閱讀器與多標(biāo)簽之間的通信[5]。文獻(xiàn)[6]提出了一種信道監(jiān)測和預(yù)測方案,利用BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)信道實(shí)時預(yù)測,減少了不斷探測信道的開銷,并提升了系統(tǒng)整體性能。文獻(xiàn)[7]提出了一種快速可靠的突發(fā)數(shù)據(jù)傳輸方法,該方法通過將大數(shù)據(jù)包分割成多個塊來進(jìn)行突發(fā)數(shù)據(jù)傳輸,并引入了一種突發(fā)傳輸機(jī)制,以優(yōu)化在有突發(fā)數(shù)據(jù)傳輸時通信過程。ORRIS的利用IQ域信號簇分析指標(biāo)作為通信速率自適應(yīng)的新指標(biāo),提升了系統(tǒng)性能[8]。FlipTracer利用單翻轉(zhuǎn)圖(One-Flip-Graph,OFG)將信號IQ域中相鄰組合狀態(tài)之間的轉(zhuǎn)換概率映射為對應(yīng)信號之間的相似性,根據(jù)轉(zhuǎn)換概率判斷信號內(nèi)容,可以保證進(jìn)行高效的并行解碼[9]。HUBBLE將二維信號的維度升維,加入時間的維度,進(jìn)一步加強(qiáng)了對并發(fā)數(shù)據(jù)的解碼能力[10]。但是以上研究均在較為復(fù)雜的通信流程中進(jìn)行,并且未對出錯數(shù)據(jù)進(jìn)行處理,因此,通信系統(tǒng)整體性能提升有限。
使用EPC協(xié)議通信時,過多的握手次數(shù)會導(dǎo)致通信復(fù)雜程度增加,通信效率受到影響,較為復(fù)雜的通信過程產(chǎn)生更大的能耗,造成通信時能量不足從而導(dǎo)致通信失敗的情況發(fā)生。閱讀器接收到標(biāo)簽感知數(shù)據(jù)利用循環(huán)校驗(yàn)碼(cyclic redundancy check,CRC)進(jìn)行校驗(yàn),若傳輸信號發(fā)生錯誤,則閱讀器會立刻將當(dāng)前數(shù)據(jù)整塊丟棄,重新發(fā)送Read命令等待標(biāo)簽數(shù)據(jù)重傳。這樣進(jìn)行數(shù)據(jù)出錯重傳代價(jià)較高,并沒有對系統(tǒng)能量合理利用,影響系統(tǒng)性能。為此,本文針對上述通信協(xié)議過程復(fù)雜和低效率的數(shù)據(jù)出錯重傳機(jī)制,簡化了通信過程,設(shè)計(jì)了快速響應(yīng)方案和數(shù)據(jù)出錯重傳機(jī)制,提升了無源感知系統(tǒng)性能。
在標(biāo)簽與閱讀器通信過程中,有兩個因素影響了標(biāo)簽快速響應(yīng):隨機(jī)生成數(shù)生成時間過長以及多次的輪詢造成的冗余傳輸。
通信過程中,閱讀器發(fā)出Query和ACK命令后,標(biāo)簽都需要生成不同的16位隨機(jī)數(shù),這無疑增加了標(biāo)簽的能耗與通信過程復(fù)雜度。WISP標(biāo)簽的微控制器是MSP430單片機(jī),其內(nèi)部具有超低頻振蕩器與數(shù)控振蕩器是兩個獨(dú)立的時鐘系統(tǒng),傳統(tǒng)的標(biāo)簽生成RN16的方法就是利用二者間的計(jì)時差生成。但是,由于這個方法需要計(jì)算時間較長、能耗更大,不利于標(biāo)簽及時對閱讀器進(jìn)行應(yīng)答。如果CRFID標(biāo)簽選擇第一個時隙,則導(dǎo)致它無法及時發(fā)送RN16,閱讀器在規(guī)定的等待時間內(nèi)未收到標(biāo)簽回復(fù),致使選擇第一個時隙的標(biāo)簽通信失敗。針對隨機(jī)生成數(shù)生成時間過長問題,考慮到CRFID標(biāo)簽使用射頻前端進(jìn)行射頻能量收集,將交流信號轉(zhuǎn)為直流能量給儲能電容充電,標(biāo)簽電壓會根據(jù)充電時間、位置等因素而改變,具有較強(qiáng)的隨機(jī)性。因此,本文利用模數(shù)轉(zhuǎn)換器(analog-to-digital converter,ADC)采樣儲能電容兩端電壓值作為隨機(jī)數(shù)種子,將采樣電壓值輸入隨機(jī)函數(shù)生成16位隨機(jī)數(shù),由于標(biāo)簽產(chǎn)生的RN16不需要較高的復(fù)雜性,因此采用生成復(fù)雜度較低的偽隨機(jī)數(shù)方式。并且,在每輪通信中,用預(yù)計(jì)算RN16儲存在單片機(jī)內(nèi)存中在下一輪通信中可直接調(diào)用,既能保證RN16的隨機(jī)性,又可減少單片機(jī)生成RN16的能耗,縮短了標(biāo)簽響應(yīng)時間。
閱讀器訪問標(biāo)簽數(shù)據(jù)時,需要經(jīng)過4次握手,繁瑣的信息交換過程,會出現(xiàn)標(biāo)簽?zāi)芰坎蛔阒袛嗤ㄐ诺那闆r,這對系統(tǒng)吞吐量和穩(wěn)定性都造成了影響。優(yōu)化通信過程,減少標(biāo)簽與閱讀器握手次數(shù),可以提升系統(tǒng)通信效率和能量利用率。標(biāo)簽使用16位隨機(jī)數(shù)進(jìn)行反復(fù)確認(rèn),造成了能量浪費(fèi)。為了保證標(biāo)簽的隨機(jī)性以及提高能量利用效率,提出將所有標(biāo)簽的handle固定下來,閱讀器使用固定的handle請求標(biāo)簽數(shù)據(jù),能夠減少標(biāo)簽生成handle能耗,并且可以根據(jù)標(biāo)簽的能量調(diào)整數(shù)據(jù)收集順序。
如圖1所示,為傳統(tǒng)EPC協(xié)議和改進(jìn)協(xié)議通信流程對比。根據(jù)上述協(xié)議設(shè)計(jì),將改進(jìn)協(xié)議分為感知階段和數(shù)據(jù)傳輸階段。
圖1 傳統(tǒng)EPC協(xié)議和改進(jìn)協(xié)議通信流程對比Fig.1 Comparison of traditional EPC protocol and improved protocol communication process
1.1.1handle存儲階段
閱讀器發(fā)送第一個Query命令以識別天線讀取范圍內(nèi)的n個CRFID標(biāo)簽,當(dāng)閱讀器從每個CRFID標(biāo)簽接收到一個handle或在定時器規(guī)定時間結(jié)束時,完成當(dāng)前handle存儲階段。利用定時器是為防止閱讀器長時間停留在感知識別階段,影響系統(tǒng)通信效率。因此,在此階段結(jié)束時,閱讀器將其天線范圍內(nèi)的所有標(biāo)簽的handle全部儲存下來。
1.1.2數(shù)據(jù)傳輸階段
當(dāng)閱讀器收集到所有CRFID標(biāo)簽的RN16之后,開始數(shù)據(jù)傳輸階段。閱讀器發(fā)送連續(xù)的Read命令以周期性地從每個標(biāo)簽讀取一組數(shù)據(jù)。當(dāng)閱讀器接收到所需的CRFID標(biāo)簽傳感器數(shù)據(jù)后,數(shù)據(jù)傳輸階段結(jié)束。此階段,閱讀器還可以定義讀取標(biāo)簽數(shù)據(jù)的次數(shù)??梢允褂脴?biāo)簽固定的handle進(jìn)行多次讀取數(shù)據(jù),若在讀取數(shù)據(jù)過程中,標(biāo)簽出現(xiàn)斷電情況,閱讀器在定時器規(guī)定時間內(nèi)未接收到CRFID的傳感器數(shù)據(jù),為避免等待時間過長造成能量浪費(fèi),閱讀器放棄當(dāng)前通信,并開始新一輪數(shù)據(jù)傳輸。
此外,在大規(guī)模部署的CRFID傳感器網(wǎng)絡(luò)中,需要傳感器數(shù)據(jù)的讀取次數(shù)越高,產(chǎn)生沖突的可能性就越大。相對于EPC協(xié)議,所提出改進(jìn)協(xié)議在防沖突方面有著明顯的改進(jìn)。在特定的CRFID場景中,當(dāng)閱讀器使用EPC協(xié)議時,標(biāo)簽的沖突不僅會影響標(biāo)簽的識別過程,還會影響傳感器數(shù)據(jù)的讀取過程。因此,任何額外的傳感器數(shù)據(jù)讀取都有一定概率發(fā)生沖突情況。在所提出的協(xié)議中,沖突只影響感知階段。一旦識別出標(biāo)簽,閱讀器就可以連續(xù)讀取CRFID傳感器數(shù)據(jù),而不會產(chǎn)生標(biāo)簽沖突。
根據(jù)EPC協(xié)議,閱讀器每次可以從標(biāo)簽請求數(shù)百字節(jié)的數(shù)據(jù)。實(shí)際上,CRFID由于能量不足等問題,會導(dǎo)致隨著數(shù)據(jù)量的增加傳輸成功率降低[4]。通過實(shí)驗(yàn)驗(yàn)證可知,當(dāng)閱讀器向標(biāo)簽請求不同數(shù)量的數(shù)據(jù)時,數(shù)據(jù)傳輸成功率是不同的。圖2中顯示,在不同距離下閱讀器請求不同數(shù)量數(shù)據(jù)時的傳輸成功率。當(dāng)通信過程中,閱讀器請求超過4字節(jié)的數(shù)據(jù)時,在很短的通信距離之內(nèi),數(shù)據(jù)傳輸成功率大幅下降。這是由于標(biāo)簽傳輸大數(shù)據(jù)量時,實(shí)時計(jì)算CRC時計(jì)算開銷較大,無法在規(guī)定時間內(nèi)響應(yīng)閱讀器,導(dǎo)致通信中斷。因此將大數(shù)據(jù)量進(jìn)行分組傳輸,有利于降低標(biāo)簽計(jì)算CRC開銷,提高通信成功率和通信可靠性。
圖2 不同數(shù)據(jù)量傳輸成功率Fig.2 Different data volume transmission success rate
閱讀器接收到標(biāo)簽感知數(shù)據(jù)利用CRC進(jìn)行校驗(yàn),若傳輸信號發(fā)生錯誤,傳統(tǒng)協(xié)議中閱讀器會立刻將當(dāng)前數(shù)據(jù)整塊丟棄,等待標(biāo)簽重新傳輸數(shù)據(jù)。這樣進(jìn)行數(shù)據(jù)出錯重傳代價(jià)較高,并沒有對系統(tǒng)能量合理利用,標(biāo)簽進(jìn)行重傳時有可能因能量不足導(dǎo)致通信失敗。引入合理的標(biāo)簽數(shù)據(jù)分組出錯重傳機(jī)制,能夠有效提高系統(tǒng)的性能。EPC協(xié)議規(guī)定標(biāo)簽傳輸數(shù)據(jù)格式如圖3所示,標(biāo)簽數(shù)據(jù)量的范圍為16比特至496比特。但是大的數(shù)據(jù)量意味著更高的誤碼率,更高的CRC計(jì)算開銷。所以,選擇一個合適的傳輸數(shù)據(jù)量或者將大的數(shù)據(jù)量分為若干小數(shù)據(jù)量進(jìn)行傳輸,能夠有效提高數(shù)據(jù)傳輸成功率和通信可靠性。
圖3 標(biāo)簽數(shù)據(jù)傳輸格式Fig.3 Tag data transfer format
傳輸大數(shù)據(jù)量(大于4字節(jié))時,經(jīng)常出現(xiàn)通信失敗情況。因此,本設(shè)計(jì)考慮將大數(shù)據(jù)量進(jìn)行分組傳輸,能夠增加數(shù)據(jù)傳輸成功率、提升通信可靠性。利用改進(jìn)協(xié)議進(jìn)行數(shù)據(jù)傳輸時,閱讀器已經(jīng)收集到標(biāo)簽handle,可以針對選定標(biāo)簽進(jìn)行數(shù)據(jù)分組請求。由圖2可知,標(biāo)簽傳輸2字節(jié)數(shù)據(jù)時成功率最高,因此,當(dāng)閱讀器向標(biāo)簽請求數(shù)據(jù)時,標(biāo)簽將感知數(shù)據(jù)進(jìn)行分組,每組2字節(jié)進(jìn)行傳輸。
數(shù)據(jù)傳輸過程中使用CRC作為檢查數(shù)據(jù)是否正確,由于計(jì)算CRC仍需要較大能耗,并且研究發(fā)現(xiàn)計(jì)算CRC的開銷呈線性增加,最終會轉(zhuǎn)化為較大的響應(yīng)延遲。因此,舍棄實(shí)時計(jì)算CRC的方式,轉(zhuǎn)為查表法方式生成CRC.查表法CRC的計(jì)算方式是固定的,只要將所傳16比特(2字節(jié))數(shù)據(jù)內(nèi)容計(jì)算生成對應(yīng)的CRC表后,將CRC表存入標(biāo)簽寄存器中,將計(jì)算能耗轉(zhuǎn)變?yōu)檎{(diào)用寄存器中的數(shù)據(jù),能耗將大大降低,并且降低了生成CRC的時延。
WISP4.1標(biāo)簽的MCU是MSP430F2132單片機(jī),其具有256字節(jié)的信息存儲器,存儲的最小單位為8比特,每8比特?cái)?shù)據(jù)對應(yīng)一個存儲地址,其存儲感知數(shù)的地址從0x10FFh~0x1000h.根據(jù)感知數(shù)據(jù)的存儲地址進(jìn)行數(shù)據(jù)定位,閱讀器通過Read命令規(guī)定請求數(shù)據(jù)的長度和起始地址,標(biāo)簽收到命令后根據(jù)對應(yīng)信息調(diào)取內(nèi)存中的數(shù)據(jù)開始數(shù)據(jù)傳輸。因此,可以考慮將數(shù)據(jù)和數(shù)據(jù)地址相結(jié)合作為一種新的數(shù)據(jù)傳輸格式,基于此本文設(shè)計(jì)了數(shù)據(jù)出錯重傳機(jī)制。由于數(shù)據(jù)傳輸?shù)淖钚挝皇?比特,可以將閱讀器請求數(shù)據(jù)分為8比特一組,并將數(shù)據(jù)和數(shù)據(jù)地址相組合進(jìn)行傳輸。
圖4 分組數(shù)據(jù)格式Fig.4 Packet data format
圖4所示,當(dāng)閱讀器檢測到標(biāo)簽傳輸信息錯誤時,通過發(fā)送帶有相應(yīng)出錯數(shù)據(jù)地址的Read命令給標(biāo)簽,標(biāo)簽接收到命令之后,傳輸閱讀器指定存儲地址的數(shù)據(jù),達(dá)到了數(shù)據(jù)出錯重傳的目的。圖5是數(shù)據(jù)傳輸流程圖,圖5(a)表示數(shù)據(jù)傳輸正確,圖5(b)是傳輸中出現(xiàn)數(shù)據(jù)錯誤時的表現(xiàn),其中虛線表示傳輸數(shù)據(jù)出錯,閱讀器可根據(jù)當(dāng)前出錯數(shù)據(jù)地址重新請求標(biāo)簽數(shù)據(jù)。
圖5 改進(jìn)數(shù)據(jù)出錯重傳機(jī)制Fig.5 Improved data error retransmission mechanism
實(shí)驗(yàn)設(shè)備如圖6所示,實(shí)驗(yàn)使用的是軟件定義無線電USRP N210閱讀器,其具有較好的通信穩(wěn)定性和靈活性,CRFID標(biāo)簽使用WISP4.1標(biāo)簽。
圖6 實(shí)驗(yàn)設(shè)備Fig.6 Experimental facilities
實(shí)驗(yàn)所使用的是USRP閱讀器進(jìn)行仿真實(shí)驗(yàn),參數(shù)設(shè)置為:閱讀器編碼方式為脈沖間隔編碼(pulse interval encoding,PIE);下行鏈路調(diào)制方式為ASK調(diào)制;鏈路頻率設(shè)置為256 kHz;反向散射調(diào)制方式為FM0;閱讀器發(fā)射功率為1 W.
圖7(a)是傳統(tǒng)EPC C1G2協(xié)議通信時的數(shù)據(jù)流,圖7(b)是使用本設(shè)計(jì)提出改進(jìn)協(xié)議通信數(shù)據(jù)流的表現(xiàn)。以3個標(biāo)簽為例,從圖7(b)中可以看出,在閱讀器對標(biāo)簽進(jìn)行數(shù)據(jù)讀取數(shù)據(jù)時,使用本設(shè)計(jì)提出的改進(jìn)協(xié)議在相同時間內(nèi),讀取數(shù)據(jù)的次數(shù)更多,提升了系統(tǒng)吞吐量。
圖7 不同協(xié)議數(shù)據(jù)流對比Fig.7 Comparison of different protocol data streams
將WISP標(biāo)簽置于閱讀器的范圍內(nèi),距離天線0.1 m.使用USRP閱讀器請求每個標(biāo)簽的加速度傳感器數(shù)據(jù),直到當(dāng)閱讀器成功接收到3個完整的加速度數(shù)據(jù)包時,停止數(shù)據(jù)請求并記錄當(dāng)前所用時長,計(jì)算每秒成功讀取次數(shù),重復(fù)測量60次取平均值。并分別使用不同數(shù)量的標(biāo)簽進(jìn)行數(shù)據(jù)包數(shù)據(jù)請求,觀察數(shù)據(jù)成功讀取次數(shù),結(jié)果如圖8所示。
圖8 改進(jìn)協(xié)議和EPC協(xié)議不同數(shù)量標(biāo)簽讀取數(shù)據(jù)性能對比Fig.8 Comparison of the performance of this protocol with that of EPC protocol with different quantities of tag read data
顯然,針對不同數(shù)量的3組標(biāo)簽,本設(shè)計(jì)提出的改進(jìn)協(xié)議實(shí)現(xiàn)了比標(biāo)準(zhǔn)EPC協(xié)議更高的數(shù)據(jù)讀取率。對于這兩種協(xié)議,由于標(biāo)簽沖突,數(shù)據(jù)讀取率隨標(biāo)簽數(shù)量的增加而減小。本文提出的改進(jìn)協(xié)議的數(shù)據(jù)讀取率大約提高了50%.
使用本設(shè)計(jì)提出的數(shù)據(jù)出錯重傳協(xié)議和EPC協(xié)議分別加載到WISP4.1版本標(biāo)簽上,使用單個WISP標(biāo)簽進(jìn)行測量吞吐量。首先使用閱讀器對WISP供能并開啟盤存階段。WISP開始預(yù)處理傳感器數(shù)據(jù),并將緩存數(shù)據(jù)存儲在非易失性存儲器中等待閱讀器訪問數(shù)據(jù)。將WISP標(biāo)簽置于距離閱讀器天線0.1 m的位置,每次將標(biāo)簽移動0.1 m的距離直到標(biāo)簽距離閱讀器天線1 m的范圍,分別進(jìn)行4字節(jié)、8字節(jié)數(shù)據(jù)請求,得到如圖9實(shí)驗(yàn)結(jié)果。
圖9 使用EPC協(xié)議和改進(jìn)協(xié)議的4字節(jié)和8字節(jié)數(shù)據(jù)傳輸吞吐量對比Fig.9 Comparison of 4-byte and 8-byte data throughput by using the EPC protocol and the improved protocol
將本文快速響應(yīng)方案和數(shù)據(jù)重傳機(jī)制相結(jié)合,構(gòu)成對整個無源感知系統(tǒng)性能優(yōu)化方案。實(shí)驗(yàn)將本設(shè)計(jì)提出的改進(jìn)協(xié)議同DFCA[11]、LILAC[12]和EPC進(jìn)行對比。其中,DFCA是一種動態(tài)幀長和充電時間自適應(yīng)方案,該方案通過求解所提出的吞吐量優(yōu)化問題,根據(jù)對系統(tǒng)在特定能量收集和信道條件下的輸出進(jìn)行了理論分析,得到了使吞吐量最大的最優(yōu)幀長和充電時間。LILAC提出了一種更合理的時隙映射算法,根據(jù)標(biāo)簽的電壓值主動選擇通信時隙的方式,代替了傳統(tǒng)的隨機(jī)選擇時隙的方式,有效增加了標(biāo)簽響應(yīng)閱讀器速率,提高了標(biāo)簽響應(yīng)的成功率,增加了系統(tǒng)吞吐量。其中DFCA是將傳輸數(shù)據(jù)切割分組之后進(jìn)行傳輸,對應(yīng)本文的數(shù)據(jù)分組重傳方法;LILAC優(yōu)化了標(biāo)簽響應(yīng)方案,對應(yīng)本文的標(biāo)簽快速響應(yīng)方案。因此將本文提出的協(xié)議同二者進(jìn)行實(shí)驗(yàn)對比。
圖10 不同比特信噪比下各協(xié)議吞吐量對比Fig.10 Comparison of throughput of each protocol under different bit SNR
如圖10所示,隨著比特信噪比的增加,改進(jìn)協(xié)議、DFCA、LILAC和EPC均呈現(xiàn)出吞吐量的增加,DFCA在針對信道狀態(tài)變化的情況下,能夠較好地完成吞吐量的優(yōu)化,但是在計(jì)算幀長和充電時間過程中能耗較大,LILAC對標(biāo)簽通信信道性能要求較高,若信道出現(xiàn)變化,系統(tǒng)吞吐量受到影響;本文改進(jìn)協(xié)議針對標(biāo)簽的快速響應(yīng)和數(shù)據(jù)出錯重傳機(jī)制均進(jìn)行了優(yōu)化,和使用EPC協(xié)議相比吞吐量提升100%左右。
根據(jù)目前無源CRFID系統(tǒng)所使用的EPC協(xié)議中的不足之處,提出了系統(tǒng)性能優(yōu)化方案,其中包括快速響應(yīng)方案和數(shù)據(jù)出錯重傳機(jī)制兩部分。在標(biāo)簽快速響應(yīng)方案中提出更簡便的RN16生成方式,利用ADC采樣值作為隨機(jī)種子生成RN16儲存在寄存器中,用作下一輪通信使用;使用標(biāo)簽固定handle,閱讀器請求標(biāo)簽數(shù)據(jù)時,標(biāo)簽無需再次生成16位隨機(jī)數(shù),降低標(biāo)簽響應(yīng)時間。數(shù)據(jù)出錯重傳機(jī)制中,將標(biāo)簽數(shù)據(jù)與數(shù)據(jù)地址相結(jié)合的方式改進(jìn)了數(shù)據(jù)格式,并采用查表方式調(diào)用CRC,降低了大數(shù)據(jù)量數(shù)據(jù)傳輸?shù)哪芎?,提高了?shù)據(jù)傳輸速率,最終提升了無源CRIFD系統(tǒng)吞吐量和性能。