高性?xún)r(jià)比的MIFARE卡讀寫(xiě)模塊的設計
文章出處:http://psychicreadingswithdeb.com 作者:微計算機信息 人氣: 發(fā)表時(shí)間:2011年09月18日
在IC卡讀寫(xiě)機具領(lǐng)域中,可以降低成本的部分主要是讀寫(xiě)機具的核心---讀寫(xiě)模塊。接觸式IC卡由于卡座與卡上芯片接觸點(diǎn)易磨損,而且不耐臟、不防水、易腐蝕,等缺點(diǎn)正逐漸被非接觸式IC卡所替代。非接觸式IC卡是根據射頻電磁感應原理產(chǎn)生的,它的讀寫(xiě)操作只需將卡片放在讀寫(xiě)器附近一定的距離之內就能實(shí)現數據交換,無(wú)需任何接觸,使用中非常方便、快捷,不易損壞,因此,在公交、門(mén)禁、校園、企事業(yè)人事管理、娛樂(lè )場(chǎng)所等方面得到廣泛的應用[2]。非接觸IC卡又有高頻與低頻之分,由于低頻信號很容易受外部信號干擾,經(jīng)常會(huì )讀錯卡號或將卡寫(xiě)成零。高頻卡則不易受外界干擾,讀寫(xiě)穩定性要遠遠高于低頻卡,但高頻讀寫(xiě)模塊的價(jià)格也高于低頻卡。PHILIPS公司的Mifare卡是國內使用較為廣泛的一種高頻卡,但PHILIPS進(jìn)口原裝的Mifare卡讀寫(xiě)模塊價(jià)格昂貴,使得讀寫(xiě)機具造價(jià)具高不下。筆者使用MF RC500芯片如自行開(kāi)發(fā)的Mifare卡讀寫(xiě)模塊其性能與進(jìn)口模塊相當,成本卻遠遠低于進(jìn)口模塊。
一、基于MF RC500開(kāi)發(fā)的高性?xún)r(jià)比的Mifare卡讀寫(xiě)模塊
MF RC500主要應用于13.56MHz非接觸式IC卡的讀寫(xiě)。該芯片利用了先進(jìn)的調制和解調概念,完全集成了在13.56MHz下所有類(lèi)型的被動(dòng)非接觸式通信方式和協(xié)議。MF RC500支持ISO14443A(13.56MHz 電子標簽標準)所有的層。內部的發(fā)送器部分不需要增加有源電路就能夠直接驅動(dòng)操作近距離的天線(xiàn)(可達10cm)。接收器部分提供一個(gè)可靠而有效的解調和解碼電路,用于ISO14443A兼容的應答器信號。 數字部分處理ISO14443A幀和錯誤檢測。此外,它還支持快速CRYPTO1加密算法用于驗證MIFARE系列產(chǎn)品。方便的并行接口可直接連接到任何8位微處理器,這樣給讀卡器/終端的設計提供了極大的靈活性。圖2給出了MFRC500的外圍電路的原理圖。

二、MF RC500各引腳功能簡(jiǎn)介
1、振蕩器
名 稱(chēng) |
類(lèi) 型 |
功 能 |
OSCIN |
輸入 |
晶振輸入端 |
OSCOUT |
輸出 |
晶振輸出端 |
MFRC500的1腳OSCIN和2腳OSCOUT分別為晶振輸入端和晶振輸出端。13.56MHz晶振通過(guò)快速片內緩沖區連接到OSCIN和OSCOUT。如果器件采用外部時(shí)鐘,可從OSCIN輸入。
2、天線(xiàn)
非接觸式天線(xiàn)使用以下4個(gè)管腳:
名 稱(chēng) |
類(lèi) 型 |
功 能 |
TX1, TX2 |
輸出緩沖 |
天線(xiàn)驅動(dòng)器 |
VMID |
模擬 |
參考電壓 |
RX |
輸入模擬 |
天線(xiàn)輸入信號 |
為了驅動(dòng)天線(xiàn),MF RC500通過(guò)TX1和TX2提供13.56MHz的能量載波。根據寄存器的設定對發(fā)送數據進(jìn)行調制得到發(fā)送的信號。該卡采用RF場(chǎng)的負載調制進(jìn)行響應。天線(xiàn)拾取的信號經(jīng)過(guò)天線(xiàn)匹配電路送到RX腳。MF RC500內部接收器對信號進(jìn)行檢測和解調并根據寄存器的設定進(jìn)行處理。然后數據發(fā)送到并行接口由微控制器進(jìn)行讀取。天線(xiàn)部分電路圖如(圖3)。
3、電源
器件MF RC500對各部分使用單獨電源供電,以實(shí)現在EMC特性和信號解耦方面達到最佳性能。MF RC500具有出色的RF性能并且模擬和數字部分可適應不同的操作電壓。
名 稱(chēng) |
類(lèi) 型 |
功 能 |
TVDD |
電源 |
發(fā)送器電源電壓 |
VSS |
電源 |
發(fā)送器電源地 |
AVDD |
電源 |
模擬部分電源電壓 |
AGND |
電源 |
模擬部分電源地 |
DVDD |
電源 |
數字部分電源電壓 |
DVSS |
電源 |
數字部分電源地 |
4、輔助管腳 MF RC500的第27腳AUX為輔助管腳可選擇內部信號驅動(dòng)該管腳。它可作為設計和測試之用。
5、復位管腳 RSTPD為復位管腳,該管腳禁止了內部電流源和時(shí)鐘并使MF RC500從微控制器總線(xiàn)接口脫開(kāi)。如果RST釋放,MF RC500則執行上電時(shí)序。
6、串行信號開(kāi)關(guān)串行信號
開(kāi)關(guān)用于橋接芯片數字電路和模擬電路兩部分,兩部分電路的輸入/ 輸出和外部應用所需的輸入/ 輸出可以靈活組合。這種組合可借助MFIN和MFOUT引腳和MF RC500內部相關(guān)寄存器來(lái)控制實(shí)現.。
名 稱(chēng) |
類(lèi) 型 |
功 能 |
MFIN |
帶施密特觸發(fā)器的輸入 |
MIFARE接口輸入 |
MFOUT |
輸出 |
MIFARE接口輸出 |
7、并行接口
下面列出的16個(gè)管腳用于控制并行接口:
名 稱(chēng) |
類(lèi) 型 |
功 能 |
D0 … D7 |
帶施密特觸發(fā)器的I/O |
雙向數據總線(xiàn) |
A0 … A2 |
帶施密特觸發(fā)器的I/O |
地址線(xiàn) |
NWR/RNW |
帶施密特觸發(fā)器的I/O |
寫(xiě)禁止/只讀 |
NRD/NDS |
帶施密特觸發(fā)器的I/O |
讀禁止/數據選通禁止 |
NCS |
帶施密特觸發(fā)器的I/O |
片選禁止 |
ALE |
帶施密特觸發(fā)器的I/O |
地址鎖存使能 |
IRQ |
輸出 |
中斷請求 |
三、MF RC500與89C51的接口電路如(圖4):

