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