俞 蕾,蔣 斌,陳海進
(南通大學 信息科學技術學院,江蘇 南通 226019)
射頻識別(Radio Frequency Identification,RFID)是一種方便快捷的非接觸式自動識別技術。隨著物聯網時代的興起,作為核心技術的RFID研究也在迅速增加[1]。它具有識別速度快、精度高、成本低等優點,已被廣泛用于供應鏈管理、人員交通管理等。RFID系統按照供電方式的不同,可分為有源RFID系統和無源RFID系統。前者與后者相比,性能更加穩定可靠。
射頻識別過程中多個標簽在閱讀器的識別范圍內并同時對其做出響應時,閱讀器將無法快速、正確地識別標簽,這稱為標簽沖突。RFID技術常見的防碰撞算法主要分為確定性的防碰撞算法和不確定性的防碰撞算法。確定性的防碰撞算法是基于樹的算法,抗沖突性能較好,但由于需要讀寫器與標簽多次交互,識別時間過長,效率較低,不適合有源RFID系統。不確定性的防碰撞算法是基于ALOHA的算法,雖然防碰撞性能較弱,但是執行效率高,實用性更強,更適合有源RFID系統。文獻[2]提出了一種基于擴頻ALOHA的RFID防碰撞算法,引入碰撞數據幀隨機退避重傳機制,提高了吞吐率,但解擴過程復雜且系統成本高。文獻[3]提出了一種基于ARM(Advanced RISC Machines)的RFID系統設計,雖然系統的功耗較低,但防碰撞性能較差。
為此,本文設計了一種防碰撞性能優異、傳輸距離可調、安全性能高的射頻識別系統,系統采用了頻分時分相結合的多通道抗沖突算法。與傳統的單通道RFID系統相比,通過標簽及讀寫器在軟件、硬件的協同設計,使得平均時延降低了60.2%。此外,采用了輕量級高級加密標準(Advanced Encryption Standard,AES)算法,利用復用查表方式有效提升了算法的加解密效率,提高了系統的信息安全性,這些也是本文的創新點與難點。測試結果表明,利用該系統可以在較大的可控范圍內實現人員的精確管理,標簽支持多種觸發方式,系統功耗較小,具有較高的實際應用價值。
系統由三部分組成,主要包括有源標簽、RFID讀寫器以及控制終端(上位機),組成結構如圖1所示。上位機通過Qt Creator應用程序開發平臺設計,用于顯示讀寫器收到標簽的標識(Identity,ID)、次數、首末次時間等。讀寫器接收到信息后可以通過RS-232串口、以太網口或者4G模塊將信息傳輸到上位機的數據庫,便于后續更為復雜的數據處理。系統采用防碰撞算法以及輕量化AES算法提高標簽識別效率和系統信息安全性。

圖1 有源RFID系統組成結構
作為一種無線傳輸系統,RFID系統不可避免地會存在多個信號沖突的問題。為了保證讀寫器能夠準確、快速地接收標簽數據和識別標簽,研究防碰撞算法成為優化RFID系統的核心問題。
純ALOHA算法是最簡單的防碰撞算法,是一種隨機概率識別標簽方法。雖然算法相對簡單,易于理解,易于實現,但是效率極低[4]。由于純ALOHA算法的粗糙性和不完善性,時隙ALOHA算法隨之出現。該算法將時間分成若干個時隙,標簽只能在時隙開始的時候傳輸信號[5]。它的特點是能避免不完全沖突,但增加了交互,延長了抗沖突的時間[6]。
針對上述問題,本系統采用基于時分多址與頻分多址相結合的抗沖突算法。采用的芯片頻率范圍是2.400~2.485 GHz,由于芯片手冊規定了最小1 MHz的頻率間隔,頻率間隔過小會導致信號干擾,而頻率間隔過大會減少通信的頻道數,綜合考慮將2 MHz作為頻率間隔,這樣共可實現42個頻道同時通信,信道之間的干擾可降到正常使用范圍內。此外,標簽在隨機時刻進入會話狀態,達到時分的效果,進一步降低沖突的概率。
假設讀寫器的通信信道數為F,每個信道所在的頻點不同,標簽在F個頻點下隨機選擇信道進行信息傳輸,那么每個頻點被選中的概率為1/F。如果有N個標簽在系統中處于會話狀態,那么有K個標簽選擇到同一信道進行通信的概率為Pr(k),其表達式為
(1)
設數據的幀長度為L,并且有K個標簽在該信道下處于會話狀態,當在一個時隙中僅有一個標簽發出響應時電子標簽就可以被成功地識別,那么任何一個電子標簽被成功識別的概率為Ps(k),其表達式為
(2)
則系統的吞吐量S的表達式為
S=E(K×Ps(K))=

