基于FPGA和 C8051F020 的915 MHz射頻讀卡器設計
摘 要: 參照ISO/IEC 18000-6 Type B 協(xié)議設計了一款工作頻率為915 MHz的射頻讀卡器,采用FPGA完成協(xié)議中規定的數字信號處理,C8051F020單片機作為主控器。利用Verilog HDL硬件描述語(yǔ)言,搭建FPGA內部各個(gè)小模塊及系統的驗證平臺,選用Altera公司Cyclone系列的EP1C6Q240C8芯片為目標器件,使用Quartus II進(jìn)行綜合,并通過(guò)時(shí)序和功能驗證。實(shí)驗結果表明,該讀卡器符合ISO/IEC 18000-6 Type B 協(xié)議要求,具有結構靈活、體積小、升級容易等優(yōu)點(diǎn)。
關(guān)鍵詞: 射頻識別;讀卡器;FPGA;C8051F020
射頻識別(RFID)技術(shù)是一種非接觸式的自動(dòng)識別技術(shù),通過(guò)射頻信號自動(dòng)識別目標對象并獲取相關(guān)信息。通常RFID系統主要由應用軟件、射頻卡以及讀卡器三部分構成[1]。相對于低頻段的RFID系統,工作在860 MHz~960 MHz的超高頻段(UHF)RFID系統有著(zhù)讀取距離遠、閱讀速度快等優(yōu)點(diǎn),是目前國際上RFID技術(shù)發(fā)展的熱點(diǎn)[2]。讀卡器的設計是RFID系統設計中的關(guān)鍵部分,設計方案有很多種。FPGA[3]具有開(kāi)發(fā)簡(jiǎn)單、靜態(tài)可重復編程和動(dòng)態(tài)在線(xiàn)編程的特點(diǎn),已經(jīng)成為當今應用最廣泛的可編程專(zhuān)用集成電路。目前生產(chǎn)RFID產(chǎn)品的很多公司都使用自己的標準,可供射頻卡使用的幾種標準有ISO/IEC 11784、ISO/IEC 14443、ISO/IEC 15693和ISO/IEC 18000等。其中應用最多的是ISO/IEC 14443、ISO/IEC 15693和ISO/IEC 18000這三個(gè)標準[4]。本文基于ISO/IEC 18000-6 Type B協(xié)議設計了一款工作頻率為915 MHz的讀卡器。
1 讀卡器的硬件設計
讀卡器的硬件可以分為三大模塊:FPGA數字信號處理模塊、MCU及人機接口模塊和射頻收發(fā)模塊,其結構框圖如圖1所示。FPGA數字信號處理模塊用來(lái)實(shí)現ISO/IEC 18000-6 Type B 協(xié)議中規定的基帶數據編解碼,MCU及人機接口模塊用來(lái)實(shí)現指令的跳轉控制和返回數據的顯示等一些操作接口,射頻收發(fā)模塊用來(lái)處理前端的超高頻信號。
1.1 FPGA數字信號處理模塊
FPGA數字信號處理模塊包含時(shí)鐘分頻模塊、FIFO、曼徹斯特編碼器、CRC生成校驗、FM0解碼器、串并變換電路及對應的幀發(fā)送接收控制器,其結構框圖如圖2所示。
該模塊的內部工作流程如下:
(1)發(fā)送部分
①數據通信接口8 bit并行接收來(lái)自MCU的命令數 據,數據在FIFO中緩沖。
②數據做并行到串行的轉換。
③在發(fā)送控制器的控制下,串行數據通過(guò)CRC模塊,生成16 bit的CRC校驗值,并附加在原數據的后面。
④根據ISO/IEC 18000-6 Type B協(xié)議規定,把上述的數據進(jìn)行曼徹斯特編碼。
⑤把已經(jīng)過(guò)曼徹斯特編碼的數據引向一個(gè)已預置幀頭的移位寄存器,數據一到便啟動(dòng)移位寄存器,然后把輸出數據傳送給射頻收發(fā)模塊。
(2)接收部分
①從射頻收發(fā)模塊接收一幀基帶信號,用移位寄存器來(lái)檢測幀頭。若檢測到幀頭,則發(fā)一個(gè)收到幀頭的信號給接收控制器。
②若接收控制器接收到幀頭的信號,則馬上啟動(dòng)FM0解碼。
③解碼后的數據傳送給串/并行的轉換電路,轉換后的數據暫存在FIFO。
④同時(shí)解碼后的數據也送給CRC模塊進(jìn)行校驗,若校驗結果錯誤,則清除存于FIFO中的數據,通知MCU其接收的數據錯誤;若校驗結果正確,則把FIFO中的數據傳送給MCU。
1.2 MCU及人機接口模塊
MCU及人機接口模塊以C8051F020單片機[5]為核心,由FPGA接口、LCD、PS/2鍵盤(pán)、UART接口以及JTAG接口等外圍電路組成,其結構框圖如圖3所示。
該模塊實(shí)現的功能有:(1)C8051F020負責整個(gè)讀卡器內各部分的協(xié)調工作(包括與計算機的數據通信);(2)在啟動(dòng)時(shí)向FPGA傳送配置數據,初始化FPGA;(3)在讀卡過(guò)程中向FPGA傳送讀卡命令,然后通過(guò)INT1中斷啟動(dòng)接收FPGA信號;(4)處理接收回來(lái)的射頻卡信息(卡號、密碼等);(5)實(shí)現二進(jìn)制樹(shù)形防碰撞功能;(6)驅動(dòng)LCD,顯示系統的提示信息;(7)擴展一個(gè)PS/2鍵盤(pán),可以輸入數據及命令;(8)控制TR1000芯片,設置OOK發(fā)射方式或ASK接收方式;(9)控制發(fā)射功率大??;(10)擴展EEPROM,存儲讀出的射頻卡的信息。
1.3 射頻收發(fā)模塊
超高頻段射頻收發(fā)模塊的開(kāi)發(fā)一般可以采用兩種方案:一是采用分立元件搭建射頻電路;二是采用無(wú)線(xiàn)射頻收發(fā)模塊以實(shí)現基帶信號的調制解調[6]。由于第一種方法的電路調試比較麻煩,而且會(huì )占用很長(cháng)的開(kāi)發(fā)時(shí)間,所以本設計采取第二種方案。
ISO/IEC 18000-6 Type B 協(xié)議規定讀卡器到射頻卡端的射頻調制方式為調制深度為99%的ASK調制,也就是可以近似看作為OOK調制;而射頻卡到讀卡器端的射頻調制方式為反向散射調制,其調制方式與ASK調制類(lèi)似,所以在解調端可以按照ASK方式解調。射頻收發(fā)模塊的核心芯片采用RFM公司的TR1000芯片。TR1000是一款單片OOK/ASK通用無(wú)線(xiàn)射頻收發(fā)器芯片,適合高穩定、小尺寸、低功率、低價(jià)格的短距離無(wú)線(xiàn)數據通信和無(wú)線(xiàn)控制應用。
2 讀卡器的軟件系統設計
軟件設計采用模塊化和結構化的編程思想,在初始化的時(shí)候由單片機配置FPGA??紤]到C語(yǔ)言可讀性強,移植性好以及MCU的實(shí)際情況,本設計采用C語(yǔ)言對C8051F020進(jìn)行編程。讀卡器的軟件系統大致可以分為:讀寫(xiě)卡操作程序、防沖突程序和串行通信程序。
評論