基于MF RC500的Mifare射頻卡讀寫器設(shè)計(jì)
文章出處:http://www.fang1.net 作者:李和平 黎福海 人氣: 發(fā)表時(shí)間:2011年10月22日
0 引 言
射頻識(shí)別(Radio Frequency Identification。以下簡(jiǎn)稱RFID技術(shù),是利用無(wú)線射頻方式進(jìn)行非接觸雙向通信并交換數(shù)據(jù),以達(dá)到識(shí)別目的。與傳統(tǒng)的條碼或磁條識(shí)別技術(shù)相比,RFID技術(shù)具有非接觸、精度高、作用距離遠(yuǎn)、可動(dòng)態(tài)識(shí)別多個(gè)數(shù)據(jù)及應(yīng)用環(huán)境適應(yīng)性較好等優(yōu)點(diǎn)。在工業(yè)自動(dòng)化、倉(cāng)儲(chǔ)管理、門禁控制等眾多領(lǐng)域得到廣泛的應(yīng)用與發(fā)展。本文基于MF RC500設(shè)計(jì)了RFID技術(shù)的Mifarel卡讀寫器。該讀寫器能完成對(duì)Mifarel卡的讀、寫及控制操作。具有響應(yīng)速度快、讀卡距離遠(yuǎn)、通信穩(wěn)定等優(yōu)點(diǎn)。
1 Mifare1卡特點(diǎn)及原理
射頻卡屬于非接觸IC卡,它避免了普通IC卡與讀卡器之間的物理接觸,減少了卡的磨損。識(shí)別工作無(wú)須人工干預(yù)??晒ぷ饔诟鞣N惡劣環(huán)境。當(dāng)前世界上非接觸式IC智能射頻卡的核心是Philips公司的Mifare1 IC s5o(一01,一02,一03,一04)系列微模塊。已被定制為國(guó)際標(biāo)準(zhǔn):ISO/IEC 14443 TYPE A標(biāo)準(zhǔn)。目前。許多較大的IC卡制造商的非接觸式卡制造均以Mifare技術(shù)為標(biāo)準(zhǔn)。Mifarel卡上有8Kb EEPROM存儲(chǔ)容量。并劃分為16個(gè)扇區(qū)。每個(gè)扇區(qū)劃分為4個(gè)數(shù)據(jù)存儲(chǔ)塊。
各扇區(qū)的密碼和存取控制都是獨(dú)立的??梢愿鶕?jù)實(shí)際需要設(shè)定各自的密碼及存取控制。因此一張卡能同時(shí)運(yùn)用在16個(gè)不同的系統(tǒng)中。并可以根據(jù)每個(gè)系統(tǒng)的實(shí)際情況決定各區(qū)的密碼及數(shù)據(jù)形式。Mifarel卡上具有先進(jìn)的數(shù)據(jù)通信加密并雙向驗(yàn)證密碼系統(tǒng)。具有防重疊功能。能在同一時(shí)間內(nèi)處理重疊在讀寫器天線的有效工作距離內(nèi)的多張重疊的卡片??ㄆ线€內(nèi)建有增值、減值的專項(xiàng)數(shù)學(xué)運(yùn)算電路。非常適合公交、地鐵等行業(yè)的檢票、收票系統(tǒng)??ㄆ系臄?shù)據(jù)讀寫可超過(guò)10萬(wàn)次以上,數(shù)據(jù)保存期可達(dá)1O年以上。且卡片抗靜電保護(hù)能力可達(dá)2kV以上。
Mifare1卡中包含一塊ASIC微晶片和一個(gè)高頻天線,卡片上無(wú)源(無(wú)電池)。其基本工作原理是:讀寫器中的Mifare基站向Mifarel卡發(fā)一組固定頻率(13.56MHz)的電磁波,卡片內(nèi)有一個(gè)LC串聯(lián)諧振電路。其頻率與基站發(fā)射的頻率相同。在電磁波的激勵(lì)下,LC諧振電路產(chǎn)生共振,使卡片內(nèi)具有電荷,當(dāng)所積累的電荷達(dá)到2V時(shí)??ㄆ行酒瑢⒖▋?nèi)數(shù)據(jù)發(fā)射出去或接收基站對(duì)卡片的操作。射頻卡的標(biāo)準(zhǔn)操作距離為lOOmm,與卡片讀寫器的通信速率高達(dá)106Kb/s。
2 讀寫器芯片特性和功能簡(jiǎn)介
MF RC5o0是應(yīng)用于13.56MHz非接觸式通信中高集成射頻識(shí)別系統(tǒng)中的一員。該系統(tǒng)利用先進(jìn)的調(diào)制和解調(diào)概念,完全集成了在13.56MHz下所有類型的被動(dòng)非接觸式通信方式和協(xié)議。MF RC5o0支持ISO14443A所有的層,內(nèi)部的發(fā)送器部分不需要增加有源電路就能夠直接驅(qū)動(dòng)近操作距離的天線(距離可達(dá)100mm);接收器部分提供一個(gè)堅(jiān)固有效的解調(diào)和解碼電路.用于ISO14443兼容的應(yīng)答器信號(hào);數(shù)字部分處理ISO14443A幀和錯(cuò)誤檢測(cè)(奇偶與CRC)。此外,它還支持快速CRYPTO1加密算法,用于驗(yàn)證Mi.fare卡系列產(chǎn)品。方便的并行接口可直接連接到任何8位微處理器.為讀卡器或終端的設(shè)計(jì)提供了極大的靈活性 。
3 RFID讀寫器的設(shè)計(jì)
3.1 系統(tǒng)硬件設(shè)計(jì)
3.1.1 讀卡器硬件系統(tǒng)框圖
基于MF RC500的RFID技術(shù)Mifare卡讀寫器系統(tǒng),其系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
硬件主要由STC89C52RC單片機(jī)、MF RC500、以及232通信等接口模塊組成。讀卡器用sTC89C52RC單片機(jī)作主控制器.單片機(jī)控制MF RC500驅(qū)動(dòng)天線對(duì)Mifare卡進(jìn)行讀寫操作。74HC595作顯示驅(qū)動(dòng)器驅(qū)動(dòng)LED數(shù)碼顯示器,PS/2總線作為通用編碼鍵盤接口,鍵盤與LED顯示器作為人機(jī)交互接口.MAX232作串口信號(hào)轉(zhuǎn)換。由于主控芯片STC89C52RC有8K的FLASH.并且內(nèi)含2K的EEPROM,可方便反復(fù)擦寫、修改程序。同時(shí),由于外部不用擴(kuò)展程序存儲(chǔ)器,可以簡(jiǎn)化電路設(shè)計(jì).減小讀卡器的尺寸.同時(shí)有較多的I/O口提供給系統(tǒng)使用。
3.1.2 讀寫器的原理圖設(shè)計(jì)
讀寫器電路是由STC89C52RC型單片機(jī)控制專用讀寫芯片(MF RC500)組成。系統(tǒng)的工作方式是先由MCU控制MF RC500驅(qū)動(dòng)天線對(duì)Mifare卡進(jìn)行讀寫操作,然后與PC通信,把數(shù)據(jù)傳給上位機(jī)。其主要原理如圖2~圖5所示。
讀寫模塊MF RC500是整個(gè)讀寫器的核心,它完成讀寫Mifare卡的所有必需功能,包括RF信號(hào)的產(chǎn)生、調(diào)制、解調(diào)、安全認(rèn)證和防重疊等。作為單片機(jī)與射頻卡通訊的中介,MF RC500與Mifarel卡由射頻場(chǎng)來(lái)建立無(wú)線鏈接并完成數(shù)據(jù)交換。其原理如圖2所示。
MCU是通過(guò)對(duì)讀寫模塊MF RC500內(nèi)核特殊的內(nèi)存寄存器的讀寫來(lái)控制MF RC500。MF RC500射頻模塊的DO—D7(數(shù)據(jù)端口1和單片機(jī)數(shù)據(jù)端口P0口直接連接進(jìn)行數(shù)據(jù)傳送,中斷請(qǐng)求口IRQ和單片機(jī)的中斷0f INT0)連接,即單片機(jī)利用MF RC500提供中斷信息對(duì)其進(jìn)行控制。讀寫器的控制單片機(jī)原理如圖3所示。
天線部分電路如圖4所示。天線拾取的信號(hào)經(jīng)過(guò)天線匹配電路送到RX腳,MF RC500的內(nèi)部接收器對(duì)信號(hào)進(jìn)行檢測(cè)和解調(diào)并根據(jù)寄存器的設(shè)定進(jìn)行處理,然后數(shù)據(jù)發(fā)送到并行接口,由MCU進(jìn)行讀取。
MF RC500通過(guò)TX1和TX2提供13.56 MHz的能量載波驅(qū)動(dòng)天線。根據(jù)寄存器的設(shè)定對(duì)發(fā)送數(shù)據(jù)進(jìn)行調(diào)制來(lái)得到發(fā)送的信號(hào)。Mifarel卡采用RF場(chǎng)的負(fù)載調(diào)制進(jìn)行響應(yīng)。
讀寫器與上位機(jī)的通信采用RS一232方式。單片機(jī)STC89C52RC 與PC 串口電平不匹配,使用MAX232型電平轉(zhuǎn)換器進(jìn)行電平轉(zhuǎn)換。接口電路如圖5所示。
3.2 程序設(shè)計(jì)
設(shè)計(jì)思想:當(dāng)有Mifare1射頻卡進(jìn)入距離射頻天線100ram內(nèi),讀卡器就可以讀到卡中的數(shù)據(jù)。系統(tǒng)單片機(jī)要將所讀數(shù)據(jù)進(jìn)行分析處理,如果符合條件,則讀卡成功指示燈閃一下,蜂嗚器嗚叫一聲。并將卡片數(shù)據(jù)與當(dāng)前時(shí)間一起存入單片機(jī)內(nèi)的EEPROM.并在LED顯示器上顯示卡數(shù)據(jù)。沒有卡進(jìn)入讀卡器工作范圍時(shí),在顯示器上顯示當(dāng)前時(shí)間。若讀卡出錯(cuò),顯示出錯(cuò)標(biāo)志。在與上位機(jī)通訊時(shí)。將單片機(jī)內(nèi)部EEPROM存入的信息發(fā)往上位機(jī)。
單片機(jī)程序包括以下幾個(gè)部分:讀寫器按鍵處理程序、讀寫卡程序、數(shù)據(jù)存儲(chǔ)程序、與上位機(jī)的通訊程序、顯示驅(qū)動(dòng)程序、時(shí)基生成程序。以下重點(diǎn)介紹讀寫卡程序的設(shè)計(jì)。
讀寫卡過(guò)程包括裝載密碼、詢卡、防沖突、選卡、驗(yàn)證密碼、讀寫卡和??ā_@一系列操作必須按固定的順序進(jìn)行。在沒有射頻卡進(jìn)入射頻天線有效范圍時(shí),在低5位顯示當(dāng)前時(shí)鐘;當(dāng)有射頻卡進(jìn)入到射頻天線的有效范圍,讀卡程序驗(yàn)證卡及密碼成功后.將卡號(hào)和讀卡時(shí)間及相關(guān)數(shù)據(jù)作為一條記錄存入EEP—ROM存儲(chǔ)器中,并在LED顯示器高5位上顯示卡號(hào)。
(1)詢卡過(guò)程:當(dāng)一張Mifare卡處在卡讀寫器的天線工作范圍之內(nèi)時(shí)。MCU將通過(guò)MF RC500發(fā)送一個(gè)詢卡請(qǐng)求,詢卡請(qǐng)求有兩種,一種是request all,這指令是非連續(xù)性的讀卡指令,只讀一次;另一種是re—quest std,這是連續(xù)性的讀卡指令。當(dāng)卡片收到該指令后,卡片內(nèi)的ATR將啟動(dòng).并將卡片的Block 0中的卡片類型(TagType)號(hào)共2個(gè)字節(jié)傳送給讀卡器,從而建立卡片與讀卡器的第一步通信聯(lián)絡(luò).完成詢卡過(guò)程。
(2)防沖突:如果有多張Mifare卡片處在卡片讀寫器的天線工作范圍之內(nèi).MF RC500能檢測(cè)出來(lái)并通知到MCU。此時(shí)MCU通過(guò)防沖突算法來(lái)與每一張卡進(jìn)行通訊。由于每一張Mifare卡片都具有其唯一的序列號(hào)而決不會(huì)相同,因此,MCU根據(jù)卡片的序列號(hào)來(lái)保證一次只對(duì)一張卡進(jìn)行操作。(根據(jù)ISO14443協(xié)議,M1型卡傳統(tǒng)的防沖突算法是動(dòng)態(tài)二進(jìn)制檢索樹算法。它首先利用MANCHESTER編碼“沒有變化”的狀態(tài)來(lái)檢測(cè)碰撞位,然后把碰撞位設(shè)為二進(jìn)制“1”,用SELECT命令發(fā)送碰撞前接收的部分卡片序列號(hào)和碰撞位,如果卡片開頭部分序列號(hào)與其相同,則做出應(yīng)答,不相同則沒有響應(yīng)。以此來(lái)縮小卡片范圍,最終達(dá)到無(wú)碰撞)。
(3)選卡:通過(guò)以上兩步以后,MCU選取一張卡的序列號(hào)進(jìn)行通訊,即選卡。
(4)驗(yàn)證密碼:選定要處理的卡片之后,MCU確定要訪問(wèn)的扇區(qū)號(hào),并對(duì)該扇區(qū)密碼進(jìn)行密碼校驗(yàn),在三次相互認(rèn)證之后就可以通過(guò)加密流進(jìn)行通訊。(在選擇另一扇區(qū)時(shí),必須進(jìn)行另一扇區(qū)密碼校驗(yàn)。)
(5)讀寫卡:讀寫操作是對(duì)卡的最后操作,包括讀(Read)、寫(Write)、增值(Increment)、減值(Decre-ment)、存儲(chǔ)(Restore)和傳送(Transfer)等操作。
(6)??ǎ寒?dāng)一系列的操作完成后,MCU發(fā)送一個(gè)??罱o卡片,使其退出工作。
在非接觸通訊中,為了保證讀寫器和卡片之間數(shù)據(jù)傳遞完整、可靠,采取以下措施:一是防沖突算法,二是通過(guò)16位CRC糾錯(cuò),三是檢查每字節(jié)的奇偶校驗(yàn)位,四是檢查位數(shù),五是用編碼方式來(lái)區(qū)分“1”、“O”或無(wú)信息。
為提高處理和響應(yīng)速度,程序設(shè)計(jì)采用單片機(jī)匯編語(yǔ)言和C語(yǔ)言混合編程。中斷服務(wù)程序采用匯編語(yǔ)言編寫.其它程序采用C語(yǔ)言編寫。主程序流程圖如圖6所示。
4 結(jié)束語(yǔ)
本文設(shè)計(jì)了基于MF RC500的Mifarel射頻卡嵌入式讀寫器。經(jīng)實(shí)踐驗(yàn)證.本系統(tǒng)能對(duì)范圍內(nèi)的多個(gè)卡準(zhǔn)確無(wú)誤地讀寫。在此讀寫器的基礎(chǔ)上,稍加修改就能開發(fā)成不同的射頻識(shí)別應(yīng)用系統(tǒng),對(duì)RFID的推廣具有一定的實(shí)用價(jià)值。
參考文獻(xiàn):
[1]游戰(zhàn)清,李蘇建.無(wú)線射頻識(shí)別技術(shù)(RFID)理論與應(yīng)用[M].北京:電子工業(yè)出版社。2004.
[2]Klans Finkertzeller[德]著,吳曉峰譯.射頻識(shí)別技術(shù)(第3版)[M].北京:電子工業(yè)出版社,2006.
[3]徐新民,張春升.TEMIC系列射頻卡及其應(yīng)用叨.電測(cè)與儀表,2002,(1):49—52.
[4]Philips.MF RC50 m#y Integrated ISO 14443A Reader IC[R],2002.
作者簡(jiǎn)介:
李和平(1971一),男,漢族,婁底職業(yè)技術(shù)學(xué)院電子學(xué)講師,高級(jí)技師,湖南大學(xué)電氣與信息工程學(xué)院碩士研究生。主要研究方向?yàn)殡娮蛹夹g(shù)應(yīng)用。Email:lhp1397381200l@sina.com
黎福海(1964一),男,漢族,湖南大學(xué)電氣與信息工程學(xué)院教授,目前研究領(lǐng)域?yàn)閿?shù)字信號(hào)處理和集成電路。