(3)
設置通信頻道數F分別為1、2、3、10,數據幀長L為16,可以得到在不同的頻道數下,系統的平均吞吐量的理論值隨著處于會話狀態下標簽數變化的曲線,如圖2所示。

圖2 不同頻道數下平均吞吐量隨標簽數變化特性
由圖2可知,會話狀態下的標簽數越多,系統的平均吞吐量越大,即系統在每一幀下每個信道所識別標簽的平均個數越多。當達到平均吞吐量的最大值后,隨著標簽數的增加,平均吞吐量逐漸減少。同時,通信的頻道數越多,平均吞吐量越大,系統的防碰撞性能越優異。
無源RFID技術有通用的加密算法,而大部分有源RFID系統未使用加密算法,且加密算法不統一。AES算法作為新一代的高級加密標準,在密碼學領域得到了廣泛的關注。AES算法與國密算法SM4結構相似,均為迭代分組密碼算法,包含相似的基本運算單元,均含有32 b循環移位、32 b異或運算、8輸入8輸出S盒、128 b異或操作。AES相較于SM4算法另外包含32位(逆)列混淆,再進行少量改動后可變換為國密算法。
AES算法的核心是軟件執行效率高和算法存儲空間小。對傳統的AES算法進行輕量化改進,能更加適合RFID系統。AES算法包括加密、解密和密鑰擴展三個模塊。作為AES算法的核心模塊,傳統的輪函數由四種不同的變換組成:字節替換SUB、行位移SR、列混淆MC和輪密鑰加ADK,加密與解密流程分別如圖3(a)和(b)所示。算法的前9輪迭代包含這四種轉換,而最后一輪迭代只包含SR、SUB和ADK三種。

圖3 加解密復合結構
在傳統的AES算法實現中,不對稱的加密和解密模塊往往是分開的,使得計算資源無法共享,芯片的面積需求較大。由于在SUB過程中,不需要考慮字節的位置,每個字節的替換是非線性的;在SR過程中,只需要完成移位,不需要改變字節的值;在MC過程中,滿足A(X+K)=A(X)+A(K)的逆列混合運算是線性的,因此,具有相似結構的加解密模塊可以優化合并至一起[7],復合結構如圖3(c)所示。
設第i輪的輸入數據為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表復用實現,R3可拆分為R0和R1[8]。加密輪函數的變換如式(4)所示:

(4)
在此情況下,整個加密過程只需利用2張256 B的表便可實現SUB、SR、MC的同步操作。


(5)
定義4張表,即R4=02[T-1(x)],R5=T-1(x),R6= 08[T-1(x)],R7=04[T-1(x)],則解密輪函數可改寫為

(6)
綜上,本文采用的輕量AES算法在加密與解密過程中共使用了6張256 B的算法表,復雜且耗時的字節替換和列混淆操作均可直接通過查表來實現。在算法存儲空間占用較小的前提下,有效提升了AES算法的加解密效率。
為了實現上述算法,本系統讀寫器選用32位微控制單元(Microcontroller Unit,MCU),最高工作頻率為72 MHz,內置512 kB的閃存容量,同時擁有低功耗、低成本等優點[9]。
讀寫器含有3個射頻模塊接收標簽信息,多通道接收的設計可以有效降低多個標簽發送時的沖突率[10]。射頻模塊采用2.4 GHz無線收發芯片,采用了嵌入式基帶協議引擎,具有超低功耗的特性。射頻綜合器擁有完全集成的頻率合成器,數據傳輸率可達4 Mb/s,在睡眠模式和待機模式下,速率可降低以減少電能損耗。
MCU與射頻模塊之間通過四線串行外設接口(Serial Peripheral Interface,SPI)完成全雙工的數據通信,通過外設接口與控制終端進行數據傳輸,其中外設接口主要包括RS-232串口、以太網口模塊和4G模塊,邏輯控制電路如圖4所示,讀寫器實物如圖5(a)所示。

