基于MF RC522的Mifare射頻卡讀寫模塊開發
IC卡按卡與外界數據傳送的形式不同,分為接觸式 IC卡和非接觸式 IC卡。接觸式 IC卡通過觸點從讀寫模塊獲取能量和交換數據;非接觸式 IC卡通過射頻感應從讀寫模塊獲取能量和交換數據,所以非接觸式 IC卡又叫射頻卡。與傳統的接觸式 IC卡、磁卡相比較,利用射頻識別技術(radio frequency identification)開發的非接觸式 IC識別器,在系統壽命、防監聽、防解密等性能上具有很大的優勢。目前我國引進的射頻 IC卡主要有 Philips公司的 Mifare卡和 ATMEL公司的 Temic卡。而PHILIPS公司的 Mifare卡現在是市場的主流產品,應用越來越廣。本文介紹的是利用基于 ARM7 CPU 的 LPC2132、MF RC522、Mifare卡等構建射頻識別模塊的設計,并在該讀寫模塊基礎上能很容易地開發出適用于各方面的自動識別系統。
1 MF RC522介紹
MF RC522是 Philips公司針對三表最新推出的一款非接觸式低功耗讀寫基站芯片,它是應用于 13.56MHz非接觸式通信中高集成讀卡芯片系列中的一員。該讀卡芯片系列利用了先進的調制和解調概念,完全集成了 13.56MHz下所有類型的被動非接觸式通讀方式和協議。MF RC522支持 ISO14443A所有的層,傳輸速度最高達424kbps,內部的發送器部分不需要增加有源電路就能夠直接驅動近距離天線,接收部分提供了一個堅固而有效的解調和解碼電路,用于接收 ISO14443A兼容的應答信號。數字處理部分提供奇偶和 CRC檢測功能。RC522具有三種接口方式可方便地與任何 MCU通訊:SPI模式、UART模式、I2C模式。甚至可通過RS232或 RS485通訊方式直接與 PC機相聯,給終端設計提供了前所未有的靈活性。
2 系統組成
如圖 1所示,系統主要由 MCU LPC2132、MF RC522、人機接口以及通信模塊組成。系統的工作方式主要是,先由 MCU控制MF RC522驅動天線對 Mifare卡也就是應答器(PICC)進行讀寫操作。然后,根據所得的數據對其它接口器件,如人機接口部件、LPC2132內部的存儲器、時鐘芯片等進行響應操作。最后,與 PC機之間進行通信把數據傳給上位機。

這里MCU 選用基于ARM7的LPC2132大大簡化了系統硬件電路的設計。除了具有高性能、開發簡單等優點外,LPC2132集成的看門狗功能可以保證系統在一定的時間內如果工作不正常時將 MCU復位使其重新工作 [1]。另一方面LPC2132內部的SPI 、I2C 和UART通訊接口可以方便地和 MF RC522實現多種通訊方式,滿足了各種情況的需要。再者,2132還擁有滿足系統存儲所需足夠大小的內部Flash,而無需外接存儲設備。
通訊模塊負責上位機(PC端)與下位機(讀寫模塊)的通訊,本系統采用了兩種方式:一種是 RS232通訊,它應用于 PC機對一臺閱讀器的操作;一種是 RS485通訊,它應用于 PC機對多臺閱讀器的操作。兩種通訊方式都可將 PC機的命令傳達給讀寫模塊。
人機接口使系統具有良好的人機交互界面。本系統具有液晶顯示、鍵盤、語音輸出等部件。應用者可通過液晶顯示或通過語音輸出判別卡片的號碼、基本個人信息、以及卡片中的余額是否正確。
3 系統工作原理
首先,MF RC522 射頻卡讀寫模塊(下面簡稱讀寫模塊)通過天線向射頻卡(非接觸卡)發送無線載波信號,這些信號經過射頻卡的天線耦合接收后,先進行波形轉換,然后對其整流濾波,由電壓調節模塊對電壓進行進一步的處理,包括穩壓等,最終輸出到射頻卡上的各級電路上。 此時,非接觸卡接收到載波信號后就通過本卡片上的調制/解調電路對載波信號進行調制/解調,處理后的信號就送到卡片上的控制器以供控制及處理[2]。非接觸卡處理好數據后,也通過它本身的天線向 MF RC522返回載波信號,MF RC522也通過自身的調制/解調電路來對這些信號進行處理。這些返回的載波信號的頻率與 MF RC522發出的載波信號的頻率是一致的。通過這樣一個通訊回路,MF RC522就可以對非接觸卡的內容進行讀寫操作。這里需要說明的是:非接觸型 IC卡本身是無源體, 當讀寫器對卡進行讀寫操作時, 讀寫模塊發出的信號由兩部分疊加組成:一部分是電源信號,該信號由卡接收后, 與其本身的L/C產生諧振, 產生一個瞬間能量來供給芯片工作。另一部分則是結合數據信號,指揮芯片完成數據、修改、存儲等,并返回給讀寫模塊。
如上所述可以看出,讀寫模塊的性能與天線的參數有著直接的關系。天線的性能高低決定著讀卡的距離遠近。因此,下面將就影響天線性能的參數做一些探討。
4 讀寫模塊的天線設計
電感耦合射頻識別系統的讀寫模塊中的天線用于產生交變磁通量,而交變磁通量用于向 PICC提供電源并在讀寫模塊與 PICC之間傳送信息。因此,天線的構造有以下幾個基本要求:
1)使天線線圈的電流最大,用于產生最大的磁通量峰值;
2)功率匹配,最大程度地利用產生交變磁通量的可用能量;
3)足夠的帶寬,無失真地傳送用數據調制的載波信號。
在天線設計中,品質因數 Q是一個非常重要的參數。對于電感耦合式射頻識別系統的天線,其特征值就是它的諧振頻率和品質因數的值。較高的品質因數的值會使天線線圈中的電流強度大些,由此改善對 PICC的功率傳送。與之相反,天線的傳輸帶寬剛好與品質因數值成反比例變化,選擇的品質因數過高會導致帶寬縮小從而明顯地減弱 PICC接收到的調制邊帶。計算品質因數的公式如下:

