物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊

基于FPGA的超高頻RFID讀寫器設(shè)計

作者:吳紹光、陳 吉、徐斌富
來源:電子科技
日期:2015-04-17 15:14:08
摘要:本文重點介紹EPC Class 1讀寫器系統(tǒng)設(shè)計、數(shù)字部分設(shè)計及FPGA在數(shù)字實現(xiàn)上的應(yīng)用。由于U 頻段RFID技術(shù)的應(yīng)用還處在早期的發(fā)展階段,符合EPCClass 1 協(xié)議 的讀寫器在國內(nèi)還沒有相關(guān)產(chǎn)品面世。本文對相關(guān)開發(fā)有一定的參考價值。

  射頻識別技術(shù)(RFID)是利用射頻方式進行遠距離通信以達到物品識別目的,可用來追蹤和管理幾 乎所有物理對象。在工業(yè)自動化、商業(yè)自動化、交通運輸控制管理、防偽等眾多領(lǐng)域,甚至軍事用途都具有廣泛的應(yīng)用前景,并且引起了廣泛的關(guān)注。

  1 引 言

  RFID系統(tǒng) 一般包括讀寫器和電子標簽(或稱應(yīng)答器)2個部分。RFID電子標簽(Tag)由芯片與天線(Antenna)組成,每個標簽具有惟一的電子編碼。標簽附在物體上以標識目標對象。RFID讀寫器(Reader)的主要任務(wù)是控制射頻模塊向標簽發(fā)射讀寫信號,并接收標簽的應(yīng)答。對標簽信息進行解碼,并將信息 傳輸?shù)街鳈C以供處理。根據(jù)應(yīng)用的不同,閱讀器可以是手持式或固定式。本文重點介紹的就是讀寫器的開發(fā)。

  EPC規(guī)范已經(jīng)頒布第一代規(guī) 范。規(guī)范把標簽細分為Class 0,Class 1,Class 2三種。其中Class 0和Class 1標簽都是一次寫入多次讀取標簽, Class 0標簽只能由廠商寫入信息,用戶無法修改,因而又稱為只讀標簽,主要用于供應(yīng)鏈管理)Class 1則提供了更多的靈活性,信息可由用戶寫入 一次。

  Class 0和Class 1標簽采用不同的空中接口標準進行通信,因此兩類標簽不能互操作。Class 2標簽具備多次寫入能力,并增加了部分 存儲 空間用于 存儲 用戶的附加數(shù)據(jù)。Class 2標簽允許加入 安全 與訪問控制、感知網(wǎng)絡(luò)和Ad Hoc網(wǎng)絡(luò)等功能支持。目前EPCglobal正在制定第 二代標簽標準,即UHF Class l Generation 2(C1G2)。C1G2具有隨時更新標簽內(nèi)容的能力,保證標簽始終保存最新信息。 EPC規(guī)范l_0版本包括EPC Tag數(shù)據(jù)規(guī)范、Class 0(900 MHz)標簽規(guī)范、C1ass 1(13.56 MHz)標簽接口規(guī)范、 Class l(860~930 MHz)標簽射頻與邏輯通訊接口規(guī)范、物理標識語言(PhysICalMarkup Language,PML)。

  本文重點介紹EPC Class 1讀寫器系統(tǒng)設(shè)計、數(shù)字部分設(shè)計及FPGA在數(shù)字實現(xiàn)上的應(yīng)用。由于U 頻段RFID技術(shù)的應(yīng)用還處在早期的發(fā)展階段,符合EPCClass 1 協(xié)議 的讀寫器在國內(nèi)還沒有相關(guān)產(chǎn)品面世。本文對相關(guān)開發(fā)有一定的參考價值。

  2 EPC Class lb系統(tǒng)設(shè)計

  一個完整的RFID系統(tǒng)包括:讀寫器、天線、標簽和PC機。讀寫器完成對標簽(Tag)的讀寫操作。通過RS 232或RS 485總線完成PC機的命令接 收和EPC卡號的上傳。圖l是讀寫器的系統(tǒng)組成框圖。讀寫器組成包括與PC機的串口通信部分、單片機和FPGA組成的數(shù)字部分、射頻部分。RF單元實現(xiàn)和 標簽的通信,數(shù)字部分完成對射頻部分的控制、回波命令解析 PC機接收卡號實現(xiàn)上位機的控制。下面對各模塊做簡單介紹。

  2.1 PC 端

  RFID系統(tǒng)一般要將標簽信息讀取到計算機上,然后等待處理 用戶通過PC機可以實現(xiàn)讀寫器控制,完成對標簽的讀寫操作。讀寫器與PC機通信是基于RS 232總線,糾錯算法是CRC—CCITT算法。

