UHF RFID讀寫器編解碼模塊的FPGA實現(xiàn)
解碼模塊接收部分通過采樣信號接收待解碼數(shù)據(jù),這樣便只需檢測采樣信號,節(jié)省了計數(shù)器的消耗。采樣到的數(shù)據(jù)首先進行幀頭檢測,判斷使用的幀頭類型及編碼形式,若幀頭檢測正確,則實施去幀頭處理,將有效數(shù)據(jù)通過控制狀態(tài)機流程來進行解碼。而其他控制信號,即來自解碼預處理模塊的數(shù)據(jù)開始傳輸指示data_start,數(shù)據(jù)傳輸結(jié)束指示data_end,數(shù)據(jù)傳輸錯誤指示data_error則直接控制狀態(tài)機狀態(tài)的轉(zhuǎn)換。
解碼完成之后,根據(jù)前面發(fā)送命令的類型,對解碼后的數(shù)據(jù)進行CRC5/16校驗,若校驗正確,則去掉校驗位,將有效數(shù)據(jù)輸出;若錯誤,則返回給狀態(tài)機,發(fā)出解碼錯誤指示。同時,根據(jù)狀態(tài)機所處的特定狀態(tài),在每一個解碼數(shù)據(jù)期間會輸出持續(xù)一個周期的數(shù)據(jù)采樣信號sclk,以及在數(shù)據(jù)開始解碼時便與解碼數(shù)據(jù)同步輸出的信號data_out_flag,以便后續(xù)模塊進行數(shù)據(jù)的采樣與控制。
5 軟件仿真與硬件測試
以上各模塊均使用硬件描述語言實現(xiàn)。在Quartus II9.0中全部編譯通過,滿足時序要求,編譯報告顯示本設(shè)計共消耗了679個LE資源。調(diào)用Modelsim軟件仿真驗證。使用了Quartus II軟件的Signaltap邏輯分析儀,捕捉了讀寫器實際工作時FPGA的編解碼數(shù)據(jù)。
圖8是讀寫器先后發(fā)送不同命令并與標簽交互的部分流程。圖9是讀寫器發(fā)送的Query命令的PIE編碼,所發(fā)送的命令數(shù)據(jù)是1000_00110000 0000010101,其中前4位1000為Query命令的命令碼,后面18位則為命令數(shù)據(jù)。本文引用地址:http://www.biyoush.com/article/153736.htm
圖10是讀寫器接收到標簽返回的miller2編碼信息后的操作。為了便于觀察,將解碼后的數(shù)據(jù)也作為一路信號顯示,即decode_data。最后一路信號是串口要發(fā)送的數(shù)據(jù)。圖10中的enc_cmd_data_out信號是讀寫器接收到標簽返回來的信息后,發(fā)出的ACK命令,發(fā)送的命令數(shù)據(jù)為01_0001111010100111,其中前兩位01為ACK命令的命令碼,后面的16位數(shù)據(jù)按照協(xié)議要求為標簽返回的RN16。
圖11是在讀寫器工作時利用Signaltap邏輯分析儀捕獲到的解碼后的標簽數(shù)據(jù)及采樣信號。
結(jié)語
本文介紹了在EPCC1G2協(xié)議下,利用FPGA快速處理大量數(shù)據(jù)流的優(yōu)勢,實現(xiàn)UHF RFID讀寫器中編解碼模塊的設(shè)計方案,解決了讀寫器讀取標簽速率難以提升的問題。經(jīng)過軟件仿真與實際硬件測試,讀寫器工作良好,速度、性能均得到顯著提升。
評論