Mifare1系列射頻卡讀卡器的開發(fā)
文章出處:http://m.luckydriving.com 作者:劉志平 趙國良 人氣: 發(fā)表時間:2011年10月23日
近幾年來,由于非接觸式IC智能射頻卡的高度安全保密性,使之在IC智能卡領域中異軍突起,成為當今IC智能卡中的流行寵物,應用前景十分廣闊.非接觸式智能卡讀寫系統(tǒng)是射頻技術中的重要組成部分,其實現(xiàn)原理為:由讀寫器向Mifare1卡,也就是射頻卡發(fā)射特定頻率的無線電磁波,當射頻卡靠近讀寫器時,受讀寫器發(fā)射的電磁波激勵,卡片內的IC諧振電路產生共振并且接收電磁波能量.當射頻卡接收到足夠的能量時,就將卡內存儲的識別資料以及其他數據以無線電波的方式傳輸到讀寫器
并且接受讀寫器對卡內數據的進一步操作。文中提出了一種Mifare1射頻卡讀卡器系統(tǒng)的設計,此系統(tǒng)是針對煤礦考勤而研制,目前已投人使用.該系統(tǒng)采用AT89S52單片機實現(xiàn)對射頻芯片MF RC500的控制,完成對Mifare1卡卡號的讀取以及數據的無線交換.下面首先給出系統(tǒng)的總體結構以及工作原理,然后從硬件和軟件設計2個方面對系統(tǒng)進行詳細討論和說明.
1 系統(tǒng)總體結構及工作原理
該讀卡器由AT89S52單片機、MF RC500芯片和外圍電路組成,與Mifare1卡的數據交換都是通過2者之間的射頻場來完成.系統(tǒng)結構如圖1所示.
系統(tǒng)的工作原理主要是由AT89S52對MF RC500進行控制與通信,MF RC500驅動外同電路對Mifare1卡進行讀寫操作.具體說來,AT89S52通過串行口接收PC機的指令,完成對卡的操作和整個讀寫器的管理.MF RCS00負責信號的編碼、解碼,信號的調制、解調;匹配電路建立讀寫器同射頻卡之間的聯(lián)系,此部分的設計直接影響到射頻功率的大小以及系統(tǒng)的抗干擾能力;Mifare1卡是系統(tǒng)的應用終端.接收讀寫器的指令并返回指令執(zhí)行結果。
圖1 Mifarel系列射頻卡讀卡器系統(tǒng)總體框圖
2 系統(tǒng)硬件設計
硬件主要包括單片機、MF RC500、匹配電路及天線設計等外圍電路.下面給出各部分的詳細說明及相關設計.
2.1 單片機
系統(tǒng)中選用低成本、高性能的CMOS 8位單片機AT8 9 S5 2.片內含8 k BytesISP的可反復擦寫1 000次的Flash只瀆程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS一51指令系統(tǒng)及80C51引腳結構.芯片內集成
了通用8位中央處理器,同時片內帶有防死鎖的Watchdog,以確保系統(tǒng)穩(wěn)定運行.
2.2 MF RC500芯片
Philips公司的MF RC500芯片是應用于13.56 MHZ非接觸式通信的高集成讀卡IC系列中的一員.該讀卡IC系列利用先進的調制和解調概念,完全集成了在13.56 MHz下所有類型的被動非接觸式通信方式和協(xié)議.MF RC500支持ISO14443A所有的層,內部的發(fā)送器部分不需要增加有源電路就能夠直接驅動近操作距離的天線(可達100 mm);接收器部分提供一個堅固而有效的解調和解碼電路,用于ISO14443兼容的應答器信號;數字部分處理:ISO14443A幀和錯誤檢測(奇偶&CRC).此外,它還支持快速CRYPTO!加密算法,用于驗證Mifare1系列產品,方便的并行接口可直接連接到任何8位微處理器,給閱讀器的設計提供了極大的靈活性.MF RC500可方便地用于各種基于ISO/IEC 14443A標準并且要求低成本、小尺寸、高性能以及單電源的非接觸式通信的應用場合。
MF RC500的內部EEPROM分為4部分,分別用于保存產品有關信息、存放寄存器初始化啟動文件以及存放加密運算的密鑰等.8×64位的FIFO用于緩存微控制器與芯片之問的輸人輸出數據流,可處理數據流長度達64 Byte.
2.3 匹配電路及天線設計
有2個不同的概念可以設計一個天線和一個匹配電路:一種是直接匹配的天線,讀卡器和天線的最小距離可以建立一個小型的完整終端;另一種是50 Ω匹配的天線,可以作為讀卡器和天線之間用長距離同軸電纜連接應用的一個簡單解決方案,連接讀卡器匹配電路和天線的同軸電纜最長距離可達10 m.在本系統(tǒng)中,采用的是直接匹配的天線.
直接匹配的天線的理論工作距離可達100m,工作距離主要由天線的大小以及天線匹配電路的修正值決定,需要的部件有EMC濾波器、接收電路和天線本身的匹配等.圖2是本系統(tǒng)使用的直接匹配天線電路.
圖2 直接匹配天線電路配置
2.3.1 EMC電路
MIFARE系統(tǒng)的工作頻率是13.56 MHz,這個頻率要用一個石英振蕩器發(fā)生,但它同時也產生高次諧波.為了符合國際EMC規(guī)定13.56 MHz中的3次、5次和高次諧波要被良好地抑制,除了多層設計外,還需要加低通濾波器.低通濾波器由元件L0和C0成.一般選取L0為1 μH,C0為68 μF。
2.3.2 接收電路
MF RC500的內部接收部分使用了一個新的接收概念,它使用卡響應的副載波負載調制所產生的2個邊頻帶,建議使用內部產生的VMID電勢作為RX管腳的輸人電勢.為了減少干擾,在VMID管腳連接一個電容到地.讀卡器的接收部分需要在RX 和VMID引腳之間連接一個分壓器.另外建議在天
3 系統(tǒng)軟件設計
由于本系統(tǒng)應用在煤礦考勤中,所以軟件部分主要包括對礦工所持Mifare1卡卡號的讀取以及把當天下井時長存入卡片中.讀取卡號在防碰撞操作中完成,時間存人在寫卡操作過程中完成.具體工作流程如圖3所示。
圖3 系統(tǒng)軟件流程
圖3實際上是對一張Mifare1卡的完整操作過程,主要包括復位請求、防碰撞、選卡、密碼驗證、寫卡等操作.其執(zhí)行順序必須依次進行,不能顛倒.下面結合實際開發(fā)經驗,詳細介紹對Mifare1卡的每一步操作.
3.1 復位請求
當一張Mifarel卡處在讀寫器天線的1二作范圍之內時,讀寫器向卡發(fā)出REQUEST all命令.卡的ATR將啟動,實現(xiàn)復位請求.請求成功,則將卡Block 0中的卡類型(TagType)號共2個字節(jié)傳送給讀寫器,建立卡片與讀寫器的第一步通信聯(lián)絡.如果不進行復位請求操作,讀寫器對卡的其他操作將不會進行.具體操作程序為:
3.2 防碰撞
如果有多張Mifare1卡處在讀寫器天線的工作范圍之內時,讀寫器首先與每一張卡進行通信,取得每一張卡的ID號.由于每一張Mifarel卡都具有惟一的ID號,因此讀寫器根據卡的ID號來保證一次只對一張卡操作,操作成功后將返回卡的ID號.具體操作程序為:
3.3 選擇卡
完成上面2個步驟后,就可以對某張卡進行選擇操作,這時其他卡將不響應而進入空閑狀態(tài).如果通信成功,被選擇的卡將返回其容量大?。唧w操作程序為:
3.4 密碼驗證
一張Mifare1只有通過密碼驗證后才能對其EEPROM中的數據進行讀寫操作.為此,用戶必須事先將密碼編程到MF RC500的非易失性密匙存儲器中,RC500將與卡片各個扇區(qū)中的密碼A或密碼B驗證,成功后方能進行下一步操作.所以用戶必須妥善保管卡片中的密碼,一旦丟失,將無法對卡片進行任何操作,此卡報廢.具體操作程序為:
M500 HostCodeKey (KeyUncode,KeyCode);6字節(jié)密碼轉換成12字節(jié)
status= M500PiccAuthKey(PICC_AUTHENT1A,CardSnr,KeyCode,4)/block4密碼4驗證if(status! =0)//失敗
return ;
3.5 寫卡
經過密碼證實后,就可以對卡中各扇區(qū)的數據進行讀、寫、增值和減值等操作.下面舉例說明如何把礦工下井時長寫入到數據塊中.
char value[16];
PrepareValue(0,value);//將初始下井時長0 h格式化到value數組中
M500PiccWrite(4,value);//存value到Block4數據塊中
PrepareValue(TimeData,value);//將當天下井時長
TiineData格式化到value數組中
M500PiccValue(PICC—INCREMENT,4,value,4);//Block4中數據每次做加TiineData操作
4 結束語
介紹了Mifare1系列射頻卡的讀卡器開發(fā),并結合到實際應用中.經實踐證明,本系統(tǒng)運行穩(wěn)定,操作方便,能對有效范圍內的多張卡準確無誤地讀寫,讀寫距離可達7 cm,目前在煤礦考勤中發(fā)揮著重要作用.
作者簡介:劉志平(1983-- 男,碩士研究生,主要研究方向:計算機控制、應用技術
原文下載地址:http://www.yktchina.com/BBS/disptopic.asp?boardid=4&topicid=3796&frompage=1