基于FPGA的超高頻RFID讀寫器設(shè)計

  -圖1-

  2.2 射頻模塊

  讀寫器對標簽的讀寫是通過發(fā)送射頻能量和對回波實現(xiàn)的。射頻模一方面將數(shù)字模塊送來的信息完成調(diào)制并發(fā)送。標簽應(yīng)答,射頻模塊接收回波信號將他解調(diào)成基帶信號,送到數(shù)字模塊。

  2.3 數(shù)字模塊

  數(shù)字模塊由單片機(cygnal C8O51F126)、存儲器(24Cz56),F(xiàn)PGA(xl SlOO)組成 單片機的功能有:

  (1)實現(xiàn)與PC機通信,接收PC機命令,完成解析下傳到FPGA

  (2)將FPGA送來的EPC卡號加算CRC—CCITT校驗上傳PC機。擇Xilinx公司ISE6.2,仿真軟件為Modelsim 5.7。設(shè)計實現(xiàn)采取原理圖和VHDL語言相結(jié)合的原則。頂層模塊采用原理圖設(shè)計,功能模塊采用VHDL語言實現(xiàn)。

  (3)解決多卡碰撞,實現(xiàn)多卡讀取。由于FPGA實現(xiàn)多卡讀取算法非常消耗FPGA資源,而且需要FPGA有大量的存儲器資源存放讀到的卡號,成本較高。而如果由PC機實現(xiàn)多卡讀取算法,則讀取速度很難提高。

  (4)實現(xiàn)對射頻模塊的鎖相環(huán)頻率控制以及功率控制 讀寫器發(fā)射功率常需要調(diào)整,而且讀寫器有時需要在不同射頻頻率,甚至跳頻下工作。單片機通過對射頻模塊的鎖相環(huán)控制實現(xiàn)對射頻頻率和功率的控制。

  單片機采用CYGNAL公司的C8051F126。內(nèi)部有128 k的FLASH存儲器和8 k的RAM,可以在5O MHz主頻下工作。

  FPGA 實現(xiàn)EPC Class l通信 協(xié)議 ,接收單片機控制命令,將命令按照 協(xié)議 標準編碼送到射頻模塊調(diào)制并發(fā)送,然后解調(diào)并接收射頻模塊送來的回波基帶信號, 將得到的標簽信息發(fā)送給單片機。FPGA實現(xiàn)的EPC Class l命令的基本命令包括scrollid,scrollallid,PINged, quiet,talk,kill;編程命令programid,verifyid,LOCkid,eraseid 這些命令包括命令的發(fā)送和回波的解析。 根據(jù)發(fā)送命令不同,

  對應(yīng)的發(fā)送命令格式也不相同,分為2類?;夭ㄐ盘柛袷揭哺鶕?jù)命令的不同分為2類。下面介紹FPGA實現(xiàn)的EPC Class 1協(xié)議。

  3 FPGA實現(xiàn)的信號調(diào)制解調(diào)

  3.1 FPGA 器件及開發(fā)平臺

  FPGA 選擇Xilinx公司的SPART II XC2S100規(guī)模為1O萬門,系統(tǒng)時鐘選擇40 MHz,滿足要求。開發(fā)軟件選擇Xilinx公司ISE6. 2,仿真軟件為Modelsim 5.7。設(shè)計實現(xiàn)采取原理圖和VHDL語言相結(jié)合的原則。頂層模塊采用原理圖設(shè)計,功能模塊采用VHDL語言實現(xiàn)。

  3.2 結(jié)構(gòu)框圖

  從系統(tǒng)的結(jié)構(gòu)圖可以看出FPGA實現(xiàn)的調(diào)制解調(diào)部分包括:單片機接口(單片機的命令接收模塊、向單片機發(fā)送數(shù)據(jù)模塊)、復(fù)位信號產(chǎn)生模塊、命令調(diào)制模塊、命令接收模塊。

基于FPGA的超高頻RFID讀寫器設(shè)計

  -圖2-

  單片機向FPGA發(fā)送數(shù)據(jù)采用對地址操作方式,單片機對FPGA讀取數(shù)據(jù)采用查詢方式。FPGA整個工作過程:FPGA接收單片機控制命令,接收單片機命令 模塊將所收到的命令賦值給相應(yīng)寄存器,同時復(fù)位信號產(chǎn)生模塊根據(jù)單片機發(fā)送的命令產(chǎn)生復(fù)位信號(單片機寫FPGA過程即為復(fù)位)。命令調(diào)制模塊根據(jù)單片機 送來的命令以及相應(yīng)控制字,輸出相應(yīng)的調(diào)制信號(bit— sent)輸出到射頻模塊。接收模塊始終在檢測回波數(shù)據(jù),當檢測到回波數(shù)據(jù)的幀頭有效時通知讀 命令數(shù)據(jù)接收模塊接收數(shù)據(jù)。同時將接收到的數(shù)據(jù)送CRC校驗?zāi)K校驗,數(shù)據(jù)接收完成,CRC校驗也即完成,CRC校驗?zāi)K校驗成功即產(chǎn)生CRCOK= l 表示讀卡號成功,單片機查詢到此位為高時通過MCU接口模塊讀卡號和CRC。在PINg命令時,Ping命令接收模塊判斷命令發(fā)送模塊此時發(fā)送的命 令類型。如果為Ping命令時,則接收數(shù)據(jù),將接收的各槽數(shù)據(jù)及狀態(tài)信息放在BIN DATA寄存器中。

  3.3 關(guān)鍵功能模塊

  (1)命令調(diào)制模塊

  命令調(diào)制模塊發(fā)送的命令必須符合EPC規(guī)范對信息編碼要求以及命令格式要求。信息編碼占空比為1/8時鐘表示“0”,占空比為3/8時鐘表示“l(fā)”。命令格 式要求如圖3所示,根據(jù)EPC規(guī)范,可以將命令格式分為3種,分別為ping命令格式、寫卡(program)命令格式、讀卡(scrolLED)命令格 式,具體命令格式參照文獻[1]。命令調(diào)制模塊實現(xiàn)3種命令格式的調(diào)制。命令調(diào)制模塊設(shè)計采用。

