基于AVR單片機和EM4094射頻卡讀寫基站的多協(xié)議讀寫器的設(shè)計
引言
射頻識別(RFID)是利用無線方式對電子數(shù)據(jù)載體(電子標(biāo)簽)進(jìn)行識別的一種新興技術(shù)。與接觸式IC卡和條形碼識別等系統(tǒng)比較,它有著巨大的優(yōu)勢。利用射頻識別技術(shù),能有效實現(xiàn)對數(shù)量大、分布區(qū)域廣的信息進(jìn)行智能化管理,達(dá)到高效快捷運作的目的,特別是在第二代身份證、物流、交通航運、自動收費、超市、門禁系統(tǒng)管理、服務(wù)領(lǐng)域等方面有著廣泛的應(yīng)用前景。隨著我國國民經(jīng)濟的快速發(fā)展,國內(nèi)RFID行業(yè)也正經(jīng)歷著深刻的變革。
RFID系統(tǒng)一般是由讀寫器、射頻卡、應(yīng)用軟件來組成。其中讀寫器的設(shè)計是至關(guān)重要的,它決定了系統(tǒng)的穩(wěn)定性和準(zhǔn)確性。
除了要求其能支持一系列協(xié)議、標(biāo)準(zhǔn)和收發(fā)器外,對讀寫器可能還有其它功能性方面的要求,如高性能、防沖突、遠(yuǎn)/近感應(yīng)距離、移動性及功耗。
本文就說明了怎樣利用EM Microelectronic公司的EM4094 RFID讀寫基站(又稱讀寫芯片、模擬前端模塊、基站芯片、收發(fā)器)來構(gòu)建支持多種協(xié)議的13.56MHz通用型或能滿足上述特定要求的特殊RFID讀卡器。
硬件結(jié)構(gòu)分析
讀寫器一般由讀寫基站、微控制器(單片機)組成。
基本上,讀寫基站(如EM4094)為RFID負(fù)責(zé)對數(shù)據(jù)進(jìn)行編碼/譯碼,并以適當(dāng)功率驅(qū)動RFID讀卡器天線。
而讀寫基站本身由微控制器驅(qū)動。該微控制器負(fù)責(zé)管理不同協(xié)議的幀譯碼任務(wù),以及與PC或其它后臺控制設(shè)備的通信接口(串行接口、USB接口或以太網(wǎng)接口)。
一些IC供應(yīng)商提供集成了模擬前端和微控制器的芯片。在很多情況下,微控制器或集成的存儲器空間不是超出需求就是不夠用,而獨立的模塊允許制造商選擇最適合其設(shè)計要求的微控制器和存儲器容量。
軟件功能設(shè)計需求
該讀寫器需要支持ISO14443 Type A和B、Sony Felica及ISO15693標(biāo)準(zhǔn)的全部強制命令,并支持EM 13.56MHz收發(fā)器IC的全部指令集??梢詫崿F(xiàn)不同的通信協(xié)議和防沖突協(xié)議??梢宰x寫的卡片種類如下:
• ISO 14443A&B:
MIFARE® Ultralight
MIFARE® Classic
MIFARE® DESFire
MIFARE® PROX
MIFARE® PRO
• lSO 15693
• ISO 18000-3
• INSIDE PicoTag
• HID iClass
• Tagsys C320
• eNFC
• MasterCard PayPass
• FeliCa
• KSW TempSens
• KSW VarioSens
讀寫基站的選擇
目前13.56MHz的多協(xié)議讀寫基站基本上有3種常用的:
• Phlisps公司的RC632
• TI公司的RI-6C-001
• EM公司的EM4094
三家公司的芯片各有特點,綜合考慮,EM4094具有更好的性價比。
EM4094的概述
EM4094是一個集成的收發(fā)器芯片,它可用于構(gòu)建RFID讀卡器的模擬前端模塊。該芯片的數(shù)據(jù)傳輸及接收鏈路允許傳送和解碼任何通信協(xié)議,因此EM4094支持所有EM公司的13.56MHz收發(fā)器芯片、ISO15693、ISO14443 A&B、以及Sony Felica協(xié)議。通過適當(dāng)設(shè)定,EM4094甚至還可以與NFC設(shè)備通訊。
它具有以下特點:
•兼容ISO15693、ISO14443;
•具有可選跨導(dǎo)的使用13.56MHz 石英的振蕩器;
•使用OOK 的天線驅(qū)動或使用單一天線驅(qū)動的ASK模塊;
•高輸出功率,5V電源下200mW高輸出功率;
•ASK調(diào)制可調(diào)范圍從7%到30%;
•天線短路保護;
•用于高度可靠通信的多路接收器輸入;
•帶AGC信號放大器的AM/PM解調(diào);
• 848kHz BPSK內(nèi)部解調(diào)器( B型);
•多種副載波兼容接收(212kHz、 424kHz或848kHz);
•多種副載波兼容譯碼(Manchester、BPSK);
•內(nèi)置接收低通濾波器截止頻率可在400kHz及1MHz間進(jìn)行檢波;
•內(nèi)置接收高通濾波器截止頻率可在100kHz、200kHz及300kHz間進(jìn)行檢波;
•可選接收增益;
•可選擇的串行接口對選擇位進(jìn)行編程;
• 3線SPI控制的降功耗模式, 控制開關(guān)機狀態(tài);
•輸出功率為100mW ( SO16封裝)、 200mW ( SO20封裝);
•工作溫度范圍-40℃到 +85℃;
•ISO15693、ISO14443 協(xié)議完全兼容;
•多接收輸入,高通訊可靠性。
工作原理圖
引腳定義
單片機的選擇
EM4094勝出其它RFID讀卡器芯片一籌的地方是它允許讀卡器制造商自行選擇最適合其處理與功率需求的微控制器。一個工作頻率為16MHz的帶8 kB程序存儲器的8位微控制器看起來是實現(xiàn)一個讀卡器的最合理選擇,因為它可以實現(xiàn)所有相關(guān)的標(biāo)準(zhǔn)和事實標(biāo)準(zhǔn)協(xié)議。對于要求更高的RFID讀卡器應(yīng)用,16 kB存儲器將可提供更好的編程自由度。
除了BPSK協(xié)議,EM4094沒有集成其它幀解碼器。一個集成的848kHz BPSK解碼器可使微控制器不再需要執(zhí)行這一苛求的ISO14443 Type B特殊操作,從而允許讀卡器制造商選擇一個成本效益比更好的微控制器。
EM4094對于單片機的要求
EM4094-ISO15693協(xié)議對單片機的要求
• ~3800 字節(jié)的程序FLASH內(nèi)存;
• ~345 字節(jié)的SRAM;
• 1個帶有捕獲模式的定時器T1 (ICP1 feature);
• 3 個I/O接口 (DOUT、 DIN、DCLK);
•看門狗(可設(shè)置為2.2s);
• 8MHz 晶振;
• RFID 通訊過程中沒有不允許外部中斷;
•支持 ISO15693的優(yōu)化設(shè)計。
EM4094-ISO14443 A-B-C 協(xié)議對于單片機的要求
• ~15k字節(jié)的程序FLASH內(nèi)存;
• ~500B字節(jié)的SRAM;
• 2個帶有捕獲模式的定時器T1、T3;
•看門狗(可設(shè)置為2.2s);
• 16MHz晶振;
• RFID 通訊過程中沒有不允許外部中斷;
•提供專用固件來支持ISO14443 A、B、C 標(biāo)準(zhǔn)。
AVR單片機的優(yōu)點
ATMEL的AVR系列單片機是一個優(yōu)秀的RISC 結(jié)構(gòu)單片機系列與MCS51 相比其有以下一些典型特點:
• AVR的機器周期為1 個時鐘周期絕大多數(shù)指令為單周期指令因此每MHz時鐘有接近1MIPS 的性能;
•程序存貯器與數(shù)據(jù)存貯器有分開的總線程序可以高效地執(zhí)行8MHz 頻率下工作的AVR 相當(dāng)于224MHz 頻率下工作的MCS51;
•內(nèi)置可重復(fù)編程的FLASH 程序存貯器和EEPROM 數(shù)據(jù)存貯器支持對單片機的在系統(tǒng)編程ISP 在生產(chǎn)中可以先裝配后編程從而縮短工藝流程和節(jié)約購買萬用編程器的費用并且可以方便地升級或修改程序;
•內(nèi)置上電復(fù)位電路和看門狗定時器電路在提高產(chǎn)品可靠性的同時降低了電路的成本;
•部分AVR單片機與MCS51 系列單片機管腳兼容如AT90S1200/2313 對應(yīng)AT89C1051/2051,AT90S4414/8515 對應(yīng)AT89C51/52。因此可以做到一套PCB板對應(yīng)兩套電路增加了用戶備貨的可選擇性和靈活性;
•定時/計數(shù)器的功能大大增強串口通信時波特率發(fā)生不占用定時器。
硬件設(shè)計注意事項
電源設(shè)計
首先,我們簡要討論一下EM4094的電源設(shè)計。該芯片有三個不同的電源引腳,其中的VDDA1和VDDA2用于給內(nèi)部的天線驅(qū)動器ANT1和ANT2供電。每個驅(qū)動器可獨立受電。由于這兩個驅(qū)動器可能產(chǎn)生或同步較大的電流,因此建議在VDDA1和VDDA2兩引腳之間接入一個3.3μF的電容以給天線提供足夠的能量。另外,我們還建議在該電容邊上并聯(lián)兩個電容值分別為1nF和100nF的電容,以對電源進(jìn)行去耦和濾波。
第三個電源引腳VDD用于給所有其它的內(nèi)部模塊供電。在這條電源線上,工程師將不得不為了上面提到的同樣原因接入兩個電容值分別為1nF和100nF的濾波電容,它們最好采用由COG和X7R等介電材料制成的陶瓷電容,因此類電容的容差小和溫度穩(wěn)定性較高。這里很重要的一點是,應(yīng)對這三條電源線施加相同的電壓(3.3V或5V)。這些電源線還應(yīng)當(dāng)與模擬地相連。
振蕩器輸入
連接在OSCIN和OSCOUT兩個引腳上的外部晶體提供13.56MHz的信號,這一信號將被送至天線驅(qū)動器的輸出端??缃佑诰д駜啥说膬蓚€NPO電容用于確保晶振的起振和穩(wěn)定性。NPO電容值由EM4094的可選跨導(dǎo)(通過一個寄存器標(biāo)識選擇)和晶體參數(shù)決定。
圖1 工作原理圖
帶隙參考輸出(AGD)
帶隙參考電壓被不同的內(nèi)部模塊用作模擬參考電壓。為了確保讀卡器芯片的穩(wěn)定性和可靠性,用一個1nF和 100nF的電容對AGD電壓進(jìn)行適當(dāng)去耦是非常重要的。如同在前文所說的那樣,我們推薦使用采用COG或X7R電介質(zhì)材料制造的陶瓷電容。
天線驅(qū)動器輸出
ANT1和ANT2為天線驅(qū)動器的兩個輸出端,它們可同相或反相驅(qū)動,這使得有可能用不同的方式連接讀卡器天線,以及依據(jù)所選擇結(jié)構(gòu)的不同產(chǎn)生四個不同功率等級的天線。EM4094還可與一個遠(yuǎn)端天線一起使用,此時EM4094的輸出阻抗必須與通信線路阻抗相匹配。
若采用同軸電纜,那么在只使用一個天線驅(qū)動器的情況下,EM4094的輸出阻抗將必須在10歐姆(ANT1可選)和50歐姆之間進(jìn)行調(diào)整;當(dāng)兩個天線并聯(lián)使用時,EM4094的輸出阻抗將必須在5歐姆(ANT1可遷)到50歐姆之間進(jìn)行調(diào)整。為了實現(xiàn)一個良好的阻抗匹配,開發(fā)人員可借助Smith圖表選擇使用一個LC PI網(wǎng)絡(luò)和選擇合適的元件參數(shù)值。
如果讀卡器天線能夠與EM4094集成在同一塊PCB板上,那么你可使用直接天線相連方法(見圖2)。在這種情況下,天線和串聯(lián)電容形成LC串聯(lián)回路。這一回路的諧振頻率為讀卡器的頻率。串聯(lián)電阻用于抑制品質(zhì)因數(shù)并將天線的電流設(shè)定在EM4094的額定值以下。當(dāng)天線工作在其諧振頻率時,直接連接天線可獲得較高的功率。有關(guān)IC天線的不同連接方式可參見EM4094應(yīng)用指南。
圖 2 引腳定義
收發(fā)器信號接收
RFIN1和RFIN2是該IC接收鏈上的兩個輸入引腳,它們被EM4094用來解調(diào)收發(fā)器送過來的數(shù)據(jù)流,其引腳 上的電壓必須設(shè)定在GND和VDD之間,這兩個解調(diào)輸入必須具有相同的性能和呈現(xiàn)出相同的靈敏度。配合一個外部匹配阻抗電路,這兩個輸入端可用于解調(diào)輸入的相位或幅度調(diào)制信號。未使用的輸入腳應(yīng)當(dāng)通過一個10nF的電容接至模擬地。輸入引腳的高靈敏度使得讀卡器即便在電子標(biāo)簽的最小電源級別上仍能有較遠(yuǎn)的讀取距離。
表1
關(guān)閉讀卡器芯片
EN引腳用于使能或關(guān)閉讀卡器IC。該輸入引腳可由一個外部微控制器進(jìn)行控制。當(dāng)EN引腳為高電平時,EM4094進(jìn)入激活模式,其輸出在天線上產(chǎn)生13.56MHz信號;當(dāng)EN引腳為低電平時,讀卡器芯片進(jìn)入睡眠模式,這樣可大大降低讀卡器芯片的功耗。在設(shè)計手提式讀卡器時,EM4094的這一性能特別有用,它可提高電池的使用壽命。
數(shù)據(jù)輸入與輸出
在SPI模式下,DIN引腳用于輸入數(shù)據(jù),DOUT引腳用于輸出數(shù)據(jù),DCLK用作SPI的時鐘信號。一個SPI接口可用來設(shè)置讀卡器芯片的內(nèi)部位寄存器及設(shè)定不同模塊的參數(shù)。在正常模式下,通過施加在DIN引腳上的邏輯電平來打開或關(guān)閉天線驅(qū)動器,DIN發(fā)出的應(yīng)答信息可直接在DOUT腳上讀取。
安全功能
當(dāng)前的許多RFID應(yīng)用都采用加密算法對數(shù)據(jù)進(jìn)行加密或?qū)ι矸葸M(jìn)行證明。有些加密算法是公開的,有些則不對外公開。有些供應(yīng)商在源代碼或目標(biāo)代碼、或其它獨立的安全元件(如SIM卡)中提供他們獨特的加密算法。當(dāng)然,多種可選方案使得設(shè)計可十分靈活。你可以在一個傳統(tǒng)的微控制器或一個安全的控制器中實現(xiàn)一個或多個算法,另外一個選擇是用一個負(fù)責(zé)安全操作的獨立元件來構(gòu)建一個接口。將這兩種方案混合運用當(dāng)然也是可以的。EM通過SIM卡提供其專有加密算法。
固件程序設(shè)計
程序?qū)哟蝿澐?br />
固件結(jié)構(gòu)分為幾層,每一層都有特定的功能:
• Level1 –執(zhí)行解碼任務(wù);
• Level2 –執(zhí)行底層數(shù)據(jù)發(fā)送和變換任務(wù);
• Level3 –執(zhí)行上層數(shù)據(jù)傳輸任務(wù)--- main loop 、 bootloader 以及 simcard;
• Level4 -執(zhí)行UART 通訊任務(wù)。
主程序設(shè)計
• Main loop (level3) 定期查詢UART的接收緩沖區(qū) (level4),并根據(jù)有效命令執(zhí)行相應(yīng)的任務(wù)。所有執(zhí)行的任務(wù)都會返回信息,包括任務(wù)錯誤。
• UART 數(shù)據(jù)接收是異步執(zhí)行的。只有對之前命令的響應(yīng)完全送出后,才會執(zhí)行下一條命令。
•通常和卡片通訊的命令由硬件定時器進(jìn)行控制 (T0、 T1、 T2、T3用于接收 ,T1用于發(fā)送)。
•定時器計數(shù)值由AVR時鐘信號完成。
•有些程序需要中斷觸發(fā),這就要求具有很高的捕獲能力。
•正如其他一些重要的任務(wù),發(fā)送 (level2)和捕獲 (level1)的任務(wù)可以并行進(jìn)行,而不會互相干擾。
數(shù)據(jù)處理
應(yīng)用軟件為Uplink (send)任務(wù)準(zhǔn)備好命令子節(jié)。所有任務(wù)將要發(fā)送的數(shù)據(jù)位流放入 data_buffer 數(shù)組。為了讓前臺捕獲程序與后臺處理分開,捕獲任務(wù)將信息存入一對數(shù)組. [data bit, validity bit]。通過level1/store_bit function ,把捕獲任務(wù)得到得一對信息存入到由capture_cnt 和capture_bit_count 變量索引的capture數(shù)組。capture 緩沖區(qū)在執(zhí)行捕獲前要初始化;data bit為0,valid bit為1。所有位有效。接收到的數(shù)據(jù)可以在后臺進(jìn)行查找。這種邏輯可以給出一個有序的確定的信息,而不需要異步處理或優(yōu)先可重入中斷處理。
結(jié)束語
無線射頻識別具有信息量大、高效便捷、安全的特點,是自動識別的主流技術(shù)。低成本、高可靠的電子標(biāo)簽識讀終端的研究開發(fā)有很大的實際意義。本文在研究分析系統(tǒng)作用原理的基礎(chǔ)上,給出了AVR微處理器芯片以及RFID讀寫基站共同構(gòu)成了一個完整的射頻卡讀寫系統(tǒng)的硬件實現(xiàn)方案。系統(tǒng)結(jié)構(gòu)和成本合理,可靠性已得到試驗驗證, 有較好的應(yīng)用價值。