式(1)中的 f是工作頻率,Lcoil是天線的尺寸,Rcoil是天線的半徑。通過品質因數可以很容易計算出天線的帶寬 B:
B=f/Q (2)
從式(2)中可以看出,天線的傳輸帶寬與品質因數成反比關系。因此,過高的品質因數會導致帶寬縮小。從而減弱閱讀器的調制邊帶,會導致讀寫模塊無法與卡通信。一般系統的最佳品質因數為 10~30,最大值不能超過 60。如果太高,卡將無法準確地識別復位響應。
5 MF RC522與 LPC2132的部分接口電路
MF RC522與 LPC2132的硬件電路連接如圖 2所示,在本系統中這兩者之間的通訊采用的是 SPI方式[3],當然也可選擇 I2C、或 UART方式,可以根據不同情況進行選擇。在圖 2中省略了一些 LPC2132沒有用到的引腳和那些相對簡單的電源、外部晶振等電路。

6 對 Mifarel卡操作的軟件設計
LPC2132首先對 MF RC522進行初始化配置,寄存器設置好后 MF RC522就可以接收 MCU的命令執行操作,實現與 Mifare 卡片通信了。Mifare卡可以根據接收到的指令進行相應操作。但是 LPC2132并不是通過簡單的指令就可以讀寫 IC卡片,需要一系列的操作才能完成通信。主要包括:(1)請求喚醒;(2)防重疊(防止多張卡片重疊造成的數據錯誤);(3)選擇卡片;(4)密碼認證;(5)讀寫操作。 LPC2132對 Mifare卡片的這一系列操作流程必須按固定的順序進行。當有 Mifare卡進入到射頻天線的有效范圍,讀卡程序將開始進行上述一系列的操作[4],程序流程如圖 3所示。

7 結束語
本文作者創新點是:將高性能的讀卡芯片 MF RC522和具有高軟、硬件集成度的 LPC2132 MCU結合在了一起使用。系統省去了外部存儲設備和看門狗等復雜外接電路。使得整個系統簡潔、明了。MF RC522可以通過 SPI、I2C、UART三種方式與 MCU進行通訊,而 LPC2132本身正好完全集成了這三種接口。且 LPC2132對這些內部功能在軟件編程上也提供了開發包。總之,M F RC522和 LPC2132在硬件和軟件上都實現了完美的結合。
以上介紹了基于 MF RC522模組的 Mifare射頻卡識別系統的組成、工作原理及其設計方法。實驗表明,由此方法設計的電路運行穩定,讀寫數據準確且具有非常短的交換時間。