基于FPGA的UHF RFID讀寫(xiě)器設計

發(fā)布時(shí)間:2010-8-7 14:35    發(fā)布者:lavida
關(guān)鍵詞: FPGA , RFID , UHF , 讀寫(xiě)器
1 引 言  

射頻識別技術(shù)(RFID)是利用射頻方式進(jìn)行遠距離通信以達到物品識別目的,可用來(lái)追蹤和管理幾乎所有物理對象。在工業(yè)自動(dòng)化、商業(yè)自動(dòng)化、交通運輸控制管理、防偽等眾多領(lǐng)域,甚至軍事用途都具有廣泛的應用前景,并且引起了廣泛的關(guān)注。RFID系統一般包括讀寫(xiě)器和電子標簽(或稱(chēng)應答器)2個(gè)部分。RFID電子標簽(Tag)由芯片與天線(xiàn)(Antenna)組成,每個(gè)標簽具有惟一的電子編碼。標簽附在物體上以標識目標對象。RFID讀寫(xiě)器(Reader)的主要任務(wù)是控制射頻模塊向標簽發(fā)射讀寫(xiě)信號,并接收標簽的應答。對標簽信息進(jìn)行解碼,并將信息傳輸到主機以供處理。根據應用的不同,閱讀器可以是手持式或固定式。本文重點(diǎn)介紹的就是讀寫(xiě)器的開(kāi)發(fā)。  

EPC規范已經(jīng)頒布第一代規范。規范把標簽細分為Class 0,Class 1,Class 2三種。其中Class 0和Class 1標簽都是一次寫(xiě)入多次讀取標簽,Class 0標簽只能由廠(chǎng)商寫(xiě)入信息,用戶(hù)無(wú)法修改,因而又稱(chēng)為只讀標簽,主要用于供應鏈管理)Class 1則提供了更多的靈活性,信息可由用戶(hù)寫(xiě)入一次。Class 0和Class 1標簽采用不同的空中接口標準進(jìn)行通信,因此兩類(lèi)標簽不能互操作。Class 2標簽具備多次寫(xiě)入能力,并增加了部分存儲空間用于存儲用戶(hù)的附加數據。Class 2標簽允許加入安全與訪(fǎng)問(wèn)控制、感知網(wǎng)絡(luò )和Ad Hoc網(wǎng)絡(luò )等功能支持。目前EPCglobal正在制定第二代標簽標準,即UHF Class l Generation 2(C1G2)。C1G2具有隨時(shí)更新標簽內容的能力,保證標簽始終保存最新信息。EPC規范l_0版本包括EPC Tag數據規范、Class 0(900 MHz)標簽規范、C1ass 1(13.56 MHz)標簽接口規范、Class l(860~930 MHz)標簽射頻與邏輯通訊接口規范、物理標識語(yǔ)言(PhysicalMarkup Language,PML)。  

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

2 EPC Class lb系統設計  

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

2.1 PC 端  

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



2.2 射頻模塊  

讀寫(xiě)器對標簽的讀寫(xiě)是通過(guò)發(fā)送射頻能量和對回波實(shí)現的。射頻模一方面將數字模塊送來(lái)的信息完成調制并發(fā)送。標簽應答,射頻模塊接收回波信號將他解調成基帶信號,送到數字模塊。  

2.3 數字模塊  

數字模塊由單片機(cygnal C8O51F126)、存儲器(24Cz56),FPGA(xl SlOO)組成 單片機的功能有:  