圖4 邏輯控制電路

圖5 讀寫器及各版本標簽實物圖
串口模塊通過MAX232ESE芯片將MCU產生的TTL電平轉換成符合RS-232C技術標準的電平,完成穩定的有線數據傳輸。
以太網模塊的TCP/IP協議棧集成于W5500芯片中,速率為10/100 Mb/s的以太網層和物理層內嵌于其中,通過RX、TX、GND以及VCC幾個接口直接與MCU相連。
4G模塊采用WH-LTE-7S4 V2模塊,需要插入相應的SIM卡,將4G天線接到7S4 V2的IPEX天線接口上,實現串口到網絡的雙向數據透明傳輸。
標簽采用2.4 GHz高速無線收發芯片,低功耗、輕量級的MCU可使發射間隙的電流由1.8 mA降至0.1 mA,節省了標簽的能耗,延長了工作時間。無線收發單元工作在2.400~2.485 GHz通用ISM(Industrial Scientific Medical)頻段,可以實現一對多組網和帶確認字符(Acknowledge Character,ACK)的通信模式。
為了滿足不同場景的需求,本系統的標簽設計了多個版本。根據標簽的電源部分不同,分為標準卡式標簽和手表式標簽。
標準卡片式標簽采用micro-usb接口對其充電,可延長使用時間,實物如圖5(b)所示。
手表式的標簽采用紐扣電池,更為小巧。標簽平時處于休眠狀態,觸發喚醒后才發射信號或完成其他功能。觸發喚醒方式有三種:一是標簽自主周期性定時觸發,廣播發射可以設置發送間隔時間,定時發送信息,標簽構成較為簡單,但耗電量較大,如圖5(c)所示;二是運動觸發,在普通標簽的基礎上增加了振動傳感器,只有在標簽感受到振動時才會發送信息,一般情況下標簽處于休眠狀態,降低能耗,如圖5(d)所示;三是低頻定位觸發器觸發,該模式的標簽需要處于低頻定位觸發器有效觸發范圍時方可被喚醒,擁有定位識別功能,如圖5(e)所示。另外,根據閱讀器的地點編號信息可以更準確地獲取標簽位置。該模式標簽采用低頻喚醒芯片,可以檢測15~150 kHz之間的 LF 載波頻率的數據信號并觸發喚醒信號[11]。低頻觸發模塊是使標簽能夠喚醒的機制,觸發電路作用是檢測外部的125 kHz特定信號并喚醒MCU工作。
射頻識別系統的功能主要是讀寫器識別一定范圍內的標簽,記錄標簽信息并處理。在射頻識別系統的讀寫傳輸標簽數據過程中,要能夠準確、安全、高效地讀寫數據[12]。
首先,讀寫器對所涉及到的模塊進行初始化,主要包括射頻模塊、外接端口模塊、MCU的各個引腳設置等。在讀寫器的發送部分中,每3個時隙激活標簽,使標簽進入工作狀態。每1 000個時隙,讀寫器完成數據的上傳,如果與激活標簽重疊則順延1個時隙。每3 000個時隙,對數據進行刷新,記錄標簽ID喚醒的時間,將當前時間與喚醒時間相比較,在一段時間內不重復喚醒標簽,這樣可以避免對標簽的反復讀取。在接收部分,讀寫器設置為增強模式,當成功接收數據后,向標簽回發ACK信號靜默標簽,不再激活標簽。讀寫器與標簽信息交互流程如圖6所示。

