俞 蕾,蔣 斌,陳海進
(南通大學 信息科學技術(shù)學院,江蘇 南通 226019)
射頻識別(Radio Frequency Identification,RFID)是一種方便快捷的非接觸式自動識別技術(shù)。隨著物聯(lián)網(wǎng)時代的興起,作為核心技術(shù)的RFID研究也在迅速增加[1]。它具有識別速度快、精度高、成本低等優(yōu)點,已被廣泛用于供應(yīng)鏈管理、人員交通管理等。RFID系統(tǒng)按照供電方式的不同,可分為有源RFID系統(tǒng)和無源RFID系統(tǒng)。前者與后者相比,性能更加穩(wěn)定可靠。
射頻識別過程中多個標簽在閱讀器的識別范圍內(nèi)并同時對其做出響應(yīng)時,閱讀器將無法快速、正確地識別標簽,這稱為標簽沖突。RFID技術(shù)常見的防碰撞算法主要分為確定性的防碰撞算法和不確定性的防碰撞算法。確定性的防碰撞算法是基于樹的算法,抗沖突性能較好,但由于需要讀寫器與標簽多次交互,識別時間過長,效率較低,不適合有源RFID系統(tǒng)。不確定性的防碰撞算法是基于ALOHA的算法,雖然防碰撞性能較弱,但是執(zhí)行效率高,實用性更強,更適合有源RFID系統(tǒng)。文獻[2]提出了一種基于擴頻ALOHA的RFID防碰撞算法,引入碰撞數(shù)據(jù)幀隨機退避重傳機制,提高了吞吐率,但解擴過程復雜且系統(tǒng)成本高。文獻[3]提出了一種基于ARM(Advanced RISC Machines)的RFID系統(tǒng)設(shè)計,雖然系統(tǒng)的功耗較低,但防碰撞性能較差。
為此,本文設(shè)計了一種防碰撞性能優(yōu)異、傳輸距離可調(diào)、安全性能高的射頻識別系統(tǒng),系統(tǒng)采用了頻分時分相結(jié)合的多通道抗沖突算法。與傳統(tǒng)的單通道RFID系統(tǒng)相比,通過標簽及讀寫器在軟件、硬件的協(xié)同設(shè)計,使得平均時延降低了60.2%。此外,采用了輕量級高級加密標準(Advanced Encryption Standard,AES)算法,利用復用查表方式有效提升了算法的加解密效率,提高了系統(tǒng)的信息安全性,這些也是本文的創(chuàng)新點與難點。測試結(jié)果表明,利用該系統(tǒng)可以在較大的可控范圍內(nèi)實現(xiàn)人員的精確管理,標簽支持多種觸發(fā)方式,系統(tǒng)功耗較小,具有較高的實際應(yīng)用價值。
系統(tǒng)由三部分組成,主要包括有源標簽、RFID讀寫器以及控制終端(上位機),組成結(jié)構(gòu)如圖1所示。上位機通過Qt Creator應(yīng)用程序開發(fā)平臺設(shè)計,用于顯示讀寫器收到標簽的標識(Identity,ID)、次數(shù)、首末次時間等。讀寫器接收到信息后可以通過RS-232串口、以太網(wǎng)口或者4G模塊將信息傳輸?shù)缴衔粰C的數(shù)據(jù)庫,便于后續(xù)更為復雜的數(shù)據(jù)處理。系統(tǒng)采用防碰撞算法以及輕量化AES算法提高標簽識別效率和系統(tǒng)信息安全性。
圖1 有源RFID系統(tǒng)組成結(jié)構(gòu)
作為一種無線傳輸系統(tǒng),RFID系統(tǒng)不可避免地會存在多個信號沖突的問題。為了保證讀寫器能夠準確、快速地接收標簽數(shù)據(jù)和識別標簽,研究防碰撞算法成為優(yōu)化RFID系統(tǒng)的核心問題。
純ALOHA算法是最簡單的防碰撞算法,是一種隨機概率識別標簽方法。雖然算法相對簡單,易于理解,易于實現(xiàn),但是效率極低[4]。由于純ALOHA算法的粗糙性和不完善性,時隙ALOHA算法隨之出現(xiàn)。該算法將時間分成若干個時隙,標簽只能在時隙開始的時候傳輸信號[5]。它的特點是能避免不完全沖突,但增加了交互,延長了抗沖突的時間[6]。
針對上述問題,本系統(tǒng)采用基于時分多址與頻分多址相結(jié)合的抗沖突算法。采用的芯片頻率范圍是2.400~2.485 GHz,由于芯片手冊規(guī)定了最小1 MHz的頻率間隔,頻率間隔過小會導致信號干擾,而頻率間隔過大會減少通信的頻道數(shù),綜合考慮將2 MHz作為頻率間隔,這樣共可實現(xiàn)42個頻道同時通信,信道之間的干擾可降到正常使用范圍內(nèi)。此外,標簽在隨機時刻進入會話狀態(tài),達到時分的效果,進一步降低沖突的概率。
假設(shè)讀寫器的通信信道數(shù)為F,每個信道所在的頻點不同,標簽在F個頻點下隨機選擇信道進行信息傳輸,那么每個頻點被選中的概率為1/F。如果有N個標簽在系統(tǒng)中處于會話狀態(tài),那么有K個標簽選擇到同一信道進行通信的概率為Pr(k),其表達式為
(1)
設(shè)數(shù)據(jù)的幀長度為L,并且有K個標簽在該信道下處于會話狀態(tài),當在一個時隙中僅有一個標簽發(fā)出響應(yīng)時電子標簽就可以被成功地識別,那么任何一個電子標簽被成功識別的概率為Ps(k),其表達式為
(2)
則系統(tǒng)的吞吐量S的表達式為
S=E(K×Ps(K))=
(3)
設(shè)置通信頻道數(shù)F分別為1、2、3、10,數(shù)據(jù)幀長L為16,可以得到在不同的頻道數(shù)下,系統(tǒng)的平均吞吐量的理論值隨著處于會話狀態(tài)下標簽數(shù)變化的曲線,如圖2所示。
圖2 不同頻道數(shù)下平均吞吐量隨標簽數(shù)變化特性
由圖2可知,會話狀態(tài)下的標簽數(shù)越多,系統(tǒng)的平均吞吐量越大,即系統(tǒng)在每一幀下每個信道所識別標簽的平均個數(shù)越多。當達到平均吞吐量的最大值后,隨著標簽數(shù)的增加,平均吞吐量逐漸減少。同時,通信的頻道數(shù)越多,平均吞吐量越大,系統(tǒng)的防碰撞性能越優(yōu)異。
無源RFID技術(shù)有通用的加密算法,而大部分有源RFID系統(tǒng)未使用加密算法,且加密算法不統(tǒng)一。AES算法作為新一代的高級加密標準,在密碼學領(lǐng)域得到了廣泛的關(guān)注。AES算法與國密算法SM4結(jié)構(gòu)相似,均為迭代分組密碼算法,包含相似的基本運算單元,均含有32 b循環(huán)移位、32 b異或運算、8輸入8輸出S盒、128 b異或操作。AES相較于SM4算法另外包含32位(逆)列混淆,再進行少量改動后可變換為國密算法。
AES算法的核心是軟件執(zhí)行效率高和算法存儲空間小。對傳統(tǒng)的AES算法進行輕量化改進,能更加適合RFID系統(tǒng)。AES算法包括加密、解密和密鑰擴展三個模塊。作為AES算法的核心模塊,傳統(tǒng)的輪函數(shù)由四種不同的變換組成:字節(jié)替換SUB、行位移SR、列混淆MC和輪密鑰加ADK,加密與解密流程分別如圖3(a)和(b)所示。算法的前9輪迭代包含這四種轉(zhuǎn)換,而最后一輪迭代只包含SR、SUB和ADK三種。
圖3 加解密復合結(jié)構(gòu)
在傳統(tǒng)的AES算法實現(xiàn)中,不對稱的加密和解密模塊往往是分開的,使得計算資源無法共享,芯片的面積需求較大。由于在SUB過程中,不需要考慮字節(jié)的位置,每個字節(jié)的替換是非線性的;在SR過程中,只需要完成移位,不需要改變字節(jié)的值;在MC過程中,滿足A(X+K)=A(X)+A(K)的逆列混合運算是線性的,因此,具有相似結(jié)構(gòu)的加解密模塊可以優(yōu)化合并至一起[7],復合結(jié)構(gòu)如圖3(c)所示。
設(shè)第i輪的輸入數(shù)據(jù)為Ti,密鑰為Bi,i=1,2,…,N。在MC過程中將Bi在模x4+1下與給定多項式c(x)=03x3+x2+x1+02相乘。定義表R1=02[T(x)]=R2= 02[T(x)],R3=R0⊕R1=03[T(x)],即R2表可由R1表復用實現(xiàn),R3可拆分為R0和R1[8]。加密輪函數(shù)的變換如式(4)所示:
(4)
在此情況下,整個加密過程只需利用2張256 B的表便可實現(xiàn)SUB、SR、MC的同步操作。
(5)
定義4張表,即R4=02[T-1(x)],R5=T-1(x),R6= 08[T-1(x)],R7=04[T-1(x)],則解密輪函數(shù)可改寫為
(6)
綜上,本文采用的輕量AES算法在加密與解密過程中共使用了6張256 B的算法表,復雜且耗時的字節(jié)替換和列混淆操作均可直接通過查表來實現(xiàn)。在算法存儲空間占用較小的前提下,有效提升了AES算法的加解密效率。
為了實現(xiàn)上述算法,本系統(tǒng)讀寫器選用32位微控制單元(Microcontroller Unit,MCU),最高工作頻率為72 MHz,內(nèi)置512 kB的閃存容量,同時擁有低功耗、低成本等優(yōu)點[9]。
讀寫器含有3個射頻模塊接收標簽信息,多通道接收的設(shè)計可以有效降低多個標簽發(fā)送時的沖突率[10]。射頻模塊采用2.4 GHz無線收發(fā)芯片,采用了嵌入式基帶協(xié)議引擎,具有超低功耗的特性。射頻綜合器擁有完全集成的頻率合成器,數(shù)據(jù)傳輸率可達4 Mb/s,在睡眠模式和待機模式下,速率可降低以減少電能損耗。
MCU與射頻模塊之間通過四線串行外設(shè)接口(Serial Peripheral Interface,SPI)完成全雙工的數(shù)據(jù)通信,通過外設(shè)接口與控制終端進行數(shù)據(jù)傳輸,其中外設(shè)接口主要包括RS-232串口、以太網(wǎng)口模塊和4G模塊,邏輯控制電路如圖4所示,讀寫器實物如圖5(a)所示。
圖4 邏輯控制電路
圖5 讀寫器及各版本標簽實物圖
串口模塊通過MAX232ESE芯片將MCU產(chǎn)生的TTL電平轉(zhuǎn)換成符合RS-232C技術(shù)標準的電平,完成穩(wěn)定的有線數(shù)據(jù)傳輸。
以太網(wǎng)模塊的TCP/IP協(xié)議棧集成于W5500芯片中,速率為10/100 Mb/s的以太網(wǎng)層和物理層內(nèi)嵌于其中,通過RX、TX、GND以及VCC幾個接口直接與MCU相連。
4G模塊采用WH-LTE-7S4 V2模塊,需要插入相應(yīng)的SIM卡,將4G天線接到7S4 V2的IPEX天線接口上,實現(xiàn)串口到網(wǎng)絡(luò)的雙向數(shù)據(jù)透明傳輸。
標簽采用2.4 GHz高速無線收發(fā)芯片,低功耗、輕量級的MCU可使發(fā)射間隙的電流由1.8 mA降至0.1 mA,節(jié)省了標簽的能耗,延長了工作時間。無線收發(fā)單元工作在2.400~2.485 GHz通用ISM(Industrial Scientific Medical)頻段,可以實現(xiàn)一對多組網(wǎng)和帶確認字符(Acknowledge Character,ACK)的通信模式。
為了滿足不同場景的需求,本系統(tǒng)的標簽設(shè)計了多個版本。根據(jù)標簽的電源部分不同,分為標準卡式標簽和手表式標簽。
標準卡片式標簽采用micro-usb接口對其充電,可延長使用時間,實物如圖5(b)所示。
手表式的標簽采用紐扣電池,更為小巧。標簽平時處于休眠狀態(tài),觸發(fā)喚醒后才發(fā)射信號或完成其他功能。觸發(fā)喚醒方式有三種:一是標簽自主周期性定時觸發(fā),廣播發(fā)射可以設(shè)置發(fā)送間隔時間,定時發(fā)送信息,標簽構(gòu)成較為簡單,但耗電量較大,如圖5(c)所示;二是運動觸發(fā),在普通標簽的基礎(chǔ)上增加了振動傳感器,只有在標簽感受到振動時才會發(fā)送信息,一般情況下標簽處于休眠狀態(tài),降低能耗,如圖5(d)所示;三是低頻定位觸發(fā)器觸發(fā),該模式的標簽需要處于低頻定位觸發(fā)器有效觸發(fā)范圍時方可被喚醒,擁有定位識別功能,如圖5(e)所示。另外,根據(jù)閱讀器的地點編號信息可以更準確地獲取標簽位置。該模式標簽采用低頻喚醒芯片,可以檢測15~150 kHz之間的 LF 載波頻率的數(shù)據(jù)信號并觸發(fā)喚醒信號[11]。低頻觸發(fā)模塊是使標簽?zāi)軌騿拘训臋C制,觸發(fā)電路作用是檢測外部的125 kHz特定信號并喚醒MCU工作。
射頻識別系統(tǒng)的功能主要是讀寫器識別一定范圍內(nèi)的標簽,記錄標簽信息并處理。在射頻識別系統(tǒng)的讀寫傳輸標簽數(shù)據(jù)過程中,要能夠準確、安全、高效地讀寫數(shù)據(jù)[12]。
首先,讀寫器對所涉及到的模塊進行初始化,主要包括射頻模塊、外接端口模塊、MCU的各個引腳設(shè)置等。在讀寫器的發(fā)送部分中,每3個時隙激活標簽,使標簽進入工作狀態(tài)。每1 000個時隙,讀寫器完成數(shù)據(jù)的上傳,如果與激活標簽重疊則順延1個時隙。每3 000個時隙,對數(shù)據(jù)進行刷新,記錄標簽ID喚醒的時間,將當前時間與喚醒時間相比較,在一段時間內(nèi)不重復喚醒標簽,這樣可以避免對標簽的反復讀取。在接收部分,讀寫器設(shè)置為增強模式,當成功接收數(shù)據(jù)后,向標簽回發(fā)ACK信號靜默標簽,不再激活標簽。讀寫器與標簽信息交互流程如圖6所示。
圖6 讀寫器與標簽信息交互流程
有源RFID標簽的主要功能是與讀寫器進行信息交互,交互讀寫數(shù)據(jù)的過程采用輕量化的AES數(shù)據(jù)加密算法,保證了數(shù)據(jù)安全。
為了降低標簽的功耗,延長工作時間,標簽在通常情況下處于休眠狀態(tài)。當標簽進入讀寫器的識別范圍時,標簽被來自喚醒裝置的外部125 kHz信號喚醒,實現(xiàn)定位的功能。如果標簽收到的廣播幀信號經(jīng)循環(huán)冗余校驗(Cyclic Redundancy Check,CRC)驗證通過,標簽會隨機選擇一個頻點發(fā)送數(shù)據(jù),提高標簽的抗沖突性能。當標簽收到讀寫器在成功接收信息后回發(fā)的ACK信號后,標簽將進入休眠模式以降低功耗,流程如圖6(b)所示。
本系統(tǒng)設(shè)計的上位機軟件在Qt Creator平臺上搭建,用于顯示讀寫器接收到的標簽信息。上位機記錄了標簽的ID、接收到的次數(shù)、收到標簽的初次時間以及末次時間,軟件可用于抗沖突性能測試,顯示窗口如圖7所示。上位機可將數(shù)據(jù)保存下來上傳到數(shù)據(jù)庫,以供更為復雜的數(shù)據(jù)處理。
圖7 上位機顯示窗口
RFID數(shù)據(jù)傳輸?shù)馁|(zhì)量受接收靈敏度、發(fā)射功率和周圍環(huán)境等多種因素影響。首先對RFID系統(tǒng)的讀寫距離范圍進行測試。
測試條件下標簽設(shè)為幾種常用的發(fā)射功率,讀寫器的接收靈敏度為-87 dBm,距離地面1 m,讀寫器筆型全向天線和標簽板載天線均垂直于水平方向。室外環(huán)境下,晴朗天氣,溫度16 ℃,濕度32%,標簽與讀寫器處于開闊地,無遮擋物。常用室內(nèi)使用環(huán)境多含有墻體阻隔,因此在室內(nèi)環(huán)境下,讀寫器置于房間內(nèi),標簽與讀寫器相隔一堵墻進行測試。在室外開闊地和室內(nèi)隔墻情況下對不同發(fā)射功率下的讀寫距離進行試驗,每組實驗測試3個標簽,取平均值,得到測試結(jié)果如表1所示。
表1 系統(tǒng)讀寫距離測試
由測試結(jié)果可知,在相同環(huán)境下,讀寫距離與發(fā)射功率呈正相關(guān)。讀寫距離可根據(jù)不同的應(yīng)用場景而切換,例如為了滿足學校、醫(yī)院等大范圍環(huán)境的人員流動管理需求,可將本文提出的RFID系統(tǒng)設(shè)置為大范圍讀寫模式;而對于各級部門的門禁打卡系統(tǒng)等,本系統(tǒng)的小范圍讀寫模式即可滿足要求。
為了檢測系統(tǒng)的防碰撞性,對不同通道的讀寫器進行了測試。將標簽的發(fā)射功率為11 dBm,采用跳頻的工作方式,每次在2.402 GHz、2.404 GHz和2.406 GHz頻道中隨機選取一個頻點發(fā)送信號。讀寫器接收靈敏度-87 dBm,筆型全向天線垂直于水平方向接收,兩者通信速率為1 Mb/s,相隔2 m。各標簽在不同時刻打開電源,以達到時分的作用,標簽每秒發(fā)送一次數(shù)據(jù)包,逐步增加標簽數(shù)量。在測試標簽都進入工作狀態(tài)后,打開上位機串口,觀察讀寫器接收情況,統(tǒng)計閱讀器識別到所有標簽所需要的時間,即平均時延。同時設(shè)置單通道和雙通道接收形成對照,每組實驗測試3次,取平均值,測試結(jié)果如圖8所示。
圖8 抗沖突測試
由測試結(jié)果可知,隨著標簽數(shù)目的增加,讀寫器檢測到的標簽數(shù)據(jù)包的次數(shù)呈非線性增長,標簽信息產(chǎn)生了一定的沖突。三通道讀寫器系統(tǒng)相較于單通道的系統(tǒng),識別所有標簽所花的時間減少了60.2%,防碰撞性能明顯提高。接下來可以在成本允許的范圍內(nèi),設(shè)計通道數(shù)更多的讀寫器裝置,以實現(xiàn)更優(yōu)異的防碰撞性能。
本文設(shè)計了一款具有定位識別功能的多通道RFID系統(tǒng),重點闡述了射頻識別系統(tǒng)的工作原理、硬件組成及關(guān)鍵算法設(shè)計。與傳統(tǒng)RFID系統(tǒng)相比,本文的軟件部分采用了輕量化的AES加密算法和頻分時分結(jié)合的防碰撞算法,大大提升了系統(tǒng)的信息安全性與抗沖突性能,平均時延降低了60.2%。測試結(jié)果表明該系統(tǒng)已經(jīng)具備了實際應(yīng)用能力,支持多種外接端口進行數(shù)據(jù)傳輸,具有良好的工程實踐價值。
為了進一步提高抗沖突性能,后續(xù)可將讀寫器的接收端頻點動態(tài)分組,使得頻道可以根據(jù)標簽數(shù)和頻點的變化而改變,從而提高系統(tǒng)的抗沖突速度。