物聯(lián)傳媒 旗下網站
登錄 注冊
RFID世界網 >  技術文章  >  其他  >  正文

基于FPGA的RFID讀寫器設計

作者:劉建成
來源:維庫電子市場
日期:2013-10-16 10:45:39
摘要:摘要:設計并提出一種高頻射頻識別系統(tǒng)讀寫器設計的新方案。讀寫器采用MF RC500射頻讀寫芯片,以FPGA作為處理器,符合ISO/IECl4-443標準,工作頻率為13.56MHz,讀寫距離為10cm左右。給出了讀寫器硬件系統(tǒng)的組成和軟件工作流程,對同時讀取多張卡的情況進行了分析,實現(xiàn)了防沖突算法。

  0 引言

  射頻識別技術(RFID)是一種非接觸的自動識別技術,通過無線射頻的方式進行非接觸雙向數(shù)據通信,對目標加以識別并獲取相關數(shù)據,可用來追蹤和管理幾乎所有物理對象。與條形碼識別技術、光學符號識別技術、生物識別技術、IC卡識別技術等自動識別技術相比,RFID以它特有的無接觸、抗干擾能力強、可同時識別多個物體等優(yōu)點而逐漸成為自動識別中最優(yōu)秀和應用最廣泛的技術之一。在工業(yè)自動化、商業(yè)自動化、交通運輸控制管理、防偽等眾多領域,甚至軍事用途都具有廣泛的應用前景。RFID系統(tǒng)一般包括應用系統(tǒng)(PC主機)、讀寫器和電子標簽三個部分。RFID電子標簽(Tag)由微芯片與天線組成,每個標簽具有唯一的電子編碼。標簽附在物體上以標識目標對象。讀寫器(Reader)控制射頻模塊向標簽發(fā)射讀寫信號,接收標簽的應答,并將信息傳輸?shù)街鳈C以供處理。用戶可以通過相關控制主機或者本地終端發(fā)布命令以改變或者定制其工作模式以適應具體應用的需求。本文重點介紹讀寫器的開發(fā)。

  1 讀寫器硬件結構設計

  其設計以現(xiàn)場可編程門陣列(FPGA)作為處理器,MF RC500收發(fā)芯片作為射頻模塊,通過RS232串行通信模塊和電平轉換接口MAX232與上位機相連。系統(tǒng)硬件原理見圖1。

基于FPGA的RFID讀寫器設計

  1.1 射頻模塊

  讀寫器對標簽的讀寫是通過發(fā)送射頻能量和對回波的接收實現(xiàn)的。射頻模塊一方面將數(shù)字模塊送來的信息完成調制放大并發(fā)送,另一方面接收回波信號將其解調成基帶信號,送到數(shù)字模塊。讀寫器的RF前端子系統(tǒng)主要負責對電子標簽數(shù)據的讀取與寫入。核心芯片MF RC500由飛利浦公司生產,主要應用于13.56MHz射頻信號的產生、調制、解調等功能。它支持ISO14443A所有的層,適用于各種基于ISO/IEC 14443A標準并且要求低成本、小尺寸、高性能以及單電源的非接觸式通信的應用場合。MF RC500負責與電子標簽的射頻通信,通過并行數(shù)字接口直接連接到處理器。內部的發(fā)送器部分不需要增加有源電路就能直接驅動近距離操作的天線(可達10cm)。接收器部分提供一個堅固而有效的解調電路,用于ISOl4443A兼容的應答器信號。

  射頻接口MF RC500芯片上帶有A0、A1、A2三根地址線,用于對內部寄存器的尋址,同時DO~D7八根數(shù)據線支持地址線、數(shù)據線復用。在本設計中不采用數(shù)據線、地址線復用的接法,采用獨立的數(shù)據線、地址線的接法。芯片內有64個寄存器,由處理器向芯片相應的寄存器位配置數(shù)據;由處理器讀取寄存器的相應狀態(tài)標志來監(jiān)控芯片當前所處的狀態(tài),從而決定下一步的操作。由于片內的64個寄存器尋址需要6根地址線,當采用獨立的地址線時,由于地址線只有3根,支持不了64個寄存器的尋址,為此芯片采用了分頁機制。64個寄存器被分成8頁,每頁8個,3根地址線恰好可以實現(xiàn)對每一頁內的8個寄存器尋址,而對于寄存器頁的選擇,需要配置Page寄存器的0、l、2位。Page寄存器的第7位用來選擇是否采用獨立的地址線,芯片復位后,Page寄存器的默認值為80H,即默認采用獨立的地址線尋址方式,Page寄存器的0、l、2位僅當?shù)?位為1時才有效。芯片上的雙向數(shù)據線DO~D7同處理器的I/O口直接相連,用來實現(xiàn)芯片間數(shù)據的雙向并行傳輸。

  1.2 天線

  天線在整個系統(tǒng)中起著重要的作用,在非接觸式卡與讀寫器之間的能量與數(shù)據傳遞要通過天線線圈產生的磁通量實現(xiàn)??梢赃x擇2種不同的天線連接到讀卡器上:50 Ω匹配的天線或者直接匹配的天線。本方案中采用的是YW-300天線,工作距離可以達到10cm。

  1.3 數(shù)字模塊

  數(shù)字模塊由處理器、存儲器組成。處理器的功能有:實現(xiàn)與PC機通信,接收PC機命令并完成解析;將送來的EPC卡號加算CRC校驗上傳PC機;解決多卡碰撞,實現(xiàn)多卡讀取;實現(xiàn)對射頻模塊的鎖相環(huán)頻率控制以及功率控制。

  FPGA的工作過程:上電復位后,接收上位機初始化配置命令和數(shù)據,進行相應配置;若有命令傳送過來,則通過接口模塊接收上位機傳送過來的命令;命令接收完后,進入指令分析狀態(tài),對接收到的命令進行分析判斷。

  在主控狀態(tài)機的控制下,發(fā)送模塊將把命令和內容組成數(shù)據塊,進行基帶編碼、循環(huán)冗余校驗生成,并打包成符合協(xié)議規(guī)定的數(shù)據幀,傳送給射頻收發(fā)模塊,由其完成對信號的調制、放大、發(fā)射。電子標簽根據接收的數(shù)據幀,進行指令分析,根據指令執(zhí)行相應的功能。接收模塊檢測回波數(shù)據,當檢測到回波數(shù)據的幀頭有效時接收數(shù)據。同時將接收到的數(shù)據送CRC校驗模塊校驗,校驗成功即產生CRC K=‘1’表示讀卡成功。

  1.3.1 發(fā)送編碼模塊

  在ISO/IECl4443 Type A協(xié)議中,讀寫器到標簽的通信采用改進的Miller編碼方式,其標準中定義了三種序列:(A)經64個時鐘后應有一個凹槽;(B)1個位內(128個時鐘)沒有調制;(c)1個位起始時有一個凹槽。這三種序列用于進一步編碼。邏輯1用序列(A)表示。邏輯0通常用序列(B)表示,但在a.有兩個或兩個以上連續(xù)的0時,從第二個0開始要用序列(c)來表示所有相連的0;b.直接與起始幀相連的所有0用序列(c)表示。通信開始用序列(c)表示。通信結束用邏輯0跟序列(B)表示。無信息用至少兩個序列(B)表示。如圖2所示改進的Miller編碼波形。

