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