(1)實(shí)現與PC機通信,接收PC機命令,完成解析下傳到FPGA  
(2)將FPGA送來(lái)的EPC卡號加算CRC—CCITT校驗上傳PC機。擇Xilinx公司ISE6.2,仿真軟件為Modelsim 5.7。設計實(shí)現采取原理圖和VHDL語(yǔ)言相結合的原則。頂層模塊采用原理圖設計,功能模塊采用VHDL語(yǔ)言實(shí)現。  
(3)解決多卡碰撞,實(shí)現多卡讀取。由于FPGA實(shí)現多卡讀取算法非常消耗FPGA資源,而且需要FPGA有大量的存儲器資源存放讀到的卡號,成本較高。而如果由PC機實(shí)現多卡讀取算法,則讀取速度很難提高。  
(4)實(shí)現對射頻模塊的鎖相環(huán)頻率控制以及功率控制 讀寫(xiě)器發(fā)射功率常需要調整,而且讀寫(xiě)器有時(shí)需要在不同射頻頻率,甚至跳頻下工作。單片機通過(guò)對射頻模塊的鎖相環(huán)控制實(shí)現對射頻頻率和功率的控制。  

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

FPGA實(shí)現EPC Class l通信協(xié)議,接收單片機控制命令,將命令按照協(xié)議標準編碼送到射頻模塊調制并發(fā)送,然后解調并接收射頻模塊送來(lái)的回波基帶信號,將得到的標簽信息發(fā)送給單片機。FPGA實(shí)現的EPC Class l命令的基本命令包括scrollid,scrollallid,pinged,quiet,talk,kill;編程命令programid,verifyid,lockid,eraseid 這些命令包括命令的發(fā)送和回波的解析。根據發(fā)送命令不同,對應的發(fā)送命令格式也不相同,分為2類(lèi);夭ㄐ盘柛袷揭哺鶕畹牟煌譃2類(lèi)。下面介紹FPGA實(shí)現的EPC Class 1協(xié)議。  

3 FPGA實(shí)現的信號調制解調  

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

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

3.2 結構框圖  

從系統的結構圖可以看出FPGA實(shí)現的調制解調部分包括:?jiǎn)纹瑱C接口(單片機的命令接收模塊、向單片機發(fā)送數據模塊)、復位信號產(chǎn)生模塊、命令調制模塊、命令接收模塊。  



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

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

(1)命令調制模塊  

命令調制模塊發(fā)送的命令必須符合EPC規范對信息編碼要求以及命令格式要求。信息編碼占空比為1/8時(shí)鐘表示"0",占空比為3/8時(shí)鐘表示"l"。命令格式要求如圖3所示,根據EPC規范,可以將命令格式分為3種,分別為ping命令格式、寫(xiě)卡(program)命令格式、讀卡(scrolled)命令格式,具體命令格式參照文獻。命令調制模塊實(shí)現3種命令格式的調制。  



(2)Ping命令接收模塊  

回波編碼和發(fā)送編碼方式不同,Ping命令和scrollid命令回波編碼用"1010"表示 l ,用"l100"表示 0。接收數據模塊必須將回波調制信號解調成~0, 1 信號。Ping命令是基本多卡操作命令。如圖3所示,Ping命令的標簽應答是在8個(gè)槽(bin)中應答,對應著(zhù)不同的8組標簽。這樣一次Ping命令可以判斷8組標簽。提高了多卡效率。每一個(gè)槽(bin)信息用2個(gè)寄存器表示,BIN0(1:O)表示卡的狀態(tài)信息:有卡、無(wú)卡、多卡。BIN(7:O)表示槽的數據。單片機根據槽狀態(tài)信息決定是否讀取槽數據。  

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

scrollid以及scrollallid,verifyid命令的回波格式相同,接收方式相同;夭ǜ袷饺鐖D4所示  



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

(4)CRC校驗模塊  

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

節選代碼如下:  
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  
xor"OOO1OOOOOO1OOOO1":  
xor_flag  
else erc_buf   
xor_flag  
end if;  
else crc_buf  
endif;  
endif;  
end prOcess  

4 結語(yǔ)  

FPGA實(shí)現了對EPC Classl 96位和64位卡的讀寫(xiě)操作命令,讀寫(xiě)成功率非常高,能實(shí)現8 m距離的正常讀,多卡讀取速度快。讀寫(xiě)器和標簽的讀寫(xiě)速率為上行70 kb/s,下行140 kb/s。此讀寫(xiě)器也已經(jīng)在批量生產(chǎn),投放市場(chǎng)。
本文地址:http://selenalain.com/thread-20091-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页