圖6 讀寫器與標簽信息交互流程
有源RFID標簽的主要功能是與讀寫器進行信息交互,交互讀寫數據的過程采用輕量化的AES數據加密算法,保證了數據安全。
為了降低標簽的功耗,延長工作時間,標簽在通常情況下處于休眠狀態。當標簽進入讀寫器的識別范圍時,標簽被來自喚醒裝置的外部125 kHz信號喚醒,實現定位的功能。如果標簽收到的廣播幀信號經循環冗余校驗(Cyclic Redundancy Check,CRC)驗證通過,標簽會隨機選擇一個頻點發送數據,提高標簽的抗沖突性能。當標簽收到讀寫器在成功接收信息后回發的ACK信號后,標簽將進入休眠模式以降低功耗,流程如圖6(b)所示。
本系統設計的上位機軟件在Qt Creator平臺上搭建,用于顯示讀寫器接收到的標簽信息。上位機記錄了標簽的ID、接收到的次數、收到標簽的初次時間以及末次時間,軟件可用于抗沖突性能測試,顯示窗口如圖7所示。上位機可將數據保存下來上傳到數據庫,以供更為復雜的數據處理。

圖7 上位機顯示窗口
RFID數據傳輸的質量受接收靈敏度、發射功率和周圍環境等多種因素影響。首先對RFID系統的讀寫距離范圍進行測試。
測試條件下標簽設為幾種常用的發射功率,讀寫器的接收靈敏度為-87 dBm,距離地面1 m,讀寫器筆型全向天線和標簽板載天線均垂直于水平方向。室外環境下,晴朗天氣,溫度16 ℃,濕度32%,標簽與讀寫器處于開闊地,無遮擋物。常用室內使用環境多含有墻體阻隔,因此在室內環境下,讀寫器置于房間內,標簽與讀寫器相隔一堵墻進行測試。在室外開闊地和室內隔墻情況下對不同發射功率下的讀寫距離進行試驗,每組實驗測試3個標簽,取平均值,得到測試結果如表1所示。

表1 系統讀寫距離測試
由測試結果可知,在相同環境下,讀寫距離與發射功率呈正相關。讀寫距離可根據不同的應用場景而切換,例如為了滿足學校、醫院等大范圍環境的人員流動管理需求,可將本文提出的RFID系統設置為大范圍讀寫模式;而對于各級部門的門禁打卡系統等,本系統的小范圍讀寫模式即可滿足要求。
為了檢測系統的防碰撞性,對不同通道的讀寫器進行了測試。將標簽的發射功率為11 dBm,采用跳頻的工作方式,每次在2.402 GHz、2.404 GHz和2.406 GHz頻道中隨機選取一個頻點發送信號。讀寫器接收靈敏度-87 dBm,筆型全向天線垂直于水平方向接收,兩者通信速率為1 Mb/s,相隔2 m。各標簽在不同時刻打開電源,以達到時分的作用,標簽每秒發送一次數據包,逐步增加標簽數量。在測試標簽都進入工作狀態后,打開上位機串口,觀察讀寫器接收情況,統計閱讀器識別到所有標簽所需要的時間,即平均時延。同時設置單通道和雙通道接收形成對照,每組實驗測試3次,取平均值,測試結果如圖8所示。

圖8 抗沖突測試
由測試結果可知,隨著標簽數目的增加,讀寫器檢測到的標簽數據包的次數呈非線性增長,標簽信息產生了一定的沖突。三通道讀寫器系統相較于單通道的系統,識別所有標簽所花的時間減少了60.2%,防碰撞性能明顯提高。接下來可以在成本允許的范圍內,設計通道數更多的讀寫器裝置,以實現更優異的防碰撞性能。
本文設計了一款具有定位識別功能的多通道RFID系統,重點闡述了射頻識別系統的工作原理、硬件組成及關鍵算法設計。與傳統RFID系統相比,本文的軟件部分采用了輕量化的AES加密算法和頻分時分結合的防碰撞算法,大大提升了系統的信息安全性與抗沖突性能,平均時延降低了60.2%。測試結果表明該系統已經具備了實際應用能力,支持多種外接端口進行數據傳輸,具有良好的工程實踐價值。
為了進一步提高抗沖突性能,后續可將讀寫器的接收端頻點動態分組,使得頻道可以根據標簽數和頻點的變化而改變,從而提高系統的抗沖突速度。