基于MFRC500的非接觸式IC卡讀寫器設(shè)計(jì)
近幾年來(lái),IC卡中非接觸式射頻卡的高度安全保密性和使用簡(jiǎn)單等特點(diǎn),使之在各領(lǐng)域的應(yīng)用中異軍突起,成為當(dāng)今IC智能卡中的流行寵物,應(yīng)用前景十分廣闊?! ∨c傳統(tǒng)的接觸式IC卡、磁卡相比,利用射頻識(shí)別技術(shù)(radio frequncy i-dentification)開發(fā)的非接觸式IC識(shí)別器,無(wú)論在系統(tǒng)壽命、防監(jiān)聽、防解密等性能上都具有很大的優(yōu)勢(shì)。為此,本文給出了利用AT 89C52、MFRC500、Mifare卡來(lái)構(gòu)建非接觸式IC讀寫器,并在該讀寫器基礎(chǔ)上開發(fā)適用各方面自動(dòng)識(shí)別系統(tǒng)。
1 MF RC500的主要特性
MF RC500是應(yīng)用于13.56 MHz非接觸式通信中高集成讀卡器IC系列中的一員。該讀卡IC利用先進(jìn)的調(diào)制和解調(diào)概念,完全集成了13.56 MHz下所有類型的被動(dòng)非接觸式通信方式和協(xié)議。MF RC500能夠支持ISO14443A所有的層。其內(nèi)部的發(fā)送器部分不需要增加有源電路就能夠直接驅(qū)動(dòng)近操作距離的天線(可達(dá)100 mm);MFRC500的接收器部分提供有一個(gè)堅(jiān)固而有效的解調(diào)和解碼電路,可用于ISO14443兼容的應(yīng)答器信號(hào);數(shù)字部分則用于處理ISO14443A幀和錯(cuò)誤檢測(cè)(奇偶&CRC)。此外,它還支持快速CRYPTO1加密算法,以用于驗(yàn)證Mifare系列產(chǎn)品。其方便的并行接口可直接連接到任何8位微處理器上,這樣就給讀卡器/終端的設(shè)計(jì)提供了極大的靈活性。
MF RC500的主要特點(diǎn)如下:
·帶有高集成度模擬電路以用于卡應(yīng)答的解調(diào)和解碼;
·緩沖輸出驅(qū)動(dòng)器可使用最少數(shù)目的外部元件以連接到天線;
·近距離操作(可達(dá)100 mm);
·有用于連接13.56 MHz石英晶體的快速內(nèi)部振蕩器緩沖區(qū);
·帶低功耗的硬件復(fù)位功能;
·并行微處理器接口帶有內(nèi)部地址鎖存和IRQ線;
·有易用的發(fā)送和接收FIFO緩沖區(qū);
·支持MIFARE Clasic;
·支持MIRFARE有源天線;
·適合高安全性的終端。
MF RC500采用SO32封裝的管腳配置如圖1所示。
2 IC卡系統(tǒng)組成
圖2所示是基于MF RC500的非接觸式IC卡讀寫器的系統(tǒng)結(jié)構(gòu)框圖。該系統(tǒng)主要由MCU、MFRC500、看門狗以及232通信模塊組成。系統(tǒng)的工作方式是先由MCU控制MF RC500驅(qū)動(dòng)天線對(duì)Mifare卡(也就是應(yīng)答器PICC)進(jìn)行讀寫操作。然后,根據(jù)所得的數(shù)據(jù)對(duì)其它接口器件進(jìn)行響應(yīng)操作。最后,與PC機(jī)之間進(jìn)行通信,并把數(shù)據(jù)傳給上位機(jī)。
系統(tǒng)MCU選用AT 89C52主要是因?yàn)锳T 89C52開發(fā)簡(jiǎn)單,運(yùn)行穩(wěn)定。為了防止系統(tǒng)“死機(jī)”,系統(tǒng)中使用X5045作為看門狗。由于此系統(tǒng)的通訊距離要求不是太遠(yuǎn),故采用RS-232通訊模塊與PC機(jī)進(jìn)行通訊。
3 天線的設(shè)計(jì)
由于MF RC500的頻率是13.56 MHz,屬于短波段,因此可以采用小環(huán)天線。小環(huán)天線有方形、圓形、橢圓形、三角形等,本系統(tǒng)采用方形設(shè)計(jì)。其天線示意圖如圖3所示。
該天線的最大幾何尺寸同工作波長(zhǎng)之間沒有一個(gè)嚴(yán)格的界限。對(duì)于13.6 MHz的系統(tǒng)來(lái)說(shuō),天線的最大尺寸在50 cm左右。
在天線設(shè)計(jì)中,品質(zhì)因數(shù)Q是一個(gè)非常重要的參數(shù)。對(duì)于電感耦合式射頻識(shí)別系統(tǒng)的PCD天線來(lái)說(shuō),較高品質(zhì)因數(shù)會(huì)使天線線圈中的電流強(qiáng)度大些,由此可改善對(duì)PICC的功率傳送。
若以f0表示工作頻率,那么通過(guò)品質(zhì)因數(shù)就可以很容易計(jì)算出天線的帶寬:
B=f0/Q (1)
從式(1)中可以看出,天線的傳輸帶寬與品質(zhì)因數(shù)成反比。因此,過(guò)高的品質(zhì)因數(shù)會(huì)導(dǎo)致帶寬縮小。從而減弱PCD的調(diào)制邊帶,這樣可能導(dǎo)致PCD無(wú)法與卡通信。因此,一般系統(tǒng)的最佳品質(zhì)因數(shù)應(yīng)為10~30,最大不能超過(guò)60。
4 MF RC500與AT89S52的接口電路
圖4為MF RC500與AT89S52的接口電路,圖5為AT89S52與RS-232接口電路。
5 對(duì)Mifare1卡的操作流程
整個(gè)系統(tǒng)的工作由對(duì)Mifare卡操作和系統(tǒng)后臺(tái)處理兩大部分組成。本文只介紹對(duì)Mifare卡的操作流程。Mifare卡的操作可以分為以下幾項(xiàng):
(1) 復(fù)位請(qǐng)求
當(dāng)一張Mifare卡片處在卡讀寫器的天線工作范圍之內(nèi)時(shí),程序員控制讀寫器向卡片發(fā)出RE-QUEST all(或REQUEST std)命令。此時(shí)卡片的ATR將啟動(dòng),并將卡片Block 0中的卡片類型(TagType)號(hào)共2個(gè)字節(jié)傳送給讀寫器,從而建立卡片與讀寫器的第一步通信聯(lián)絡(luò)。
如果不進(jìn)行該位請(qǐng)求操作,讀寫器對(duì)卡片的其它操作將不能進(jìn)行。
(2) 反碰撞操作
如果有多張Mifare卡片處在卡片讀寫器的天線工作范圍之內(nèi),PCD將首先與每一張卡片進(jìn)行通信,以取得每一張卡片的系列號(hào)。由于每一張Mifare卡片都具有其唯一的序列號(hào)而決不會(huì)相同,因此,PCD根據(jù)卡片的序列號(hào)來(lái)保證一次只對(duì)一張卡進(jìn)行操作。該操作將使PCD得到PICC的返回值作為卡的序列號(hào)。
(3) 卡選擇操作
完成了上述二個(gè)步驟之后,PCD必須對(duì)卡片進(jìn)行選擇操作。執(zhí)行該操作后,將返回卡上的SIZE字節(jié)。
(4) 認(rèn)證操作
經(jīng)過(guò)前面敘述的三個(gè)步驟以后,便可以在確認(rèn)已經(jīng)選擇了一張卡片時(shí),在PCD對(duì)卡進(jìn)行讀寫操作之前,使系統(tǒng)對(duì)該卡片上已經(jīng)設(shè)置的密碼進(jìn)行認(rèn)證。如果該認(rèn)證匹配,便可允許進(jìn)一步的讀寫操作。
(5) 讀寫操作
對(duì)卡的最后操作即是讀、寫、增值、減值、存儲(chǔ)和傳送等操作。
6 讀卡程序
根據(jù)上面的流程,便可采用基于Keil C的C語(yǔ)言進(jìn)行編程,程序如下:
RC500發(fā)送請(qǐng)求時(shí),req_code是請(qǐng)求模式,一共有request all和Request std兩種模式。Requestall指令是非連續(xù)性讀卡指令,只讀一次。但有一個(gè)例外,即當(dāng)某一次Request all指令讀卡失敗時(shí),如卡片沒能通過(guò)密碼認(rèn)證或其它原因而出錯(cuò)時(shí),Request all指令將連續(xù)地讀卡,直到讀卡成功才進(jìn)入非連續(xù)性的讀卡模式。Request std指令的使用和Request all指令剛巧相反。Request std指令是連續(xù)性的讀卡指令。
當(dāng)某一張卡片在MCM天線的有效工作范圍(距離)內(nèi)時(shí),Request std指令在成功地讀取這一張卡片之后,將進(jìn)入MCM對(duì)卡片的其它操作。如果其它操作完成,程序員又將MCM進(jìn)入Request std指令操作,那么,Request std指令將連續(xù)地再次進(jìn)行讀卡操作,而不管這些片卡是否被拿走。只要有一張卡片進(jìn)入MCM之天線有效工作范圍(范圍)內(nèi),Request std指令將始終連續(xù)地再次進(jìn)行讀卡操作。對(duì)于Mifare1卡,該函數(shù)反回值為0004H。其程序如下:
這是三輪認(rèn)證函數(shù),整個(gè)過(guò)程是先將所要訪問(wèn)的區(qū)密碼加密(如區(qū)0的初始密碼為6個(gè)FFH),再將加密后的密碼通過(guò)Loadkey存入MF RC500的Key緩存中,接著進(jìn)行認(rèn)證。
7 結(jié)束語(yǔ)
IC卡以其高度的信息集成及安全性已經(jīng)融人當(dāng)今信息技術(shù)的主流,并越來(lái)越受到人們的青睞。本文介紹了PHILIPS公司的MFICS50非接觸式IC卡的內(nèi)部結(jié)構(gòu)和工作原理,給出了基于MFRC500的嵌入式讀寫模塊的軟硬件設(shè)計(jì)方法。此讀寫模塊的使用使復(fù)雜的IC卡技術(shù)變得非常簡(jiǎn)單,因而對(duì)非接觸式智能卡的推廣具有重要意義。目前,該系統(tǒng)已可用于考勤、門禁、售飯等多種系統(tǒng)中。與磁卡、只讀射頻卡(EM卡)組成的系統(tǒng)相比,該系統(tǒng)的性能大大改善,并且為“一卡通”的實(shí)現(xiàn)提供了必備條件。