MF RC500支持不同的微控制器接口。一個(gè)智能的自動(dòng)檢測邏輯可以自動(dòng)適應系統總線(xiàn)的并行接口。使用信號NCS選擇芯片。要使用獨立的地址和數據總線(xiàn)與微控制器相連,必須將ALE腳連接到DVDD。若使用復用的地址和數據總線(xiàn)與微控制器接口,必須將ALE腳連接到微控制器的ALE信號。 若要使用RNW和NDS(取代NWR和NRD)與微控制器相連,微控制器的RNW必須連接到管腳NWR,而NDS必須連接到NRD。由圖4可以看出,本系統采用中斷(INT1)工作模式,即MCU 利用MF RC500提供中斷信息對其進(jìn)行控制。另外,根據系統的需要,可以采用查詢(xún)方式對MF RC500 進(jìn)行操作。對Mifare卡操作流程由以下幾個(gè)部分組成:
1、復位請求
扇區號 |
塊號 |
內容 |
塊地址 |
扇區0 |
0塊 |
廠(chǎng)商代碼 |
0 |
|
1塊 |
數據(16字節) |
1 |
|
2塊 |
數據(16字節) |
2 |
|
3塊 |
密碼區 |
3 |
扇區1 |
0塊 |
數據(16字節) |
4 |
|
1塊 |
數據(16字節) |
5 |
|
2塊 |
數據(16字節) |
6 |
|
3塊 |
密碼區 |
7 |
. |
|
: : : |
|
扇區15 |
0塊 |
數據(16字節) |
60 |
|
1塊 |
數據(16字節) |
61 |
|
2塊 |
數據(16字節) |
62 |
|
3塊 |
密碼區 |
63 |
當一張Mifare卡片處在卡處讀寫(xiě)器的天線(xiàn)的工作范圍之內時(shí),程序員控制讀寫(xiě)器向卡片發(fā)出復位命令??ㄆ邮盏胶?,將0區0塊中的廠(chǎng)商代碼(作為不同卡型的區分)送給讀寫(xiě)端Mifare卡(以M1卡為例)內存儲結構如下表[5]。建立卡片與讀寫(xiě)器的第一步通信聯(lián)絡(luò )。
2.反碰撞操作如果有多張Mifare卡片處在卡片讀寫(xiě)器的天線(xiàn)的工作范圍之內時(shí),模塊將首先與每一張卡片進(jìn)行通信,取得每一張卡片的系列號。由于每一張Mifare卡片都具有其唯一的序列號,決不會(huì )相同,因此根據卡片的序列號來(lái)保證一次只對一張卡操作。
3、卡選擇操作完成了上述二個(gè)步驟之后,讀寫(xiě)模塊必須對卡片進(jìn)行選擇操作。既與被選中的卡進(jìn)行一次數據交換,當某卡被選中后該卡則將其數據容量傳送給讀寫(xiě)端。
4、認證操作經(jīng)過(guò)上述三個(gè)步驟,在確認已經(jīng)選擇了一張卡片時(shí),由程序控制模塊在對卡進(jìn)行讀寫(xiě)操作之前,必須對卡片上已經(jīng)設置的密碼進(jìn)行認證,Mifare 類(lèi)產(chǎn)品中加密算法的實(shí)現被稱(chēng)之為CRYPT01 , 它是一種密鑰長(cháng)度為48bit 的流密碼。要訪(fǎng)問(wèn)一個(gè)Mifare 類(lèi)卡的數據, 首先要完成認證。如果匹配,才允許進(jìn)一步的讀寫(xiě)操作。
5、讀寫(xiě)操作對卡的最后操作是讀、寫(xiě)、增值、減值、存儲和傳送等操作。