歡迎您光臨本站 登入註冊首頁

基於MF RC500的IC卡讀寫器設計

admin @ 2014-03-26 , reply:0

概述

   近幾年來.IC卡中非接觸式射頻卡的高度安全保密性和使用簡單等特點,使之在各領域的應用中異軍突起,成為當今IC智能卡中的流行寵物,應用前景十分廣闊。與傳統的接觸式IC……

    近幾年來.IC卡中非接觸式射頻卡的高度安全保密性和使用簡單等特點,使之在各領域的應用中異軍突起,成為當今IC智能卡中的流行寵物,應用前景十分廣闊。與傳統的接觸式IC卡、磁卡相比,利用射頻識別技術(radio fequncy identification)開發的非接觸式IC識別器,無論在系統壽命、防監聽、防解密等性能上都具有很大的優勢。為此,本文給出了利用AT89C52、MFRC500、Mifare卡來構建非接觸式IC讀寫器,並在該讀寫器基礎上開發適用各方面自動識別系統

1 MF RC500的主要特性
    MF RC500是應用於13.56 MHz非接觸式通信中高集成讀卡器IC系列中的一員。該讀卡IC利用先進的調製和解調概念.完全集成了13.56 MHz下所有類型的被動非接觸式通信方式和協議。MF RC500能夠支持ISO14443A所有的層,其內部的發送器部分不需要增加有源電路就能夠直接驅動近操作距離的天線(可達100 mm);MFRC500的接收器部分提供有一個堅固而有效的解調和解碼電路,可用於IS014443兼容的應答器信號;數字部分則用於處理ISO1443A幀和錯誤檢測(奇偶&CRC)。此外,它還支持快速CRYPTO1加密演算法,以用於驗證Mifare系列產品。其方便的并行介面可直接連接到任何8位微處理器上,這樣就給讀卡器/終端的設計提供了極大的靈活性。
    MF RC500的主要特點如下:

  •  帶有高集成度模擬電路以用於卡應答的解調和解碼;
  •  緩衝輸出驅動器可使用最少數目的外部元件以連接到天線;
  •  近距離操作(可達100 mm); .
  •  有用於連接13.56 MHz石英晶體的快速內部振蕩器緩衝區;
  •  帶低功耗的硬體複位功能;
  •  并行微處理器介面帶有內部地址鎖存和IRQ線;
  •  有易用的發送和接收FIFO緩衝區;
  •  支持MIFARE Clasic;
  •  支持MIRFARE有源天線;
  •  適合高安全性的終端。

    MF RC500採用SO32封裝的管腳配置如圖1所示。
 

2 IC卡系統組成
    圖2所示是基於MF RC500的非接觸式IC卡讀寫器的系統結構框圖。該系統主要由MCU、MFRC500、看門狗以及232通信模塊組成。系統的工作方式是先由MCU控制MF RC500驅動天線對Mifare卡(也就是應答器PICC)進行讀寫操作。然後,根據所得的數據對其它介面器件進行響應操作。最後,與PC機之間進行通信,並把數據傳給上位機。
 
    系統MCU選用AT89C52主要是因為AT89C52開發簡單,運行穩定。為了防止系統“死機”,系統中使用X5045作為看門狗。由於此系統的通訊距離要求不是太遠,故採用RS232通訊模塊與PC機進行通訊。

3 天線的設計
    由於MF RC500的頻率是13.56 MHz,屬於短波段,因此可以採用小環天線。小環天線有方形、圓形、橢圓形、三角形等,本系統採用方形設計。其天線示意圖如圖3所示。
 
    該天線的最大幾何尺寸同工作波長之間沒有一個嚴格的界限。對於13.6 MHz的系統來說,天線的最大尺寸在50 cm左右。
    在天線設計中,品質因數Q是一個非常重要的參數。對於電感耦合式射頻識別系統的PCD天線來說,較高品質因數會使天線線圈中的電流強度大些,由此可改善對PICC的功率傳送。若以f0表示工作頻率,那麼通過品質因數就可以很容易計算出天線的帶寬:
B=f0/Q (1)
    從式(1)中可以看出,天線的傳輸帶寬與品質因數成反比。因此,過高的品質因數會導致帶寬縮小。從而減弱PCD的調製邊帶.這樣可能導致PCD無法與卡通信。因此,一般系統的最佳品質因數應為10-30,最大不能超過60。

4 MF RC500與AT89S52的介面電路
    圖4為MFRC500與AT89S52的介面電路,圖5為AT89S52與RS232介面電路。
 
 

5 對Mifare卡的操作流程
    整個系統的工作由對Mifare卡操作和系統後台處理兩大部分組成。本文只介紹對Mifare卡的操作流程。Mifare卡的操作可以分為以下幾項:
1)複位請求
    當一張Mifare卡片處在卡讀寫器的天線工作範圍之內時,程序員控制讀寫器向卡片發出REQUEST all(或REQUEST std)命令。此時卡片的ATR將啟動,並將卡片Block 0中的卡片類型(TagType)號共2個位元組傳送給讀寫器,從而建立卡片與讀寫器的第一步通信聯絡。
    如果不進行該位請求操作,讀寫器對卡片的其它操作將不能進行。
2)反碰撞操作
    如果有多張Mifare卡片處在卡片讀寫器的天線工作範圍之內,PCD將首先與每一張卡片進行通信,以取得每一張卡片的系列號。由於每一張Mifare卡片都具有其唯一的序列號而決不會相同,因此.PCD根據卡片的序列號來保證一次只對一張卡進行操作。該操作將使PCD得到PICC的返回值作為卡的序列號。
3)卡選擇操作
    完成了上述二個步驟之後,PCD必須對卡片進行選擇操作。執行該操作后,將返回卡上的SIZE位元組。
4)認證操作
    經過前面敘述的三個步驟以後,便可以在確認已經選擇了一張卡片時,在PCD對卡進行讀寫操作之前,使系統對該卡片上已經設置的密碼進行認證。如果該認證匹配,便可允許進一步的讀寫操作。
5)讀寫操作
    對卡的最後操作即是讀、寫、增值、減值、存儲和傳送等操作。

6 讀卡程序
    根據上面的流程,便可採用基於Keil C的C語言進行編程,程序如下:
char M500Reset(void)
{char status;
RC500RST=0;//RC500在RSTPD腳由高變低的時候複位
delay_1ms(25);//注意延時的長度,本系統的晶振頻率是11.0592MHz
RC500RST=1;
delay_50us(200);
RC500RST=0;
delay_50us(50);
.return status;
}
char M500Config(void) //對RC500的寄存器進行初始化
char M500PiccCommonRequest(unsigned char
req_code,unsigned char *atq)
    RC500發送請求時,req_code是請求模式,一共有request all和Request std兩種模式。Requestall指令是非連續性讀卡指令,只讀一次。但有一個例外.即當某一次Request all指令讀卡失敗時,如卡片沒能通過密碼認證或其它原因而出錯時,Request all指令將連續地讀卡,直到讀卡成功才進入非連續性的讀卡模式。Request std指令的使用和Request all指令剛巧相反。Request std指令是連續性的讀卡指令。當某一張卡片在MCM天線的有效工作範圍(距離)內時,Request std指令在成功地讀取這一張卡片之後.將進入MCM對卡片的其它操作。如果其它操作完成,程序員又將MCM進入Request std指令操作,那麼,Request std指令將連續地再次進行讀卡操作,而不管這些片卡是否被拿走。只要有一張卡片進入MCM之天線有效工作範圍(範圍)內。Request std指令將始終連續地再次進行讀卡操作。對於Mifare卡,該函數反回值為0004H。其程序如下:
char M500PiccCascAnticoll(unsigned char bcnt,unsigned char *snr)//反碰撞函數,得到一張卡的序列號存入snr中
char M500PiccCascSelect(unsigned char *snr,unsigned char *sak)∥選中snr指定的卡,對於Mifare卡返回值為0008H,值存人sak中
char M500PiccAuthKey(unsigned char auth_mode,unsigned char *snr,unsigned char *keys,unsigned char block)
    這是三輪認證函數,整個過程是先將所要訪問的區密碼加密(如區0的初始密碼為6個FFH),再將加密后的密碼通過Loadkey存入MF RC500的Key緩存中,接著進行認證。
Char M500PiccRead(unsigned char addr,unsignedchar *_data)//最後讀卡。讀到的數據存入_data中。

7 結束語
    IC卡以其高度的信息集成及安全性已經融入當今信息技術的主流。並越來越受到人們的青睞。本文介紹了PHILIPS公司的MFICS50非接觸式IC卡的內部結構和工作原理,給出了基於MFRC500的嵌入式讀寫模塊的軟硬體設計方法。此讀寫模塊的使用使複雜的IC卡技術變得非常簡單.因而對非接觸式智能卡的推廣具有重要意義。目前,該系統已可用於考勤、門禁、售飯等多種系統中。與磁卡、只讀射頻卡(EM卡)組成的系統相比,該系統的性能大大改善,並且為“一卡通”的實現提供了必備條件。


[admin via 研發互助社區 ] 基於MF RC500的IC卡讀寫器設計已經有4720次圍觀

http://cocdig.com/docs/show-post-44669.html