基于FPGA的RFID讀寫器設計

  從波形中可以看出,若輸入1,則64個時鐘后輸出一個脈沖,若輸入0,則128個時鐘內沒有脈沖輸出,而當有兩個連續(xù)的0輸入時,則在第二個0起始處輸出一個脈沖。通過對照理論波形,可以看出編碼完全正確,符合設計要求。

  1.3.2 接收解碼模塊

  在射頻收發(fā)模塊中進行解調處理而得到的基帶信號將被送入FPGA進行Manchester解碼、CRC校驗,并在主控狀態(tài)機的控制下通過RS232將數(shù)據傳送給上位機。在ISO/IECl4443 Type A協(xié)議中,電子標簽到讀寫器的通信采用Manchester編碼方式,其編碼規(guī)則是:某比特位的值由該比特長度內半個比特周期時電平的變化來表示,負跳變表示‘1’,正跳變表示‘0’。Manchester解碼即對Manchester編碼信號位的1/4和3/4處采樣,若采樣結果為(1,0),則解碼數(shù)據為1;若采樣結果為(0,1),則解碼數(shù)據為0。如圖3所示Manchester解碼波形。輸入數(shù)據l00100l1,解碼所得數(shù)據為147,用二進制表示也即100100ll,可見解碼完全正確,符合設計要求。

基于FPGA的RFID讀寫器設計

  2 系統(tǒng)軟件設計

  2.1 主程序

  讀寫器上電復位后,對各功能模塊進行初始化,然后發(fā)出詢卡/應答指令尋找有效范圍內的電子標簽。電子標簽在讀寫器的閱讀范圍外為無電狀態(tài),不能進行任何操作。當進入讀寫器的載波有效范圍內時,電子標簽上電復位,進入等待接收詢卡/應答指令的狀態(tài)。收到詢卡指令后,電子標簽會發(fā)出自己獨有的ID碼,讀寫器根據收到的IDR碼發(fā)出選卡指令,選擇該標簽進行下一步的通信。

  在應用中可能會遇到多個電子標簽同時在讀寫器的有效工作范圍內的情況,這些標簽就會在收到詢卡指令后,同時發(fā)出自己的ID碼時發(fā)生互相沖突,因此就要求系統(tǒng)能夠具有防沖突的機制,才能從多個標簽中選擇出其中一個。主程序流程見圖4。

基于FPGA的RFID讀寫器設計

  2.2 防碰撞算法

  A型射頻卡采用了ISO/IECl4443系列協(xié)議,配合讀寫器共同實現(xiàn)防碰撞的快速交互通信。為了從多張電子標簽中快速識別出一張來單獨進行通信,A型卡采用了位碰撞監(jiān)測協(xié)議實現(xiàn)防碰撞過程,即閱讀器對卡返回的唯一識別號(即UID)數(shù)據幀中的每一位進行沖突監(jiān)測。當多張A型射頻卡在同一時刻向讀寫器傳送UID數(shù)據幀時,一定會在同時返回的某一位上有不同的位值。根據Manchester編碼規(guī)則,這一位正負邊沿抵消了,故讀寫器無法識別的該數(shù)據位即為碰撞位。碰撞位監(jiān)測到后馬上啟動防碰撞過程。讀寫器主動地發(fā)出一系列命令數(shù)據幀,主要是ANTICOLLISION命令和SELECT命令。射頻卡被動地響應每一條指令完成交互的會話過程。

  3 結束語

  本設計在Modelsim SE6.1和Altera Quartus II 7.2中進行了功能仿真和綜合,結果表明能夠滿足設計的需求。