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