兩種UHF RFID標準標簽數據結構差異對讀寫器設計的影響
引言
由國家質量監(jiān)督檢驗檢疫總局和國家標準化管理委員會發(fā)布,于2014年5月1日實施的GB/T29768-2013《信息技術射頻識別800/900MHz空中接口協(xié)議》規(guī)定了840?845MHz和920?925MHz頻段射頻識別系統(tǒng)空中接口的物理層和媒體訪問控制層參數以及協(xié)議工作方式。該標準是由2011年頒布的國軍標GJB7377.1-2011《軍用射頻識別空中接口第一部分:800/900MHz參數》轉化而來,兩者在前向前導碼和反向鏈接頻率以及啟動查詢和分類命令結構有些差異,但是查詢機制兩者完全相同,它們的數據結構的標簽與符合ISO18000-6C標準1的標簽在媒體訪問控制層和協(xié)議工作方式上有比較大的差異。所以目前這三種標準在標簽數據結構上可以分為兩類,為了適應這種差異,在讀寫器軟件設計上需要有些對應措施。
1標簽數據結構差異
ISO18000-6C標簽數據結構如圖1所示,完整電子標簽由USER、TID、EPC和RESERVED四個Bank組成,其中EPC部分包含CRC、PC和EPC數據三個部分。CRC由標簽本身自動對PC和EPC兩部分計算得到,在寫標簽時不需要特意單獨寫入CRC內容。
GB/T29768標簽數據結構4如圖2所示,完整電子標簽由也是用戶區(qū)、安全區(qū)、編碼區(qū)和標簽信息區(qū)四個空間組成,其中編碼區(qū)由編碼長度和編碼頭組成。
兩種標簽構成相似,但是在密集標簽分群盤點方面,ISO18000-6C標簽的數據結構相對更容易在存儲空間有限的基于微控制器讀寫器設計中實現。
2微控制器讀寫器解碼的可行性分析
在讀寫器設計中,通常采用微控制器實現對電子標簽的解碼識別,當使用比較快的反向鏈接頻率時,標簽的應答信號脈沖間隔只有幾微秒甚至更短,受微控制器處理速度限制,如果微控制器帶有時鐘定時器等中斷,處理這樣快速脈沖可能會因為中斷占用識別處理的時間從而丟失脈沖信號導致解碼失敗,因此不使用定時器中斷可以減少高反向鏈接頻率時的解碼失敗可能性。在盤點標簽的解碼周期中,無論ISO18000-6C還是GB/T29768都規(guī)范了標簽命令間隔,在ISO18000-6C和GB/T29768中都定義了相同的時間參數T2數值范圍3Tpri~20Tpri。超過規(guī)范時間,標簽會反轉內部標志,在ISO18000-6C中,因為反向鏈接頻率為40~640kHz,相應T2數值范圍最大允許值為500~32.5μs,在GB/T29768標準中反向鏈接頻率為64~640kHz,相應T2數值范圍最大允許值為325~32.5μs,所以當設計高速的反向鏈接頻率讀寫器時,使用微控制器解碼標簽的過程中,沒法將剛剛解碼的標簽傳給上位機以便騰出空間,只能先緩存在微控制器的數據存儲空間中。由于微控制器系統(tǒng)存儲空間容量有限,這限制了基于微控制器的讀寫器每輪最多識別標簽的容量。如果期望使用帶有外部擴展SDRAM的嵌入式控制系統(tǒng),因為系統(tǒng)都帶有節(jié)拍定時器,存在中斷處理開銷,這在識別高反向鏈接頻率標簽是不可接受的,即使使用雙微控制器,其中一個控制器專用于標簽識別,也會受指令執(zhí)行速度影響,不能設計出高反向鏈接速度的讀寫器。
3標簽分群解碼的實現比較
讀寫器還有緩存標簽數據能力,以便轉給上位機控制器,受微控制器存儲容量的限制,設計中可以考慮把標簽分群分批次識別來解決微控制器存儲容量的瓶頸。在分群方面,ISO18000-6C標簽數據結構相對GB/T29768的標簽數據結構有些優(yōu)勢。
ISO18000-6C標簽數據結構(圖1),包含的CRC部分所占地址是固定在00h~0Fh這16個位空間處,分群所用SELECT命令構成參見圖3所示。
對于隨機的或是編號成序列的一群標簽,利用標簽的CRC存放中的幾個位作為分群SELECT命令的掩碼Mask,結合指示位置的Pointer和指示匹配長度的Length,如果用CRC的二進制高三位,Pointre=00h,Length=03h,Mask依次可配置成000b?111b,可以把標簽分成8個子群來進行盤點,作為對比評估,如果用標簽EPC部分做掩碼來分群,假如選標簽大致成序列,而且選中的是序列的二進制最低三位,那可以最均勻地分配出8個子群,但是如果在另外一個識別場合,標簽群的序列號定義是新的格式,那就不幸可能標簽全集中到一個群中,但是利用CRC部分的數據卻可以相對均勻地把成序列的標簽群拆分。這方面的比較說明了利用EPC部分位來分群的局限性,而利用CRC存放部分的數據位來分群可以在不確認標簽數據格式前提下,相對均勻的把標簽分成小群。
GB/T29768標簽數據結構(圖2)缺少CRC部分,故編碼頭部分在GB/T297683中沒有描述,通過參考GJB7377-2011和GJB7382-20115等類似標準,得知其不具有序列性質,由于缺少固定位置相對隨機的的數據結構,GB/T29768標簽分群能力大大弱于ISO18000-6C標簽,不利于存儲容量有限的微控制器的讀寫器盤點大群標簽。
4基于FPGA實現的讀寫器解決方案
前面分析了基于微控制器的讀寫器在實現高速盤點大群標簽特別是盤點GB/T29768標準標簽的困境,如果采用并行操作的FPGA代替指令串行執(zhí)行的微控制器,利用FPGA設計多個并行工作的狀態(tài)機,通過先進先出寄存器就可以在新命令發(fā)出過程中把前面命令獲得的標簽返回數據通過接口轉移到外部嵌入式控制器,不用進行分群盤點方式就可以實現大容量的記錄處理。
基于FPGA代替微控制器的讀寫器結構框圖如圖4所示,其中FPGA中的控制狀態(tài)機是整個系統(tǒng)的核心,它通過接口控制器、命令狀態(tài)機、解碼狀態(tài)機、頻率控制器、FIFO控制器等部分實現讀卡功能。
圖4基于FPGA代替微控制器的讀寫器結構框圖
接口控制器包含同步串行接口SPI從控制器,可以使FPGA通過SPI接口與外部嵌入式微控制器通訊,接受嵌入式控制器命令并返回得到的標簽數據,是對外交互通道。
命令狀態(tài)機根據控制狀態(tài)機處理的接口命令和解碼狀態(tài)機解調的信息,把新的命令序列處理成串行數據送給外部數字模擬轉換器,進而輸出IQ兩路模擬信號供給調制器。
解碼器把來自外部模擬數字轉換器的數據,根據解碼規(guī)則處理出標簽信息,轉給控制狀態(tài)機去控制命令狀態(tài)機,并把需要輸出的數據放入FIFO存儲器中緩存,等待外部嵌入式控制器取走。
頻率控制器根據控制狀態(tài)機的命令,輸出相應命令串驅動外部頻率合成器產生所需要的射頻載波,再給后級調制解調輸出。
FPGA可以并行處理數據,在控制狀態(tài)機讓命令狀態(tài)機發(fā)送命令或是解碼狀態(tài)機在處理返回信息同時還可以處理接口控制器的事務,把前面緩沖在FIFO存儲器的數據通過接口傳給外部嵌入式控制器,外部的嵌入式控制器外掛大容量的SDRAM,其與FPGA之間的SPI通訊接口接口傳送的速率要高于標簽響應速率,所以只要外部嵌入式控制器與FPGA配合好,突發(fā)性地把FIFO存儲器中的緩沖數據取走,就能實現基于微控制器的讀寫器無法實現的高反向鏈接頻率下的巨大讀卡容量。
在基于FPGA的讀寫器中,設計為最高640kHz的反向鏈接頻率時,因為操作的并行性,不同于基于微控制器的指令方式,處理前述標簽標準中的&參數沒有任何壓力,同時解碼處理方式是依靠模擬數字轉換器輸入,可以對數據先進行濾波再進行邊沿識別,利用相對微控制器更完善的識別判斷手段,提高對弱信噪比信號識別的成功率。而基于微控制器的讀寫器,最高處理反向鏈接速度是320kHz,速度很快,因為識別代碼指令執(zhí)行需要時間,過短的數據間隔導致前面沒處理完成后面新數據就到達的狀況,這時數據會丟失導致解碼失敗,另外一個性能限制是命令之間時間參數&問題,已經處理的數據沒有充足時間傳給上位機只能先放到RAM中緩存,容量受限。
5結語
在對GB/T29768與ISO18000-6C兩種標簽的數據結構差異對比分析基礎上,分析了基于微控制器實現讀寫器的局限性和基于FPGA結構的讀寫器實現的優(yōu)越性,當然,后者開發(fā)難度,器件成本、功耗和體積都會有所增加。在應用場合,可以根據需求,有針對性地采用高性能或是適當降低讀取指標關注小體積低成本的方案。