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