1、 非接触式非接触式ICIC卡技术卡技术电子与信息工程学院电子与信息工程学院提 纲q 非接触式非接触式ICIC卡概述卡概述 系统构成/分类/国际标准q 非接触式非接触式ICIC卡工作原理卡工作原理 能量传递/信息传递/防冲突q 非接触式非接触式ICIC卡芯片技术卡芯片技术 MIFARE 1q 非接触式非接触式ICIC卡接口技术卡接口技术 MIFARE 1为什么要使用非接触式IC卡?q在频繁操作的场合,如门禁、考勤、小额电子钱包(公交收费、食堂收费、高速公路收费、停车场收费)、身份认证等场合,接触式IC卡越来越明显的暴露出其弊端:容易磨损操作速度慢使用不方便什么是非接触式IC卡?Contactle
2、ss ICCq非接触式IC卡是在卡中敷设天线,利用天线的接收发射,与读写器的天线交换信号,实现一种无线通讯,非接触式IC卡又被称为射频卡(RFCRadio Frequency Card),简称RF卡,非接触式IC卡系统被称为射频识别系统(RFIDRadio Frequency Identification)。非接触式IC卡系统构成q非接触式IC卡:数据载体,应答器q非接触式IC卡读写器:卡接口设备,阅读器,寻呼器非接触式IC卡读写器非接触式IC卡数据时序能量耦合元件(线圈、微波天线)非接触式IC卡的基本构成 q非接触式IC 卡:芯片+天线+卡基耦合元件外壳芯片非接触式IC卡读写器的构成q高频模
3、块(发送器和接收器)、q控制单元q耦合元件(天线)非接触式IC卡的特点 q可靠性高、寿命长。非接触式IC卡与读写器之间无机械接触,避免了由于接触读写而产生的各种故障。非接触式ID卡表面无裸露的芯片,无须担心芯片脱落、静电击穿、弯曲、损坏等问题,既便于卡片的印刷,又提高了卡片使用的可靠性。q操作快捷便利。q动态处理。q成本较高。非接触式IC卡的分类q按片内IC:存储卡、逻辑加密卡、CPU卡q按工作距离:密耦合卡、近耦合和疏耦合卡 q按工作频率的高低:125kHz的低频卡(30 kHz 300 kHz),13.56MHz的高频或射频卡(3MHz30 MHz),915MHz、2.45GHz的超高频卡
4、(300MHz 3GHz)、5.8GHz的微波卡(3GHz)。q按卡内芯片供电方式:卡内带电池的有源卡和卡内无电池、由读写器以无线感应方式供电的无源卡 q按使用过程中的读写方式:只读卡(ID卡)和读写卡(带EEPROM)EM ID厚卡EM ID薄卡PHILIPS MIFARE 1卡TI(德州仪器)Tag-it电子标签手表卡与钥匙扣卡 特点频段工作频率 数据传输速率读写距离 读写区域低频125134KHz慢适中(1m)较为均匀高频13.56MHz较快适中(1m)较为均匀超高频860960MHz快远(10m)很难定义不同频段射频卡的特点非接触式IC卡的国际标准标准组织阵营频段技术规范EPCglob
5、al 全球产品电子代码管理中心 欧美企业 沃尔玛、思科、敦豪快递、麦德龙和吉列等 UHF(860-960 MHz)电子产品代码(EPC)、电子标签规范和互操作性、识读器-电子标签通信协议、中间件软件系统接口等ISO/IEC 国际标准组织/国际电工委员会 全球非盈利工业标准组织 多个频段识别卡与身份识别ISO/IEC14443自动识别ISO/IEC15693ISO/IEC18000UID 泛在技术核心组织 日本电子厂商、IT企业 2.45GHz和13.56MHz 电子标签超微芯片部分规格 IC 卡 读写器 国际标准 读写距离 工作频率 CICC CCD ISO/IEC10536 密耦合(01cm
6、)030MHz PICC PCD ISO/IEC14443 近耦合(710cm)VICC VCD ISO/IEC15693 疏耦合(1m)135kHz,6.75MHz,13.56MHz,27.125MHz 注释:ICC集成电路卡CICCClose-Coupled ICC,紧密(密耦合)卡;PICCProximity ICC,称为接近(近耦合)卡;VICCVicinity ICC,称为邻近(疏耦合)卡。CD Coupling Device,是读写器中发射电磁波的部分 ISO/IEC14443国际标准现阶段ISO/IEC 14443(草案)主要有两个体系并存:ISO/IEC14443-Type A
7、、ISO/IEC14443-TypeB。TypeA:以PHILIPS公司为代表,包括SIEMENS、HITACHI、GEMPLUS、G&D和Schlumberger等公司 TypeB:以ST(意法半导体)、MOTOROLA、ATMEL、韩国SAMSUNG和日本的NEC等公司为代表。ISO/IEC18000国际标准q18000-1:物理层q18000-2:低于135KHz通信的空中接口的参数;q 18000-3:在13.56MHz通信的空中接口的参数;q18000-4:在2.45GHz通信的空中接口的参数;q18000-5:5.8GHz通信的空中接口的参数;q18000-6:860-960MHz
8、通信的空中接口的参数;q18000-7:433MHz通信的空中接口的参数;目前13.56MHz的产品主要包括:q ISO14443TypeA卡Mifare 1 S50卡、Ultra Light卡 LEGIC Type A 卡、上海公交卡即华虹IC卡、复旦微电子Type A 卡q ISO14443TypeB卡ATMEL RF020q ISO15693(电子标签)卡PHILIPS I-Code2、TI Tag-it标签q I-CODE(电子标签)卡 PHILIPS I-Code、上海贝岭BL75R02q SONY Felica卡香港八达通、深圳通q 中国二代身份证目前125KHz的产品主要包括:技
9、术指标技术指标EM4100/4102标准卡标准卡4001感应式感应式ID厚卡厚卡8803感应式感应式ID厚卡厚卡芯片Swatch Group Em4102 Wafer台湾4001 COB台湾8803 Wafe工作频率125KHZ125KHZ125KHZ感应距离2-20cm2-20cm2-20cm尺寸85.5x54x0.82mm85.5x54x2mm85.5x54x1.05mm封装材料PVC、ABSPVC,ABSPVC封装工艺层压封装手工粘贴手工层压号码可选连号喷码 典型应用考勤系统、门禁系统、企业一卡通系统等考勤系统、门禁系统、企业一卡通系统等考勤系统、门禁系统、企业一卡通系统等此外,还包括A
10、TMEL的TEMIC卡系列、TI的低频标签、HITAG卡等。非接触式IC卡工作原理 q要解决的三大问题:(1)非接触卡如何取得工作电压。(2)读写器与IC卡之间如何交换信息。(3)防冲突问题:多张卡同时进入读写器发射的能量区域(即发生冲突)时如何对卡逐一进行处理。非接触式IC卡与读写器接口电路电电压压调调节节解调器解调器读写器PCD卡PICCCLOCKVDDGND数据输出数据输入卡内嵌天线读写器天线(1)读写器发射激励信号(一组固定频率的电磁波),数字信息调制在该射频信号上。(2)IC卡进入读写器工作区内,被读写器信号激励。在电磁波的激励下,卡内的LC串联谐振电路产生共振,从而使电容内有了电荷
11、,当所积累的电荷达到2V时,此电容可以作为电源为其他电路提供工作电压,供卡内集成电路工作所需。(谐振、整流、滤波、稳压)。(3)同时卡内的电路对接收到的谐振信号进行解调,还原数字信息,对信息进行分析处理,判断发自读写器的命令,如需在EEPROM中写入或修改内容,还需将2V电压提升到15V左右,以满足写入EEPROM的电压要求。(4)IC卡对读写器的命令进行处理后,发射应答信息(将应答信息调制到射频信号上)给读写器。(5)读写器接收IC卡的射频信号并进行解调还原出应答信息。初始化与防冲突(AntiCollion)q如果有2张或2张以上的IC卡进入读写器的工作范围,称之为冲突(或碰撞Collion
12、),此时就需要解决如何对多张IC卡逐一处理的问题防冲突 AntiCollion。q防冲突方案:位帧防冲突(Bit AntiCollision)动态时隙-ALOHA法(Slotted-ALOHA法)项目引入IC卡公交收费机q定额收费q操作方便快捷q可显示余额q非法卡或余额不足报警q可将当班收款额上传总站数据库q总站可调整定额额度。q卡遗失可挂失。项目设计之一卡型选择q接触式逻辑加密卡 SLE4406q非接触式ID卡 EM的4001卡q非接触式逻辑加密卡 PHILIPS的Mifare卡操作不方便没有加密逻辑,不安全容易实现定额收费,操作方便快捷,安全性高,通用性强Mifare 1非接触式IC卡 基
13、本性能指标:q卡内器件:无线智能卡芯片Mifare MF1 IC S50+天线线圈q标准:遵从ISO/IEC 14443 Type A 标准q工作频率:13.56MHzq数据传送速率:106kbit/s(9.4s/bit)Mifare卡与读写器之间的信号 Mifare卡的信号调制方式 Type A与Type B调制程度的比较 TYPE A:100%ASKTYPE B:10%ASK从读写器到卡的调制与编码q载波:fc=13.56MHzq数据传输速率:13.56MHz/128=106kbit/s(9.4s/bit)q调制方式:TYPE A用100%ASK,TYPE B用10%ASK,q编码方式:T
14、YPE A用改进的MILLER编码,TYPE B用NRZ编码(不归零制数位编码)从卡到读写器的调制与编码q副载波:fc/16=847.5kHz q数据传输速率:106kbit/sq调制方式:副载波调制q编码方式:TYPE A用MANCHESTER-ASK,TYPE B用BPSK-NRZ(二进制相移键控数位编码)Mifare 1卡片的存储结构 q 存储容量:10248位字长(即1KB),q 存储介质:EEPROMq 分为16个扇区(扇区0 15)q 每个扇区有4个块(Block)块0、块1、块2和块3。q 每个块有16个字节。q 一个扇区共有 16 Byte4=64 Byte 块0(厂商标志)块
15、1块2块3块0块1块2块3(密码A+存取控制+密码B)块0块1块2块3(密码A+存取控制+密码B)扇区0扇区1.扇区15块功能详解1)厂商块地址:扇区0块0内容:IC卡厂商标志。其中:第04个字节为卡序列号SN,第5个字节为序列号的校验码;第6个字节为卡容量字节“SIZE”;第7,8个字节为卡类型号Tagtype;特性:基于保密性和系统的安全性,这一块在IC卡厂商编程之后被置为写保护,因此该块不能再复用为应用数据块。例:420A7E00368804004481740630373937H 序列号SN:420A7E00H+校验码36H 容量字节SIZE:88H 卡类型号Tag Type:0400H
16、 块功能详解2)数据块q 每扇区3个数据块(扇区0只有2个),每块16字节。可由区尾块中的存取控制位(access bits)配置为:p读写块:用作一般的数据保存,可用读/写命令直接读/写整个块p值块:用作数值块,可以进行初始化值、加值、减值、读值的运算,相应配用的命令为INC/DEC/RESTORE/TRANSFER命令。q 通常数据块中的数据都是需要保密的数据,对这些数据的读/写/加值/减值均需:符合该块存取条件的要求+通过该扇区的密码认证。块功能详解 3)区尾块 q每个扇区的块3为区尾(Sector Trailer)块:KEY A(6B)+Access bits(4B)+KEY B(6B
17、)例:A0A1A2A3A4A5FF078069 B0B1B2B3B4B5 密钥A:A0A1A2A3A4A5H(缺省值)密钥B:B0B1B2B3B4B5H(缺省值)存取控制位:FF078069H(缺省值)Mifare 1 卡存取控制与数据区的关系 q Access bits(存取控制位):定义该扇区中4个块的访问条件,及定义数据块的类型(读写或值)q Mifare 1 卡出厂初始化时,所有扇区块3的初始化值均为 A0A1A2A3A4A5 FF078069 B0B1B2B3B4B5 卡初始化后的存取控制条件为:密码A永不可读,校验密码A或密码B正确后可以修改;密码B在校验密码A或密码B正确后可读,
18、可修改;数据块在校验密码A或密码B正确后可读,可修改。小结:MIFARE 1卡特点一qEEPROM存储器结构提供多应用:1K字节EEPROM,16个扇区,4数据块/扇区,16字节/块。用户可以定义每一个存储器块的访问条件。每个扇区(每应用)拥有各自独立的密钥,支持带密钥层次的多应用。Mifare 1 卡的密码认证方式 qMifare 1 卡的密码的认证采用了三次相互认证的方法,具有很高的安全性。(A)RB(E)(B)TOKENAB (C)(D)TOKENBA 非 接 触非 接 触式卡读写器式卡读写器 Mifare1 卡片卡片(A)环:Mifare 1卡向读写器发送一个随机数据RB;(B)环:读
19、写器收到RB后向Mifare 1卡片发送一个令牌数据TOKEN AB=用读写器中存放的密码加密后的RB+读写器发出的一个随机数据RA;(C)环:Mifare 1卡片收到 TOKEN AB 后,用卡中的密码对TOKEN AB的加密的部分进行解密得到RB,并校验第一次由(A)环中Mifare 1卡片发出去的随机数RB是否与(B)环中接收到的TOKEN AB中的RB相一致;若读写器与卡中的密码及加/解密算法一致,将会有RB=RB,校验正确,否则将无法通过校验;(D)环:如果(C)环校验是正确的,则Mifare 1卡片用卡中存放的密码对RA加密后发送令牌TOKEN BA给读写器;(E)环:读写器 收到
20、令牌TOKEN BA后,用读写器中存放的密码对令牌TOKEN BA中的RA(随机数)进行解密得到RA;并校验第一次由(B)环中读写器发出去的随机数RA是否与(D)环中接收到 的TOKEN BA中的RA相一致;同样,若读写器与卡中的密码及加/解密算法一致,将会有RA=RA,校验正确,否则将无法通过校验;(A)环:Mifare 1卡取随机数RB=1100,KEY1=1010,加密/解密算法:异或,发送RB给读写器(B)环:读写器取随机数RA=0011,KEY2=1010,加密/解密算法:异或,接收RB对RB加密:TOKENB=RB异或KEY2=0110,发送TOKENB+RA(C)环:Mifare
21、 1卡片对TOKEN B解密:RB=TOKENB异或KEY1=1100=RB,校验正确;(D)环:Mifare 1卡片对RA加密TOKENA=RA异或KEY1=1001;(E)环:读写器 收对TOKEN A解密:RA=TOKENA异或KEY2=0011=RA,校验正确小结:MIFARE 1卡特点二q高保密性:q 全球唯一SN;q 密钥及传输密码保护,各扇区密码独立且有三套(KEYSET0、1、2)二个(KEY A、KEY B)密码。q 密码认证采用三次相互认证;q 存取控制位保护,用户可以定义每一个存储器块的访问条件q RF信道数据加密 Mifare 1非接触式IC卡功能组成 波形转换正弦波方
22、波整流Modu/DeModu调制/解调电压调节POR上电复位ATRAntiCollisionSelectApplicationAuthentication&Access Control存储区接口Control&Arithm.UnitRAMROMCripto Unit能量存储区EEPROMCLOCKDATAMIFARE 1卡片内部结构MIFARE 1卡片内部结构RF Interface射频接口电路Digital Section数字电路部分卡片天线POWER OFF状态IDLE状态READY状态ACTIVE状态HALT状态RESETREQUEST 命令ANTICOLLISION命令启动防冲突循环读
23、取卡回送的UID(SN)HALT命令SELECT UID命令应用:AUTENTICATION/READ/WRITE/INC/DEC命令WAKE UP 命令小结:MIFARE 1卡特点三q真正的防冲突:卡芯片与读写芯片中都内嵌防冲突模块,可实现真正的(硬件)防冲突,可高速识别天线范围内的多张卡。小结:MIFARE 1卡其他特点q高可靠性:无线通讯链路使用各种校验机制确保数据可靠传输 q用户更方便:卡芯片中内建有增值/减值的专项数学运算电路,非常适合公交/地铁等行业的定额收费系统实训5 MIFARE 1卡的读写操作与存储结构 q 按标志连接非接触式IC卡读写器的电源线,电源指示灯闪亮一下表示连接正
24、确。注意电源注意电源+5V+5V与地不可接反。与地不可接反。q 按标志连接非接触式IC卡读写器与PC机间的通信线,打开MIFARE系列非接触式IC卡演示软件MWRF,确认通信正常。q 装载密码(Load Key)操作:在RFDEMO软件界面中选择密码集0(KEYSET0),密码A(KEY A),将扇区0-14的密码A设置为全F,而将扇区15的密码A设置为全0。启动密码下载,下载过程中红色指示灯点亮;下载完毕后红色指示灯熄灭。qMIFARE 1MIFARE 1卡读写操作卡读写操作:将MIFARE 1卡按任意方向置入MIFARE开发板天线有效工作范围内,对MIFARE 1卡的扇区0、1和15的块0
25、、1、2进行读/写操作。记录读取的卡数据,标明各块的类型及卡的类型号、序列号、容量及各扇区的密码和访问权限。注意:不得随意修改各扇区块注意:不得随意修改各扇区块3的数据,特别是的数据,特别是访问权限字节,以免造成扇区被锁死。访问权限字节,以免造成扇区被锁死。q防冲突测试防冲突测试 (1)分别读出并记录二张MIFARE 1卡(分别记为1#卡、2#卡)的序列号,及其扇区0块1的内容,记录在报告上。(2)将二张MIFARE 1卡同时放置在读写器天线有效工作范围内,在RFDEMO软件中执行读操作,根据读出的SN找出被选中的卡(例如为1#卡)。(3)在RFDEMO软件中执行写操作,修改扇区0块1的内容并
26、将数据记录在报告上。(4)将被选中的卡撤离读写器天线有效工作范围,读出另一张卡(例如2#卡)的扇区0块1的内容,并将数据记录在报告上。(5)取走(4)中的卡,重新读出并记录被选中的卡的扇区0块1的数据,并记录在报告上。(6)比较上述实验数据,说明MIFARE1卡是否具备防冲突功能。q存取控制设置:存取控制设置:(1)读出并记录扇区14块0的内容;修改内容并再次读出,记录修改后的内容。说明该块的存取控制条件。(2)修改扇区14的存取控制字节,将扇区14块0设置为校验密码A/B正确可读,永不可修改。其他各块条件不变。(3)重复(1),说明修改存取控制字节产生的结果。(4)将存取控制位恢复为默认值。
27、注意:严禁修改对块注意:严禁修改对块3的设置,否则容易错误将存取控制位的设置,否则容易错误将存取控制位设为永不可写,将无法恢复为默认值。设为永不可写,将无法恢复为默认值。C2X3_bC2X2_bC2X1_bC2X0_bC1X3_bC1X2_bC1X1_bC1X0_bC1X3C1X2C1X1C1X0C3X3_bC3X2_bC3X1_bC3X0_bC3X3C3X2C3X1C3X0C2X3C2X2C2X1C2X0BX7BX6BX5BX4BX3BX2BX1BX0存取控制位的结构11111111000001111000000001101001存取控制位对块3的控制结构密码密码A密码密码A存取控制存取控制
28、 存取控制存取控制密码密码B密码密码BC1X3C2X3C3X3readwritereadwriteread write000neverKEYA|BKEYA|BneverKEYA|BKEYA|B010neverNeverKEYA|BneverKEYA|Bnever100neverKEYBKEYA|BneverneverKEYB110neverNeverKEYA|Bnevernevernever001neverKEYA|BKEYA|BKEYA|BKEYA|BKEYA|B011neverKEYBKEYA|BKEYBneverKEYB101neverNeverKEYA|BKEYBnevernever1
29、11neverNeverKEYA|Bnevernevernever存取控制位对数据块的控制结构C1XYC2XYC3XYReadWriteIncrement Decr,Transfer,restore000KEYA|BKEYA|BKEYA|BKEYA|B010KEYA|Bnevernevernever100KEYA|BKEYBnevernever110KEYA|BKEYBKEYBKEYA|B001KEYA|BneverneverKEYA|B011KEYBKEYBnevernever101KEYBnevernevernever111Nevernevernevernever查表3:C1X0=0,C2
30、X0=1,C3X0=0,其他位不变。对照表1:存取控制字节=EF 07 81 69H 将扇区14块3的内容修改为FFFFFFFFFFFFEF078169FFFFFFFFFFFF项目设计之二硬件设计MCUMIFARE卡卡读写模块读写模块EEPROM存储器存储器RS232接口接口显示显示报警报警天线天线卡Mifare 核心读写模块MCMq 功能:读写器MCU与MIFARE卡之间的接口,负责读写卡,其基本功能包括产生发送/接收射频信号、调制/解调、防冲突处理和安全管理。q 工作频率:13.56MHz。通信速率:106Kbps q 工作距离:MCM20025mm,MCM500100mmq 防冲突:真正
31、的防冲突功能。q 安全性与可靠性:每个扇区设有3套密码及其认证和密码存储器,模块与卡片通信时,数据加密,多种通信校验机制q 接口:标准MIFARE并行接口MCM与MCU接口电路 MCU控制器MCS-51MCM模块-CSP3.3-RD-WRH-RD-WRMODEHUSEALEALEP3.2ALE-IRQP0.0P0.7D0D7q 直接用数据总线传送地址和数据:MODE、USEALE接高电平,ALE对接;A0A3悬空q P3.3驱动-CS,即P3.3为低时选中(激活)MCM200模块q MCM200的-IRQ接P3.2;可用查询或中断方式接收MCM发送的数据 项目设计之三软件设计q读写器与读写器与
32、M1M1卡交换数据的过程:卡交换数据的过程:1)由读写器MCU(微控制器)发送指令给MCM,2)MCM执行指令并将其转换为射频信号发送给卡;3)卡接收到来自MCM的指令后,按指令完成其内部的各种处理,并回送应答信号/数据给MCM;4)MCM接收卡回送的射频信号并将其转换为数字信号输出给MCU,读写器MCU读取MCM接收到的应答/数据,即可完成与M1卡的数据交换。MCM基本通信指令集MCM内核特殊寄存器MIFARE卡的读写操作步骤 q 激活MCMq MCM软复位q 向MCM下载密码(LOAD KEY),校验传输密码正确后可向MCM的KEY-RAM写入用户自己设定的密码,以上操作与卡无关。q 请求
33、应答(ANSWER TO REQUEST):寻卡 q 防冲突(ANTICOLLISION):选择唯一一张卡 q 选择标记(SELECT):激活所选择的卡 q 认证(AUTHENTICATION):安全性q 读写操作(读、写、加值、减值):交换数据(READ/WRITE/INCREAMENT/DECREMENT)q 停止(HALT):置卡为停止模式,防止重复操作。SOR/LOAD KEYREQUESTANTICOLLISIONREAD/WRITE/INC/DECHALTAUTHENTICATIONSELECT卡应答:TAGTYPE(2B)卡应答:SN(4B)+校验码(1B)卡应答:SIZE(1B
34、)卡应答:AE位指令时序 每个指令由7个基本步骤组成,必须按此时序编程才能完成该指令:(1)初始化,设置各寄存器,特别是BCNTS和BCNTR。(2)送指令码到DATA,由MCM发送指令。(3)设置TOC,MCM准备接收来自卡的应答或数据。(4)检查DV标志,查询数据接收是否完成。DV标志为”1”表明MCM与MIFARE卡片之间的传输已经完成,并且主处理机可能已经从MCM中收到数据,可以进行下一步操作。而DV=0表示数据接收尚未完成或未能接收到数据,则程序循环检测DV标志直至DV=1。有一种情况例外,既当定时器溢出时,无论接收是否完成DV都将被设置为1,同样将进行下一步操作。(5)清零TOC。
35、(6)检查出错标志,若有标志被设置,则进行相应的出错处理,例如设置出错标志等,并返回主程序;若没有标志被设置,表示接收正确,将进行下一步操作(7)MCU从DATA读出MCM接收到的应答或数据。Answer to Request(请求应答)指令 qRequest 指令将通知MCM在天线有效的工作范围(距离)内寻找MIFARE 1卡。q命令码:26H或52H。q卡收到该指令将回送卡类型号作为卡应答:TAGTYPE(2个字节)初始化设置BCNTS=7bitsBCNTR=2Byte开始选择REQUEST ALL或REQUEST STD发送REQUEST命令设置TOC=1ms读STACONDV=1?清零
36、TOC判断是否出错?读TAG TYPERET出错处理YNYNqWith a“request std”(26H)instruction only cards which are not set into a“HALT-mode”will respond to this request,or it may be expanded to all cards in the field with a“request all”(52H)option.The first option is needed to prevent the MCM from selecting one card several t
37、imes.Difference between “request std”&“request all”Request:NOP NOP MOV A,#0CH ;设置STACON MOV R0,#01H MOVX R0,A MOV A,#0EH ;设置BAUDRATE MOV R0,#05H MOVX R0,A MOV A,#0C0H ;设置ENABLE MOV R0,#02H MOVX R0,A MOV A,#0C6H ;设置MODE MOV R0,#07H MOVX R0,A MOV A,#0CH ;再次设置STACON MOV R0,#01H MOVX R0,A MOV A,#02H ;设置
38、RCODE MOV R0,#0EH MOVX R0,A MOV A,#07H ;设置BCNTS=7bits MOV R0,#03H MOVX R0,A MOV A,#10H ;设置BCNTR=2Bytes MOV R0,#04H MOVX R0,AJUDGE_COMMAND:;选择REQ STD还是REQ ALL MOV A,R2 XRL A,#01H JNZ RQT_STDRQT_ALL:MOV A,#52H SJMP RQT_NEXTRQT_STD:MOV A,#26HRQT_NEXT:MOV R0,#00H;发送命令码 MOVX R0,A NOP MOV A,#0AH ;设置TOC=1m
39、s MOV R0,#06H MOVX R0,ARQT_STACON:MOV R0,#01H;读 STACON MOVX A,R0 JNB ACC.7,RQT_STACON;判断 DV=1?MOV R7,A ;暂存STACON MOV A,#00H;清零TOC MOV R0,#06H MOVX R0,A MOV A,R7;判断是否出错 JB ACC.6,RQT_TE_ERR JB ACC.3,RQT_BE_ERR MOV R0,#00H ;读TAGTYPE MOVX A,R0 MOV 20H,A MOV R0,#00H MOVX A,R0 MOV 21H,A MOV B,#00H;设置 OK 标
40、志 SJMP RQT_EXITRQT_BE_ERR:;错误处理 MOV B,#01H SJMP RQT_EXITRQT_TE_ERR:MOV B,#02H SJMP RQT_EXITRQT_EXIT:RET AntiCollision 防冲突q 如果有多于一张的Mifare 1卡处在MCM天线的有效工作范围(距离)内,则发生了冲突。AntiCollision操作使MCM能在多张Mifare 1卡中选择某一张卡。q AntiCollision操作由一个AntiCollision Loop(防冲突循环,内部处理)来实现。设置STACON寄存器中的AC位启动AntiCollision循环。q MCM
41、发送AntiCollision命令(93H+20H),每张天线范围内的MIFARE 1卡接收AntiCollision命令后,都将回送自己的SN作为应答。q 由于每张卡的SN各不相同,MCM接收到的信息(即SN)至少有1位即是0又是1(即该位的前、后半部都有负载波调制),防冲突循环找到第1个冲突位将其置1(排除该位为0的卡),然后查第2个,依次排除,最后不再有冲突的SN即为最后读取的SN。Anticollision:NOP NOP MOV A,#0CH SETB ACC.0 ;设置AC=1,启动防冲突 MOV R0,#01H MOVX R0,A ACALL DELAY_500s ;延迟1000
42、s ACALL DELAY_500s MOV A,#10H ;设置BCNTS为2Bytes MOV R0,#03H MOVX R0,A MOV A,#28H ;设置BCNTR为5Bytes MOV R0,#04H MOVX R0,A MOV A,#93H ;发送命令码 MOV R0,#00H MOVX R0,A MOV A,#20H;发送NVB MOV R0,#00H MOVX R0,A MOV A,#0AH ;设置TOC为1ms MOV R0,#06H MOVX R0,AANTI_STACON:MOV R0,#01H;读STACON MOVX A,R0 JNB ACC.7,ANTI_STAC
43、ON;判断 DV=1?MOV R7,A ;暂存STACON MOV A,#00H;清零TOC MOV R0,#06H MOVX R0,AMOV A,R7;判断是否出错 JB ACC.6,ANTI_TE_ERR JB ACC.3,ANTI_BE_ERR MOV R7,#04H MOV B,#00H MOV R1,#30H;设置片内RAM的SN暂存区首地址 MOV R0,#00HANTI_LOOP:MOVX A,R0;读入4字节SN并逐一异或 MOV R1,A XRL B,A INC R1 DJNZ R7,ANTI_LOOP MOVX A,R0;读入1字节校验码 XRL A,B;用校验码异或校验S
44、N JNZ ANTI_CHK_ERR_EXIT;校验出错 MOV B,#00H;设置OK标志 AJMP ANTI_BACKANTI_TE_ERR:;错误处理 MOV B,#01H AJMP ANTI_BACKANTI_BE_ERR:MOV B,#0AH AJMP ANTI_BACKANTI_CHK_ERR_EXIT:MOV B,#08HANTI_BACK:RET Select Tag 选择卡片操作 qSelect Tag操作将选中AntiCollision操作所读取的SN对应的卡,使该卡进入激活状态,只有该卡才能进行后续的认证及访问操作。qMCM发送Select命令(93H+70H+SN及校验
45、码)q卡接收该命令后将MCM发送的SN与自己的序列号比较,若一致则该卡被激活(ACTIVE),其他卡则仍留在READY状态。被选择(激活)的卡将回送其容量(SIZE)字节作为应答。SELECT:MOV A,#0CH MOV R0,#01H MOVX R0,A MOV A,#0F0H ;设置ENABLE MOV R0,#02H MOVX R0,A MOV A,#38H ;设置BCNTS=7Bytes MOV R0,#03H MOVX R0,A MOV A,#08H ;设置BCNTR=1 Byte MOV R0,#04H MOVX R0,A MOV A,#93H ;发送命令码 MOV R0,#00
46、H MOVX R0,A MOV A,#70H;发送NVB MOV R0,#00H MOVX R0,A MOV R7,#04H MOV B,#00H MOV R0,#00H MOV R1,#40H;SN暂存区首地址SELECT_WRT_LOOP:MOV A,R1;取出ANTICOLLISION指令读取的SN字节 MOVX R0,A;发送SN字节给卡 XRL B,A;SN字节相异或生成校验码 INC R1 DJNZ R7,SELECT_WRT_LOOP MOV A,B MOVX R0,A ;发送校验码 MOV A,#0AH ;SET TOC MOV R0,#06H MOVX R0,A SEL_RD
47、_STACON_AGAIN:;READ STACON MOV R0,#01H MOVX A,R0 JNB ACC.7,SEL_RD_STACON_AGAIN;判断DV=1?MOV R6,A;暂存STACON MOV A,#00H;清零TOC MOV R0,#06H MOVX R0,A MOV A,R6;判断是否出错 JB ACC.6,SEL_TE_ERR JB ACC.5,SEL_PE_ERR JB ACC.3,SEL_BE_ERR JB ACC.4,SEL_CE_ERR MOV R0,#00H;读取SIZE字节 MOVX A,R0 MOV 22H,A ;SIZE字节存入22H MOV B,#
48、00H;设置OK 标志 SJMP SEL_EXITSEL_TE_ERR:;错误处理 MOV B,#01H LJMP SEL_EXIT SEL_PE_ERR:MOV B,#05H LJMP SEL_EXIT SEL_CE_ERR:MOV B,#02H LJMP SEL_EXIT SEL_BE_ERR:MOV R7,#0AH LCALL D500US MOV B,#0BH SEL_EXIT:RET Authentication 认证操作 qMCM中设有专用的密码存储器(KEY-RAM),用于存储3个密码集KEYSET0,KEYSET1,KEYSET2,每一个KEYSET又包含了各个扇区的KEY A
49、 及KEY B。qAuthentication操作就是将KEY-RAM中的密码与卡中对应的密码进行三次相互认证。qAuthentication操作的卡应答以AE位给出;AE=1,密码出错,未能通过认证;AE=0,密码正确,通过认证qAuthetication操作包括3个步骤 1)设置KEYSTACON寄存器,指定Authetication操作及KEYSET(0、1或2)2)设置KEYADDR寄存器,指定Authetication操作、KEYA或KEYB、待认证的扇区号 3)写“命令”(60H或61H)和写“地址”(扇区号015)到DATA寄存器,启动Authetication操作。READ/W
50、RITE操作qREAD/WRITE均需整块操作。qREAD:发送命令码30H+块地址(063)接收指定块的数据(16B)通常用2次读并比较是否一致来校验是否正确读qWRITE:发送命令码A0H+块地址(063)接收ACK/NAK应答来校验是否正确接收命令 发送块数据(16B)接收ACK/NAK应答来校验是否正确写入EEPROMValue Operate 值操作qMIFARE卡专门为公交/地铁等行业的定额收费系统设有值操作命令,包括INCREAMENT/DECREAMENT/TRANSFER/RESTOREq对某块进行值操作的前提是该块已被初始化为“值块”(Value Block)并且Acces
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。