基于FPGA的RFID讀寫器設(shè)計
2 系統(tǒng)軟件設(shè)計
2.1 主程序
讀寫器上電復(fù)位后,對各功能模塊進行初始化,然后發(fā)出詢卡/應(yīng)答指令尋找有效范圍內(nèi)的電子標(biāo)簽。電子標(biāo)簽在讀寫器的閱讀范圍外為無電狀態(tài),不能進行任何操作。當(dāng)進入讀寫器的載波有效范圍內(nèi)時,電子標(biāo)簽上電復(fù)位,進入等待接收詢卡/應(yīng)答指令的狀態(tài)。收到詢卡
指令后,電子標(biāo)簽會發(fā)出自己獨有的ID碼,讀寫器根據(jù)收到的IDR碼發(fā)出選卡指令,選擇該標(biāo)簽進行下一步的通信。
在應(yīng)用中可能會遇到多個電子標(biāo)簽同時在讀寫器的有效工作范圍內(nèi)的情況,這些標(biāo)簽就會在收到詢卡指令后,同時發(fā)出自己的ID碼時發(fā)生互相沖突,因此就要求系統(tǒng)能夠具有防沖突的機制,才能從多個標(biāo)簽中選擇出其中一個。主程序流程見圖4。
2.2 防碰撞算法
A型射頻卡采用了ISO/IECl4443系列協(xié)議,配合讀寫器共同實現(xiàn)防碰撞的快速交互通信。為了從多張電子標(biāo)簽中快速識別出一張來單獨進行通信,A型卡采用了位碰撞監(jiān)測協(xié)議實現(xiàn)防碰撞過程,即閱讀器對卡返回的唯一識別號(即UID)數(shù)據(jù)幀中的每一位進行沖突監(jiān)測。當(dāng)多張A型射頻卡在同一時刻向讀寫器傳送UID數(shù)據(jù)幀時,一定會在同時返回的某一位上有不同的位值。根據(jù)Manchester編碼規(guī)則,這一位正負邊沿抵消了,故讀寫器無法識別的該數(shù)據(jù)位即為碰撞位。碰撞位監(jiān)測到后馬上啟動防碰撞過程。讀寫器主動地發(fā)出一系列命令數(shù)據(jù)幀,主要是ANTICOLLISION命令和SELECT命令。射頻卡被動地響應(yīng)每一條指令完成交互的會話過程。
3 結(jié)束語
本設(shè)計在Modelsim SE6.1和Altera Quartus II 7.2中進行了功能仿真和綜合,結(jié)果表明能夠滿足設(shè)計的需求。
評論