UHF RFID讀寫器編解碼模塊的FPGA實現
解碼模塊接收部分通過采樣信號接收待解碼數據,這樣便只需檢測采樣信號,節省了計數器的消耗。采樣到的數據首先進行幀頭檢測,判斷使用的幀頭類型及編碼形式,若幀頭檢測正確,則實施去幀頭處理,將有效數據通過控制狀態機流程來進行解碼。而其他控制信號,即來自解碼預處理模塊的數據開始傳輸指示data_start,數據傳輸結束指示data_end,數據傳輸錯誤指示data_error則直接控制狀態機狀態的轉換。
解碼完成之后,根據前面發送命令的類型,對解碼后的數據進行CRC5/16校驗,若校驗正確,則去掉校驗位,將有效數據輸出;若錯誤,則返回給狀態機,發出解碼錯誤指示。同時,根據狀態機所處的特定狀態,在每一個解碼數據期間會輸出持續一個周期的數據采樣信號sclk,以及在數據開始解碼時便與解碼數據同步輸出的信號data_out_flag,以便后續模塊進行數據的采樣與控制。
5 軟件仿真與硬件測試
以上各模塊均使用硬件描述語言實現。在Quartus II9.0中全部編譯通過,滿足時序要求,編譯報告顯示本設計共消耗了679個LE資源。調用Modelsim軟件仿真驗證。使用了Quartus II軟件的Signaltap邏輯分析儀,捕捉了讀寫器實際工作時FPGA的編解碼數據。
圖8是讀寫器先后發送不同命令并與標簽交互的部分流程。圖9是讀寫器發送的Query命令的PIE編碼,所發送的命令數據是1000_00110000 0000010101,其中前4位1000為Query命令的命令碼,后面18位則為命令數據。本文引用地址:http://cqxgywz.com/article/153736.htm

圖10是讀寫器接收到標簽返回的miller2編碼信息后的操作。為了便于觀察,將解碼后的數據也作為一路信號顯示,即decode_data。最后一路信號是串口要發送的數據。圖10中的enc_cmd_data_out信號是讀寫器接收到標簽返回來的信息后,發出的ACK命令,發送的命令數據為01_0001111010100111,其中前兩位01為ACK命令的命令碼,后面的16位數據按照協議要求為標簽返回的RN16。


圖11是在讀寫器工作時利用Signaltap邏輯分析儀捕獲到的解碼后的標簽數據及采樣信號。
結語
本文介紹了在EPCC1G2協議下,利用FPGA快速處理大量數據流的優勢,實現UHF RFID讀寫器中編解碼模塊的設計方案,解決了讀寫器讀取標簽速率難以提升的問題。經過軟件仿真與實際硬件測試,讀寫器工作良好,速度、性能均得到顯著提升。














評論