版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
非接觸式IC卡技術(shù)電子與信息工程學(xué)院非接觸式IC卡技術(shù)電子與信息工程學(xué)院提綱非接觸式IC卡概述系統(tǒng)構(gòu)成/分類/國(guó)際標(biāo)準(zhǔn)非接觸式IC卡工作原理
能量傳遞/信息傳遞/防沖突非接觸式IC卡芯片技術(shù)
MIFARE1非接觸式IC卡接口技術(shù)MIFARE1提綱非接觸式IC卡概述為什么要使用非接觸式IC卡?在頻繁操作的場(chǎng)合,如門禁、考勤、小額電子錢包(公交收費(fèi)、食堂收費(fèi)、高速公路收費(fèi)、停車場(chǎng)收費(fèi))、身份認(rèn)證等場(chǎng)合,接觸式IC卡越來(lái)越明顯的暴露出其弊端:容易磨損操作速度慢使用不方便為什么要使用非接觸式IC卡?在頻繁操作的場(chǎng)合,如門禁、考勤、什么是非接觸式IC卡?
ContactlessICC非接觸式IC卡是在卡中敷設(shè)天線,利用天線的接收發(fā)射,與讀寫器的天線交換信號(hào),實(shí)現(xiàn)一種無(wú)線通訊,非接觸式IC卡又被稱為射頻卡(RFC——RadioFrequencyCard),簡(jiǎn)稱RF卡,非接觸式IC卡系統(tǒng)被稱為射頻識(shí)別系統(tǒng)(RFID——RadioFrequencyIdentification)。什么是非接觸式IC卡?
ContactlessICC非接觸非接觸式IC卡系統(tǒng)構(gòu)成非接觸式IC卡:數(shù)據(jù)載體,應(yīng)答器非接觸式IC卡讀寫器:卡接口設(shè)備,閱讀器,尋呼器非接觸式IC卡系統(tǒng)構(gòu)成非接觸式IC卡:數(shù)據(jù)載體,應(yīng)答器
非接觸式IC卡的基本構(gòu)成
非接觸式IC卡:芯片+天線+卡基非接觸式IC卡的基本構(gòu)成非接觸式IC卡:芯片+天線+卡非接觸式IC卡技術(shù)(最新版)課件非接觸式IC卡讀寫器的構(gòu)成高頻模塊(發(fā)送器和接收器)、控制單元耦合元件(天線)
非接觸式IC卡讀寫器的構(gòu)成高頻模塊(發(fā)送器和接收器)、非接觸式IC卡的特點(diǎn)
可靠性高、壽命長(zhǎng)。
非接觸式IC卡與讀寫器之間無(wú)機(jī)械接觸,避免了由于接觸讀寫而產(chǎn)生的各種故障。非接觸式ID卡表面無(wú)裸露的芯片,無(wú)須擔(dān)心芯片脫落、靜電擊穿、彎曲、損壞等問(wèn)題,既便于卡片的印刷,又提高了卡片使用的可靠性。
操作快捷便利。動(dòng)態(tài)處理。成本較高。非接觸式IC卡的特點(diǎn)可靠性高、壽命長(zhǎng)。非接觸式IC卡的分類按片內(nèi)IC:存儲(chǔ)卡、邏輯加密卡、CPU卡按工作距離:密耦合卡、近耦合和疏耦合卡
按工作頻率的高低:125kHz的低頻卡(30kHz~300kHz),13.56MHz的高頻或射頻卡(3MHz~30MHz),915MHz、2.45GHz的超高頻卡(300MHz~3GHz)、5.8GHz的微波卡(>3GHz)。
按卡內(nèi)芯片供電方式:卡內(nèi)帶電池的有源卡和卡內(nèi)無(wú)電池、由讀寫器以無(wú)線感應(yīng)方式供電的無(wú)源卡
按使用過(guò)程中的讀寫方式:只讀卡(ID卡)和讀寫卡(帶EEPROM)非接觸式IC卡的分類按片內(nèi)IC:存儲(chǔ)卡、邏輯加密卡、CPU卡EMID厚卡EMID薄卡PHILIPSMIFARE1卡TI(德州儀器)Tag-it電子標(biāo)簽手表卡與鑰匙扣卡EMID厚卡EMID薄卡PHILIPSMIFARE1特點(diǎn)頻段工作頻率數(shù)據(jù)傳輸速率讀寫距離讀寫區(qū)域低頻125~134KHz慢適中(<1m)較為均勻高頻13.56MHz較快適中(<1m)較為均勻超高頻860~960MHz快遠(yuǎn)(<10m)很難定義不同頻段射頻卡的特點(diǎn)特點(diǎn)工作頻率數(shù)據(jù)傳輸速率讀寫距離讀寫區(qū)域低非接觸式IC卡的國(guó)際標(biāo)準(zhǔn)標(biāo)準(zhǔn)組織陣營(yíng)頻段技術(shù)規(guī)范EPCglobal全球產(chǎn)品電子代碼管理中心
歐美企業(yè)沃爾瑪、思科、敦豪快遞、麥德龍和吉列等UHF(860-960MHz)電子產(chǎn)品代碼(EPC)、電子標(biāo)簽規(guī)范和互操作性、識(shí)讀器-電子標(biāo)簽通信協(xié)議、中間件軟件系統(tǒng)接口等ISO/IEC國(guó)際標(biāo)準(zhǔn)組織/國(guó)際電工委員會(huì)
全球非盈利工業(yè)標(biāo)準(zhǔn)組織多個(gè)頻段識(shí)別卡與身份識(shí)別ISO/IEC14443自動(dòng)識(shí)別ISO/IEC15693ISO/IEC18000UID泛在技術(shù)核心組織日本電子廠商、IT企業(yè)2.45GHz和13.56MHz電子標(biāo)簽超微芯片部分規(guī)格
非接觸式IC卡的國(guó)際標(biāo)準(zhǔn)標(biāo)準(zhǔn)組織陣營(yíng)頻段技術(shù)規(guī)范EPCglo注釋:ICC——集成電路卡CICC——Close-CoupledICC,緊密(密耦合)卡;PICC——ProximityICC,稱為接近(近耦合)卡;VICC——VicinityICC,稱為鄰近(疏耦合)卡。CD——CouplingDevice,是讀寫器中發(fā)射電磁波的部分
注釋:ICC——集成電路卡ISO/IEC14443國(guó)際標(biāo)準(zhǔn)現(xiàn)階段ISO/IEC14443(草案)主要有兩個(gè)體系并存:ISO/IEC14443-TypeA、ISO/IEC14443-TypeB。
TypeA:以PHILIPS公司為代表,包括SIEMENS、HITACHI、GEMPLUS、G&D和Schlumberger等公司
TypeB:以ST(意法半導(dǎo)體)、MOTOROLA、ATMEL、韓國(guó)SAMSUNG和日本的NEC等公司為代表。
ISO/IEC14443國(guó)際標(biāo)準(zhǔn)ISO/IEC18000國(guó)際標(biāo)準(zhǔn)18000-1:物理層18000-2:低于135KHz通信的空中接口的參數(shù);18000-3:在13.56MHz通信的空中接口的參數(shù);18000-4:在2.45GHz通信的空中接口的參數(shù);18000-5:5.8GHz通信的空中接口的參數(shù);18000-6:860-960MHz通信的空中接口的參數(shù);18000-7:433MHz通信的空中接口的參數(shù);ISO/IEC18000國(guó)際標(biāo)準(zhǔn)MOVR0,#03HAUTHENTICATION4密碼B在校驗(yàn)密碼A或密碼B正確后可讀,可修改;MOVA,#0CH;并校驗(yàn)第一次由(B)環(huán)中讀寫器發(fā)出去的隨機(jī)數(shù)RA是否與(D)環(huán)中接收到的TOKENBA中的RA’相一致;AntiCollision操作使MCM能在多張Mifare1卡中選擇某一張卡。CJNEA,#0AH,T_ERR1 ;(A)環(huán):Mifare1卡取隨機(jī)數(shù)RB=1100,KEY1=1010,READ/WRITE均需整塊操作。(2)將二張MIFARE1卡同時(shí)放置在讀寫器天線有效工作范圍內(nèi),在RFDEMO軟件中執(zhí)行讀操作,根據(jù)讀出的SN找出被選中的卡(例如為1#卡)。4 ;通常數(shù)據(jù)塊中的數(shù)據(jù)都是需要保密的數(shù)據(jù),對(duì)這些數(shù)據(jù)的讀/寫/加值/減值均需:符合該塊存取條件的要求+通過(guò)該扇區(qū)的密碼認(rèn)證。裝載密碼(LoadKey)操作:在RFDEMO軟件界面中選擇密碼集0(KEYSET0),密碼A(KEYA),將扇區(qū)0-14的密碼A設(shè)置為全F,而將扇區(qū)15的密碼A設(shè)置為全0。ANLA,#0BH ;MOVB,#00HMifare1卡出廠初始化時(shí),所有扇區(qū)塊3的初始化值均為MOVX@R0,AMOVA,#02H;7,ANTI_STACON ;目前13.56MHz的產(chǎn)品主要包括:ISO14443TypeA卡——Mifare1S50卡、UltraLight卡LEGICTypeA卡、上海公交卡即華虹IC卡、復(fù)旦微電子TypeA卡ISO14443TypeB卡——ATMELRF020ISO15693(電子標(biāo)簽)卡——PHILIPSI-Code2、TITag-it標(biāo)簽I-CODE(電子標(biāo)簽)卡——PHILIPSI-Code、上海貝嶺BL75R02SONYFelica卡——香港八達(dá)通、深圳通中國(guó)二代身份證MOVR0,#03H目前13.56MHz的產(chǎn)品主要包括:目前125KHz的產(chǎn)品主要包括:
技術(shù)指標(biāo)
EM4100/4102標(biāo)準(zhǔn)卡4001感應(yīng)式ID厚卡
8803感應(yīng)式ID厚卡芯片SwatchGroupEm4102Wafer臺(tái)灣4001COB臺(tái)灣8803Wafe工作頻率125KHZ125KHZ125KHZ感應(yīng)距離2-20cm2-20cm2-20cm
尺寸85.5x54x0.82mm85.5x54x2mm85.5x54x1.05mm封裝材料PVC、ABSPVC,ABSPVC封裝工藝層壓封裝手工粘貼手工層壓號(hào)碼可選連號(hào)噴碼
典型應(yīng)用考勤系統(tǒng)、門禁系統(tǒng)、企業(yè)一卡通系統(tǒng)等考勤系統(tǒng)、門禁系統(tǒng)、企業(yè)一卡通系統(tǒng)等考勤系統(tǒng)、門禁系統(tǒng)、企業(yè)一卡通系統(tǒng)等此外,還包括ATMEL的TEMIC卡系列、TI的低頻標(biāo)簽、HITAG卡等。目前125KHz的產(chǎn)品主要包括:
技術(shù)指標(biāo)
EM4100/非接觸式IC卡工作原理
要解決的三大問(wèn)題:(1)非接觸卡如何取得工作電壓。(2)讀寫器與IC卡之間如何交換信息。(3)防沖突問(wèn)題:多張卡同時(shí)進(jìn)入讀寫器發(fā)射的能量區(qū)域(即發(fā)生沖突)時(shí)如何對(duì)卡逐一進(jìn)行處理。
非接觸式IC卡工作原理要解決的三大問(wèn)題:非接觸式IC卡與讀寫器接口電路非接觸式IC卡與讀寫器接口電路(1)讀寫器發(fā)射激勵(lì)信號(hào)(一組固定頻率的電磁波),數(shù)字信息調(diào)制在該射頻信號(hào)上。(2)IC卡進(jìn)入讀寫器工作區(qū)內(nèi),被讀寫器信號(hào)激勵(lì)。在電磁波的激勵(lì)下,卡內(nèi)的LC串聯(lián)諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷,當(dāng)所積累的電荷達(dá)到2V時(shí),此電容可以作為電源為其他電路提供工作電壓,供卡內(nèi)集成電路工作所需。(諧振、整流、濾波、穩(wěn)壓)。(3)同時(shí)卡內(nèi)的電路對(duì)接收到的諧振信號(hào)進(jìn)行解調(diào),還原數(shù)字信息,對(duì)信息進(jìn)行分析處理,判斷發(fā)自讀寫器的命令,如需在EEPROM中寫入或修改內(nèi)容,還需將2V電壓提升到15V左右,以滿足寫入EEPROM的電壓要求。(4)IC卡對(duì)讀寫器的命令進(jìn)行處理后,發(fā)射應(yīng)答信息(將應(yīng)答信息調(diào)制到射頻信號(hào)上)給讀寫器。(5)讀寫器接收IC卡的射頻信號(hào)并進(jìn)行解調(diào)還原出應(yīng)答信息。
(1)讀寫器發(fā)射激勵(lì)信號(hào)(一組固定頻率的電磁波),數(shù)字信息調(diào)初始化與防沖突
(AntiCollion)如果有2張或2張以上的IC卡進(jìn)入讀寫器的工作范圍,稱之為沖突(或碰撞Collion),此時(shí)就需要解決如何對(duì)多張IC卡逐一處理的問(wèn)題——防沖突AntiCollion。防沖突方案:位幀防沖突(BitAntiCollision)動(dòng)態(tài)時(shí)隙-ALOHA法(Slotted-ALOHA法)初始化與防沖突(AntiCollion)如果有2張或2張以項(xiàng)目引入——IC卡公交收費(fèi)機(jī)定額收費(fèi)操作方便快捷可顯示余額非法卡或余額不足報(bào)警可將當(dāng)班收款額上傳總站數(shù)據(jù)庫(kù)總站可調(diào)整定額額度。卡遺失可掛失。項(xiàng)目引入——IC卡公交收費(fèi)機(jī)定額收費(fèi)項(xiàng)目設(shè)計(jì)之一——卡型選擇接觸式邏輯加密卡——SLE4406非接觸式ID卡——EM的4001卡非接觸式邏輯加密卡——PHILIPS的Mifare卡操作不方便沒有加密邏輯,不安全容易實(shí)現(xiàn)定額收費(fèi),操作方便快捷,安全性高,通用性強(qiáng)項(xiàng)目設(shè)計(jì)之一——卡型選擇接觸式邏輯加密卡操作不方便沒有加密邏Mifare1非接觸式IC卡
基本性能指標(biāo):卡內(nèi)器件:無(wú)線智能卡芯片MifareMF1ICS50+天線線圈標(biāo)準(zhǔn):遵從ISO/IEC14443TypeA標(biāo)準(zhǔn)工作頻率:13.56MHz數(shù)據(jù)傳送速率:106kbit/s(9.4μs/bit)Mifare1非接觸式IC卡基本性能指標(biāo):Mifare卡與讀寫器之間的信號(hào)
Mifare卡與讀寫器之間的信號(hào)注釋:ICC——集成電路卡LCALLANTICOLLISION ;按標(biāo)志連接非接觸式IC卡讀寫器與PC機(jī)間的通信線,打開MIFARE系列非接觸式IC卡演示軟件MWRF,確認(rèn)通信正常。入口:塊地址addr,值value存放于D_BUFMOVA,#02H;發(fā)送塊數(shù)據(jù)(16B)電子產(chǎn)品代碼(EPC)、電子標(biāo)簽規(guī)范和互操作性、識(shí)讀器-電子標(biāo)簽通信協(xié)議、中間件軟件系統(tǒng)接口等W_addr EQu 05H ;AUTHENTICATIONRET發(fā)送命令碼30H+塊地址(0~63)MOVB,#03H按標(biāo)志連接非接觸式IC卡讀寫器與PC機(jī)間的通信線,打開MIFARE系列非接觸式IC卡演示軟件MWRF,確認(rèn)通信正常。MOVX@R0,A修改內(nèi)容并再次讀出,記錄修改后的內(nèi)容。在電磁波的激勵(lì)下,卡內(nèi)的LC串聯(lián)諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷,當(dāng)所積累的電荷達(dá)到2V時(shí),此電容可以作為電源為其他電路提供工作電壓,供卡內(nèi)集成電路工作所需。ANTICOLLISION命令(2)修改扇區(qū)14的存取控制字節(jié),將扇區(qū)14塊0設(shè)置為校驗(yàn)密碼A/B正確可讀,永不可修改。副載波:fc/16=847.ANLA,#0FHMifare卡的信號(hào)調(diào)制方式
TypeA與TypeB調(diào)制程度的比較
TYPEA:100%ASKTYPEB:10%ASK注釋:ICC——集成電路卡Mifare卡的信號(hào)調(diào)制方式Ty從讀寫器到卡的調(diào)制與編碼載波:fc=13.56MHz數(shù)據(jù)傳輸速率:13.56MHz/128=106kbit/s(9.4μs/bit)調(diào)制方式:TYPEA用100%ASK,TYPEB用10%ASK,編碼方式:TYPEA用改進(jìn)的MILLER編碼,TYPEB用NRZ編碼(不歸零制數(shù)位編碼)從讀寫器到卡的調(diào)制與編碼載波:fc=13.56MHz從卡到讀寫器的調(diào)制與編碼副載波:fc/16=847.5kHz數(shù)據(jù)傳輸速率:106kbit/s調(diào)制方式:副載波調(diào)制編碼方式:TYPEA用MANCHESTER-ASK,TYPEB用BPSK-NRZ(二進(jìn)制相移鍵控?cái)?shù)位編碼)從卡到讀寫器的調(diào)制與編碼副載波:fc/16=847.5kHMifare1卡片的存儲(chǔ)結(jié)構(gòu)
存儲(chǔ)容量:1024×8位字長(zhǎng)(即1KB),存儲(chǔ)介質(zhì):EEPROM分為16個(gè)扇區(qū)(扇區(qū)0~15)每個(gè)扇區(qū)有4個(gè)塊(Block)塊0、塊1、塊2和塊3。每個(gè)塊有16個(gè)字節(jié)。一個(gè)扇區(qū)共有16Byte×4=64Byte
Mifare1卡片的存儲(chǔ)結(jié)構(gòu)存儲(chǔ)容量:1024×8位字長(zhǎng)塊功能詳解1)廠商塊地址:扇區(qū)0塊0內(nèi)容:IC卡廠商標(biāo)志。其中:第0~4個(gè)字節(jié)為卡序列號(hào)SN,第5個(gè)字節(jié)為序列號(hào)的校驗(yàn)碼;第6個(gè)字節(jié)為卡容量字節(jié)“SIZE”;第7,8個(gè)字節(jié)為卡類型號(hào)Tagtype;特性:基于保密性和系統(tǒng)的安全性,這一塊在IC卡廠商編程之后被置為寫保護(hù),因此該塊不能再?gòu)?fù)用為應(yīng)用數(shù)據(jù)塊。例:420A7E00368804004481740630373937H序列號(hào)SN:420A7E00H+校驗(yàn)碼36H容量字節(jié)SIZE:88H卡類型號(hào)TagType:0400H
塊功能詳解1)廠商塊塊功能詳解2)數(shù)據(jù)塊每扇區(qū)3個(gè)數(shù)據(jù)塊(扇區(qū)0只有2個(gè)),每塊16字節(jié)??捎蓞^(qū)尾塊中的存取控制位(accessbits)配置為:
讀寫塊:用作一般的數(shù)據(jù)保存,可用讀/寫命令直接讀/寫整個(gè)塊值塊:用作數(shù)值塊,可以進(jìn)行初始化值、加值、減值、讀值的運(yùn)算,相應(yīng)配用的命令為INC/DEC/RESTORE/TRANSFER命令。通常數(shù)據(jù)塊中的數(shù)據(jù)都是需要保密的數(shù)據(jù),對(duì)這些數(shù)據(jù)的讀/寫/加值/減值均需:符合該塊存取條件的要求+通過(guò)該扇區(qū)的密碼認(rèn)證。
塊功能詳解2)數(shù)據(jù)塊塊功能詳解3)區(qū)尾塊
每個(gè)扇區(qū)的塊3為區(qū)尾(SectorTrailer)塊:
KEYA(6B)+Accessbits(4B)+KEYB(6B)例:A0A1A2A3A4A5FF078069B0B1B2B3B4B5密鑰A:A0A1A2A3A4A5H(缺省值)密鑰B:B0B1B2B3B4B5H(缺省值)存取控制位:FF078069H(缺省值)
塊功能詳解3)區(qū)尾塊Mifare1卡存取控制與數(shù)據(jù)區(qū)的關(guān)系
Accessbits(存取控制位):定義該扇區(qū)中4個(gè)塊的訪問(wèn)條件,及定義數(shù)據(jù)塊的類型(讀寫或值)Mifare1卡出廠初始化時(shí),所有扇區(qū)塊3的初始化值均為
A0A1A2A3A4A5FF078069B0B1B2B3B4B5
卡初始化后的存取控制條件為:密碼A永不可讀,校驗(yàn)密碼A或密碼B正確后可以修改;密碼B在校驗(yàn)密碼A或密碼B正確后可讀,可修改;數(shù)據(jù)塊在校驗(yàn)密碼A或密碼B正確后可讀,可修改。
Mifare1卡存取控制與數(shù)據(jù)區(qū)的關(guān)系A(chǔ)ccessb小結(jié):MIFARE1卡特點(diǎn)一EEPROM存儲(chǔ)器結(jié)構(gòu)提供多應(yīng)用:1K字節(jié)EEPROM,16個(gè)扇區(qū),4數(shù)據(jù)塊/扇區(qū),16字節(jié)/塊。用戶可以定義每一個(gè)存儲(chǔ)器塊的訪問(wèn)條件。每個(gè)扇區(qū)(每應(yīng)用)擁有各自獨(dú)立的密鑰,支持帶密鑰層次的多應(yīng)用。小結(jié):MIFARE1卡特點(diǎn)一EEPROM存儲(chǔ)器結(jié)構(gòu)提供多應(yīng)Mifare1卡的密碼認(rèn)證方式
Mifare1卡的密碼的認(rèn)證采用了三次相互認(rèn)證的方法,具有很高的安全性。
Mifare1卡的密碼認(rèn)證方式Mifare1卡的密NOPDJNZR7,ANTI_LOOP18000-1:物理層Mifare1非接觸式IC卡功能組成MOV22H,A ;LCALLREAD ;卡類型號(hào)TagType:0400HDV=1?(EEPROM寫入結(jié)束否?)存取控制位保護(hù),用戶可以定義每一個(gè)存儲(chǔ)器塊的訪問(wèn)條件AntiCollision操作使MCM能在多張Mifare1卡中選擇某一張卡。(5)取走(4)中的卡,重新讀出并記錄被選中的卡的扇區(qū)0塊1的數(shù)據(jù),并記錄在報(bào)告上。Mifare1非接觸式IC卡功能組成注意:嚴(yán)禁修改對(duì)塊3的設(shè)置,否則容易錯(cuò)誤將存取控制位設(shè)為永不可寫,將無(wú)法恢復(fù)為默認(rèn)值。MOVR0,#06H讀取卡回送的UID(SN)可由區(qū)尾塊中的存取控制位(accessbits)配置為:通常數(shù)據(jù)塊中的數(shù)據(jù)都是需要保密的數(shù)據(jù),對(duì)這些數(shù)據(jù)的讀/寫/加值/減值均需:符合該塊存取條件的要求+通過(guò)該扇區(qū)的密碼認(rèn)證。MOVB,#01HSwatchGroupEm4102WaferMOVB,#00H ;(A)環(huán):Mifare1卡向讀寫器發(fā)送一個(gè)隨機(jī)數(shù)據(jù)RB;(B)環(huán):讀寫器收到RB后向Mifare1卡片發(fā)送一個(gè)令牌數(shù)據(jù)TOKENAB=用讀寫器中存放的密碼加密后的RB+讀寫器發(fā)出的一個(gè)隨機(jī)數(shù)據(jù)RA;(C)環(huán):Mifare1卡片收到TOKENAB后,用卡中的密碼對(duì)TOKENAB的加密的部分進(jìn)行解密得到RB’,并校驗(yàn)第一次由(A)環(huán)中Mifare1卡片發(fā)出去的隨機(jī)數(shù)RB是否與(B)環(huán)中接收到的TOKENAB中的RB’相一致;若讀寫器與卡中的密碼及加/解密算法一致,將會(huì)有RB=RB’,校驗(yàn)正確,否則將無(wú)法通過(guò)校驗(yàn);(D)環(huán):如果(C)環(huán)校驗(yàn)是正確的,則Mifare1卡片用卡中存放的密碼對(duì)RA加密后發(fā)送令牌TOKENBA給讀寫器;(E)環(huán):讀寫器收到令牌TOKENBA后,用讀寫器中存放的密碼對(duì)令牌TOKENBA中的RA(隨機(jī)數(shù))進(jìn)行解密得到RA’;并校驗(yàn)第一次由(B)環(huán)中讀寫器發(fā)出去的隨機(jī)數(shù)RA是否與(D)環(huán)中接收到的TOKENBA中的RA’相一致;同樣,若讀寫器與卡中的密碼及加/解密算法一致,將會(huì)有RA=RA’,校驗(yàn)正確,否則將無(wú)法通過(guò)校驗(yàn);NOP(A)環(huán):Mifare1卡向讀寫器發(fā)送一個(gè)隨機(jī)數(shù)據(jù)(A)環(huán):Mifare1卡取隨機(jī)數(shù)RB=1100,KEY1=1010,加密/解密算法:異或,發(fā)送RB給讀寫器(B)環(huán):讀寫器取隨機(jī)數(shù)RA=0011,KEY2=1010,加密/解密算法:異或,接收RB對(duì)RB加密:TOKENB=RB異或KEY2=0110,發(fā)送TOKENB+RA(C)環(huán):Mifare1卡片對(duì)TOKENB解密:RB‘=TOKENB異或KEY1=1100=RB,校驗(yàn)正確;(D)環(huán):Mifare1卡片對(duì)RA加密TOKENA=RA異或KEY1=1001;(E)環(huán):讀寫器收對(duì)TOKENA解密:RA’=TOKENA異或KEY2=0011=RA,校驗(yàn)正確(A)環(huán):Mifare1卡取隨機(jī)數(shù)RB=1100,KEY小結(jié):MIFARE1卡特點(diǎn)二高保密性:全球唯一SN;密鑰及傳輸密碼保護(hù),各扇區(qū)密碼獨(dú)立且有三套(KEYSET0、1、2)二個(gè)(KEYA、KEYB)密碼。密碼認(rèn)證采用三次相互認(rèn)證;存取控制位保護(hù),用戶可以定義每一個(gè)存儲(chǔ)器塊的訪問(wèn)條件RF信道數(shù)據(jù)加密小結(jié):MIFARE1卡特點(diǎn)二高保密性:Mifare1非接觸式IC卡功能組成
Mifare1非接觸式IC卡功能組成POWEROFF狀態(tài)IDLE狀態(tài)READY狀態(tài)ACTIVE狀態(tài)HALT狀態(tài)RESETREQUEST命令A(yù)NTICOLLISION命令啟動(dòng)防沖突循環(huán)讀取卡回送的UID(SN)HALT命令SELECTUID命令應(yīng)用:AUTENTICATION/READ/WRITE/INC/DEC命令WAKEUP命令MIFARE卡防沖突流程POWEROFF狀態(tài)IDLE狀態(tài)READY狀態(tài)ACTIVE小結(jié):MIFARE1卡特點(diǎn)三真正的防沖突:卡芯片與讀寫芯片中都內(nèi)嵌防沖突模塊,可實(shí)現(xiàn)真正的(硬件)防沖突,可高速識(shí)別天線范圍內(nèi)的多張卡。小結(jié):MIFARE1卡特點(diǎn)三真正的防沖突:小結(jié):MIFARE1卡其他特點(diǎn)高可靠性:無(wú)線通訊鏈路使用各種校驗(yàn)機(jī)制確保數(shù)據(jù)可靠傳輸
用戶更方便:卡芯片中內(nèi)建有增值/減值的專項(xiàng)數(shù)學(xué)運(yùn)算電路,非常適合公交/地鐵等行業(yè)的定額收費(fèi)系統(tǒng)小結(jié):MIFARE1卡其他特點(diǎn)高可靠性:實(shí)訓(xùn)5
MIFARE1卡的讀寫操作與存儲(chǔ)結(jié)構(gòu)
按標(biāo)志連接非接觸式IC卡讀寫器的電源線,電源指示燈閃亮一下表示連接正確。注意電源+5V與地不可接反。按標(biāo)志連接非接觸式IC卡讀寫器與PC機(jī)間的通信線,打開MIFARE系列非接觸式IC卡演示軟件MWRF,確認(rèn)通信正常。裝載密碼(LoadKey)操作:在RFDEMO軟件界面中選擇密碼集0(KEYSET0),密碼A(KEYA),將扇區(qū)0-14的密碼A設(shè)置為全F,而將扇區(qū)15的密碼A設(shè)置為全0。啟動(dòng)密碼下載,下載過(guò)程中紅色指示燈點(diǎn)亮;下載完畢后紅色指示燈熄滅。
實(shí)訓(xùn)5MIFARE1卡的讀寫操作與存儲(chǔ)結(jié)構(gòu)按標(biāo)志連接MIFARE1卡讀寫操作:將MIFARE1卡按任意方向置入MIFARE開發(fā)板天線有效工作范圍內(nèi),對(duì)MIFARE1卡的扇區(qū)0、1和15的塊0、1、2進(jìn)行讀/寫操作。記錄讀取的卡數(shù)據(jù),標(biāo)明各塊的類型及卡的類型號(hào)、序列號(hào)、容量及各扇區(qū)的密碼和訪問(wèn)權(quán)限。
注意:不得隨意修改各扇區(qū)塊3的數(shù)據(jù),特別是訪問(wèn)權(quán)限字節(jié),以免造成扇區(qū)被鎖死。
MIFARE1卡讀寫操作:防沖突測(cè)試(1)分別讀出并記錄二張MIFARE1卡(分別記為1#卡、2#卡)的序列號(hào),及其扇區(qū)0塊1的內(nèi)容,記錄在報(bào)告上。(2)將二張MIFARE1卡同時(shí)放置在讀寫器天線有效工作范圍內(nèi),在RFDEMO軟件中執(zhí)行讀操作,根據(jù)讀出的SN找出被選中的卡(例如為1#卡)。(3)在RFDEMO軟件中執(zhí)行寫操作,修改扇區(qū)0塊1的內(nèi)容并將數(shù)據(jù)記錄在報(bào)告上。(4)將被選中的卡撤離讀寫器天線有效工作范圍,讀出另一張卡(例如2#卡)的扇區(qū)0塊1的內(nèi)容,并將數(shù)據(jù)記錄在報(bào)告上。(5)取走(4)中的卡,重新讀出并記錄被選中的卡的扇區(qū)0塊1的數(shù)據(jù),并記錄在報(bào)告上。(6)比較上述實(shí)驗(yàn)數(shù)據(jù),說(shuō)明MIFARE1卡是否具備防沖突功能。防沖突測(cè)試實(shí)訓(xùn)5MIFARE1卡的讀寫操作與存儲(chǔ)結(jié)構(gòu)如果有2張或2張以上的IC卡進(jìn)入讀寫器的工作范圍,稱之為沖突(或碰撞Collion),此時(shí)就需要解決如何對(duì)多張IC卡逐一處理的問(wèn)題——防沖突AntiCollion。MOVA,#80H ;SEL_CE_ERR:說(shuō)明該塊的存取控制條件。AntiCollision操作由一個(gè)AntiCollisionLoop(防沖突循環(huán),內(nèi)部處理)來(lái)實(shí)現(xiàn)。MOVA,#07H;MOVA,#00H ;56MHz的產(chǎn)品主要包括:MOVA,#10H ;斷點(diǎn)①,查看TAGTYPE——(20H)(21H)SETBP3.3,SEL_BE_ERR(1)分別讀出并記錄二張MIFARE1卡(分別記為1#卡、2#卡)的序列號(hào),及其扇區(qū)0塊1的內(nèi)容,記錄在報(bào)告上。無(wú)線通訊鏈路使用各種校驗(yàn)機(jī)制確保數(shù)據(jù)可靠傳輸序列號(hào)SN:420A7E00H+校驗(yàn)碼36H(2)修改扇區(qū)14的存取控制字節(jié),將扇區(qū)14塊0設(shè)置為校驗(yàn)密碼A/B正確可讀,永不可修改。設(shè)置片內(nèi)RAM的SN暫存區(qū)首地址SENDBCNTS(16bits:命令碼+塊地址)4001感應(yīng)式ID厚卡存取控制設(shè)置:(1)讀出并記錄扇區(qū)14塊0的內(nèi)容;修改內(nèi)容并再次讀出,記錄修改后的內(nèi)容。說(shuō)明該塊的存取控制條件。(2)修改扇區(qū)14的存取控制字節(jié),將扇區(qū)14塊0設(shè)置為校驗(yàn)密碼A/B正確可讀,永不可修改。其他各塊條件不變。(3)重復(fù)(1),說(shuō)明修改存取控制字節(jié)產(chǎn)生的結(jié)果。(4)將存取控制位恢復(fù)為默認(rèn)值。注意:嚴(yán)禁修改對(duì)塊3的設(shè)置,否則容易錯(cuò)誤將存取控制位設(shè)為永不可寫,將無(wú)法恢復(fù)為默認(rèn)值。
實(shí)訓(xùn)5MIFARE1卡的讀寫操作與存儲(chǔ)結(jié)構(gòu)存取控制設(shè)置C2X3_bC2X2_bC2X1_bC2X0_bC1X3_bC1X2_bC1X1_bC1X0_bC1X3C1X2C1X1C1X0C3X3_bC3X2_bC3X1_bC3X0_bC3X3C3X2C3X1C3X0C2X3C2X2C2X1C2X0BX7BX6BX5BX4BX3BX2BX1BX0存取控制位的結(jié)構(gòu)11111111000001111000000001101001C2X3_bC2X2_bC2X1_bC2X0_bC1X3_b存取控制位對(duì)塊3的控制結(jié)構(gòu)密碼A密碼A存取控制存取控制密碼B密碼BC1X3C2X3C3X3readwritereadwritereadwrite000neverKEYA|BKEYA|BneverKEYA|BKEYA|B010neverNeverKEYA|BneverKEYA|Bnever100neverKEYBKEYA|BneverneverKEYB110neverNeverKEYA|Bnevernevernever001neverKEYA|BKEYA|BKEYA|BKEYA|BKEYA|B011neverKEYBKEYA|BKEYBneverKEYB101neverNeverKEYA|BKEYBnevernever111neverNeverKEYA|Bnevernevernever存取控制位對(duì)塊3的控制結(jié)構(gòu)密碼A密碼A存取控制存取控制密碼存取控制位對(duì)數(shù)據(jù)塊的控制結(jié)構(gòu)C1XYC2XYC3XYReadWriteIncrementDecr,Transfer,restore000KEYA|BKEYA|BKEYA|BKEYA|B010KEYA|Bnevernevernever100KEYA|BKEYBnevernever110KEYA|BKEYBKEYBKEYA|B001KEYA|BneverneverKEYA|B011KEYBKEYBnevernever101KEYBnevernevernever111Nevernevernevernever存取控制位對(duì)數(shù)據(jù)塊的控制結(jié)構(gòu)C1XYC2XYC3XYRead查表3:C1X0=0,C2X0=1,C3X0=0,其他位不變。對(duì)照表1:存取控制字節(jié)=EF078169H將扇區(qū)14塊3的內(nèi)容修改為FFFFFFFFFFFFEF078169FFFFFFFFFFFF查表3:C1X0=0,C2X0=1,C3X0=0,項(xiàng)目設(shè)計(jì)之二——硬件設(shè)計(jì)MCUMIFARE卡讀寫模塊EEPROM存儲(chǔ)器RS232接口顯示報(bào)警天線卡項(xiàng)目設(shè)計(jì)之二——硬件設(shè)計(jì)MCUMIFARE卡EEPROMRSMifare核心讀寫模塊MCM功能:讀寫器MCU與MIFARE卡之間的接口,負(fù)責(zé)讀寫卡,其基本功能包括產(chǎn)生發(fā)送/接收射頻信號(hào)、調(diào)制/解調(diào)、防沖突處理和安全管理。工作頻率:13.56MHz。通信速率:106Kbps
工作距離:MCM200——25mm,MCM500——100mm防沖突:真正的防沖突功能。安全性與可靠性:每個(gè)扇區(qū)設(shè)有3套密碼及其認(rèn)證和密碼存儲(chǔ)器,模塊與卡片通信時(shí),數(shù)據(jù)加密,多種通信校驗(yàn)機(jī)制接口:標(biāo)準(zhǔn)MIFARE并行接口Mifare核心讀寫模塊MCM功能:讀寫器MCU與MIFAMCM與MCU接口電路
直接用數(shù)據(jù)總線傳送地址和數(shù)據(jù):MODE、USEALE接高電平,ALE對(duì)接;A0~A3懸空P3.3驅(qū)動(dòng)-CS,即P3.3為低時(shí)選中(激活)MCM200模塊MCM200的-IRQ接P3.2;可用查詢或中斷方式接收MCM發(fā)送的數(shù)據(jù)
MCM與MCU接口電路直接用數(shù)據(jù)總線傳送地址和數(shù)據(jù):MOD項(xiàng)目設(shè)計(jì)之三——軟件設(shè)計(jì)讀寫器與M1卡交換數(shù)據(jù)的過(guò)程:1)由讀寫器MCU(微控制器)發(fā)送指令給MCM,2)MCM執(zhí)行指令并將其轉(zhuǎn)換為射頻信號(hào)發(fā)送給卡;3)卡接收到來(lái)自MCM的指令后,按指令完成其內(nèi)部的各種處理,并回送應(yīng)答信號(hào)/數(shù)據(jù)給MCM;4)MCM接收卡回送的射頻信號(hào)并將其轉(zhuǎn)換為數(shù)字信號(hào)輸出給MCU,讀寫器MCU讀取MCM接收到的應(yīng)答/數(shù)據(jù),即可完成與M1卡的數(shù)據(jù)交換。項(xiàng)目設(shè)計(jì)之三——軟件設(shè)計(jì)讀寫器與M1卡交換數(shù)據(jù)的過(guò)程:MCM基本通信指令集MSEL_TE_ERR: ;存取控制位對(duì)塊3的控制結(jié)構(gòu)斷點(diǎn)①,查看TAGTYPE——(20H)(21H)SETBP3.MOVXA,@R0 ;SJMPRQT_EXIT入口:塊地址T_addr8803感應(yīng)式ID厚卡非接觸式IC卡的特點(diǎn)MOVB,#03H ;其他錯(cuò)誤應(yīng)答(00000011),CODEER(5)取走(4)中的卡,重新讀出并記錄被選中的卡的扇區(qū)0塊1的數(shù)據(jù),并記錄在報(bào)告上。讀STACON,判斷DV=1?JNBACC.SJMPNEXT_TRANSLCALLREAD ;斷點(diǎn)①,查看TAGTYPE——(20H)(21H)MOVR0,#0EH高頻模塊(發(fā)送器和接收器)、按使用過(guò)程中的讀寫方式:只讀卡(ID卡)和讀寫卡(帶EEPROM)特點(diǎn)MCM內(nèi)核特殊寄存器SEL_TE_ERR: ;MCMMIFARE卡的讀寫操作步驟
激活MCMMCM軟復(fù)位向MCM下載密碼(LOADKEY),校驗(yàn)傳輸密碼正確后可向MCM的KEY-RAM寫入用戶自己設(shè)定的密碼,以上操作與卡無(wú)關(guān)。請(qǐng)求應(yīng)答(ANSWERTOREQUEST):尋卡防沖突(ANTICOLLISION):選擇唯一一張卡選擇標(biāo)記(SELECT):激活所選擇的卡
認(rèn)證(AUTHENTICATION):安全性讀寫操作(讀、寫、加值、減值):交換數(shù)據(jù)
(READ/WRITE/INCREAMENT/DECREMENT)停止(HALT):置卡為停止模式,防止重復(fù)操作。MIFARE卡的讀寫操作步驟激活MCMSOR/LOADKEYREQUESTANTICOLLISIONREAD/WRITE/INC/DECHALTMIFARE卡操作步驟AUTHENTICATIONSELECT卡應(yīng)答:TAGTYPE(2B)卡應(yīng)答:SN(4B)+校驗(yàn)碼(1B)卡應(yīng)答:SIZE(1B)卡應(yīng)答:AE位SOR/LOADKEYREQUESTANTICOLLISI指令時(shí)序
每個(gè)指令由7個(gè)基本步驟組成,必須按此時(shí)序編程才能完成該指令:(1)初始化,設(shè)置各寄存器,特別是BCNTS和BCNTR。(2)送指令碼到DATA,由MCM發(fā)送指令。(3)
設(shè)置TOC,MCM準(zhǔn)備接收來(lái)自卡的應(yīng)答或數(shù)據(jù)。(4)檢查DV標(biāo)志,查詢數(shù)據(jù)接收是否完成。DV標(biāo)志為”1”表明MCM與MIFARE卡片之間的傳輸已經(jīng)完成,并且主處理機(jī)可能已經(jīng)從MCM中收到數(shù)據(jù),可以進(jìn)行下一步操作。而DV=0表示數(shù)據(jù)接收尚未完成或未能接收到數(shù)據(jù),則程序循環(huán)檢測(cè)DV標(biāo)志直至DV=1。有一種情況例外,既當(dāng)定時(shí)器溢出時(shí),無(wú)論接收是否完成DV都將被設(shè)置為1,同樣將進(jìn)行下一步操作。(5)清零TOC。(6)
檢查出錯(cuò)標(biāo)志,若有標(biāo)志被設(shè)置,則進(jìn)行相應(yīng)的出錯(cuò)處理,例如設(shè)置出錯(cuò)標(biāo)志等,并返回主程序;若沒有標(biāo)志被設(shè)置,表示接收正確,將進(jìn)行下一步操作(7)MCU從DATA讀出MCM接收到的應(yīng)答或數(shù)據(jù)。
指令時(shí)序每個(gè)指令由7個(gè)基本步驟組成,必須按此時(shí)序編程才能完AnswertoRequest(請(qǐng)求應(yīng)答)指令
Request指令將通知MCM在天線有效的工作范圍(距離)內(nèi)尋找MIFARE1卡。命令碼:26H或52H??ㄊ盏皆撝噶顚⒒厮涂愋吞?hào)作為卡應(yīng)答:TAGTYPE(2個(gè)字節(jié))AnswertoRequest(請(qǐng)求應(yīng)答)指令ReqWitha“requeststd”(26H)instructiononlycardswhicharenotsetintoa“HALT-mode”willrespondtothisrequest,oritmaybeexpandedtoallcardsinthefieldwitha“requestall”(52H)option.ThefirstoptionisneededtopreventtheMCMfromselectingonecardseveraltimes.Differencebetween
“requeststd”&“requestall”Witha“requeststd”(26H)instRequest:NOPNOPMOVA,#0CH;設(shè)置STACONMOVR0,#01HMOVX@R0,AMOVA,#0EH;設(shè)置BAUDRATEMOVR0,#05HMOVX@R0,AMOVA,#0C0H;設(shè)置ENABLEMOVR0,#02HMOVX@R0,AMOVA,#0C6H;設(shè)置MODEMOVR0,#07HMOVX@R0,AMOVA,#0CH;再次設(shè)置STACONMOVR0,#01HMOVX@R0,AMOVA,#02H;設(shè)置RCODEMOVR0,#0EHMOVX@R0,ARequest:MOVA,#07H;設(shè)置BCNTS=7bitsMOVR0,#03HMOVX@R0,AMOVA,#10H;設(shè)置BCNTR=2BytesMOVR0,#04HMOVX@R0,AJUDGE_COMMAND: ;選擇REQSTD還是REQALLMOVA,R2XRLA,#01HJNZRQT_STDRQT_ALL:MOVA,#52HSJMPRQT_NEXTRQT_STD:MOVA,#26HRQT_NEXT:MOVR0,#00H ;發(fā)送命令碼MOVX@R0,ANOPMOVA,#07H;設(shè)置BMOVA,#0AH ;設(shè)置TOC=1msMOVR0,#06HMOVX@R0,ARQT_STACON:MOVR0,#01H ;讀STACONMOVXA,@R0JNBACC.7,RQT_STACON ;判斷DV=1?MOVR7,A ;暫存STACONMOVA,#00H ;清零TOCMOVR0,#06HMOVX@R0,AMOVA,R7 ;判斷是否出錯(cuò)JBACC.6,RQT_TE_ERRJBACC.3,RQT_BE_ERRMOVR0,#00H ;讀TAGTYPEMOVXA,@R0MOV20H,AMOVR0,#00HMOVXA,@R0MOV21H,AMOVB,#00H ;設(shè)置OK標(biāo)志SJMPRQT_EXITMOVA,#0AH ;設(shè)置RQT_BE_ERR: ;錯(cuò)誤處理MOVB,#01HSJMPRQT_EXITRQT_TE_ERR:MOVB,#02HSJMPRQT_EXITRQT_EXIT:RETRQT_BE_ERR: ;錯(cuò)誤處理AntiCollision防沖突如果有多于一張的Mifare1卡處在MCM天線的有效工作范圍(距離)內(nèi),則發(fā)生了沖突。AntiCollision操作使MCM能在多張Mifare1卡中選擇某一張卡。
AntiCollision操作由一個(gè)AntiCollisionLoop(防沖突循環(huán),內(nèi)部處理)來(lái)實(shí)現(xiàn)。設(shè)置STACON寄存器中的AC位啟動(dòng)AntiCollision循環(huán)。MCM發(fā)送AntiCollision命令(93H+20H),每張?zhí)炀€范圍內(nèi)的MIFARE1卡接收AntiCollision命令后,都將回送自己的SN作為應(yīng)答。由于每張卡的SN各不相同,MCM接收到的信息(即SN)至少有1位即是0又是1(即該位的前、后半部都有負(fù)載波調(diào)制),防沖突循環(huán)找到第1個(gè)沖突位將其置1(排除該位為0的卡),然后查第2個(gè),依次排除,最后不再有沖突的SN即為最后讀取的SN。AntiCollision防沖突如果有多于一張的MifaAnticollision:NOPNOPMOVA,#0CHSETBACC.0 ;設(shè)置AC=1,啟動(dòng)防沖突MOVR0,#01HMOVX@R0,AACALLDELAY_500μs ;延遲1000μsACALLDELAY_500μsMOVA,#10H ;設(shè)置BCNTS為2BytesMOVR0,#03HMOVX@R0,AMOVA,#28H ;設(shè)置BCNTR為5BytesMOVR0,#04HMOVX@R0,AAnticollision:MOVA,#93H ;發(fā)送命令碼MOVR0,#00HMOVX@R0,AMOVA,#20H ;發(fā)送NVBMOVR0,#00HMOVX@R0,AMOVA,#0AH ;設(shè)置TOC為1msMOVR0,#06HMOVX@R0,AANTI_STACON:MOVR0,#01H ;讀STACONMOVXA,@R0JNBACC.7,ANTI_STACON ;判斷DV=1?MOVR7,A ;暫存STACONMOVA,#00H ;清零TOCMOVR0,#06HMOVX@R0,AMOVA,R7 ;判斷是否出錯(cuò)JBACC.6,ANTI_TE_ERRJBACC.3,ANTI_BE_ERRMOVA,#93HMOVR7,#04H MOVB,#00HMOVR1,#30H ;設(shè)置片內(nèi)RAM的SN暫存區(qū)首地址MOVR0,#00HANTI_LOOP:MOVXA,@R0 ;讀入4字節(jié)SN并逐一異或MOV@R1,AXRLB,AINCR1DJNZR7,ANTI_LOOPMOVXA,@R0 ;讀入1字節(jié)校驗(yàn)碼XRLA,B ;用校驗(yàn)碼異或校驗(yàn)SNJNZANTI_CHK_ERR_EXIT ;校驗(yàn)出錯(cuò)MOVB,#00H ;設(shè)置OK標(biāo)志AJMPANTI_BACKANTI_TE_ERR: ;錯(cuò)誤處理MOVB,#01HAJMPANTI_BACKANTI_BE_ERR:MOVB,#0AHAJMPANTI_BACKANTI_CHK_ERR_EXIT:MOVB,#08HANTI_BACK:RETMOVR7,#04H SelectTag選擇卡片操作
SelectTag操作將選中AntiCollision操作所讀取的SN對(duì)應(yīng)的卡,使該卡進(jìn)入激活狀態(tài),只有該卡才能進(jìn)行后續(xù)的認(rèn)證及訪問(wèn)操作。
MCM發(fā)送Select命令(93H+70H+SN及校驗(yàn)碼)卡接收該命令后將MCM發(fā)送的SN與自己的序列號(hào)比較,若一致則該卡被激活(ACTIVE),其他卡則仍留在READY狀態(tài)。被選擇(激活)的卡將回送其容量(SIZE)字節(jié)作為應(yīng)答。SelectTag選擇卡片操作SelectTag操作SELECT:MOVA,#0CH MOVR0,#01HMOVX@R0,AMOVA,#0F0H;設(shè)置ENABLEMOVR0,#02HMOVX@R0,AMOVA,#38H;設(shè)置BCNTS=7BytesMOVR0,#03HMOVX@R0,AMOVA,#08H;設(shè)置BCNTR=1ByteMOVR0,#04HMOVX@R0,AMOVA,#93H;發(fā)送命令碼MOVR0,#00HMOVX@R0,AMOVA,#70H ;發(fā)送NVBMOVR0,#00HMOVX@R0,ASELECT:MOVR7,#04HMOVB,#00HMOVR0,#00HMOVR1,#40H ;SN暫存區(qū)首地址SELECT_WRT_LOOP:MOVA,@R1 ;取出ANTICOLLISION指令讀取的SN字節(jié)MOVX@R0,A ;發(fā)送SN字節(jié)給卡XRLB,A ;SN字節(jié)相異或生成校驗(yàn)碼INCR1DJNZR7,SELECT_WRT_LOOPMOVA,BMOVX@R0,A ;發(fā)送校驗(yàn)碼MOVA,#0AH ;SETTOCMOVR0,#06HMOVX@R0,AMOVR7,#04HSEL_RD_STACON_AGAIN: ;READSTACONMOVR0,#01HMOVXA,@R0JNBACC.7,SEL_RD_STACON_AGAIN ;判斷DV=1?MOVR6,A ;暫存STACONMOVA,#00H ;清零TOCMOVR0,#06HMOVX@R0,AMOVA,R6 ;判斷是否出錯(cuò)JBACC.6,SEL_TE_ERRJBACC.5,SEL_PE_ERRJBACC.3,SEL_BE_ERRJBACC.4,SEL_CE_ERRMOVR0,#00H ;讀取SIZE字節(jié)MOVXA,@R0MOV22H,A ;SIZE字節(jié)存入22HMOVB,#00H ;設(shè)置OK標(biāo)志SJMPSEL_EXITSEL_RD_STACON_AGAIN: ;READSSEL_TE_ERR: ;錯(cuò)誤處理MOVB,#01HLJMPSEL_EXITSEL_PE_ERR:MOVB,#05HLJMPSEL_EXITSEL_CE_ERR:MOVB,#02HLJMPSEL_EXITSEL_BE_ERR:MOVR7,#0AHLCALLD500USMOVB,#0BHSEL_EXIT:RETSEL_TE_ERR: ;錯(cuò)誤處理Authentication認(rèn)證操作
MCM中設(shè)有專用的密碼存儲(chǔ)器(KEY-RAM),用于存儲(chǔ)3個(gè)密碼集KEYSET0,KEYSET1,KEYSET2,每一個(gè)KEYSET又包含了各個(gè)扇區(qū)的KEYA及KEYB。Authentication操作就是將KEY-RAM中的密碼與卡中對(duì)應(yīng)的密碼進(jìn)行三次相互認(rèn)證。Authentication操作的卡應(yīng)答以AE位給出;AE=1,密碼出錯(cuò),未能通過(guò)認(rèn)證;AE=0,密碼正確,通過(guò)認(rèn)證Authentication認(rèn)證操作MCM中設(shè)有專用的密考勤系統(tǒng)、門禁系統(tǒng)、企業(yè)一卡通系統(tǒng)等按標(biāo)志連接非接觸式IC卡讀寫器與PC機(jī)間的通信線,打開MIFARE系列非接觸式IC卡演示軟件MWRF,確認(rèn)通信正常。MOVB,#04HSJMPDEC_NEXTLCALLREAD ;(D)環(huán):Mifare1卡片對(duì)RA加密3)寫“命令”(60H或61H)和寫“地址”(扇區(qū)號(hào)0~15)到DATA寄存器,啟動(dòng)Authetication操作。MOVX@R0,AMOVX@R0,A請(qǐng)求應(yīng)答(ANSWERTOREQUEST):尋卡小結(jié):MIFARE1卡特點(diǎn)一發(fā)送命令碼A0H+塊地址(0~63)Mifare1卡的密碼的認(rèn)證采用了三次相互認(rèn)證的方法,具有很高的安全性。NOPNOPMCU采用查詢方式與MCM通信。Witha“requeststd”(26H)instructiononlycardswhicharenotsetintoa“HALT-mode”willrespondtothisrequest,oritmaybeexpandedtoallcardsinthefieldwitha“requestall”(52H)option.MOVX@R0,AAntiCollision操作使MCM能在多張Mifare1卡中選擇某一張卡。(4)檢查DV標(biāo)志,查詢數(shù)據(jù)接收是否完成。Authetication操作包括3個(gè)步驟1)設(shè)置KEYSTACON寄存器,指定Authetication操作及KEYSET(0、1或2)2)設(shè)置KEYADDR寄存器,指定Authetication操作、KEYA或KEYB、待認(rèn)證的扇區(qū)號(hào)3)寫“命令”(60H或61H)和寫“地址”(扇區(qū)號(hào)0~15)到DATA寄存器,啟動(dòng)Authetication操作。考勤系統(tǒng)、門禁系統(tǒng)、企業(yè)一卡通系統(tǒng)等AutheticatioREAD/WRITE操作READ/WRITE均需整塊操作。READ:發(fā)送命令碼30H+塊地址(0~63)接收指定塊的數(shù)據(jù)(16B)通常用2次讀并比較是否一致來(lái)校驗(yàn)是否正確讀WRITE:發(fā)送命令碼A0H+塊地址(0~63)接收ACK/NAK應(yīng)答來(lái)校驗(yàn)是否正確接收命令發(fā)送塊數(shù)據(jù)(16B)接收ACK/NAK應(yīng)答來(lái)校驗(yàn)是否正確寫入EEPROMREAD/WRITE操作READ/WRITE均需整塊操作。ValueOperate值操作MIFARE卡專門為公交/地鐵等行業(yè)的定額收費(fèi)系統(tǒng)設(shè)有值操作命令,包括INCREAMENT/DECREAMENT/TRANSFER/RESTORE對(duì)某塊進(jìn)行值操作的前提是該塊已被初始化為“值塊”(ValueBlock)并且AccessBits允許值操作。ValueOperate值操作MIFARE卡專門為公交/值塊的初始化方法:對(duì)某塊按固定的格式進(jìn)行寫操作格式:
address——塊地址(1B)value——值(4B,有符號(hào))例如,對(duì)塊地址為01H的塊進(jìn)行值塊初始化,初始化值VALUE=00030000H,則數(shù)據(jù)格式為FE01FE0100030000FFFCFFFF00030000高低值塊的初始化方法:對(duì)某塊按固定的格式進(jìn)行寫操作例如,對(duì)塊地址Increment/Decrement/TransferIncrement:addsthespecifiedvaluetothe
memoryvalueDecrement:
subtractsthespecifiedvaluefromthememotyvalueTransfer:
EachIncrementorDecrementinstructionmanipulatingastandardvalueblockhastobefollowedbyaTransferintructionwhichactuallystoresthecalculatedresultinthecardmemory.Untilthen,theresultiskeptinaninternalvaluebufferresgister.Increment/Decrement/TransferInDECREMENT:入口:塊地址addr,值value存放于D_BUF出口:ACK/NAKNOPNOPMOVA,#10H ;SENDBCNTS(16bits:命令碼+塊地址)MOVR0,#03HMOVX@R0,AMOVA,#04H ;SENDBCNTR(4bits:ACK/NAK)MOVR0,#04HMOVX@R0,AMOVA,#0C0H ;SENDCODEMOVR0,#00HMOVX@R0,AMOVA,#addr ;SENDBLOCKADDRMOVR0,#00HMOVX@R0,ADECREMENT:MOVA,#0AH ;SETTOC=1msMOVR0,#06HMOVX@R0,AD_wait_value: ;讀STACON,判斷DV=1?MOVR0,#01HMOVXA,@R0JNBACC.7,D_wait_valueMOVR6,AMOVA,#00H ;清零TOCMOVR0,#06HMOVX@R0,AMOVA,R6 ;出錯(cuò)判斷JBACC.6,DEC_TE_ERRJBACC.3,DEC_BE_ERRAJMPDEC_CONTIDEC_TE_ERR: ;NOTAGERRMOVB,#01HAJMPDEC_EXITDEC_BE_ERR:MOVB,#02HAJMPDEC_EXITMOVA,#0AH ;SETTOC=1msDEC_CONTI:MOVR0,#00H ;讀入ACK/NAK,MOVXA,@R0ANLA,#0BH ;僅檢查0,1,3位CJNEA,#00H,D_N1 MOVB,#07H;NOTAUTHERR(應(yīng)答為00000000)SJMPDEC_NEXTD_N1:CJNEA,#0AH,D_N2 ;收到ACK應(yīng)答(00000101),表示可以DECSJMPDEC_NEXTD_N2:MOVB,#03H ;其他錯(cuò)誤應(yīng)答(00000011),CODEERAJMPWRITE_EXITDEC_CONTI:WRITE_NEXT: ;開始寫數(shù)據(jù)MOVA,#32 ;SENDBCNTS=32bits(4BVALUE)MOVR0,#03HMOVX@R0,AMOVA,#04H ;SENDBCNTR=4bits(ACK/NAK)MOVR0,#04HMOVX@R0,AMOVR5,#4 ;送4B值MOVR0,#00HMOVR1,#D_BUFDEC_VALUE:MOVA,@R1MOVX@R0,AINCR1DJNZR5,DEC_VALUEWRITE_NEXT: ;開始寫數(shù)據(jù)MOVA,#0AH ;SETTOC=1msMOVR0,#06HMOVX@R0,ADEC_end: ;DV=1?MOVR0,#01HMOVXA,@R0JNBACC.7,DEC_endMOVA,#00H ;清零TOCMOVR0,#06HMOVX@R0,AJudge_answer:MOVR0,#01H ;出錯(cuò)判斷MOVXA,@R0JNBACC.6,DEC_error_TEMOVB,#00HDEC_ANSWER: ;讀入ACK/NAKMOVR0,#00HMOVXA,@R0ANLA,#0FHCJNEA,#04H,D_ERR1 ;(00000100為VALUEOVERFLOW)MOVB,#0FEHSJMPDEC_EXITD_ERR1:MOVB,#0FFH ;其他錯(cuò)誤DEC_EXIT:RETMOVA,#0AH ;SETTOC=1msTRANSFER入口:塊地址T_addr出口:ACK/NAKTRANS:NOPNOPMOVA,#10H ;SENDBCNTS(16bits:命令碼+塊地址)MOVR0,#03HMOVX@R0,AMOVA,#04H ;SENDBCNTR(4bits:ACK/NAK)MOVR0,#04HMOVX@R0,AMOVA,#0B0H ;SENDCODEMOVR0,#00HMOVX@R0,AMOVA,#T_addr ;SENDBLOCKADDRMOVR0,#00HMOVX@R0,ATRANSFERMOVA,#10H ;SETTOC=1.5msMOVR0,#06HMOVX@R0,AT_end: ;DV=1?MOVR0,#01HMOVXA,@R0JNBACC.7,T_endMOVA,#00H ;清零TOCMOVR0,#06HMOVX@R0,AJudge_answer: ;出錯(cuò)判斷MOVR0,#01HMOVXA,@R0JBACC.3,T_error_BEJBACC.6,T_error_PEMOVB,#00HAJMPNEXT_TRANST_error_BE: ;出錯(cuò)處理MOVB,#03HSJMPNEXT_TRANST_error_PE:MOVB,#05HSJMPNEXT_TRANSMOVA,#10H ;SETTOC=1.5msNEXT_TRANS:MOVA,#95D ;SETTOC=9msMOVR0,#06HMOVX@R0,AT_Toc_end: ;DV=1?(EEPROM寫入結(jié)束否?)MOVR0,#01HMOVXA,@R0JNBACC.7,T_Toc_endMOVR6,AMOVA,#00H ;CLEARTOCMOVR0,#06HMOVX@R0,AMOVA,R6 ;出錯(cuò)判斷JBACC.6,T_TAG_ERRJBACC.3,T_BIT_ERRMOVB,00HSJMPNEXT_ANSWERT_TAG_ERR: ;出錯(cuò)處理MOVB,#09HAJMPT_EXITT_BIT_ERR:MOVB,#0BHAJMPT_EXITNEXT_TRANS:NEXT_ANSWER: ;讀入ACK/NAKMOVR0,#00HMOVXA,@R0ANLA,#0FHCJNEA,#0AH,T_ERR1 ;(00000101為ACK,TRANSFEROK)MOVB,#00HSJMPT_EXITT_ERR1:CJNEA,#04H,T_ERR2 ;(00000100為NAK)MOVB,#02HSJMPT_EXITT_ERR2:CJNEA,#05H,WRITE_EXIT ;其他錯(cuò)誤MOVB,#04HT_EXIT:RETNEXT_ANSWER: ;讀入ACK/NAK實(shí)訓(xùn)6非接觸式IC卡的讀寫控制
實(shí)訓(xùn)程序?qū)⒆x寫器MCU片內(nèi)RAM中的16個(gè)數(shù)據(jù)寫入卡的一個(gè)數(shù)據(jù)塊,然后將該數(shù)據(jù)塊中的數(shù)據(jù)讀出并存入讀寫器MCU的片內(nèi)RAM中。MCU采用查詢方式與MCM通信。實(shí)訓(xùn)程序說(shuō)明:mode 選擇密碼集KEYSET0、1、2及密碼A、Bsector_nr 認(rèn)證扇區(qū)號(hào)(0~15)R_H_BUF 讀入數(shù)據(jù)緩沖區(qū)首地址R_E_BUF 讀入數(shù)據(jù)暫存區(qū)首地址W_H_BUF 寫入數(shù)據(jù)區(qū)首地址R_addr 被讀取的塊地址(0~63)W_addr 被寫入的塊地址(0~63)
實(shí)訓(xùn)6非接觸式IC卡的讀寫控制實(shí)訓(xùn)步驟用非接觸式IC卡讀寫軟件MWRF向MCM中下載密碼,讀出并記錄MIFARE1卡的TAGTYPE、SN、SIZE,讀出并記錄卡中某數(shù)據(jù)塊(如扇區(qū)1塊0)的數(shù)據(jù)。用鑷子取出非接觸式IC卡開發(fā)板上的MCU芯片,將仿真頭插入MCU的IC座。編譯實(shí)訓(xùn)程序,設(shè)置斷點(diǎn)。打開片內(nèi)RAM及寄存器窗口,在寫數(shù)據(jù)區(qū)(首地址為10H的16個(gè)單元)設(shè)置要寫入卡中的數(shù)據(jù)。天線范圍內(nèi)無(wú)卡時(shí)運(yùn)行程序,記錄程序停在斷點(diǎn)處的相關(guān)數(shù)據(jù)。說(shuō)明是否能正確讀/寫卡,如不能,根據(jù)現(xiàn)象定位故障點(diǎn)。將卡置入天線范圍內(nèi),運(yùn)行程序,記錄程序停在斷點(diǎn)處的相關(guān)數(shù)據(jù)。說(shuō)明是否能正確讀/寫卡,如不能,根據(jù)現(xiàn)象定位故障點(diǎn)。實(shí)訓(xùn)步驟用非接觸式IC卡讀寫軟件MWRF向MCM中下載密碼,實(shí)訓(xùn)程序:mode EQU 00H ;設(shè)置KEYSET=KEYSET0,使用密碼Asector_nr EQU 01H ;設(shè)置認(rèn)證扇區(qū)為扇區(qū)1R_H_BUF EQU 40H ;讀入數(shù)據(jù)緩沖區(qū)R_E_BUF EQU 50H ;讀入數(shù)據(jù)暫存區(qū)W_H_BUF EQU 10H ;寫入數(shù)據(jù)區(qū)R_addr EQU 04H ;被讀取的塊地址(扇區(qū)1的塊0)W_addr EQu 05H ;被寫入的塊地址
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國(guó)行程可調(diào)平板式針劑泡罩包裝機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國(guó)藥劑自動(dòng)灌裝機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年抗菌防霉消泡水刺非織造布項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年家用電子監(jiān)控器項(xiàng)目投資價(jià)值分析報(bào)告
- 2025年重樓種苗購(gòu)銷合同
- 工程項(xiàng)目合同管理辦法范文
- 鋼材購(gòu)銷合同范本(2025年)
- 體育產(chǎn)業(yè)體育賽事策劃運(yùn)營(yíng)合同
- 新能源電動(dòng)汽車制造項(xiàng)目合同
- 商業(yè)代理合同解除協(xié)議書
- 全國(guó)第三屆職業(yè)技能大賽(數(shù)字孿生應(yīng)用技術(shù))選拔賽理論考試題庫(kù)(含答案)
- 應(yīng)用數(shù)理統(tǒng)計(jì)知到智慧樹章節(jié)測(cè)試課后答案2024年秋中國(guó)農(nóng)業(yè)大學(xué)
- 文藝復(fù)興史學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 創(chuàng)新轉(zhuǎn)化管理智慧樹知到期末考試答案章節(jié)答案2024年山東大學(xué)
- 二級(jí)公立醫(yī)院績(jī)效考核三級(jí)手術(shù)目錄(2020版)
- 6人小品《沒有學(xué)習(xí)的人不傷心》臺(tái)詞完整版
- [理學(xué)]無(wú)機(jī)及其分析化學(xué) 課后答案
- 氯堿生產(chǎn)企業(yè)安全標(biāo)準(zhǔn)化實(shí)施培訓(xùn)指南
- 活套法蘭計(jì)算表
- 年產(chǎn)十萬(wàn)噸苯乙烯工藝設(shè)計(jì)
- 壓力容器耐壓試驗(yàn)
評(píng)論
0/150
提交評(píng)論