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

概述

名稱:基於MFRC500的射頻識別讀寫器設計摘要:主要介紹一種基於Philips公司的MFRC500的射頻識別讀寫器的設計:首先介紹系統的組成以及MFRC500的特性,接著給出天線的設計規範,最後給出……
名稱:基於MF RC500的射頻識別讀寫器設計
摘要:主要介紹一種基於Philips公司的MF RC500的射頻識別讀寫器的設計:首先介紹系統的組成以及MF RC500的特性,接著給出天線的設計規範,最後給出MCU 89C52與MF RC500的介面原理圖、對Mifare卡操作流程以及及讀卡的程序。該系統選用Mifare卡作為系統的應答器(PICC),電路穩定,系統運行正常。
關鍵詞:射頻識別技術應答器PICC讀寫器PCD Mifare卡 MF RC500
與傳統的接觸式IC卡、磁卡相比較,利用射頻識別技術(radio frequncy identification)開發的非接觸式IC識別器,在系統壽命、防*、防解密等性能上具有很大的優勢。利用MCU 89C52、MF RC500、、Mifare卡等構建非接觸式IC讀寫器,並在該讀寫器基礎上能很容易地開發出適用於各方面的自動識別系統。
1 MF RC500介紹
MF RC500是應用於13.56MHz非接觸式通信中高集成讀卡IC系列中的一員。該讀卡IC系列利用先進的調製和解調概念,完全集成了在13.56MHz下所有類型的被動非接觸式通信方式和協議。MF RC500支持ISO14443A所有的層,內部的發送器部分不需要增加有源電路就能夠直接驅動近操作距離的天線(可達100mm);接收器部分提供一個堅固而有效的解調和*電路,用於ISO14443兼容的應答器信號;數字部分處理ISO14443A幀和錯誤檢測(奇偶CRC)。此外,它還支持快速CRYPTO1加密演算法,用於驗證Mifare系列產品。方便的并行介面可直接連接到任何8位微處理器,給讀卡器/終端的設計提供了極大的靈活性。
2系統組成
從圖1可以看出,系統主要由MCU、時鐘晶元、 MFRC500、液晶屏、看門狗以及485通信模塊組成。系統的工作方式主要是,先由MCU控制MF RC500驅動天線對Mifare卡,也就是應答器(PICC),進行讀寫操作。然後,根據所得的數據對其它介面器件,如液晶屏、EEPROM、時鐘晶元等,進行響應操作。最後,與PC機之間進行通信,把數據傳給上位機。
MCU採用89C52,是因為89C52開發簡單,運行穩定。EEPROM採用 24C256,用於存儲系統的數據。24C256是串口操作方式,是一種性價比較高的存儲晶元。液晶屏採用帶字型檔的 ST7920,是因為它是並口操作方式的,操作方便。時鐘晶元採用 DS12C887。DS12C887是Dallas公司生產的新型產品,內置電池,可連續使用10年,可以方便記錄事件的發生時間。為了防止系統「死機」,使用 X5045作為看門狗。X5045是串口工作方式,內置EEPROM,可用來存儲一些系統參數。與上位機的通信採用 RS-485通信模塊,通信距離可以達到1000m左右。
整個系統由24V電源供電,再由穩壓模塊 7805穩壓成5V的電源。由於7805的工作熱量很高,故在7805上安置一個散熱片。
3系統工作原理
系統數據存儲在無源Mifare卡,也就是PICC中。從圖2可以看出,PCD的主要任務是傳輸能量給PICC,並建立與之的通信。PICC是由一個電子數據作載體,通常由單個微型晶元以及用作天線的大面積線圈等組成;而PCD產生高頻的強電磁場,這種磁場穿過線圈橫截面和線圈周圍的空間。因為MF RC500提供的頻率為13.56MHz,所以其波長比PCD的天線和PICC之間的距離大好多倍,可以把PICC到天線之間的電磁場當作簡單的交變磁場來對待。PCD天線線圈發射磁場的一小部分磁力線穿過PICC的天線線圈,接著PICC的天線線圈和電容器C構成振蕩迴路,調頻到PCD的發射頻率。迴路的諧振使PICC線圈的電壓達到最大值,將其整流後作為數據載體(微型晶元)的電源。PICC啟動之後,可與PCD之間進行數據通信。
如上所述可以看出,PCD的性能與天線的參數有著直接的關係。在對天線的性能進行優化之後,PCD的讀卡距離可以達到10cm。
4 PCD的天線設計
由於MF RC500的頻率是13.56MHz,屬於短波段,因此可以採用小環天線。小環天線有方型、圓形、橢圓型、三角型等,本系統採用方型天線。天線的最大幾何尺寸同工作波長之間沒有一個嚴格的界限,一般定義為:
L/λ≤1/(2π)(1)
式(1)中,L是天線的最大尺寸,λ是工作波長。對於13.6MHz的系統來說,天線的最大尺寸在50cm左右。
在天線設計中,品質因數Q是一個非常重要的參數。對於電感耦合式射頻識別系統的PCD天線來說,較高品質因數的值會使天線線圈中的電流強度大些,由此改善對PICC的功率傳送。品質因數的計算公式為:
Q=(2πf0·Lcoil)/Rcoil (2)
式(2)中的f0是工作頻率,Lcoil是天線的尺寸,Rcoil是天線的半徑。通過品質因數可以很容易計算出天線的帶寬:
B=f0/Q (3)
從式(3)中可以看出,天線的傳輸帶寬與品質因數成反比關係。因此,過高的品質因數會導致帶寬縮校從而減弱PCD的調製邊帶,會導致PCD無法與卡通信。一般系統的最佳品質因數為10~30,最大值不能超過60。
5 MF RC500與MCU 89C52的部分介面電路
圖3為MF RC500與MCU的介面原理。由圖3可以看出,本系統採用中斷(INT1)工作模式,即MCU利用MFRC500提供中斷信息對其進行控制。另外,根據系統的需要,可以採用查詢方式對MF RC500進行操作。
6對Mifarel卡操作流程
整個系統的工作由對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)讀寫操作
對卡的最後操作是讀、寫、增值、減值、存儲和傳送等操作。
7讀卡程序
根據上面的流程,採用基於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兩種模式。Request all指令是非連續性的讀卡指令,只讀一次。但有個例外,當某一次Request all指令讀卡片失敗時,例如,卡片沒能通過密碼認證或其它原因而出錯時,Request all指令將連續地讀卡,直到讀卡成功才進入非連續性的讀卡模式。Request std指令的使用和Request all指令剛巧相反。Request std指令是連續性的讀卡指令。當某一張卡片在MCM之天線的有效的工作範圍(距離)內,Request std指令在成功地讀取這一張卡片之後,進入MCM對卡片的其它操作。如果其它操作完成之後,程序員又將MCM進入Request std指令操作,則Request std指令將連續地再次進行讀卡操作,而不管這些片卡是否被拿卡。只要有一張卡片進入MCM之天線的有效的工作範圍(範圍)內,Request std指令將始終連續地再次進行讀卡操作。對於Mifare1卡,該函數反回值為0004H。
char M500PiccCascAnticoll(unsigned char bcnt,unsigned
char *snr) //反碰撞函數,得到一張卡的序列號
//存入snr中
char M500PiccCascSelect(unsigned char *snr,unsigned char *sak) //選中snr指定的卡,對於Mifarel卡返回值為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,unsigned char *_data) //最後讀卡,讀到的數據存入_data中
結語
本文主要介紹一種基於MF RC500的射頻識別讀寫器的設計方法。試驗證明系統運行穩定,在此讀寫器的基礎上,只要稍加屐就能開發成不同的射頻識別應用系統,如考勤系統、門禁系統、公交車收費系統等。

[admin via 研發互助社區 ] 基於MF RC500的射頻識別讀寫器設計已經有2556次圍觀

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