摘 要: 以TI公司的超低功耗單片機MSP430F149為主控芯片,控制恩智浦公司的高集成度讀卡器芯片MFRC522,,設(shè)計實現(xiàn)了遵循ISO/IEC 14443A協(xié)議的讀卡器模塊。介紹了系統(tǒng)組成和讀卡器芯片MFRC522,,并詳細描述了MFRC522與MCU的接口方案和天線及其匹配電路的設(shè)計,,最后簡要描述了讀卡器的操作流程。
關(guān)鍵詞: 讀卡器;射頻識別,;射頻天線,;MSP430;MFRC522
目前國內(nèi)的13.56 MHz RFID讀卡器芯片市場上,,荷蘭恩智浦公司的Mifare非接觸讀卡芯片系列中MFRC522系列具有低電壓,、低功耗、小尺寸,、低成本等優(yōu)點,。采用3.3 V統(tǒng)一供電,工作頻率為13.56 MHz,,兼容ISO/IEC 14443A及MIFARE模式,。MFRC522主要包括兩部分,其中數(shù)字部分由狀態(tài)機,、編碼解碼邏輯等組成,;模擬部分由調(diào)制器、天線驅(qū)動器,、接收器和放大器組成[2]。MFRC522的內(nèi)部發(fā)送器無需外部有源電路即可驅(qū)動讀寫天線實現(xiàn)與符合ISO/IEC 14443A或MIFARE標準的卡片的通訊,。接收器模塊提供了一個強健而高效的解調(diào)和解碼電路,,用于接收兼容ISO/IEC 14443A和MIFARE的卡片信號。數(shù)字模塊控制全部ISO/IEC 14443A幀和錯誤檢測(奇偶和CRC)功能,。模擬接口負責處理模擬信號的調(diào)制和解調(diào),。非接觸式異步收發(fā)模塊配合主機處理通信協(xié)議所需要的協(xié)議。FIFO(先進先出)緩存使得主機與非接觸式串行收發(fā)模塊之間的數(shù)據(jù)傳輸變得更加快速方便,。
1 系統(tǒng)組成
如圖1所示,讀卡器模塊包括MCU,、讀卡器芯片、天線及其濾波匹配電路,。MCU選用TI公司的超低功耗單片機MSP430F149,,該單片機支持多種低功耗模式,并能夠快速喚醒,,具有60 KB+256 B的Flash,、2 KB的RAM、兩個既可做異步UART又可以做SPI使用的串行通訊口,、6組I/O口,、一個內(nèi)部DCO和2 個外部時鐘,非常適合開發(fā)低功耗高性能的產(chǎn)品[3],。在本模塊中MCU通過SPI方式與MFRC522連接,,供電電壓均為3.3 V,所以不再需要外圍的電壓轉(zhuǎn)換電路,,外接一個天線及簡單的濾波匹配電路,,即可實現(xiàn)與卡片的通信,。
2 工作原理
MCU通過對讀卡器芯片內(nèi)寄存器的讀寫來控制讀卡器芯片,讀卡器芯片收到MCU發(fā)來的命令后,,按照非接觸式射頻卡協(xié)議格式,,通過天線及其匹配電路向附近發(fā)出一組固定頻率的調(diào)制信號(13.56 MHz)進行尋卡,若此范圍內(nèi)有卡片存在,,卡片內(nèi)部的LC諧振電路(諧振頻率與讀卡器發(fā)送的電磁波頻率相同)在電磁波的激勵下,,產(chǎn)生共振,在卡片內(nèi)部電壓泵的作用下不斷為其另一端的電容充電,,獲得能量,,當該電容電壓達到2 V時,即可作為電源為卡片的其他電路提供工作電壓,。
當有卡片處在讀卡器的有效工作范圍內(nèi)時,,MCU向卡片發(fā)出尋卡命令,卡片將回復卡片類型,,建立卡片與讀卡器的第一步聯(lián)系,,若同時有多張卡片在天線的工作范圍內(nèi),讀卡器通過啟動防沖撞機制,,根據(jù)卡片序列號來選定一張卡片,,被選中的卡片再與讀卡器進行密碼校驗,確保讀卡器對卡片有操作權(quán)限以及卡片的合法性,而未被選中的則仍然處在閑置狀態(tài),,等待下一次尋卡命令,。密碼驗證通過之后,就可以對卡片進行讀寫等應用操作,。
3 MFRC522與MCU接口實現(xiàn)
MFRC522提供了3種接口模式:高達10 Mb/s的SPI,、I2C總線模式(快速模式下能達400 kb/s,而高速模式下能達3.4 Mb/s),、最高達1228.8 kb/s的UART模式,。每次上電或硬件重啟之后MFRC522復位其接口,并通過檢測控制引腳上的電平信號來判別當前與主機的接口模式,這樣給讀寫設(shè)備的開發(fā)帶來了極大的可選擇性,。與判別接口模式有關(guān)的兩個引腳為IIC和EA:當IIC引腳拉高時,,表示當前模式為IIC方式,若IIC引腳為低電平時,,再通過EA引腳電平來區(qū)分,,EA為高表示SPI模式,為低則表示UART方式,。
本設(shè)計中采用了四線制SPI,通信中的時鐘信號由MCU產(chǎn)生,,MFRC522芯片設(shè)置為從機模式,接收來自MCU的數(shù)據(jù)以設(shè)置寄存器,并負責射頻接口通信中相關(guān)數(shù)據(jù)的收發(fā),。數(shù)據(jù)的傳輸路徑為:MCU通過MOSI線將數(shù)據(jù)發(fā)到MFRC522,,MFRC522通過MISO線發(fā)回至MCU,并且兩根線上的每一個字節(jié)都是先發(fā)高位,。兩根數(shù)據(jù)線上的信號電平在時鐘信號必須保證上升沿穩(wěn)定,,在下降沿才允許改變,可以連續(xù)讀寫N個字節(jié),。此外,,MCU向MFRC522發(fā)送的第一個字節(jié)定義操作模式和所要操作的寄存器地址,最高位代表操作模式,,1表示讀,,0表示寫,中間六位(bit1~bit6)表示地址,,最低位預留不用,,默認為0。
因為MSP430F149的SPI接口個數(shù)有限,,在此通過軟件模擬SPI方式,,不僅增加了MSP430F149的SPI接口數(shù)量,更充分利用了MSP430F149本身豐富的I/O口,。在此模式下,,IIC引腳為低電平,EA引腳為高電平,相應的SDA和D7,、D6、D5分別用作NSS,、MISO,、MOSI、SCK,。接口原理如圖2,。
讀操作(主機最先發(fā)送字節(jié)的最高位為1): 首先將NSS拉低(使能通信),將要讀出數(shù)據(jù)的MFRC522地址字節(jié)按數(shù)據(jù)表規(guī)定的格式進行編碼,;然后循環(huán)8 次,,按編碼后的字節(jié)逐位將MOSI線上數(shù)據(jù)置一或清零;地址發(fā)出去之后,,MFRC522收到讀命令,,會將對應地址值通過MISO發(fā)回主機,所以主機只需循環(huán)8 次,,把MISO上的數(shù)據(jù)逐位讀出,,存入臨時變量中。最后將NSS拉高,一字節(jié)的讀操作完成,。
寫操作(主機最先發(fā)送字節(jié)的最高位為 0):同樣首先將NSS拉低,,將目標地址字節(jié)按數(shù)據(jù)表中規(guī)定的格式進行編碼;然后循環(huán)8 次將地址發(fā)送出去后,,再進行8次循環(huán),,將所需寫入的數(shù)據(jù)仍通過MOSI發(fā)送過去,MFRC522對應地址的字節(jié)數(shù)據(jù)即可實現(xiàn)更新,。
當有多個數(shù)據(jù)要傳送時,,數(shù)據(jù)是通過FIFO緩存來處理的(見圖1),即不斷向FIFO數(shù)據(jù)寄存器進行讀寫操作,。MFRC522具有64 B的FIFO緩存器,,專門用來緩存主機與MFRC522內(nèi)部狀態(tài)機之間的輸入和輸出數(shù)據(jù)流,F(xiàn)IFO緩存器數(shù)據(jù)輸入輸出總線是與FIFO數(shù)據(jù)寄存器相連的,,每寫一個數(shù)據(jù)到這個寄存器都會存1 B到FIFO緩存器,,并使其寫指針加一;相反,,從這個寄存器讀數(shù)據(jù)能得到讀指針所在處的數(shù)據(jù),,并且使讀指針減小,寫指針和讀指針之間的距離就是FIFO緩沖器中的數(shù)據(jù)字節(jié)數(shù),,反映在相應的寄存器中,。此外,可以通過重設(shè)FIFO 緩存器的指針來清空緩沖器,。
4 MFRC522天線模塊設(shè)計
13.56 MHz射頻天線及其匹配電路共有三塊:天線線圈,、匹配電路(LC諧振電路)和EMC濾波電路[2]。在天線的匹配設(shè)計中必須保證產(chǎn)生一個盡可能強的電磁場,,以使卡片能夠獲得足夠的能量給自己供電,,而且考慮到調(diào)諧電路的帶通特性,天線的輸出能量必須保證足夠的通帶范圍來傳送調(diào)制后的信號,。
天線線圈就是一個特定諧振頻率的LC電路,,其輸入阻抗是輸入端信號電壓與信號電流之比,輸入阻抗具有電感分量和電抗分量,,電抗分量的存在會減少天線從饋線對信號功率的提取,,因此在設(shè)計中應當盡可能使電抗分量為零,即讓天線表現(xiàn)出純電阻特性,,這時電路實現(xiàn)諧振[4],,諧振頻率計算公式為:
式中:ω=22πf;La為天線電感,;Q為擬調(diào)整值(此處為30),;Ra天線電阻,。
如圖3所示,在發(fā)送部分,引腳TX1和TX2上發(fā)送的信號是由包絡(luò)信號調(diào)制的13.56 MHz載波能量,,經(jīng)過L0和C0組成的EMC濾波電路以及C1,、C2、Rq(其中Rq只在Q值太高的情況下需要)組成的匹配電路,,就可直接用來驅(qū)動天線,,TX1和TX2上的信號可通過寄存器TxSelReg來設(shè)置,系統(tǒng)默認為內(nèi)部米勒脈沖編碼后的調(diào)制信號,。調(diào)制系數(shù)可以通過調(diào)整驅(qū)動器的阻抗(通過設(shè)置寄存器CWGsPReg,、ModGsPReg、GsNReg來實現(xiàn))來設(shè)置,,同樣采用默認值即可,。在接收部分,使用R2和C4以保證Rx引腳的直流輸入電壓保持在VMID,,R1和C3的作用是調(diào)整Rx引腳的交流輸入電壓,。
5 軟件流程
系統(tǒng)初始化完成后,就進入讀卡器與卡片的應用操作準備階段,,此期間要進行尋卡,、防碰撞、選卡以及密碼校驗[7],,密碼校驗通過后再根據(jù)應用操作代碼進行相應的操作:讀卡片塊數(shù)據(jù),、向卡片的某塊寫數(shù)據(jù)、充值扣款,、數(shù)據(jù)備份,、或是使卡進入停機狀態(tài)。流程圖如圖4所示,。
參考文獻
[1] 紀震.電子標簽原理與應用[M].西安:西安電子科技大學出版社,,2006.
[2] NXP Inc. MFRC522 Contactless Reader IC product data sheet (Rev.3.2) [EB/OL]. 2007. http://www.nxp.com.
[3] Texas Instruments Inc.MSP430x14x Mixed Signal Microcontroller [EB/OL].2004. http://www.ti.com.
[4] NUMMELA J, UKKONEN L, SYDANHEIMO L, et al.13.56 MHz RFID antenna for cell phone integrated reader[J]. Antennas and Propagation International Symposium 2007 IEEE, 2007(6):1088-1091.
[5] NXP Inc.Directly Matched Antenna Design (Rev.2.05) [EB/OL].2006. http://www.nxp.com.
[6] NXP Inc.Mifare ISO/IEC 14443 PICC Selection (Rev.1.0)[EB/OL].2006.http:// www.nxp.com.