趙偉+熊衛(wèi)華+季瑞松
摘 要:主要介紹了一種符合國(guó)家標(biāo)準(zhǔn)的超高頻RFID閱讀器的數(shù)字基帶系統(tǒng)的設(shè)計(jì)與分析,該基帶部分的編解碼主要依靠FPGA來(lái)實(shí)現(xiàn)。文中首先對(duì)800/900 MHz頻段的射頻識(shí)別系統(tǒng)空中接口協(xié)議的國(guó)家標(biāo)準(zhǔn)GB/T 29768-2013作了簡(jiǎn)要介紹,對(duì)系統(tǒng)的整個(gè)編解碼系統(tǒng)的實(shí)現(xiàn)以及整個(gè)系統(tǒng)的架構(gòu)和各個(gè)模塊作了詳細(xì)說(shuō)明,最后給出了該讀寫器工作時(shí)抓取的數(shù)據(jù)波形。
關(guān)鍵詞:讀寫器;FPGA;國(guó)家標(biāo)準(zhǔn);TPP;FM0
中圖分類號(hào):TN929.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)10-00-03
0 引 言
射頻識(shí)別技術(shù)RFID(Radio Frequency Identification)是一種依靠無(wú)線射頻的電磁波來(lái)傳播信息并且可以自動(dòng)識(shí)別的非接觸式通信技術(shù)。因?yàn)槠渚哂蟹墙佑|性、讀取靈敏度高等優(yōu)勢(shì),因此廣泛運(yùn)用于物聯(lián)網(wǎng)技術(shù)領(lǐng)域以及物流、生產(chǎn)、交通等需要實(shí)時(shí)通信的領(lǐng)域[1]。
本文中主要介紹了一種使用FPGA來(lái)實(shí)現(xiàn)讀寫器基帶系統(tǒng)的編解碼部分功能的設(shè)計(jì)方案,基于新進(jìn)頒布的UHF國(guó)家標(biāo)準(zhǔn)GB/T29768-2013協(xié)議,由FPGA來(lái)進(jìn)行前向鏈路的TPP編碼和后向鏈路的FM0/miller解碼。這種方式可對(duì)標(biāo)簽傳送的數(shù)據(jù)實(shí)現(xiàn)較快地解碼。文中的FPGA選用的是ALTERA公司的EP4CE30F484芯片。本文著重描述了設(shè)計(jì)中軟件部分的核心內(nèi)容。
1 RFID系統(tǒng)簡(jiǎn)介
通常來(lái)說(shuō),常見(jiàn)的RFID系統(tǒng)主要由高頻或超高頻讀寫器、有源或無(wú)源標(biāo)簽、天線以及與通信末端連接的上位機(jī)等組成。讀寫器與標(biāo)簽之間的通信通過(guò)天線進(jìn)行傳遞。RFID的區(qū)分可根據(jù)工作的頻段劃分為中頻、高頻、超高頻,本文所討論的RFID系統(tǒng)工作頻率為920-925 MHz的超高頻RFID。在一個(gè)完整的RFID系統(tǒng)中,讀寫器是一個(gè)具有多種功能的不可或缺的部分,因?yàn)槭紫茸x寫器必須能夠同時(shí)接收和發(fā)送數(shù)據(jù)且具有對(duì)其處理的能力,所以,其在與電子標(biāo)簽通信的同時(shí)也要向末端傳輸數(shù)據(jù)并執(zhí)行相關(guān)的操作指令。一般的讀寫器系統(tǒng)主要?jiǎng)澐譃閮蓚€(gè)部分,即對(duì)數(shù)字信號(hào)進(jìn)行處理的基帶部分以及負(fù)責(zé)射頻前端的射頻部分,本文著重介紹的是數(shù)字通信的基帶部分[2]。
2 UHF RFID 相關(guān)協(xié)議的介紹
由于超高頻RFID技術(shù)是一種近年才興起的無(wú)線通信技術(shù),該技術(shù)在國(guó)際上尚無(wú)一種統(tǒng)一的標(biāo)準(zhǔn)協(xié)議,目前比較流行的協(xié)議主要有ISO18000-6B/C協(xié)議、EPC C1G2協(xié)議等,其基帶系統(tǒng)所使用的編解碼技術(shù)差別不大,較為成熟。我國(guó)為在這一新興的前沿技術(shù)上占據(jù)主動(dòng)權(quán),近年來(lái)國(guó)家大力發(fā)展基于RFID技術(shù)的物聯(lián)網(wǎng)行業(yè),同時(shí)頒布了UHF RFID(800/900 MHz)的國(guó)家標(biāo)準(zhǔn)協(xié)議GB/T 29768-2013。該標(biāo)準(zhǔn)具有識(shí)別速度快、可讀標(biāo)簽數(shù)量多、群讀能力強(qiáng)、可存儲(chǔ)空間大、包含多種加密方式的保護(hù)方式安全性強(qiáng)等眾多優(yōu)點(diǎn)。下文將著重介紹該國(guó)標(biāo)的編解碼方式。
2.1 TPP編碼介紹
GB/T 29768-2013協(xié)議規(guī)定讀寫器向標(biāo)簽發(fā)送數(shù)據(jù)的鏈路(前向鏈路)的數(shù)據(jù)編碼方式采用TPP編碼。讀寫器給標(biāo)簽發(fā)送數(shù)據(jù)時(shí),必須以前導(dǎo)碼來(lái)開(kāi)始所有的數(shù)據(jù)通信。前向鏈路中必須使用如圖1所示的由分隔符、校準(zhǔn)符一、校準(zhǔn)符二組成的前導(dǎo)碼通信。其中允許的校準(zhǔn)符一和校準(zhǔn)符二的長(zhǎng)度誤差為±1%,而分隔符的允許誤差為±5%。
圖1 前向鏈路的前導(dǎo)碼
在接收到前導(dǎo)碼后,當(dāng)兩個(gè)間隔時(shí)間的連續(xù)上升沿脈沖被標(biāo)簽測(cè)定,標(biāo)簽的解碼應(yīng)按照以下方式進(jìn)行:
(1)當(dāng)檢測(cè)到的脈沖的時(shí)間間隔小于時(shí)間Pivot1,則此時(shí)被解碼的符號(hào)應(yīng)為00;
(2)當(dāng)檢測(cè)到的脈沖的時(shí)間間隔小于時(shí)間Pivot2但是又不小于時(shí)間Pivot1,則此時(shí)被解碼的符號(hào)應(yīng)為01;
(3)當(dāng)檢測(cè)到的脈沖的時(shí)間間隔不小于時(shí)間Pivot2但是又小于時(shí)間Pivot3,則此時(shí)被解碼的符號(hào)應(yīng)為11;
(4)當(dāng)檢測(cè)到的脈沖的時(shí)間間隔不小于時(shí)間Pivot3時(shí),則此時(shí)被解碼的符號(hào)應(yīng)為10。
圖2所示的編碼符號(hào)即為TPP編碼,2Tc即為符號(hào)00的持續(xù)時(shí)間,3Tc即為符號(hào)01的持續(xù)時(shí)間,同理,4Tc為符號(hào)11的持續(xù)時(shí)間,持續(xù)時(shí)間5Tc為符號(hào)10的持續(xù)時(shí)間,±1%的長(zhǎng)度允差為這四種符號(hào)所允許。一個(gè)Tc的時(shí)間長(zhǎng)度可以取為6.25?s或12.5 ?s,該時(shí)間長(zhǎng)度允許誤差為±1%,固定的Tc應(yīng)該被使用在讀寫器的一個(gè)盤點(diǎn)周期內(nèi),本設(shè)計(jì)中Tc選取為6.25 ?s[3]。
圖2 TPP編碼符號(hào)
2.2 FM0/miller編碼介紹
GB/T 29768-2013標(biāo)準(zhǔn)規(guī)定讀寫器對(duì)標(biāo)簽發(fā)揮的數(shù)據(jù)譯碼采用FM0編碼或者M(jìn)iller編碼兩種形式,兩種編碼的本質(zhì)是沒(méi)有區(qū)別的,雖然Miller碼的抗干擾能力較強(qiáng),但是它的編碼速度比FM0編碼要慢許多。本次設(shè)計(jì)采用了FM0編碼的方式,F(xiàn)M0(Bi-Phase Space)全稱是雙相間隔碼編碼,采用一個(gè)由高電平到低電平或者由低電平到高電平的電平轉(zhuǎn)換組合來(lái)表示數(shù)據(jù)0,數(shù)據(jù)1表示為一個(gè)單獨(dú)的高電平或者低電平。數(shù)據(jù)0和1編碼所占的時(shí)間周期是一樣的。具體編碼規(guī)則是在半比特周期中任意邊沿且在每一比特周期開(kāi)始時(shí)電平都要反向,圖3給出了FM0的基本符號(hào)圖形[4]。
圖3 FM0編碼符號(hào)
3 系統(tǒng)總體設(shè)計(jì)
本文中讀寫器的設(shè)計(jì)采用MCU+FPGA協(xié)同工作的方式。其中,F(xiàn)PGA主要用于數(shù)字基帶部分對(duì)數(shù)字信號(hào)進(jìn)行相應(yīng)的解編碼處理,MCU采用的是基于ARM Cortex-M3內(nèi)核的STM32F207芯片,MCU部分主要負(fù)責(zé)整個(gè)系統(tǒng)的邏輯控制功能。FPGA主要包括協(xié)議控制及命令產(chǎn)生模塊、TPP編碼模塊、FM0解碼模塊以及同MCU進(jìn)行數(shù)據(jù)通信的SPI模塊部分。
整個(gè)基帶系統(tǒng)的工作過(guò)程為:FPGA對(duì)讀寫器需要發(fā)送的Query命令數(shù)據(jù)以及相應(yīng)的CRC校驗(yàn)位進(jìn)行TPP編碼,完成編碼后將TPP碼送至前端射頻部分。射頻部分對(duì)該數(shù)字編碼通過(guò)混頻器進(jìn)行載波調(diào)制(ASK),調(diào)制后的信號(hào)經(jīng)混頻器和耦合器再經(jīng)天線向射頻場(chǎng)內(nèi)進(jìn)行發(fā)射。
讀寫器的信息被射頻場(chǎng)內(nèi)的電子標(biāo)簽接收到后,標(biāo)簽根據(jù)讀寫器發(fā)送來(lái)的命令參數(shù),選擇對(duì)應(yīng)的編碼方式,首先對(duì)讀寫器的信息進(jìn)行解碼,之后對(duì)要回復(fù)的數(shù)據(jù)進(jìn)行編碼,經(jīng)調(diào)制之后在空間射頻場(chǎng)內(nèi)傳播。
當(dāng)場(chǎng)內(nèi)標(biāo)簽反射回的信息經(jīng)過(guò)天線被讀寫器接收后,該未經(jīng)解調(diào)的信號(hào)被轉(zhuǎn)至讀寫器的接收模塊部分。該標(biāo)簽返回的信息首先經(jīng)過(guò)讀寫器接收模塊對(duì)其進(jìn)行解調(diào),信號(hào)經(jīng)過(guò)解調(diào)后被后級(jí)的濾波器以及ADC轉(zhuǎn)換器轉(zhuǎn)化為0和1的數(shù)字信號(hào)流,然后接收到該數(shù)字流FPGA中相應(yīng)的解碼模塊會(huì)根據(jù)MCU發(fā)出的控制信號(hào)對(duì)其進(jìn)行相應(yīng)的FM0解碼或miller解碼。經(jīng)過(guò)解碼模塊解碼后的信號(hào)將會(huì)被FPGA內(nèi)部的控制模塊和命令模塊接收處理判斷后產(chǎn)生下一輪的命令數(shù)據(jù),該命令數(shù)據(jù)用于決定讀寫器是否與標(biāo)簽進(jìn)行重新交互信息或者讀取新的標(biāo)簽[5]。
4 基帶系統(tǒng)的FPGA實(shí)現(xiàn)
系統(tǒng)中的FPGA主要功能為實(shí)現(xiàn)基帶的編碼與解碼功能,F(xiàn)PGA內(nèi)部分為TPP編碼模塊與FM0/miller碼解碼模塊。
4.1 TPP編碼模塊設(shè)計(jì)
在GB/T 29768-2013標(biāo)準(zhǔn)中,前向鏈路(發(fā)射鏈路)的數(shù)據(jù)編碼使用TPP編碼進(jìn)行編碼。當(dāng)PC端通過(guò)MCU發(fā)送命令指令和數(shù)據(jù)后,MCU將會(huì)給FPGA發(fā)送控制指令用以啟動(dòng)編碼。TPP編碼模塊接收到該指令后將會(huì)返回應(yīng)答信號(hào),MCU收到返回的應(yīng)答信號(hào)后將需要編碼的數(shù)據(jù)送入TPP模塊。當(dāng)FPGA完成數(shù)據(jù)編碼后,編碼模塊需對(duì)CRC值進(jìn)行編碼。TPP編碼輸出的每一幀數(shù)據(jù)都由一個(gè)前導(dǎo)碼、8位數(shù)據(jù)位組成,前導(dǎo)碼封裝成幀頭[6]。該TPP編碼模塊的具體實(shí)現(xiàn)方式為:當(dāng)檢測(cè)到NRZ碼輸入為00時(shí),TPP碼輸出1個(gè)Tc時(shí)間長(zhǎng)度的高電平和1個(gè)Tc時(shí)間長(zhǎng)度的低電平,相當(dāng)于NRZ碼的10;當(dāng)輸入的NRZ碼為01時(shí),TPP碼輸出2個(gè)Tc時(shí)間長(zhǎng)度的高電平和1個(gè)Tc時(shí)間長(zhǎng)度的低電平,此時(shí)相當(dāng)于NRZ碼的110。依次得出符號(hào)11的TPP碼相當(dāng)于NRZ碼的1110,符號(hào)10相當(dāng)于TPP碼的11110。
TPP編碼模塊的處理流程如圖4所示[7]。
4.2 FM0譯碼模塊設(shè)計(jì)
根據(jù)GB/T 29768-2013標(biāo)準(zhǔn),標(biāo)簽向讀寫器返回的信息鏈路(反向鏈路)的編碼方式采用FM0編碼或miller編碼。本設(shè)計(jì)采用FM0編碼模式。該編碼模塊的具體實(shí)現(xiàn)方式如下:當(dāng)模塊接收到開(kāi)始解碼命令后,編碼模塊對(duì)模塊內(nèi)進(jìn)行初始化操作。后對(duì)數(shù)字化后的標(biāo)簽返回的信號(hào)進(jìn)行檢波,檢測(cè)前導(dǎo)序列以及是否存在幀起始信號(hào)(V字符),當(dāng)前導(dǎo)序列碼正確及無(wú)幀結(jié)束信號(hào)后[8],該解碼模塊對(duì)數(shù)據(jù)段進(jìn)行FM0解碼,對(duì)每個(gè)碼元進(jìn)行解碼主要靠該碼元內(nèi)高低電平的時(shí)間長(zhǎng)度來(lái)判斷0或1信號(hào)。該模塊將解碼后的數(shù)據(jù)實(shí)時(shí)串并轉(zhuǎn)換并存入緩存區(qū)。
圖5所示為FM0解碼模塊的軟件流程圖[9]。
圖4 TPP編碼模塊處理流程 圖5 FM0解碼模塊軟件流程圖
4.3 CRC校驗(yàn)?zāi)K
CRC校驗(yàn)?zāi)K主要用來(lái)在基帶系統(tǒng)譯碼時(shí)對(duì)接收的信號(hào)進(jìn)行完整性校驗(yàn),使得MCU對(duì)FPGA的各個(gè)模塊進(jìn)行操作控制,根據(jù)GB/T 29768-2013標(biāo)準(zhǔn)規(guī)定,x16+x12+x5+1為本設(shè)計(jì)使用的CRC-16校驗(yàn)碼的生成多項(xiàng)式,二進(jìn)制數(shù)FFFFh被預(yù)加載進(jìn)16位寄存器中,此CRC計(jì)算是按高位優(yōu)先原則由高位到低位進(jìn)行的。CRC-5的生成多項(xiàng)式為X5+X3+1,5位寄存器預(yù)加載01001b,按高位優(yōu)先原則進(jìn)行CRC計(jì)算[10]。
4.4 時(shí)鐘分頻模塊
本設(shè)計(jì)中FPGA的工作時(shí)鐘頻率為50 MHz,F(xiàn)PGA內(nèi)部各模塊所需的數(shù)據(jù)速率與FPGA工作頻率不同,所以該FPGA內(nèi)部需時(shí)鐘分頻模塊來(lái)產(chǎn)生各個(gè)模塊所需時(shí)鐘頻率。在本設(shè)計(jì)的TPP編碼中,1個(gè)Tc的時(shí)間長(zhǎng)度為6.25 ?s,所以TPP模塊所需的時(shí)鐘頻率為80 kHz,該時(shí)鐘頻率即由分頻模塊分頻所得。文中解碼模塊部分FM0所需始頻率為160 kHz。所以時(shí)鐘分頻模塊需要產(chǎn)生160 kHz和80 kHz兩種工作頻率[11]。
5 軟件仿真
以上各模塊均使用Verilog描述語(yǔ)言來(lái)實(shí)現(xiàn)。圖6所示為使用QuartusⅡ軟件在讀寫器讀寫標(biāo)簽時(shí)所抓取的實(shí)時(shí)波形,從圖6中可得出標(biāo)簽在收到讀寫器發(fā)送的命令后返回的信號(hào)解碼后為110100010100,即為一個(gè)RN16信號(hào)。
圖6 命令發(fā)送及標(biāo)簽信息的返回波形
6 結(jié) 語(yǔ)
本文介紹了在國(guó)家標(biāo)準(zhǔn)空口協(xié)議GB/T 29768-2013的框架下,充分利用FPGA的優(yōu)勢(shì)即可以快速處理大量數(shù)據(jù)流的特點(diǎn),解決了讀寫器讀取標(biāo)簽速率難以提升這個(gè)一直無(wú)法有效解決的難題,從而實(shí)現(xiàn)了UHF RFID讀寫器中編解碼模塊的設(shè)計(jì)。設(shè)計(jì)經(jīng)過(guò)了軟件仿真與實(shí)際硬件測(cè)試,軟件與硬件的測(cè)試結(jié)果均顯示該設(shè)計(jì)的讀寫器工作良好,且基帶部分編解碼的速度、讀寫器的性能均得到顯著提升。
參考文獻(xiàn)
[1]董敏.超高頻RFID讀寫器數(shù)字基帶技術(shù)研究[D].成都:成都理工大學(xué),2012.
[2]陳佳雷.基于FPGA的UHF RFID讀寫器數(shù)字基帶部分的研究與設(shè)計(jì)[D].南京:南京郵電大學(xué),2012.
[3] GB/T 29768—2013信息技術(shù)射頻識(shí)別800/900 MHz空中接口協(xié)議[S].中國(guó)國(guó)家標(biāo)準(zhǔn)管理委員會(huì),2015-05-01.
[4]馮守虎.UHF RFID閱讀器的數(shù)字基帶技術(shù)研究[D].南京:南京郵電大學(xué),2011.
[5]于志宏,張紅雨.UHF RFID讀寫器編解碼模塊的FPGA實(shí)現(xiàn)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012,12(10):12-15.
[6]陳楊.基于FPGA的UHF讀寫器設(shè)計(jì)[D].成都:電子科技大學(xué),2012.
[7]陳小軍.基于FPGA的超高頻RFID網(wǎng)絡(luò)讀寫器設(shè)計(jì)[D].成都:電子科技大學(xué),2013.
[8]于志宏.基于EPC C1G2協(xié)議的UHF RFID基帶系統(tǒng)及驗(yàn)證平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.
[9]林宇.基于AS3992的UHF RFID讀寫模塊的研究與開(kāi)發(fā)[D].上海:華東理工大學(xué),2012.
[10]許靜.UHF RFID讀寫器數(shù)字基帶系統(tǒng)的設(shè)計(jì)及其防沖突算法研究[D].長(zhǎng)沙:湖南大學(xué),2011.
[11]陽(yáng)璞瓊.超高頻RFID系統(tǒng)編解碼與校驗(yàn)問(wèn)題的研究[D].長(zhǎng)沙:湖南大學(xué),2009.