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