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