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