超高頻段RFID標簽的數字電路設計
4.2 譯碼模塊具體實(shí)現方法
讀寫(xiě)器發(fā)出的命令采用PIE (pulse.interval encoding)格式,命令以同步頭(preamble)開(kāi)始,如圖3所示。譯碼模塊的實(shí)現方法為:首先判斷同步頭,標簽對輸入信號進(jìn)行檢測,一旦檢測到下降沿說(shuō)明可能是一條新命令的定界符(delimiter),馬上計數低電平,將計數值存人寄存器count0中,同時(shí)檢測輸入信號是否有上升沿跳變,若發(fā)現上升沿跳變,則數據清零重新計數,并把delimiter之后的計數值存入寄存器count中,不斷比較寄存器count0和count的值,依據圖3所示的關(guān)系依次判斷出delimiter, 數據0,RTcal(reader to tag calibration),TRcal (tag to reader calibration), 確認同步頭;然后把同步頭之后的數據比RTcal/2短的作為數據0,比RTtcal/2長(cháng)的作為數據1,從一系列高低電平中恢復出真正的1信號和0信號,依次存入命令寄存器,并提供控制狀態(tài)機及校驗模塊的相關(guān)標志位。
圖3 PIE格式,R=>T(reader to rag)同步
4.3 CRC校驗和產(chǎn)生模塊
UHF RFID系統采用循環(huán)冗余校驗(CRC校驗)來(lái)判斷數據的有效性和完整性,CRC校驗可以保護讀寫(xiě)器發(fā)出的RjT (reader to tag)命令和標簽反向散射的TjR (tag to reader)序列。從數學(xué)角度來(lái)看,CRC校驗是用將被處理的數據字節當作一個(gè)二進(jìn)制多項式A ( )的系數,該系數除以發(fā)送方和接收方預先約定好的生成多項式g ( )后,將求得的余數P ( )作為CRC校驗碼。CRC的計算包括了要計算其CRC值的數據字節以及所有前面的數據字節的CRC值。當一個(gè)數據塊被傳輸時(shí),數據發(fā)送方計算此數據塊的CRC校驗碼,并將此校驗碼附在數據塊后一起傳輸。數據接收方計算所有接收數據的CRC值,其結果總是零,否則在傳輸過(guò)程中一定出現了傳輸錯誤。用零校驗可以很容易地分析數據的完整性,避免代價(jià)很高的校驗和比較過(guò)程。協(xié)議中采用線(xiàn)性反饋移位寄存器來(lái)實(shí)現CRC校驗,CRC.5校驗和CRC.16校驗的電路示意圖如圖4所示。
圖4 CRC-5和CRC-16電路
4.4 射頻標簽中的狀態(tài)機
RFID標簽所有的操作都基于由一系列邏輯控制的狀態(tài)轉換進(jìn)行的,此為標簽數字電路的核心部分。本設計采用有限狀態(tài)機來(lái)實(shí)現此模塊,這里用到了3類(lèi)基本操作和7種典型的狀態(tài)。如圖5所示,當收到不同命令時(shí),標簽將會(huì )在7種狀態(tài)間進(jìn)行轉換。選擇(select)命令和盤(pán)存(inventory)命令用于從標簽群中識別出特定的一個(gè),標簽所處的相應狀態(tài)為ready,arbitrate,reply,acknowledged;一旦標簽被識別,讀寫(xiě)器即可發(fā)出訪(fǎng)問(wèn)(access)命令,讀取標簽的信息或將信息發(fā)送給標簽,標簽所處的相應狀態(tài)為open,secured,killed。
圖5 讀寫(xiě)器對標簽操作及標簽的狀態(tài)
識別多個(gè)標簽時(shí)采用隨機分槽防碰撞算法(slotted random anti.collision algorithm)解決沖突問(wèn)題。讀寫(xiě)器向讀寫(xiě)范圍內的每個(gè)標簽發(fā)送包含參數Q (取值0 15)的Query命令,控制標簽往各自的分槽計數器內載入一個(gè)由Q值決定的隨機數(取值范圍0~2Q.1),隨機數的產(chǎn)生主要基于線(xiàn)性移位反饋寄存器 。讀寫(xiě)器再發(fā)出其他inventory命令改變隨機數的值,只有當隨機數的值為0時(shí),標簽才會(huì )應答。若多個(gè)標簽的計數器值同時(shí)為0時(shí),這些標簽同時(shí)應答,從而造成沖突。讀寫(xiě)器檢測到?jīng)_突后,發(fā)出inventory命令讓沖突標簽的隨機數值從0000h(十六進(jìn)制數)變到7FFFh,再通過(guò)設置新的Q參數來(lái)隨機散列分槽計數器值,使得發(fā)生沖突的多個(gè)標簽逐一被識別,保留一個(gè)處于活動(dòng)狀態(tài)的標簽與讀寫(xiě)器建立無(wú)碰撞通信,這樣就有效地解決了沖突問(wèn)題。雖然此種方法的判別線(xiàn)性度比二進(jìn)制數搜索法低,但讀取速度高,演算機制完整,可防范多種信號碰撞的可能性,大幅降低信號碰撞的幾率。
4.5 編碼模塊
標簽反向散射給讀寫(xiě)器的數據采用FM0編碼,圖6給出了FM0編碼的格式。
圖6 FM0編碼格式
FM0編碼的數據前應以前同步碼開(kāi)始,選擇哪種前同步碼由讀寫(xiě)器所發(fā)命令中的TRext參數決定;FM0編碼在每個(gè)數據邊界處倒轉相位,并在數據0中間倒轉相位。FM0編碼具有記憶功能,一序列的信號中,后一位電平必須承接上一位末尾電平,所以需要一個(gè)寄存器存放上一位末尾處的電平信號,由此來(lái)判斷下一信號的起始電平。根據讀器所發(fā)命令確定標簽返回數據的鏈路頻率(LF:link frequency), 由內部時(shí)鐘計數產(chǎn)生所需頻率,以此作為標簽返回數據的發(fā)送頻率。為降低功耗,可以將全局時(shí)鐘分頻,降低時(shí)鐘頻率。為了準確實(shí)現編碼的功能,需要在充分理解標準的基礎上,嚴格定義該模塊與狀態(tài)機之間的接口時(shí)序。編碼模塊只有與狀態(tài)機模塊在時(shí)序上密切配合,雙方才能正確地發(fā)送和接收信號。實(shí)現過(guò)程為:當狀態(tài)機發(fā)送的使能信號有效時(shí),編碼模塊進(jìn)入編碼狀態(tài),同時(shí),狀態(tài)機送出數據信號;編碼模塊被觸發(fā)啟動(dòng)后,首先按照協(xié)議要求產(chǎn)生前同步碼,再把要輸出的數據依次編碼,產(chǎn)生1 bit中高低各半的0信號或統一電平的1信號,串行送出;當狀態(tài)機發(fā)送最后一位數據的同時(shí),通知編碼模塊,狀態(tài)機的數據已經(jīng)發(fā)送完畢。
評論