UHF讀寫器設(shè)計中的FM0解碼技術(shù)
RFID(radio frequency identification)技術(shù)是指以識別和數(shù)據(jù)交換為目的,利用感應(yīng)、無線電波或微波進行非接觸雙向通信的自動識別技術(shù),利用這種技術(shù)可以實現(xiàn)對所有物理對象的追蹤和管理。2006年EPC global(全球產(chǎn)品電子代碼管理中心)納入ISO/IEC 18000-6C標(biāo)準(zhǔn),批準(zhǔn)了新標(biāo)準(zhǔn)EPC Gen2,用于900 MHz左右的UHF的RFID技術(shù)規(guī)范,現(xiàn)在被我國作為第1類第2代UHF RFID 860 MHz-960 MHz通信協(xié)議。UHF頻段RFID系統(tǒng)具有讀寫速度快、存儲容量大、識別距離遠、成本低、尺寸小等特點,更適合未來物流、供應(yīng)鏈領(lǐng)域的應(yīng)用,也為實現(xiàn)“物聯(lián)網(wǎng)”提供可能。因此超高頻RFID系統(tǒng)的發(fā)展是當(dāng)今RFID系統(tǒng)發(fā)展的重點。這里所提出的UHF讀寫器是基于EPC Gen2標(biāo)準(zhǔn)來實現(xiàn)的,閱讀器對標(biāo)簽的讀寫是通過發(fā)送射頻能量和對回波檢測來實現(xiàn)的,其中由標(biāo)簽返回給閱讀器數(shù)據(jù)發(fā)送采用FM0編碼格式。
1 FMO編碼原理
FM0(即Bi-Phase Space)編碼的全稱為雙相間隔碼編碼。在一個位窗內(nèi)采用電平變化表示邏輯。如果電平從位窗的起始處翻轉(zhuǎn),則表示邏輯“1”。如果電平除了在位窗的起始處翻轉(zhuǎn),還在位窗中間翻轉(zhuǎn)則表示邏輯“O”。根據(jù)FM0編碼的規(guī)則可以發(fā)現(xiàn)無論傳送的數(shù)據(jù)是0還是1,在位窗的起始處都需要發(fā)生跳變,如圖1所示。
根據(jù)EPC Gen2協(xié)議規(guī)定,從標(biāo)簽接收剄的數(shù)據(jù)都是FM0編碼格式,是以前同步碼開始的,前同步由2部分構(gòu)成:前12個前導(dǎo)零與之后的6位特定位。需要注意的是在前同步碼中有1位發(fā)生了偏移(即應(yīng)發(fā)生相轉(zhuǎn)化但實際上沒有),表示為“V”,用于區(qū)分前同步碼與數(shù)據(jù)碼,前同步碼之后為收到的數(shù)據(jù),如圖2所示。
2 UHF讀寫器讀寫原理
根據(jù)EPC Gen2標(biāo)準(zhǔn),該UHF讀寫器屬于半雙工通信,遵循讀寫器先發(fā)言(RTF)原則,即標(biāo)簽是否需要返回信號建立在有沒有接收到并正確解調(diào)出讀寫器發(fā)來的指令。系統(tǒng)開始工作時,先由讀寫器通過射頻模塊進行調(diào)制,發(fā)出一系列的讀標(biāo)簽指令,當(dāng)標(biāo)簽進入讀寫器響應(yīng)區(qū)域時,接收到射頻能量,開始解調(diào)讀寫器的指令,只有正確得到讀指令后,標(biāo)簽才會將自己的ID信息等數(shù)據(jù)通過反向散射方式回發(fā)給讀寫器。讀寫器將收到的反向散射信號解調(diào)成基帶信號之后再送到處理器中進行解碼處理。
標(biāo)簽主要由射頻接口(天線、數(shù)據(jù)調(diào)制、解調(diào)、電源電路)、控制邏輯及EEPROM存儲器3個模塊構(gòu)成,調(diào)制解調(diào)模塊完成對發(fā)送接收信號的調(diào)制解調(diào),能量檢測電路通過天線線圈接收到電壓后給控制中心提供穩(wěn)定的電壓??刂七壿嬘蓻_突檢測、讀寫控制、存取控制、EEPROM接口控制和RF接口控制部分組成,主要負責(zé)處理與外部通信協(xié)議和與讀寫EEPROM。
采用高性能的ARM7的LPC2103進行解碼,采用12MHz外部晶振,該芯片可內(nèi)部倍頻,內(nèi)部時鐘工作在60 MHz的頻率上,完全滿足高速下的解碼需求。LPC2103有2個32位的捕獲比較器,具有多達7路捕獲通道。采用LPC2103的定時器TO和相應(yīng)的捕獲引腳,在輸入信號發(fā)生上跳變或者下跳變時捕獲定時器值,并產(chǎn)生中斷將該定時器值取出進行判斷,其系統(tǒng)框圖如圖3所示。
3 FMO解碼
根據(jù)FMO解碼的特點,目前常見的解碼方法是:根據(jù)起始處的上升沿或下降沿以及位窗中的采樣點來判斷出此位窗所表示的數(shù)據(jù)。設(shè)定一個位窗時間長度為T,1)位窗起始處為下降沿,在該位窗3/4T處采樣,采樣為1則位窗表示數(shù)據(jù)“0”,采樣為0則位窗表示數(shù)據(jù)“1”;2)位窗起始處為上升沿,在該位窗3/4T處采樣,采樣為1則位窗表示數(shù)據(jù)“1”,采樣為0則位窗表示數(shù)據(jù)“0”。
這種方法的缺點很明顯。因為UHF頻段頻率很高,當(dāng)在接收過程中會出現(xiàn)頻率偏移的情況時,會造成位寬時間T較大的變化,而程序仍以固定的時間間隔3/4T去解碼,所以每次都會發(fā)生一定的偏移,根據(jù)協(xié)議,UHF讀寫器將接收到標(biāo)簽傳送過來的1個128字節(jié)的數(shù)據(jù),這樣在解碼過程中,將出現(xiàn)累積偏移過多導(dǎo)致漏讀或多讀情況,從而產(chǎn)生誤判。
通過讀寫器命令設(shè)置,可以使標(biāo)簽返回數(shù)據(jù)采用160 Kb/s的速率,在FM0碼相鄰兩個邊沿之間的間隔只可能有3種情況:0.5T、T、1.5T。在12 MHz的外部時鐘下,“0”的高半位寬“H”和低半位寬“H”為3.125μs,捕獲出的定時器計數(shù)值為0x25左右,記為0.5T;收到1個“0”或者1個“1”的位寬為6.25 μs,捕獲出的定時器計數(shù)值為Ox4B左右,記為T;在前同步碼中,“V”的位寬為9.375μs,捕獲出的定時器計數(shù)值為0x70左右,記為1.5T。解碼流程圖如圖4所示。
根據(jù)FMO碼特點,當(dāng)捕獲到一個“H”或者“L”時,要判斷這個O.5T是“0”的前半位還是后半位。是前半位時,要等待下一個0.5T結(jié)合成1個“0”;是后半位時,要與之前剩余的半位結(jié)合成“0”。捕獲到1個T寬度的數(shù)據(jù)時,則記為“1”。
在進行對接收到的FMO碼解碼時,因為沒有同步信號,所以必須要先對數(shù)據(jù)進行同步,也就是要先解碼到連續(xù)的12個“0”與之后的1010 V1前同步碼數(shù)據(jù),才能對后面真正需要的數(shù)據(jù)進行解碼。在解前同步碼時,前12個“O”按照2個0.5T組成1個“0”的原則,要有連續(xù)的24個0.5T出現(xiàn)才會進行下面的解碼,不然就會返回重新開始統(tǒng)計12個“0”。在之后解碼1010V1時,要注意一個特殊的位“V”,當(dāng)捕獲到一個1.5T寬度的數(shù)據(jù)時,才記為“V”;在此期間,只要解碼出一位有錯誤,則返回重新開始統(tǒng)計12個“0”。只有前同步碼全部正確解出時,才能進行對需要的數(shù)據(jù)進行解碼,依據(jù)捕獲到的寬度是0.5T還是1T來判斷是“0”的半位還是一個完整的“1”。
在EPC Gen2使用中,根據(jù)讀寫器發(fā)送命令的不同,標(biāo)簽返回的FM0碼里或者存在CRC5,或者存在CRC16,或者沒有校驗,有CRC的碼在解碼完成后都要進行CRC校驗。當(dāng)檢測到結(jié)束位時,CRC校驗正確,則本次通信正常,可以進行下一步的通信。
在實際運用中,讀寫器接收回路上會出現(xiàn)發(fā)送回路泄露過來的很多雜波信號以及一些毛刺,會有連續(xù)多個“0”出現(xiàn),會形成連續(xù)的24個寬度為0.5T的間隔,可能會誤判成前同步碼開始,但后續(xù)的前同步碼解碼過程在出現(xiàn)1.5T寬的“V”時會出錯,在進行校驗或檢測停止位時也可能會出現(xiàn)錯誤,這時也要重新搜索前同步碼。
4 結(jié)束語
在UHF讀寫器設(shè)計中,關(guān)鍵問題就是對接收到的解調(diào)數(shù)據(jù)進行正確解碼,既要解決信號頻率的偏移,也要能在高速通信過程中,快速正確解碼,采用這種解碼方法可以在對FM0碼捕獲位寬的同時進行同步解碼,速度比較快,而且由于對載波頻率的變化不敏感,故讀卡成功率高。