RFID世界網(wǎng) >
技術(shù)文章 >
其他 >
正文
基于FPGA的RFID閱讀器設(shè)計(jì)
作者:張捍東 張淳
來(lái)源:RFID世界網(wǎng)
日期:2009-07-14 10:29:38
摘要:作為一項(xiàng)具有廣泛應(yīng)用前景的技術(shù),RFID閱讀器近年來(lái)已在多個(gè)領(lǐng)域發(fā)揮了重要作用。由于單片機(jī)的開(kāi)發(fā)周期長(zhǎng)且批量小,因此,采用FPGA為核心來(lái)設(shè)計(jì)高頻、遠(yuǎn)距離的閱讀器。經(jīng)驗(yàn)證,它能夠快速、準(zhǔn)確地實(shí)現(xiàn)曼徹斯特編碼的譯碼并進(jìn)行CRC校驗(yàn)。設(shè)計(jì)的通用異步收發(fā)器實(shí)現(xiàn)了數(shù)據(jù)的接收和發(fā)送,具有電路形式簡(jiǎn)單、移植方便等優(yōu)點(diǎn)。
0 引言
RFID(radio frequency identification)即射頻識(shí)別技術(shù),是自動(dòng)識(shí)別技術(shù)的一種,主要由閱讀器和電子標(biāo)簽兩部分組成。通過(guò)無(wú)線射頻方式進(jìn)行非接觸雙向數(shù)據(jù)通信,對(duì)目標(biāo)加以識(shí)別并獲取相關(guān)數(shù)據(jù)。
閱讀器的設(shè)計(jì)是RFID系統(tǒng)設(shè)計(jì)中的關(guān)鍵部分,關(guān)于它的設(shè)計(jì)方案有很多種。FPGA是大規(guī)模可編程器件中的另一大類PLD(programmable logic device)器件,既繼承了ASIC的大規(guī)模、高集成度、高可靠性的優(yōu)點(diǎn),又克服了普通ASIC設(shè)計(jì)周期長(zhǎng)、投資大、靈活性差的缺點(diǎn),逐步成為復(fù)雜數(shù)字硬件電路設(shè)計(jì)的首選。因此,本文設(shè)計(jì)了一種基于FPGA的高頻、遠(yuǎn)距離RFID閱讀器。
1 系統(tǒng)功能概述
ISO/IEC 18000-6是ISO/IEC 18000標(biāo)準(zhǔn)的一部分,它定義了工作在高頻率范圍內(nèi)(860~960 MHz)射頻識(shí)別系統(tǒng)的空氣接口和通信協(xié)議Ⅲ,并規(guī)定了Type A和Type B兩類非接觸式射頻卡,如表1所示。
表1 兩類射頻卡的比較
閱讀器的工作原理是:標(biāo)簽接收到閱讀器的響應(yīng)幀后,將NRZ碼編碼成Manchester碼,并調(diào)制上載波后發(fā)送出去,閱讀器的高頻接口將該信息解調(diào),即將載波信號(hào)濾除后,輸出Manchester碼到譯碼模塊;譯碼模塊將譯碼得到的NRZ碼串行輸出到通用異步收發(fā)器UART的接收模塊;接收模塊將其轉(zhuǎn)化為并行數(shù)據(jù),送人并行CRC(cyclic redundancy check)模塊,UART發(fā)送模塊等待數(shù)據(jù)幀發(fā)送命令XMIT_CMD,當(dāng)CRC模塊檢查到接收的數(shù)據(jù)正確,便將XMIT_CMD置為“1” ,發(fā)送模塊開(kāi)始發(fā)送數(shù)據(jù)。
2 閱讀器設(shè)計(jì)方案
對(duì)目標(biāo)芯片EP1 C6Q240C8,采用Quartus II開(kāi)發(fā)軟件,使用VHDL語(yǔ)言完成對(duì)閱讀器各模塊的描述,并且調(diào)用第三方仿真工具M(jìn)odelSim來(lái)進(jìn)行時(shí)序仿真。Quartus II是Ahera公司的綜合性PLD開(kāi)發(fā)軟件,支持原理圖、VHDL、Verilog—HDL等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,還可以調(diào)用第三方仿真工具完成從設(shè)計(jì)輸人到硬件配置的完整PLD設(shè)計(jì)流程。Quaaus II的設(shè)計(jì)步驟為設(shè)計(jì)輸入、設(shè)計(jì)編譯、功能仿真、時(shí)序仿真、硬件配置。
2.1 譯碼模塊
從電子標(biāo)簽到閱讀器的數(shù)據(jù)傳輸可采用Manehester編碼,這將有利于發(fā)現(xiàn)傳輸中的錯(cuò)誤。因?yàn)樵诒忍亻L(zhǎng)度內(nèi),“沒(méi)有變化”的狀態(tài)是不允許的。當(dāng)多個(gè)標(biāo)簽同時(shí)發(fā)送的數(shù)據(jù)位有不同值時(shí),接收的上升沿和下降沿互相抵消,由于該狀態(tài)是不允許的,所以閱讀器利用該錯(cuò)誤就可以判定碰撞發(fā)生的具體位置。在曼徹斯特編碼中,某比特位的值是由該比特長(zhǎng)度內(nèi)半個(gè)比特周期時(shí)的電平的變化(上升/下降)來(lái)表示的,從“1”跳變到“0”表示二進(jìn)制“1”,從“0”跳變到“1”表示二進(jìn)制“0”。
閱讀器的工作頻率為915 MHz,Manchester碼的傳送頻率為915 MHz/16。其基本設(shè)計(jì)原理是采用915 MHz作為基準(zhǔn)時(shí)鐘clk ,利用分頻器得到基準(zhǔn)時(shí)鐘的16分頻(clk/16)和8分頻(clk/8)。用2個(gè)D觸發(fā)器構(gòu)成移位寄存器,輸人時(shí)鐘為(clk/8),將輸入的Manchester碼并行移出,并行移出的2個(gè)值為q1和q0。再構(gòu)造一個(gè)比較器,采用clk/16作為輸入時(shí)鐘,這樣就能將Manchester碼在一個(gè)比特長(zhǎng)度內(nèi)的兩個(gè)電平值進(jìn)行比較,如果q0=“1”,q1 =“0”,就輸出二進(jìn)制“1”;如果qo=“0”,q1=“1”,就輸出二進(jìn)制“0”。這樣就實(shí)現(xiàn)了Manchester碼的譯碼。
采用QuartusⅡ開(kāi)發(fā)軟件,可以觀察到設(shè)計(jì)的RTL視圖,如圖3所示。其中mdi為輸入的Manchester碼,Out。為輸出的譯碼。
表2 占用芯片資源情況表
1001”;Out1為得到的八位二進(jìn)制譯碼“11011010”。輸出的譯碼比輸入的Manchester碼延時(shí)一個(gè)周期。譯出八位二進(jìn)制碼的時(shí)間僅為156.264 ns。因此,本設(shè)計(jì)能達(dá)到快速準(zhǔn)確譯碼的目的,且占用資源少。
2.2 通用異步收發(fā)器接收模塊
接收器模塊接收譯碼模塊輸出的串行二進(jìn)制碼。
并將其轉(zhuǎn)化為并行數(shù)據(jù)輸出。接收狀態(tài)機(jī)共有R_START(等待起始位)、R_CENTER(求中點(diǎn))、R_WAIT(等待采樣)、R_SAMPLE(采樣)和R_STOP(停止)這5個(gè)狀態(tài),如圖5所示。
2.3 并行CRC模塊
通常,CRC采用線性反饋移位寄存器的串行實(shí)現(xiàn),本文采用一種并行CRC運(yùn)算方法。CRC校驗(yàn)碼采用多項(xiàng)式:x16 + x12 + x5 +1。使用16個(gè)移位寄存器,每次輸入8 bits數(shù)據(jù),相當(dāng)于一次并行運(yùn)算就得到了串行移位運(yùn)算時(shí)需要8次移位得到的結(jié)果,具有更高的處理速度,縮短了閱讀器對(duì)卡的響應(yīng)時(shí)間。
2.4 通用異步收發(fā)器發(fā)送模塊
當(dāng)發(fā)送模塊處于X_START狀態(tài)時(shí),發(fā)送一個(gè)位時(shí)間寬度的邏輯0至輸出TXD ,緊接著狀態(tài)機(jī)轉(zhuǎn)入X_WAIT狀態(tài)。XCNT16是balk的計(jì)數(shù)器。X_WAIT狀態(tài)和接收狀態(tài)機(jī)中的R_WAIT狀態(tài)相似。計(jì)數(shù)器記到15時(shí),轉(zhuǎn)入X_SHIFT狀態(tài),實(shí)現(xiàn)待發(fā)數(shù)據(jù)的并串轉(zhuǎn)換,轉(zhuǎn)換完成回到X_WAIT狀態(tài)。當(dāng)數(shù)據(jù)幀發(fā)送完畢,狀態(tài)機(jī)進(jìn)入X_STOP狀態(tài),等待另一個(gè)數(shù)據(jù)幀的發(fā)送命令。
3 下載配置
EP1C6Q240C8芯片支持被動(dòng)串行和JTAG兩種下載模式 ,這里采用JTAG模式對(duì)芯片進(jìn)行配置。下載電纜與電路板相連的是10針插座,采用1O個(gè)小方格來(lái)表示,配置電路如圖6所示(其中nCE0懸空,DA-TA。和DCLK使用高電平或低電平驅(qū)動(dòng))。
FPGA是簡(jiǎn)化SoC設(shè)計(jì)的一種新選擇,省略了單片機(jī)的許多附件部分。本文實(shí)現(xiàn)了基于ISO/IEC18000-6標(biāo)準(zhǔn)閱讀器的解碼、處理和發(fā)送功能。通過(guò)實(shí)驗(yàn)證明,本設(shè)計(jì)具有解碼速度快、接收數(shù)據(jù)準(zhǔn)確、識(shí)別率高等優(yōu)點(diǎn)。
RFID(radio frequency identification)即射頻識(shí)別技術(shù),是自動(dòng)識(shí)別技術(shù)的一種,主要由閱讀器和電子標(biāo)簽兩部分組成。通過(guò)無(wú)線射頻方式進(jìn)行非接觸雙向數(shù)據(jù)通信,對(duì)目標(biāo)加以識(shí)別并獲取相關(guān)數(shù)據(jù)。
閱讀器的設(shè)計(jì)是RFID系統(tǒng)設(shè)計(jì)中的關(guān)鍵部分,關(guān)于它的設(shè)計(jì)方案有很多種。FPGA是大規(guī)模可編程器件中的另一大類PLD(programmable logic device)器件,既繼承了ASIC的大規(guī)模、高集成度、高可靠性的優(yōu)點(diǎn),又克服了普通ASIC設(shè)計(jì)周期長(zhǎng)、投資大、靈活性差的缺點(diǎn),逐步成為復(fù)雜數(shù)字硬件電路設(shè)計(jì)的首選。因此,本文設(shè)計(jì)了一種基于FPGA的高頻、遠(yuǎn)距離RFID閱讀器。
1 系統(tǒng)功能概述
ISO/IEC 18000-6是ISO/IEC 18000標(biāo)準(zhǔn)的一部分,它定義了工作在高頻率范圍內(nèi)(860~960 MHz)射頻識(shí)別系統(tǒng)的空氣接口和通信協(xié)議Ⅲ,并規(guī)定了Type A和Type B兩類非接觸式射頻卡,如表1所示。
表1 兩類射頻卡的比較
Tab.1 Comparison of 2 types of radio frequency m odules
圖1 標(biāo)簽響應(yīng)幀格式
Fig.1 Response format ofthe tag
圖2 閱讀器結(jié)構(gòu)圖
Fig.2 Structural diagram of the reader
閱讀器的工作原理是:標(biāo)簽接收到閱讀器的響應(yīng)幀后,將NRZ碼編碼成Manchester碼,并調(diào)制上載波后發(fā)送出去,閱讀器的高頻接口將該信息解調(diào),即將載波信號(hào)濾除后,輸出Manchester碼到譯碼模塊;譯碼模塊將譯碼得到的NRZ碼串行輸出到通用異步收發(fā)器UART的接收模塊;接收模塊將其轉(zhuǎn)化為并行數(shù)據(jù),送人并行CRC(cyclic redundancy check)模塊,UART發(fā)送模塊等待數(shù)據(jù)幀發(fā)送命令XMIT_CMD,當(dāng)CRC模塊檢查到接收的數(shù)據(jù)正確,便將XMIT_CMD置為“1” ,發(fā)送模塊開(kāi)始發(fā)送數(shù)據(jù)。
2 閱讀器設(shè)計(jì)方案
對(duì)目標(biāo)芯片EP1 C6Q240C8,采用Quartus II開(kāi)發(fā)軟件,使用VHDL語(yǔ)言完成對(duì)閱讀器各模塊的描述,并且調(diào)用第三方仿真工具M(jìn)odelSim來(lái)進(jìn)行時(shí)序仿真。Quartus II是Ahera公司的綜合性PLD開(kāi)發(fā)軟件,支持原理圖、VHDL、Verilog—HDL等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,還可以調(diào)用第三方仿真工具完成從設(shè)計(jì)輸人到硬件配置的完整PLD設(shè)計(jì)流程。Quaaus II的設(shè)計(jì)步驟為設(shè)計(jì)輸入、設(shè)計(jì)編譯、功能仿真、時(shí)序仿真、硬件配置。
2.1 譯碼模塊
從電子標(biāo)簽到閱讀器的數(shù)據(jù)傳輸可采用Manehester編碼,這將有利于發(fā)現(xiàn)傳輸中的錯(cuò)誤。因?yàn)樵诒忍亻L(zhǎng)度內(nèi),“沒(méi)有變化”的狀態(tài)是不允許的。當(dāng)多個(gè)標(biāo)簽同時(shí)發(fā)送的數(shù)據(jù)位有不同值時(shí),接收的上升沿和下降沿互相抵消,由于該狀態(tài)是不允許的,所以閱讀器利用該錯(cuò)誤就可以判定碰撞發(fā)生的具體位置。在曼徹斯特編碼中,某比特位的值是由該比特長(zhǎng)度內(nèi)半個(gè)比特周期時(shí)的電平的變化(上升/下降)來(lái)表示的,從“1”跳變到“0”表示二進(jìn)制“1”,從“0”跳變到“1”表示二進(jìn)制“0”。
閱讀器的工作頻率為915 MHz,Manchester碼的傳送頻率為915 MHz/16。其基本設(shè)計(jì)原理是采用915 MHz作為基準(zhǔn)時(shí)鐘clk ,利用分頻器得到基準(zhǔn)時(shí)鐘的16分頻(clk/16)和8分頻(clk/8)。用2個(gè)D觸發(fā)器構(gòu)成移位寄存器,輸人時(shí)鐘為(clk/8),將輸入的Manchester碼并行移出,并行移出的2個(gè)值為q1和q0。再構(gòu)造一個(gè)比較器,采用clk/16作為輸入時(shí)鐘,這樣就能將Manchester碼在一個(gè)比特長(zhǎng)度內(nèi)的兩個(gè)電平值進(jìn)行比較,如果q0=“1”,q1 =“0”,就輸出二進(jìn)制“1”;如果qo=“0”,q1=“1”,就輸出二進(jìn)制“0”。這樣就實(shí)現(xiàn)了Manchester碼的譯碼。
采用QuartusⅡ開(kāi)發(fā)軟件,可以觀察到設(shè)計(jì)的RTL視圖,如圖3所示。其中mdi為輸入的Manchester碼,Out。為輸出的譯碼。
圖3 譯碼模塊的RTL視圖
Fig.3 RTL view of the decode block
表2 占用芯片資源情況表
Tab.2 The used chip resources
圖4 譯碼仿真波形
Fig.4 Decod e simulation wavcform
1001”;Out1為得到的八位二進(jìn)制譯碼“11011010”。輸出的譯碼比輸入的Manchester碼延時(shí)一個(gè)周期。譯出八位二進(jìn)制碼的時(shí)間僅為156.264 ns。因此,本設(shè)計(jì)能達(dá)到快速準(zhǔn)確譯碼的目的,且占用資源少。
2.2 通用異步收發(fā)器接收模塊
接收器模塊接收譯碼模塊輸出的串行二進(jìn)制碼。
并將其轉(zhuǎn)化為并行數(shù)據(jù)輸出。接收狀態(tài)機(jī)共有R_START(等待起始位)、R_CENTER(求中點(diǎn))、R_WAIT(等待采樣)、R_SAMPLE(采樣)和R_STOP(停止)這5個(gè)狀態(tài),如圖5所示。
圖5 UART接收器的接收狀態(tài)機(jī)
Fig.5 Receiving status principle of UART
2.3 并行CRC模塊
通常,CRC采用線性反饋移位寄存器的串行實(shí)現(xiàn),本文采用一種并行CRC運(yùn)算方法。CRC校驗(yàn)碼采用多項(xiàng)式:x16 + x12 + x5 +1。使用16個(gè)移位寄存器,每次輸入8 bits數(shù)據(jù),相當(dāng)于一次并行運(yùn)算就得到了串行移位運(yùn)算時(shí)需要8次移位得到的結(jié)果,具有更高的處理速度,縮短了閱讀器對(duì)卡的響應(yīng)時(shí)間。
2.4 通用異步收發(fā)器發(fā)送模塊
當(dāng)發(fā)送模塊處于X_START狀態(tài)時(shí),發(fā)送一個(gè)位時(shí)間寬度的邏輯0至輸出TXD ,緊接著狀態(tài)機(jī)轉(zhuǎn)入X_WAIT狀態(tài)。XCNT16是balk的計(jì)數(shù)器。X_WAIT狀態(tài)和接收狀態(tài)機(jī)中的R_WAIT狀態(tài)相似。計(jì)數(shù)器記到15時(shí),轉(zhuǎn)入X_SHIFT狀態(tài),實(shí)現(xiàn)待發(fā)數(shù)據(jù)的并串轉(zhuǎn)換,轉(zhuǎn)換完成回到X_WAIT狀態(tài)。當(dāng)數(shù)據(jù)幀發(fā)送完畢,狀態(tài)機(jī)進(jìn)入X_STOP狀態(tài),等待另一個(gè)數(shù)據(jù)幀的發(fā)送命令。
3 下載配置
EP1C6Q240C8芯片支持被動(dòng)串行和JTAG兩種下載模式 ,這里采用JTAG模式對(duì)芯片進(jìn)行配置。下載電纜與電路板相連的是10針插座,采用1O個(gè)小方格來(lái)表示,配置電路如圖6所示(其中nCE0懸空,DA-TA。和DCLK使用高電平或低電平驅(qū)動(dòng))。
圖6 配置電路圖
Fig.6 Circuit diagram of configuration
FPGA是簡(jiǎn)化SoC設(shè)計(jì)的一種新選擇,省略了單片機(jī)的許多附件部分。本文實(shí)現(xiàn)了基于ISO/IEC18000-6標(biāo)準(zhǔn)閱讀器的解碼、處理和發(fā)送功能。通過(guò)實(shí)驗(yàn)證明,本設(shè)計(jì)具有解碼速度快、接收數(shù)據(jù)準(zhǔn)確、識(shí)別率高等優(yōu)點(diǎn)。