高性價比的MIFARE卡讀寫模塊的設計
文章出處:http://hz-huyue.com 作者:微計算機信息 人氣: 發表時間:2011年09月18日
在IC卡讀寫機具領域中,可以降低成本的部分主要是讀寫機具的核心---讀寫模塊。接觸式IC卡由于卡座與卡上芯片接觸點易磨損,而且不耐臟、不防水、易腐蝕,等缺點正逐漸被非接觸式IC卡所替代。非接觸式IC卡是根據射頻電磁感應原理產生的,它的讀寫操作只需將卡片放在讀寫器附近一定的距離之內就能實現數據交換,無需任何接觸,使用中非常方便、快捷,不易損壞,因此,在公交、門禁、校園、企事業人事管理、娛樂場所等方面得到廣泛的應用[2]。非接觸IC卡又有高頻與低頻之分,由于低頻信號很容易受外部信號干擾,經常會讀錯卡號或將卡寫成零。高頻卡則不易受外界干擾,讀寫穩定性要遠遠高于低頻卡,但高頻讀寫模塊的價格也高于低頻卡。PHILIPS公司的Mifare卡是國內使用較為廣泛的一種高頻卡,但PHILIPS進口原裝的Mifare卡讀寫模塊價格昂貴,使得讀寫機具造價具高不下。筆者使用MF RC500芯片如自行開發的Mifare卡讀寫模塊其性能與進口模塊相當,成本卻遠遠低于進口模塊。
一、基于MF RC500開發的高性價比的Mifare卡讀寫模塊
MF RC500主要應用于13.56MHz非接觸式IC卡的讀寫。該芯片利用了先進的調制和解調概念,完全集成了在13.56MHz下所有類型的被動非接觸式通信方式和協議。MF RC500支持ISO14443A(13.56MHz 電子標簽標準)所有的層。內部的發送器部分不需要增加有源電路就能夠直接驅動操作近距離的天線(可達10cm)。接收器部分提供一個可靠而有效的解調和解碼電路,用于ISO14443A兼容的應答器信號。 數字部分處理ISO14443A幀和錯誤檢測。此外,它還支持快速CRYPTO1加密算法用于驗證MIFARE系列產品。方便的并行接口可直接連接到任何8位微處理器,這樣給讀卡器/終端的設計提供了極大的靈活性。圖2給出了MFRC500的外圍電路的原理圖。
二、MF RC500各引腳功能簡介
1、振蕩器
名 稱 |
類 型 |
功 能 |
OSCIN |
輸入 |
晶振輸入端 |
OSCOUT |
輸出 |
晶振輸出端 |
MFRC500的1腳OSCIN和2腳OSCOUT分別為晶振輸入端和晶振輸出端。13.56MHz晶振通過快速片內緩沖區連接到OSCIN和OSCOUT。如果器件采用外部時鐘,可從OSCIN輸入。
2、天線
非接觸式天線使用以下4個管腳:
名 稱 |
類 型 |
功 能 |
TX1, TX2 |
輸出緩沖 |
天線驅動器 |
VMID |
模擬 |
參考電壓 |
RX |
輸入模擬 |
天線輸入信號 |
為了驅動天線,MF RC500通過TX1和TX2提供13.56MHz的能量載波。根據寄存器的設定對發送數據進行調制得到發送的信號。該卡采用RF場的負載調制進行響應。天線拾取的信號經過天線匹配電路送到RX腳。MF RC500內部接收器對信號進行檢測和解調并根據寄存器的設定進行處理。然后數據發送到并行接口由微控制器進行讀取。天線部分電路圖如(圖3)。
3、電源
器件MF RC500對各部分使用單獨電源供電,以實現在EMC特性和信號解耦方面達到最佳性能。MF RC500具有出色的RF性能并且模擬和數字部分可適應不同的操作電壓。
名 稱 |
類 型 |
功 能 |
TVDD |
電源 |
發送器電源電壓 |
VSS |
電源 |
發送器電源地 |
AVDD |
電源 |
模擬部分電源電壓 |
AGND |
電源 |
模擬部分電源地 |
DVDD |
電源 |
數字部分電源電壓 |
DVSS |
電源 |
數字部分電源地 |
4、輔助管腳 MF RC500的第27腳AUX為輔助管腳可選擇內部信號驅動該管腳。它可作為設計和測試之用。
5、復位管腳 RSTPD為復位管腳,該管腳禁止了內部電流源和時鐘并使MF RC500從微控制器總線接口脫開。如果RST釋放,MF RC500則執行上電時序。
6、串行信號開關串行信號
開關用于橋接芯片數字電路和模擬電路兩部分,兩部分電路的輸入/ 輸出和外部應用所需的輸入/ 輸出可以靈活組合。這種組合可借助MFIN和MFOUT引腳和MF RC500內部相關寄存器來控制實現.。
名 稱 |
類 型 |
功 能 |
MFIN |
帶施密特觸發器的輸入 |
MIFARE接口輸入 |
MFOUT |
輸出 |
MIFARE接口輸出 |
7、并行接口
下面列出的16個管腳用于控制并行接口:
名 稱 |
類 型 |
功 能 |
D0 … D7 |
帶施密特觸發器的I/O |
雙向數據總線 |
A0 … A2 |
帶施密特觸發器的I/O |
地址線 |
NWR/RNW |
帶施密特觸發器的I/O |
寫禁止/只讀 |
NRD/NDS |
帶施密特觸發器的I/O |
讀禁止/數據選通禁止 |
NCS |
帶施密特觸發器的I/O |
片選禁止 |
ALE |
帶施密特觸發器的I/O |
地址鎖存使能 |
IRQ |
輸出 |
中斷請求 |
三、MF RC500與89C51的接口電路如(圖4):
MF RC500支持不同的微控制器接口。一個智能的自動檢測邏輯可以自動適應系統總線的并行接口。使用信號NCS選擇芯片。要使用獨立的地址和數據總線與微控制器相連,必須將ALE腳連接到DVDD。若使用復用的地址和數據總線與微控制器接口,必須將ALE腳連接到微控制器的ALE信號。 若要使用RNW和NDS(取代NWR和NRD)與微控制器相連,微控制器的RNW必須連接到管腳NWR,而NDS必須連接到NRD。由圖4可以看出,本系統采用中斷(INT1)工作模式,即MCU 利用MF RC500提供中斷信息對其進行控制。另外,根據系統的需要,可以采用查詢方式對MF RC500 進行操作。對Mifare卡操作流程由以下幾個部分組成:
1、復位請求
扇區號 |
塊號 |
內容 |
塊地址 |
扇區0 |
0塊 |
廠商代碼 |
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卡片處在卡處讀寫器的天線的工作范圍之內時,程序員控制讀寫器向卡片發出復位命令??ㄆ邮盏胶?,將0區0塊中的廠商代碼(作為不同卡型的區分)送給讀寫端Mifare卡(以M1卡為例)內存儲結構如下表[5]。建立卡片與讀寫器的第一步通信聯絡。
2.反碰撞操作如果有多張Mifare卡片處在卡片讀寫器的天線的工作范圍之內時,模塊將首先與每一張卡片進行通信,取得每一張卡片的系列號。由于每一張Mifare卡片都具有其唯一的序列號,決不會相同,因此根據卡片的序列號來保證一次只對一張卡操作。
3、卡選擇操作完成了上述二個步驟之后,讀寫模塊必須對卡片進行選擇操作。既與被選中的卡進行一次數據交換,當某卡被選中后該卡則將其數據容量傳送給讀寫端。
4、認證操作經過上述三個步驟,在確認已經選擇了一張卡片時,由程序控制模塊在對卡進行讀寫操作之前,必須對卡片上已經設置的密碼進行認證,Mifare 類產品中加密算法的實現被稱之為CRYPT01 , 它是一種密鑰長度為48bit 的流密碼。要訪問一個Mifare 類卡的數據, 首先要完成認證。如果匹配,才允許進一步的讀寫操作。
5、讀寫操作對卡的最后操作是讀、寫、增值、減值、存儲和傳送等操作。