基于FPGA的超高頻RFID讀寫器設(shè)計

  -圖3-

  (2)Ping命令接收模塊

  回波編碼和發(fā)送編碼方式不同,Ping命令和scrollid命令回波編碼用“1010”表示 l ,用“l(fā)100”表示 0。接收數(shù)據(jù)模塊必須將回波調(diào)制 信號解調(diào)成~0, 1 信號。Ping命令是基本多卡操作命令。如圖3所示,Ping命令的標簽應(yīng)答是在8個槽(bin)中應(yīng)答,對應(yīng)著不同的8組標簽。 這樣一次Ping命令可以判斷8組標簽。提高了多卡效率.每一個槽(bin)信息用2個寄存器表示,BIN0(1:O)表示卡的狀態(tài)信息:有卡、

  無卡、多 卡。BIN(7:O)表示槽的數(shù)據(jù)。單片機根據(jù)槽狀態(tài)信息決定是否讀取槽數(shù)據(jù).

  (3)scollid命令數(shù)據(jù)接收模塊

  scrollid以及scrollallid,verifyid命令的回波格式相同,接收方式相同.回波格式如圖4所示

基于FPGA的超高頻RFID讀寫器設(shè)計

  -圖4-

  一幀完整回波包括幀頭(F7H),16位CRC,96位或64位EPC DATA。接收模塊采用檢測幀頭的方式,通過一個32位移位寄存器(1 b數(shù)據(jù)由4 個狀態(tài)信息表示)檢測幀頭,幀頭有效則讀數(shù)據(jù)模塊解調(diào)回波數(shù)據(jù),解調(diào)數(shù)據(jù)存儲在EPC DATA寄存器中。同時將檢測到的bits送到CRC校驗。

  (4)CRC校驗?zāi)K

  CRC模塊對數(shù)據(jù)接收模塊檢測到的數(shù)據(jù)按照CRC—CCITT算法校驗,校驗通過則產(chǎn)生CRC OK=”1”。單片機根據(jù)此狀態(tài)讀取EPC DATA。CRC—CCITT算法實現(xiàn)采用串行方式。程序非常簡單,而且節(jié)省FPGA資源。

  節(jié)選代碼如下:

  xOr_flag_en: process(elk)begin

  if elk== ‘0’ and elk event then

  if en ==’l’ then

  if crc_bur(15)== ‘1’ then

  crc bur< = (crc bur(14 downto O)&data_in)

  xor”O(jiān)OO1OOOOOO1OOOO1”:

  xor_flag<= ‘l’

  else erc_buf <=crc_buf(14 downto O)&data_in :

  xor_flag< = ‘0’;

  end if;

  else crc_buf< =”111ll111111llll1”;

  endif;

  endif;

  end prOcess

  4 結(jié)語

  FPGA實現(xiàn)了對EPC Classl 96位和64位卡的讀寫操作命令,讀寫成功率非常高,能實現(xiàn)8 m距離的正常讀,多卡讀取速度快。讀寫器和標簽的讀寫速率為上行70 kb/s,下行140 kb/s。此讀寫器也已經(jīng)在批量生產(chǎn),投放市場。

  在讀寫器設(shè)計過程中仍有幾方面問題需要進一步改善。一是PINg命令回波沒有CRC校驗,所以Ping命令的回波檢測成功率不夠高,影響多卡速度;另一方 面,當回波信號信噪比不高時,接收成功率下降速度很快。同時,在讀寫器設(shè)計過程中發(fā)現(xiàn)EPC標簽的一些問題。其中突出的是,調(diào)試發(fā)現(xiàn)96位標簽在應(yīng)答時存 在累積周期差,不能和讀寫器的時鐘同步。標簽鎖相環(huán)不夠準確,給讀寫器的設(shè)計帶來不小難度。