PHILIPS MFRC500非接觸式IC卡讀寫模塊的應用開發
文章出處:http://hz-huyue.com 作者:山東在學控制科學與工程學院 張俊杰 喬誼正 人氣: 發表時間:2011年10月27日
摘要:本文介紹了PHILIPS公司的MF1ICS50非接觸式IC卡的內部結構、工作原理及基于基站芯片MFRC500的嵌入式讀寫模塊的軟硬件設計。
關鍵詞:IC卡;非接觸式;嵌入式MF1卡RC500
引言
近幾年來,隨著IC卡中非接觸式射頻卡的高度安全保密性、使用簡單等特點,使之在各領域的應用中異軍突起,成為當今IC智能卡中的流行寵物,應用前景十分廣闊。我們在深入了解了PHILIPS公司的MF1ICS50非接觸式IC卡和讀卡設備的核心模塊MFRC500的工作原理后,開發出了MF1卡讀寫模塊。本讀寫模塊能完成對MF1卡所有讀寫及控制操作,并且還可以方便的嵌入到其他系統(如:考勤,門禁)中,受控于主控模塊,成為用戶系統的一部分。用戶利用本模塊可以方便的構成自己的智能卡應用產品。
內部結構及工作原理
MF1卡系統的核心是PHILIPS公司的MIFARE1ICS50系列晶片,該技術已定為國際標準:ISO/IEC14443TYPEA。目前許多較大的IC卡卡片制造商均以MIFARE技術為標準。
MF1卡中包含一塊ASIC微晶片和一個高頻天線,其基本工作原理是:讀寫器中的MIFARE基站向MIFARE卡發一組固定頻率(13.56MHz)的電磁波,卡片內有一個LC串聯諧振電路,其頻率與基站發射的頻率相同,在電磁波的激勵下,LC諧振電路產生共振,使卡片內具有電荷,當所積累的電荷達到2V時,卡片中芯片將卡內數據發射出去或接收基站對卡片的操作。
MF1的框圖如圖1,整個卡片包含了兩個部分,RF射頻接口電路和數字電路部分。
圖1 MF11CS50的組成框圖(略)
RF射頻接口電路
在RF射頻接口電路中,主要包括有波形轉換模塊。它可將卡片讀寫器上的13.56MHz的無線電調制頻率接收,一方面送調制/解調模塊,另一方面進行波形轉換,將正弦波轉換為方波,然后對其整流濾波,由電壓調節模塊對電壓進行進一步的處理,包括穩壓等,最終將輸出電壓供給卡片上的各電路。
在數字電路部分模塊中
ATR模塊
當一張MF1卡片處在卡片讀寫器的天線工作范圍之內時,程序員控制讀寫器向卡片發出RequestAll(或RequestStd)命令后,卡片的ATR將啟動,將卡片Block0中的卡片類型(TagType)號,共2個字節傳送給讀寫器,建立卡片與讀寫器的第一步通信聯絡。如果不進行第一步的ATR工作,讀寫器對卡片的其他操作(Read/Write等)將不會進行。卡片的類型(TagType)號共2個字節,可能為:0004H。
AntiCollision模塊
如果有多張MF1卡片處在卡片讀寫器天線的工作范圍之內,AntiCollision模塊的防重疊功能將啟動工作。在程序員控制下的卡片讀寫器將會首先與每一張卡片進行通信,取得每一張卡片的序列號。卡片讀寫器中的AntiCollision防重疊功能配合卡片上的防重疊功能模塊,由程序員來控制讀寫器,根據卡片的序列號來選定一張卡片。被選中的卡片將直接與讀寫器進行數據交換,未被選擇的卡片處于等待狀態,隨時準備與卡片讀寫器進行通信。AntiCollision模塊(防重疊功能)啟動工作時,卡片讀寫器將得到卡片的序列號。序列號存儲在卡片的Block0中,共有5個字節,實際有用的為4個字節,另一個字節為序列號的校驗字節。序列號中實際有用的4個字節,可能為:773B72A9。
Select Application 模塊
當卡片與讀寫器完成了上述的二個步驟,程序員控制的讀寫器要想對卡片進行讀寫操作,必須對卡片進行"Select"操作,使卡片真正地被選中。被選中的卡片將卡片上存儲在Block0中的卡片容量"Size"字節傳送給讀寫器。當讀寫器收到這一字節后,即可對卡片進行深一步的操作。例如,可以進行密碼驗證等。讀寫器收到的"Size"字節可能為:88H。
認證及存取控制模塊
經過上述三個步驟,確認已經選擇了一張卡片時,程序員對卡片進行讀寫操作之前,必須對卡片上已經設置的密碼進行三級認證,如果匹配,則允許進一步的Read/Write操作。MF1卡片上有16個扇區,每個扇區都可分別設置各自的密碼,互不干涉。因此每個扇區可獨立地應用于一個應用場合。整個卡片可以設計成"一卡通"形式來應用。
控制及算術運算單元
這一單元是整個卡片的控制中心,是卡片的"頭腦"。它主要進行對整個卡片的各個單位進行微操作控制,協調卡片的各個步驟;同時它還對各種收/發的數據進行算術運算處理,遞增/遞減處理,CRC運算處理等,是卡片中內建的中央微處理機(MCU)單元。
數據加密單元
該單元完成對數據的加密處理及密碼保護。
存儲器及其接口電路
該單元主要用于存儲數據,EEPROM中的數據在卡片失掉電源后(卡片離開讀寫器天線的有效工作范圍內)仍將保持,用戶所要存儲的數據存放在該單元中。MF1卡片中的這一單元容量為8196bit(1Kbyte),分為16個扇區,每個扇區由4塊(塊0、塊1、塊2、塊3)組成,(我們也將16個扇區的64個塊按絕對地址編號為0~63)。第0扇區的塊0(即絕對地址0塊),它用于存放廠商代碼,已經固化,不可更改。
每個扇區的塊0、塊1、塊2為數據塊,可用于存貯數據。每個扇區的塊3為控制塊,包括了密碼A、存取控制、密碼B。具體結構如下:
每個扇區的密碼和存取控制都是獨立的,可以根據實際需要設定各自的密碼及存取控制。
存取控制為4個字節,共32位,扇區中的每個塊(包括數據塊和控制塊)的存取條件是由密碼和存取控制共同決定的。三個控制位以正和反兩種形式存儲于存取控制字節中,決定了該塊的訪問權限(如:進行減值操作必須驗證KEYA,進行加值操作必須驗證KEYB,等等)。
讀寫模塊的結構及工作原理
模塊的核心部份包括一個控制用微處理器和一個MIFARE基站芯片。它能獨立完成對MIFARE卡的所有操作,還具有與用戶主系統的串行通信能力,可根據用戶系統的命令完成對MIFARE卡的讀寫操作,并將所得數據返回給用戶系統。這個用戶系統可以是一個主控板或PC機。
模塊硬件主要由中央微處理器(89C52)、MIFARE基站芯片、高頻電路、模塊天線、RS232通信電路、復位電路、LED狀態顯示和喇叭驅動電路等組成。
寫模塊的核心是PHILIPS公司生產的讀寫卡專用芯片MFRC500。RC500符合ISO14443A,外接天線后讀卡距離可達到10cm。RC500與CPU接口非常簡單,上電或復位后能自動監測與CPU的接口方式,我們采用地址數據總線復用方式。具體見原理圖4。
圖3 硬件結構框(略)
圖4 CPU與RC500接口電路原理圖(略)
RC500內部有8個寄存器頁,每頁有8個寄存器,每個寄存器有8位數據。這些寄存器可統一編址(在我們的系統中為0x00--0x3F),CPU將這些寄存器作為外部RAM進行操作。例如,CPU需要讓RC500執行某個命令(如:Transmit)時,把此命令的代碼(0x1a)寫入Command寄存器可以了。
RC500與卡片的通信是通過天線發送一些指令代碼來完成,并且要按照特定的通訊流程,具體的通信流程如下圖:
CPU對卡片的操作不是簡單的一條指令所能完成的,其中必須有對RC500硬件內部寄存器的設置。例如對卡片進行讀(READ)操作,程序員必須對RC500內部的BitPhase、Rxthreshold、TimerControl、InterruptEn、InterruptRq等寄存器進行配置,還要讀PrimaryStatus、SecondaryStatus等寄存器的狀態,對最終讀得的數據還必須進行校驗。一般的操作步驟如下:寄存器初始化,把要發送的數據(如:Read=0x30)放到RC500內部的FIFO(先入先出)寄存器中,然后把命令代碼(如;Transceive=0x1e)寫到Command寄存器。RC500便會執行命令,按照特定格式把數據發出去,然后等待卡片返回的數據(也放到FIFO中),CPU從FIFO中讀走數據,完成操作。
在讀寫模塊主程序中,標準配置以RS232方式與主控模塊進行通信。一條指令包括命令碼、命令塊長度、命令塊、異或校驗幾部分。主程序運行時循環等待主控模塊的指令,有指令收到,便跳出循環執行該指令。這樣即使用戶不清楚MFRC500和MF1卡的工作原理,也可將讀寫模塊方便的嵌入到自己的系統中。
圖5 RC500與MF1卡的通信流程圖(略)
此外,我們還根據用戶需要有ABA,WIG26等其它串行輸出方式。
讀寫模塊應用實例
該讀寫模塊已經成功的應用到山東浪潮瀚海電子公司開發的考勤、門禁、售飯等系統中。與磁卡、只讀射頻卡(EM卡)組成的系統相比,系統性能大大改善,并且為"一卡通"的實現提供了必備條件。圖6為一個典型的網絡門禁控制系統。
圖6 MF1卡讀寫模塊在門禁系統的應用(略)
結束語
IC卡以其高度的信息集成及安全性已經融入當今信息技術的主流,越來越受到人們的青睞。本文介紹了PHILIPS公司的MFICS50非接觸式IC卡的內部結構和工作原理,以及基于MFRC500的嵌入式讀寫模塊的軟硬件設計。此讀寫模塊的使用使復雜的IC卡技術變得非常簡單,對非接觸式智能卡的推廣有重要意義。