基于MF RC500芯片的射頻讀寫器設(shè)計(jì)和實(shí)現(xiàn)方案
MF RC500支持與不同的微處理器直接接口,包括獨(dú)立讀寫選通的MCU連接、公共讀寫選通的MCU連接以及具有公共讀寫選通和掛鉤功能的MCU連接。在每次上電或硬件復(fù)位后,MF RC500也復(fù)位其并行微處理器接口模式并自動(dòng)檢測(cè)當(dāng)前微處理器接口的類型。本文引用地址:http://www.ex-cimer.com/article/157945.htm
本系統(tǒng)選用具有公共讀寫選通和掛鉤功能的MCU連接方式,圖6為MF RC500與MCU的接口原理。由圖中可以看出,本系統(tǒng)采用中斷(INT1)工作模式,即MCU利用MFRC500提供中斷信息對(duì)其進(jìn)行控制。另外,根據(jù)系統(tǒng)的需要,可以采用查詢方式對(duì)MF RC500進(jìn)行操作。
4系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)主要包括對(duì)MF RC500進(jìn)行初始化、接收上位計(jì)算機(jī)的指令、控制MF RC500,并且把MF RC500的狀態(tài)信息反饋給計(jì)算機(jī)。程序流程如圖7所示。
(1) 初始化并行接口
首先讀Command 寄存器直到Command的6位值為00H,內(nèi)部初始化階段此時(shí)結(jié)束,MF RC500準(zhǔn)備接收控制;將80H 寫入Page寄存器以初始化微處理器接口;讀Command寄存器,如果該值為00H則微處理器接口初始化成功;在接口初始化之后通過將0X00 寫入頁寄存器,激活線性地址模式。這個(gè)過程可以用以下代碼表示:
do{PReset=1; Delay(10); PReset=0;} // 給復(fù)位脈沖
while (ReadRC(RegPage) != 0x80);
do{ WriteRC(RegPage,0x0);}
while(ReadRC(RegCommand) != 0x00);
if (ReadRC(RegCommand) != 0x00)
status = MI_INTERFACEERR;//接口初始化錯(cuò)誤
else
status = 0; //接口初始化成功
(2) 對(duì)Mifare1卡的操作
MCU對(duì)Mifare1卡操作的命令主要有空操作、裝載密碼、驗(yàn)證密碼、讀卡、寫卡和關(guān)卡等。無論哪種操作都必須先把命令代碼寫入到Command寄存器,比如執(zhí)行驗(yàn)證密碼則需要執(zhí)行WriteRC(RegCommand,0x0c)命令。
從操作流程上,可以把Mifare1卡的操作分為以下幾項(xiàng):
復(fù)位請(qǐng)求:當(dāng)一張Mifare1卡處在讀寫器天線的工作范圍之內(nèi)時(shí),讀寫器向卡發(fā)出REQUEST all(或REQUEST std)命令??ǖ腁TR將啟動(dòng),將卡Block 0中的卡類型(TagType)號(hào)共2個(gè)字節(jié)傳送給讀寫器,建立卡片與讀寫器的第一步通信聯(lián)絡(luò)。如果不進(jìn)行復(fù)位請(qǐng)求操作,讀寫器對(duì)卡的其它操作將不會(huì)進(jìn)行。
反碰撞操作:如果有多張Mifar1e卡處在讀寫器天線的工作范圍之內(nèi)時(shí),讀寫器首先與每一張卡進(jìn)行通信,取得每一張卡的ID號(hào)。由于每一張Mifare1卡都具有唯一的ID號(hào),因此讀寫器根據(jù)卡的ID號(hào)來保證一次只對(duì)一張卡操作。
卡選擇操作:完成了上述二個(gè)步驟之后,讀寫器必須對(duì)卡進(jìn)行選擇操作。執(zhí)行操作后,返回卡上的SIZE字節(jié)。
認(rèn)證操作:經(jīng)過上述三個(gè)步驟,在確認(rèn)已經(jīng)選擇了一張卡片時(shí),讀寫器必須對(duì)卡上已經(jīng)設(shè)置的密碼進(jìn)行認(rèn)證。如果匹配,才允許進(jìn)一步的讀寫操作。
讀寫操作:對(duì)卡的讀、寫、增值、減值、存儲(chǔ)和傳送等操作。
5結(jié)論
本文的創(chuàng)新工作:基于PHILIPS公司生產(chǎn)的MF RC500芯片,提出了一種結(jié)合單片機(jī)AT89S52的通用射頻卡讀寫器的設(shè)計(jì)與實(shí)現(xiàn)方案。系統(tǒng)實(shí)現(xiàn)了對(duì)Mifare1卡讀寫操作的同時(shí),具有以下優(yōu)點(diǎn):(1) 由于接口方式比較多,對(duì)IO口操作簡(jiǎn)單,可以方便地對(duì)MF RC500進(jìn)行控制并獲取相應(yīng)信息;(2) 由于該系統(tǒng)在天線設(shè)計(jì)合理的情況下可靠性比較高,有效距離可達(dá)10cm;(3) 計(jì)算機(jī)只需通過一定的方式發(fā)送命令,即可對(duì)卡操作,在此基礎(chǔ)上可以根據(jù)不同的需要開發(fā)出相應(yīng)的軟件產(chǎn)品,具有很大的實(shí)用價(jià)值。
實(shí)際應(yīng)用表明該讀寫器架構(gòu)具有響應(yīng)速度快、使用簡(jiǎn)單、讀卡距離遠(yuǎn)和通信穩(wěn)定可靠的顯著優(yōu)點(diǎn)。
評(píng)論