基于AVR單片機射頻卡多協(xié)議讀寫器的設計
硬件設計注意事項
電源設計
首先,我們簡要討論一下EM4094的電源設計。該芯片有三個不同的電源引腳,其中的VDDA1和VDDA2用于給內(nèi)部的天線驅(qū)動器ANT1和ANT2供電。每個驅(qū)動器可獨立受電。由于這兩個驅(qū)動器可能產(chǎn)生或同步較大的電流,因此建議在VDDA1和VDDA2兩引腳之間接入一個3.3μF的電容以給天線提供足夠的能量。另外,我們還建議在該電容邊上并聯(lián)兩個電容值分別為1nF和100nF的電容,以對電源進行去耦和濾波。
第三個電源引腳VDD用于給所有其它的內(nèi)部模塊供電。在這條電源線上,工程師將不得不為了上面提到的同樣原因接入兩個電容值分別為1nF和100nF的濾波電容,它們最好采用由COG和X7R等介電材料制成的陶瓷電容,因此類電容的容差小和溫度穩(wěn)定性較高。這里很重要的一點是,應對這三條電源線施加相同的電壓(3.3V或5V)。這些電源線還應當與模擬地相連。
振蕩器輸入
連接在OSCIN和OSCOUT兩個引腳上的外部晶體提供13.56MHz的信號,這一信號將被送至天線驅(qū)動器的輸出端??缃佑诰д駜啥说膬蓚€NPO電容用于確保晶振的起振和穩(wěn)定性。NPO電容值由EM4094的可選跨導(通過一個寄存器標識選擇)和晶體參數(shù)決定。
圖1 工作原理圖
帶隙參考輸出(AGD)
帶隙參考電壓被不同的內(nèi)部模塊用作模擬參考電壓。為了確保讀卡器芯片的穩(wěn)定性和可靠性,用一個1nF和 100nF的電容對AGD電壓進行適當去耦是非常重要的。如同在前文所說的那樣,我們推薦使用采用COG或X7R電介質(zhì)材料制造的陶瓷電容。
天線驅(qū)動器輸出
ANT1和ANT2為天線驅(qū)動器的兩個輸出端,它們可同相或反相驅(qū)動,這使得有可能用不同的方式連接讀卡器天線,以及依據(jù)所選擇結(jié)構的不同產(chǎn)生四個不同功率等級的天線。EM4094還可與一個遠端天線一起使用,此時EM4094的輸出阻抗必須與通信線路阻抗相匹配。
若采用同軸電纜,那么在只使用一個天線驅(qū)動器的情況下,EM4094的輸出阻抗將必須在10歐姆(ANT1可選)和50歐姆之間進行調(diào)整;當兩個天線并聯(lián)使用時,EM4094的輸出阻抗將必須在5歐姆(ANT1可遷)到50歐姆之間進行調(diào)整。為了實現(xiàn)一個良好的阻抗匹配,開發(fā)人員可借助Smith圖表選擇使用一個LC PI網(wǎng)絡和選擇合適的元件參數(shù)值。
如果讀卡器天線能夠與EM4094集成在同一塊PCB板上,那么你可使用直接天線相連方法(見圖2)。在這種情況下,天線和串聯(lián)電容形成LC串聯(lián)回路。這一回路的諧振頻率為讀卡器的頻率。串聯(lián)電阻用于抑制品質(zhì)因數(shù)并將天線的電流設定在EM4094的額定值以下。當天線工作在其諧振頻率時,直接連接天線可獲得較高的功率。有關IC天線的不同連接方式可參見EM4094應用指南。
圖 2 引腳定義
收發(fā)器信號接收
RFIN1和RFIN2是該IC接收鏈上的兩個輸入引腳,它們被EM4094用來解調(diào)收發(fā)器送過來的數(shù)據(jù)流,其引腳 上的電壓必須設定在GND和VDD之間,這兩個解調(diào)輸入必須具有相同的性能和呈現(xiàn)出相同的靈敏度。配合一個外部匹配阻抗電路,這兩個輸入端可用于解調(diào)輸入的相位或幅度調(diào)制信號。未使用的輸入腳應當通過一個10nF的電容接至模擬地。輸入引腳的高靈敏度使得讀卡器即便在電子標簽的最小電源級別上仍能有較遠的讀取距離。
表1
關閉讀卡器芯片
EN引腳用于使能或關閉讀卡器IC。該輸入引腳可由一個外部微控制器進行控制。當EN引腳為高電平時,EM4094進入激活模式,其輸出在天線上產(chǎn)生 13.56MHz信號;當EN引腳為低電平時,讀卡器芯片進入睡眠模式,這樣可大大降低讀卡器芯片的功耗。在設計手提式讀卡器時,EM4094的這一性能特別有用,它可提高電池的使用壽命。
數(shù)據(jù)輸入與輸出
在SPI模式下,DIN引腳用于輸入數(shù)據(jù),DOUT引腳用于輸出數(shù)據(jù),DCLK用作SPI的時鐘信號。一個SPI接口可用來設置讀卡器芯片的內(nèi)部位寄存器及設定不同模塊的參數(shù)。在正常模式下,通過施加在DIN引腳上的邏輯電平來打開或關閉天線驅(qū)動器,DIN發(fā)出的應答信息可直接在DOUT腳上讀取。
安全功能
當前的許多RFID應用都采用加密算法對數(shù)據(jù)進行加密或?qū)ι矸葸M行證明。有些加密算法是公開的,有些則不對外公開。有些供應商在源代碼或目標代碼、或其它獨立的安全元件(如SIM卡)中提供他們獨特的加密算法。當然,多種可選方案使得設計可十分靈活。你可以在一個傳統(tǒng)的微控制器或一個安全的控制器中實現(xiàn)一個或多個算法,另外一個選擇是用一個負責安全操作的獨立元件來構建一個接口。將這兩種方案混合運用當然也是可以的。EM通過SIM卡提供其專有加密算法。
固件程序設計
程序?qū)哟蝿澐?P> 固件結(jié)構分為幾層,每一層都有特定的功能:
? Level1 –執(zhí)行解碼任務;
? Level2 –執(zhí)行底層數(shù)據(jù)發(fā)送和變換任務;
? Level3 –執(zhí)行上層數(shù)據(jù)傳輸任務--- main loop 、 bootloader 以及 simcard;
? Level4 -執(zhí)行UART 通訊任務。
主程序設計
? Main loop (level3) 定期查詢UART的接收緩沖區(qū) (level4),并根據(jù)有效命令執(zhí)行相應的任務。所有執(zhí)行的任務都會返回信息,包括任務錯誤。
? UART 數(shù)據(jù)接收是異步執(zhí)行的。只有對之前命令的響應完全送出后,才會執(zhí)行下一條命令。
?通常和卡片通訊的命令由硬件定時器進行控制 (T0、 T1、 T2、T3用于接收 ,T1用于發(fā)送)。
?定時器計數(shù)值由AVR時鐘信號完成。
?有些程序需要中斷觸發(fā),這就要求具有很高的捕獲能力。
?正如其他一些重要的任務,發(fā)送 (level2)和捕獲 (level1)的任務可以并行進行,而不會互相干擾。
數(shù)據(jù)處理
應用軟件為Uplink (send)任務準備好命令子節(jié)。所有任務將要發(fā)送的數(shù)據(jù)位流放入 data_buffer 數(shù)組。為了讓前臺捕獲程序與后臺處理分開,捕獲任務將信息存入一對數(shù)組. [data bit, validity bit]。通過level1/store_bit funcTIon ,把捕獲任務得到得一對信息存入到由capture_cnt 和capture_bit_count 變量索引的capture數(shù)組。capture 緩沖區(qū)在執(zhí)行捕獲前要初始化;data bit為0,valid bit為1。所有位有效。接收到的數(shù)據(jù)可以在后臺進行查找。這種邏輯可以給出一個有序的確定的信息,而不需要異步處理或優(yōu)先可重入中斷處理。
結(jié)束語
無線射頻識別具有信息量大、高效便捷、安全的特點,是自動識別的主流技術。低成本、高可靠的電子標簽識讀終端的研究開發(fā)有很大的實際意義。本文在研究分析系統(tǒng)作用原理的基礎上,給出了AVR微處理器芯片以及RFID讀寫基站共同構成了一個完整的射頻卡讀寫系統(tǒng)的硬件實現(xiàn)方案。系統(tǒng)結(jié)構和成本合理,可靠性已得到試驗驗證, 有較好的應用價值。
評論