非接触式IC卡技术整理课件

上传人:仙*** 文档编号:241845878 上传时间:2024-07-29 格式:PPT 页数:97 大小:1.02MB
返回 下载 相关 举报
非接触式IC卡技术整理课件_第1页
第1页 / 共97页
非接触式IC卡技术整理课件_第2页
第2页 / 共97页
非接触式IC卡技术整理课件_第3页
第3页 / 共97页
点击查看更多>>
资源描述
SmartCardSmartCard 非接触式非接触式ICIC卡技术卡技术电子与信息工程学院电子与信息工程学院SmartCardSmartCard提 纲q 非非接触式接触式ICIC卡概述卡概述系统构成/分类/国际标准q 非接触式非接触式ICIC卡工作原理卡工作原理 能量传递/信息传递/防冲突q 非接触式非接触式ICIC卡芯片技术卡芯片技术 MIFARE 1q 非接触式非接触式ICIC卡接口技术卡接口技术MIFARE 1SmartCardSmartCard为什么要使用非接触式IC卡?q在频繁操作的场合,如门禁、考勤、小额电子钱包(公交收费、食堂收费、高速公路收费、停车场收费)、身份认证等场合,接触式IC卡越来越明显的暴露出其弊端:容易磨损操作速度慢使用不方便SmartCardSmartCard什么是非接触式IC卡?Contactless ICCq非接触式IC卡是在卡中敷设天线,利用天线的接收发射,与读写器的天线交换信号,实现一种无线通讯,非接触式IC卡又被称为射频卡(RFCRadioFrequencyCard),简称RF卡,非接触式IC卡系统被称为射频识别系统(RFIDRadioFrequencyIdentification)。SmartCardSmartCard非接触式IC卡系统构成q非接触式IC卡:数据载体,应答器q非接触式IC卡读写器:卡接口设备,阅读器,寻呼器SmartCardSmartCard 非接触式IC卡的基本构成 q非接触式IC 卡:芯片+天线+卡基SmartCardSmartCardSmartCardSmartCard非接触式IC卡读写器的构成q高频模块(发送器和接收器)、q控制单元q耦合元件(天线)SmartCardSmartCard非接触式IC卡的特点 q可靠性高、寿命长。非接触式IC卡与读写器之间无机械接触,避免了由于接触读写而产生的各种故障。非接触式ID卡表面无裸露的芯片,无须担心芯片脱落、静电击穿、弯曲、损坏等问题,既便于卡片的印刷,又提高了卡片使用的可靠性。q操作快捷便利。q动态处理。q成本较高。SmartCardSmartCard非接触式IC卡的分类q按片内IC:存储卡、逻辑加密卡、CPU卡q按工作距离:密耦合卡、近耦合和疏耦合卡 q按工作频率的高低:125kHz的低频卡(30 kHz 300 kHz),13.56MHz的高频或射频卡(3MHz30 MHz),915MHz、2.45GHz的超高频卡(300MHz 3GHz)、5.8GHz的微波卡(3GHz)。q按卡内芯片供电方式:卡内带电池的有源卡和卡内无电池、由读写器以无线感应方式供电的无源卡 q按使用过程中的读写方式:只读卡(ID卡)和读写卡(带EEPROM)SmartCardSmartCardEM ID厚卡EM ID薄卡PHILIPS MIFARE 1卡TI(德州仪器)Tag-it电子标签手表卡与钥匙扣卡SmartCardSmartCard 特点频段工作频率 数据传输速率读写距离 读写区域低频125134KHz慢适中(1m)较为均匀高频13.56MHz较快适中(1m)较为均匀超高频860960MHz快远(10m)很难定义不同频段射频卡的特点SmartCardSmartCard非接触式IC卡的国际标准标准组织阵营频段技术规范EPCglobal 全球产品电子代码管理中心 欧美企业 沃尔玛、思科、敦豪快递、麦德龙和吉列等 UHF(860-960 MHz)电子产品代码(EPC)、电子标签规范和互操作性、识读器-电子标签通信协议、中间件软件系统接口等ISO/IEC 国际标准组织/国际电工委员会 全球非盈利工业标准组织 多个频段识别卡与身份识别ISO/IEC14443自动识别ISO/IEC15693ISO/IEC18000UID 泛在技术核心组织 日本电子厂商、IT企业 2.45GHz和13.56MHz 电子标签超微芯片部分规格 SmartCardSmartCard注释:ICC集成电路卡CICCClose-Coupled ICC,紧密(密耦合)卡;PICCProximity ICC,称为接近(近耦合)卡;VICCVicinity ICC,称为邻近(疏耦合)卡。CD Coupling Device,是读写器中发射电磁波的部分 SmartCardSmartCardISO/IEC14443国际标准现阶段ISO/IEC14443(草案)主要有两个体系并存:ISO/IEC14443-TypeA、ISO/IEC14443-TypeB。TypeA:以PHILIPS公司为代表,包括SIEMENS、HITACHI、GEMPLUS、G&D和Schlumberger等公司TypeB:以ST(意法半导体)、MOTOROLA、ATMEL、韩国SAMSUNG和日本的NEC等公司为代表。SmartCardSmartCardISO/IEC18000国际标准q18000-1:物理层q18000-2:低于135KHz通信的空中接口的参数;q 18000-3:在13.56MHz通信的空中接口的参数;q18000-4:在2.45GHz通信的空中接口的参数;q18000-5:5.8GHz通信的空中接口的参数;q18000-6:860-960MHz通信的空中接口的参数;q18000-7:433MHz通信的空中接口的参数;SmartCardSmartCard目前13.56MHz的产品主要包括:qISO14443TypeA卡Mifare 1 S50卡、Ultra Light卡 LEGIC Type A 卡、上海公交卡即华虹IC卡、复旦微电子Type A 卡qISO14443TypeB卡ATMEL RF020qISO15693(电子标签)卡PHILIPS I-Code2、TI Tag-it标签qI-CODE(电子标签)卡 PHILIPS I-Code、上海贝岭BL75R02qSONY Felica卡香港八达通、深圳通q中国二代身份证SmartCardSmartCard目前125KHz的产品主要包括:技术指标技术指标EM4100/4102标准卡准卡4001感感应式式ID厚卡厚卡8803感感应式式ID厚卡厚卡芯片SwatchGroupEm4102Wafer台湾4001COB台湾8803Wafe工作频率125KHZ125KHZ125KHZ感应距离2-20cm2-20cm2-20cm尺寸85.5x54x0.82mm85.5x54x2mm85.5x54x1.05mm封装材料PVC、ABSPVC,ABSPVC封装工艺层压封装手工粘贴手工层压号码可选连号喷码典型应用考勤系统、门禁系统、企业一卡通系统等考勤系统、门禁系统、企业一卡通系统等考勤系统、门禁系统、企业一卡通系统等此外,还包括ATMEL的TEMIC卡系列、TI的低频标签、HITAG卡等。SmartCardSmartCard非接触式IC卡工作原理 q要解决的三大问题:(1)非接触卡如何取得工作电压。(2)读写器与IC卡之间如何交换信息。(3)防冲突问题:多张卡同时进入读写器发射的能量区域(即发生冲突)时如何对卡逐一进行处理。SmartCardSmartCard非接触式IC卡与读写器接口电路SmartCardSmartCard(1)读写器发射激励信号(一组固定频率的电磁波),数字信息调制在该射频信号上。(2)IC卡进入读写器工作区内,被读写器信号激励。在电磁波的激励下,卡内的LC串联谐振电路产生共振,从而使电容内有了电荷,当所积累的电荷达到2V时,此电容可以作为电源为其他电路提供工作电压,供卡内集成电路工作所需。(谐振、整流、滤波、稳压)。(3)同时卡内的电路对接收到的谐振信号进行解调,还原数字信息,对信息进行分析处理,判断发自读写器的命令,如需在EEPROM中写入或修改内容,还需将2V电压提升到15V左右,以满足写入EEPROM的电压要求。(4)IC卡对读写器的命令进行处理后,发射应答信息(将应答信息调制到射频信号上)给读写器。(5)读写器接收IC卡的射频信号并进行解调还原出应答信息。SmartCardSmartCard初始化与防冲突(AntiCollion)q如果有2张或2张以上的IC卡进入读写器的工作范围,称之为冲突(或碰撞Collion),此时就需要解决如何对多张IC卡逐一处理的问题防冲突 AntiCollion。q防冲突方案:位帧防冲突(Bit AntiCollision)动态时隙-ALOHA法(Slotted-ALOHA法)SmartCardSmartCard项目引入IC卡公交收费机q定额收费q操作方便快捷q可显示余额q非法卡或余额不足报警q可将当班收款额上传总站数据库q总站可调整定额额度。q卡遗失可挂失。SmartCardSmartCard项目设计之一卡型选择q接触式逻辑加密卡 SLE4406q非接触式ID卡 EM的4001卡q非接触式逻辑加密卡 PHILIPS的Mifare卡操作不方便没有加密逻辑,不安全容易实现定额收费,操作方便快捷,安全性高,通用性强SmartCardSmartCardMifare 1非接触式IC卡 基本性能指标:q卡内器件:无线智能卡芯片Mifare MF1 IC S50+天线线圈q标准:遵从ISO/IEC 14443 Type A 标准q工作频率:13.56MHzq数据传送速率:106kbit/s(9.4s/bit)SmartCardSmartCardMifare卡与读写器之间的信号 SmartCardSmartCardMifare卡的信号调制方式 Type A与Type B调制程度的比较TYPEA:100%ASKTYPEB:10%ASKSmartCardSmartCard从读写器到卡的调制与编码q载波:fc=13.56MHzq数据传输速率:13.56MHz/128=106kbit/s(9.4s/bit)q调制方式:TYPE A用100%ASK,TYPE B用10%ASK,q编码方式:TYPE A用改进的MILLER编码,TYPE B用NRZ编码(不归零制数位编码)SmartCardSmartCard从卡到读写器的调制与编码q副载波:fc/16=847.5kHz q数据传输速率:106kbit/sq调制方式:副载波调制q编码方式:TYPE A用MANCHESTER-ASK,TYPE B用BPSK-NRZ(二进制相移键控数位编码)SmartCardSmartCardMifare 1卡片的存储结构 q存储容量:10248位字长(即1KB),q存储介质:EEPROMq分为16个扇区(扇区0 15)q每个扇区有4个块(Block)块0、块1、块2和块3。q每个块有16个字节。q一个扇区共有 16 Byte4=64 Byte SmartCardSmartCard块功能详解1)厂商块地址:扇区0块0内容:IC卡厂商标志。其中:第04个字节为卡序列号SN,第5个字节为序列号的校验码;第6个字节为卡容量字节“SIZE”;第7,8个字节为卡类型号Tagtype;特性:基于保密性和系统的安全性,这一块在IC卡厂商编程之后被置为写保护,因此该块不能再复用为应用数据块。例:420A7E00368804004481740630373937H 序列号SN:420A7E00H+校验码36H 容量字节SIZE:88H 卡类型号Tag Type:0400H SmartCardSmartCard块功能详解2)数据块q每扇区3个数据块(扇区0只有2个),每块16字节。可由区尾块中的存取控制位(access bits)配置为:p读写块:用作一般的数据保存,可用读/写命令直接读/写整个块p值块:用作数值块,可以进行初始化值、加值、减值、读值的运算,相应配用的命令为INC/DEC/RESTORE/TRANSFER命令。q通常数据块中的数据都是需要保密的数据,对这些数据的读/写/加值/减值均需:符合该块存取条件的要求+通过该扇区的密码认证。SmartCardSmartCard块功能详解 3)区尾块 q每个扇区的块3为区尾(Sector Trailer)块:KEY A(6B)+Access bits(4B)+KEY B(6B)例:A0A1A2A3A4A5FF078069 B0B1B2B3B4B5 密钥A:A0A1A2A3A4A5H(缺省值)密钥B:B0B1B2B3B4B5H(缺省值)存取控制位:FF078069H(缺省值)SmartCardSmartCardMifare 1 卡存取控制与数据区的关系 qAccess bits(存取控制位):定义该扇区中4个块的访问条件,及定义数据块的类型(读写或值)qMifare 1 卡出厂初始化时,所有扇区块3的初始化值均为 A0A1A2A3A4A5 FF078069 B0B1B2B3B4B5 卡初始化后的存取控制条件为:密码A永不可读,校验密码A或密码B正确后可以修改;密码B在校验密码A或密码B正确后可读,可修改;数据块在校验密码A或密码B正确后可读,可修改。SmartCardSmartCard小结:MIFARE 1卡特点一qEEPROM存储器结构提供多应用:1K字节EEPROM,16个扇区,4数据块/扇区,16字节/块。用户可以定义每一个存储器块的访问条件。每个扇区(每应用)拥有各自独立的密钥,支持带密钥层次的多应用。SmartCardSmartCardMifare 1 卡的密码认证方式 qMifare 1 卡的密码的认证采用了三次相互认证的方法,具有很高的安全性。SmartCardSmartCard(A)环:Mifare 1卡向读写器发送一个随机数据RB;(B)环:读写器收到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)环:读写器 收到令牌TOKEN BA后,用读写器中存放的密码对令牌TOKEN BA中的RA(随机数)进行解密得到RA;并校验第一次由(B)环中读写器发出去的随机数RA是否与(D)环中接收到 的TOKEN BA中的RA相一致;同样,若读写器与卡中的密码及加/解密算法一致,将会有RA=RA,校验正确,否则将无法通过校验;SmartCardSmartCard(A)环:Mifare 1卡取随机数RB=1100,KEY1=1010,加密/解密算法:异或,发送RB给读写器(B)环:读写器取随机数RA=0011,KEY2=1010,加密/解密算法:异或,接收RB对RB加密:TOKENB=RB异或KEY2=0110,发送TOKENB+RA(C)环:Mifare 1卡片对TOKEN B解密:RB=TOKENB异或KEY1=1100=RB,校验正确;(D)环:Mifare 1卡片对RA加密TOKENA=RA异或KEY1=1001;(E)环:读写器 收对TOKEN A解密:RA=TOKENA异或KEY2=0011=RA,校验正确SmartCardSmartCard小结:MIFARE 1卡特点二q高保密性:q 全球唯一SN;q 密钥及传输密码保护,各扇区密码独立且有三套(KEYSET0、1、2)二个(KEY A、KEY B)密码。q 密码认证采用三次相互认证;q 存取控制位保护,用户可以定义每一个存储器块的访问条件q RF信道数据加密 SmartCardSmartCard Mifare 1非接触式IC卡功能组成 SmartCardSmartCardPOWER OFF状态IDLE状态READY状态ACTIVE状态HALT状态RESETREQUEST 命令ANTICOLLISION命令启动防冲突循环读取卡回送的UID(SN)HALT命令SELECT UID命令应用:AUTENTICATION/READ/WRITE/INC/DEC命令WAKE UP 命令MIFARE MIFARE 卡卡卡卡防冲突流程防冲突流程防冲突流程防冲突流程SmartCardSmartCard小结:MIFARE 1卡特点三q真正的防冲突:卡芯片与读写芯片中都内嵌防冲突模块,可实现真正的(硬件)防冲突,可高速识别天线范围内的多张卡。SmartCardSmartCard小结:MIFARE 1卡其他特点q高可靠性:无线通讯链路使用各种校验机制确保数据可靠传输 q用户更方便:卡芯片中内建有增值/减值的专项数学运算电路,非常适合公交/地铁等行业的定额收费系统SmartCardSmartCard实训5 MIFARE 1卡的读写操作与存储结构 q按标志连接非接触式IC卡读写器的电源线,电源指示灯闪亮一下表示连接正确。注意电源注意电源+5V+5V与地不可接反。与地不可接反。q按标志连接非接触式IC卡读写器与PC机间的通信线,打开MIFARE系列非接触式IC卡演示软件MWRF,确认通信正常。q装载密码(Load Key)操作:在RFDEMO软件界面中选择密码集0(KEYSET0),密码A(KEY A),将扇区0-14的密码A设置为全F,而将扇区15的密码A设置为全0。启动密码下载,下载过程中红色指示灯点亮;下载完毕后红色指示灯熄灭。SmartCardSmartCardqMIFARE 1MIFARE 1卡读写操作卡读写操作:将MIFARE 1卡按任意方向置入MIFARE开发板天线有效工作范围内,对MIFARE 1卡的扇区0、1和15的块0、1、2进行读/写操作。记录读取的卡数据,标明各块的类型及卡的类型号、序列号、容量及各扇区的密码和访问权限。注注意意:不不得得随随意意修修改改各各扇扇区区块块3的的数数据据,特特别别是是访问权限字节,以免造成扇区被锁死。访问权限字节,以免造成扇区被锁死。SmartCardSmartCardq防冲突测试防冲突测试 (1)分别读出并记录二张MIFARE 1卡(分别记为1#卡、2#卡)的序列号,及其扇区0块1的内容,记录在报告上。(2)将二张MIFARE 1卡同时放置在读写器天线有效工作范围内,在RFDEMO软件中执行读操作,根据读出的SN找出被选中的卡(例如为1#卡)。(3)在RFDEMO软件中执行写操作,修改扇区0块1的内容并将数据记录在报告上。(4)将被选中的卡撤离读写器天线有效工作范围,读出另一张卡(例如2#卡)的扇区0块1的内容,并将数据记录在报告上。(5)取走(4)中的卡,重新读出并记录被选中的卡的扇区0块1的数据,并记录在报告上。(6)比较上述实验数据,说明MIFARE1卡是否具备防冲突功能。SmartCardSmartCardq存取控制设置:存取控制设置:(1)读出并记录扇区14块0的内容;修改内容并再次读出,记录修改后的内容。说明该块的存取控制条件。(2)修改扇区14的存取控制字节,将扇区14块0设置为校验密码A/B正确可读,永不可修改。其他各块条件不变。(3)重复(1),说明修改存取控制字节产生的结果。(4)将存取控制位恢复为默认值。注意:严禁修改对块注意:严禁修改对块3的设置,否则容易错误将存取控制位的设置,否则容易错误将存取控制位设为永不可写,将无法恢复为默认值。设为永不可写,将无法恢复为默认值。SmartCardSmartCardC2X3_bC2X2_bC2X1_bC2X0_bC1X3_bC1X2_bC1X1_bC1X0_bC1X3C1X2C1X1C1X0C3X3_bC3X2_bC3X1_bC3X0_bC3X3C3X2C3X1C3X0C2X3C2X2C2X1C2X0BX7BX6BX5BX4BX3BX2BX1BX0存取控制位的结构11111111000001111000000001101001SmartCardSmartCard存取控制位对块3的控制结构密密码A密密码A存取控制存取控制 存取控制存取控制密密码B密密码BC1X3C2X3C3X3readwritereadwriteread write000neverKEYA|BKEYA|BneverKEYA|BKEYA|B010neverNeverKEYA|BneverKEYA|Bnever100neverKEYBKEYA|BneverneverKEYB110neverNeverKEYA|Bnevernevernever001neverKEYA|BKEYA|BKEYA|BKEYA|BKEYA|B011neverKEYBKEYA|BKEYBneverKEYB101neverNeverKEYA|BKEYBnevernever111neverNeverKEYA|BneverneverneverSmartCardSmartCard存取控制位对数据块的控制结构C1XYC2XYC3XYReadWriteIncrement Decr,Transfer,restore000KEYA|BKEYA|BKEYA|BKEYA|B010KEYA|Bnevernevernever100KEYA|BKEYBnevernever110KEYA|BKEYBKEYBKEYA|B001KEYA|BneverneverKEYA|B011KEYBKEYBnevernever101KEYBnevernevernever111NeverneverneverneverSmartCardSmartCard查表3:C1X0=0,C2X0=1,C3X0=0,其他位不变。对照表1:存取控制字节=EF 07 81 69H 将扇区14块3的内容修改为FFFFFFFFFFFFEF078169FFFFFFFFFFFFSmartCardSmartCard项目设计之二硬件设计MCUMIFARE卡卡读写模块读写模块EEPROM存储器存储器RS232接口接口显示显示报警报警天线天线卡SmartCardSmartCardMifare 核心读写模块MCMq功能:读写器MCU与MIFARE卡之间的接口,负责读写卡,其基本功能包括产生发送/接收射频信号、调制/解调、防冲突处理和安全管理。q工作频率:13.56MHz。通信速率:106Kbps q工作距离:MCM20025mm,MCM500100mmq防冲突:真正的防冲突功能。q安全性与可靠性:每个扇区设有3套密码及其认证和密码存储器,模块与卡片通信时,数据加密,多种通信校验机制q接口:标准MIFARE并行接口SmartCardSmartCardMCM与MCU接口电路 q直接用数据总线传送地址和数据:MODE、USEALE接高电平,ALE对接;A0A3悬空qP3.3驱动-CS,即P3.3为低时选中(激活)MCM200模块qMCM200的-IRQ接P3.2;可用查询或中断方式接收MCM发送的数据 SmartCardSmartCard项目设计之三软件设计q读写器与读写器与M1M1卡交换数据的过程:卡交换数据的过程:1)由读写器MCU(微控制器)发送指令给MCM,2)MCM执行指令并将其转换为射频信号发送给卡;3)卡接收到来自MCM的指令后,按指令完成其内部的各种处理,并回送应答信号/数据给MCM;4)MCM接收卡回送的射频信号并将其转换为数字信号输出给MCU,读写器MCU读取MCM接收到的应答/数据,即可完成与M1卡的数据交换。SmartCardSmartCardMCM基本通信指令集SmartCardSmartCardMCM内核特殊寄存器SmartCardSmartCardMIFARE卡的读写操作步骤 q激活MCMqMCM软复位q向MCM下载密码(LOAD KEY),校验传输密码正确后可向MCM的KEY-RAM写入用户自己设定的密码,以上操作与卡无关。q请求应答(ANSWER TO REQUEST):寻卡 q防冲突(ANTICOLLISION):选择唯一一张卡 q选择标记(SELECT):激活所选择的卡 q认证(AUTHENTICATION):安全性q读写操作(读、写、加值、减值):交换数据(READ/WRITE/INCREAMENT/DECREMENT)q停止(HALT):置卡为停止模式,防止重复操作。SmartCardSmartCardSOR/LOAD KEYREQUESTANTICOLLISIONREAD/WRITE/INC/DECHALTMIFARE MIFARE 卡操作步骤卡操作步骤卡操作步骤卡操作步骤AUTHENTICATIONSELECT卡应答:TAGTYPE(2B)卡应答:SN(4B)+校验码(1B)卡应答:SIZE(1B)卡应答:AE位SmartCardSmartCard指令时序 每个指令由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。(6)检查出错标志,若有标志被设置,则进行相应的出错处理,例如设置出错标志等,并返回主程序;若没有标志被设置,表示接收正确,将进行下一步操作(7)MCU从DATA读出MCM接收到的应答或数据。SmartCardSmartCardAnswer to Request(请求应答)指令 qRequest 指令将通知MCM在天线有效的工作范围(距离)内寻找MIFARE 1卡。q命令码:26H或52H。q卡收到该指令将回送卡类型号作为卡应答:TAGTYPE(2个字节)SmartCardSmartCardqWith 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 times.Difference between “request std”&“request all”SmartCardSmartCardRequest: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 ;设置RCODE MOV R0,#0EH MOVX R0,ASmartCardSmartCard 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 NOPSmartCardSmartCard MOV A,#0AH ;设置TOC=1ms 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 标志 SJMP RQT_EXITSmartCardSmartCardRQT_BE_ERR:;错误处理 MOV B,#01H SJMP RQT_EXITRQT_TE_ERR:MOV B,#02H SJMP RQT_EXITRQT_EXIT:RET SmartCardSmartCardAntiCollision 防冲突q如果有多于一张的Mifare 1卡处在MCM天线的有效工作范围(距离)内,则发生了冲突。AntiCollision操作使MCM能在多张Mifare 1卡中选择某一张卡。qAntiCollision操作由一个AntiCollision Loop(防冲突循环,内部处理)来实现。设置STACON寄存器中的AC位启动AntiCollision循环。qMCM发送AntiCollision命令(93H+20H),每张天线范围内的MIFARE 1卡接收AntiCollision命令后,都将回送自己的SN作为应答。q由于每张卡的SN各不相同,MCM接收到的信息(即SN)至少有1位即是0又是1(即该位的前、后半部都有负载波调制),防冲突循环找到第1个冲突位将其置1(排除该位为0的卡),然后查第2个,依次排除,最后不再有冲突的SN即为最后读取的SN。SmartCardSmartCardAnticollision:NOP NOP MOV A,#0CH SETB ACC.0 ;设置AC=1,启动防冲突 MOV R0,#01H MOVX R0,A ACALL DELAY_500s ;延迟1000s ACALL DELAY_500s MOV A,#10H ;设置BCNTS为2Bytes MOV R0,#03H MOVX R0,A MOV A,#28H ;设置BCNTR为5Bytes MOV R0,#04H MOVX R0,ASmartCardSmartCard 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_STACON;判断 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_ERRSmartCardSmartCard 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;用校验码异或校验SN 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 SmartCardSmartCardSelect Tag 选择卡片操作 qSelect Tag操作将选中AntiCollision操作所读取的SN对应的卡,使该卡进入激活状态,只有该卡才能进行后续的认证及访问操作。qMCM发送Select命令(93H+70H+SN及校验码)q卡接收该命令后将MCM发送的SN与自己的序列号比较,若一致则该卡被激活(ACTIVE),其他卡则仍留在READY状态。被选择(激活)的卡将回送其容量(SIZE)字节作为应答。SmartCardSmartCardSELECT: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,#00H MOVX R0,A MOV A,#70H;发送NVB MOV R0,#00H MOVX R0,ASmartCardSmartCard 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 SmartCardSmartCardSEL_RD_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,#00H;设置OK 标志 SJMP SEL_EXITSmartCardSmartCardSEL_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 SmartCardSmartCardAuthentication 认证操作 qMCM中设有专用的密码存储器(KEY-RAM),用于存储3个密码集KEYSET0,KEYSET1,KEYSET2,每一个KEYSET又包含了各个扇区的KEY A 及KEY B。qAuthentication操作就是将KEY-RAM中的密码与卡中对应的密码进行三次相互认证。qAuthentication操作的卡应答以AE位给出;AE=1,密码出错,未能通过认证;AE=0,密码正确,通过认证SmartCardSmartCardqAuthetication操作包括3个步骤 1)设置KEYSTACON寄存器,指定Authetication操作及KEYSET(0、1或2)2)设置KEYADDR寄存器,指定Authetication操作、KEYA或KEYB、待认证的扇区号 3)写“命令”(60H或61H)和写“地址”(扇区号015)到DATA寄存器,启动Authetication操作。SmartCardSmartCardREAD/WRITE操作qREAD/WRITE均需整块操作。qREAD:发送命令码30H+块地址(063)接收指定块的数据(16B)通常用2次读并比较是否一致来校验是否正确读qWRITE:发送命令码A0H+块地址(063)接收ACK/NAK应答来校验是否正确接收命令 发送块数据(16B)接收ACK/NAK应答来校验是否正确写入EEPROMSmartCardSmartCardValue Operate 值操作qMIFARE卡专门为公交/地铁等行业的定额收费系统设有值操作命令,包括INCREAMENT/DECREAMENT/TRANSFER/RESTOREq对某块进行值操作的前提是该块已被初始化为“值块”(Value Block)并且Access Bits允许值操作。SmartCardSmartCard值块的初始化q方法:对某块按固定的格式进行写操作q格式:address 块地址(1B)value 值(4B,有符号)例如,对块地址为01H的块进行值块初始化,初始化值VALUE=00030000H,则数据格式为FE 01 FE 01 00030000 FFFCFFFF 00030000高 低SmartCardSmartCardIncrement/Decrement/TransferqIncrement:adds the specified value to the memory valueqDecrement:subtracts the specified value from the memoty valueqTransfer:Each Increment or Decrement instruction manipulating a standard value block has to be followed by a Transfer intruction which actually stores the calculated result in the card memory.Until then,the result is kept in an internal value buffer resgister.SmartCardSmartCardDECREMENT:入口:块地址addr,值value存放于D_BUF出口:ACK/NAK NOP NOP MOV A,#10H;SEND BCNTS(16bits:命令码+块地址)MOV R0,#03H MOVX R0,A MOV A,#04H;SEND BCNTR(4bits:ACK/NAK)MOV R0,#04H MOVX R0,A MOV A,#0C0H;SEND CODE MOV R0,#00H MOVX R0,A MOV A,#addr;SEND BLOCK ADDR MOV R0,#00H MOVX R0,ASmartCardSmartCardMOV A,#0AH;SET TOC=1ms MOV R0,#06H MOVX R0,AD_wait_value:;读STACON,判断DV=1?MOV R0,#01H MOVX A,R0 JNB ACC.7,D_wait_value MOV R6,A MOV A,#00H;清零TOC MOV R0,#06H MOVX R0,A MOV A,R6;出错判断 JB ACC.6,DEC_TE_ERR JB ACC.3,DEC_BE_ERR AJMP DEC_CONTIDEC_TE_ERR:;NOTAGERR MOV B,#01H AJMP DEC_EXITDEC_BE_ERR:MOV B,#02H AJMP DEC_EXITSmartCardSmartCardDEC_CONTI:MOV R0,#00H;读入读入ACK/NAK,MOVX A,R0 ANL A,#0BH;仅检查0,1,3位 CJNE A,#00H,D_N1 MOV B,#07H ;NOTAUTHERR(应答为00000000)SJMP DEC_NEXTD_N1:CJNE A,#0AH,D_N2;收到ACK应答(00000101),表示可以DEC SJMP DEC_NEXTD_N2:MOV B,#03H ;其他错误应答(00000011),CODEER AJMP WRITE_EXIT SmartCardSmartCardWRITE_NEXT:;开始写数据 MOV A,#32;SEND BCNTS=32bits(4B VALUE)MOV R0,#03H MOVX R0,A MOV A,#04H;SEND BCNTR=4 bits(ACK/NAK)MOV R0,#04H MOVX R0,A MOV R5,#4 ;送4B 值 MOV R0,#00H MOV R1,#D_BUFDEC_VALUE:MOV A,R1 MOVX R0,A INC R1 DJNZ R5,DEC_VALUE SmartCardSmartCard MOV A,#0AH;SET TOC=1ms MOV R0,#06H MOVX R0,ADEC_end:;DV=1?MOV R0,#01H MOVX A,R0 JNB ACC.7,DEC_end MOV A,#00H;清零TOC MOV R0,#06H MOVX R0,AJudge_answer:MOV R0,#01H;出错判断 MOVX A,R0 JNB ACC.6,DEC_error_TEMOV B,#00HDEC_ANSWER:;读入ACK/NAK MOV R0,#00H MOVX A,R0 ANL A,#0FH CJNE A,#04H,D_ERR1;(00000100为VALUE OVERFLOW)MOV B,#0FEH SJMP DEC_EXITD_ERR1:MOV B,#0FFH;其他错误 DEC_EXIT:RET SmartCardSmartCardTRANSFER入口:块地址T_addr出口:ACK/NAKTRANS:NOP NOP MOV A,#10H;SEND BCNTS(16bits:命令码+块地址)MOV R0,#03H MOVX R0,A MOV A,#04H;SEND BCNTR(4bits:ACK/NAK)MOV R0,#04H MOVX R0,A MOV A,#0B0H;SEND CODE MOV R0,#00H MOVX R0,A MOV A,#T_addr;SEND BLOCK ADDR MOV R0,#00H MOVX R0,ASmartCardSmartCardMOV A,#10H;SET TOC=1.5ms MOV R0,#06H MOVX R0,AT_end:;DV=1?MOV R0,#01H MOVX A,R0 JNB ACC.7,T_end MOV A,#00H;清零TOC MOV R0,#06H MOVX R0,AJudge_answer:;出错判断 MOV R0,#01H MOVX A,R0 JB ACC.3,T_error_BE JB ACC.6,T_error_PE MOV B,#00H AJMP NEXT_TRANST_error_BE:;出错处理 MOV B,#03H SJMP NEXT_TRANST_error_PE:MOV B,#05H SJMP NEXT_TRANSSmartCardSmartCardNEXT_TRANS:MOV A,#95D;SET TOC=9ms MOV R0,#06H MOVX R0,AT_Toc_end:;DV=1?(EEPROM写入结束否?)MOV R0,#01H MOVX A,R0 JNB ACC.7,T_Toc_end MOV R6,A MOV A,#00H;CLEAR TOC MOV R0,#06H MOVX R0,A MOV A,R6;出错判断 JB ACC.6,T_TAG_ERR JB ACC.3,T_BIT_ERR MOV B,00H SJMP NEXT_ANSWERT_TAG_ERR:;出错处理 MOV B,#09H AJMP T_EXITT_BIT_ERR:MOV B,#0BH AJMP T_EXITSmartCardSmartCardNEXT_ANSWER:;读入ACK/NAK MOV R0,#00H MOVX A,R0 ANL A,#0FH CJNE A,#0AH,T_ERR1;(00000101为ACK,TRANSFER OK)MOV B,#00H SJMP T_EXITT_ERR1:CJNE A,#04H,T_ERR2;(00000100为NAK)MOV B,#02H SJMP T_EXITT_ERR2:CJNE A,#05H,WRITE_EXIT;其他错误 MOV B,#04HT_EXIT:RETSmartCardSmartCard实训6 非接触式IC卡的读写控制 实训程序将读写器MCU片内RAM中的16个数据写入卡的一个数据块,然后将该数据块中的数据读出并存入读写器MCU的片内RAM中。MCU采用查询方式与MCM通信。实训程序说明:mode 选择密码集KEYSET0、1、2及密码A、B sector_nr 认证扇区号(015)R_H_BUF 读入数据缓冲区首地址 R_E_BUF 读入数据暂存区首地址 W_H_BUF 写入数据区首地址 R_addr 被读取的块地址(063)W_addr 被写入的块地址(063)SmartCardSmartCard实训步骤q用非接触式IC卡读写软件MWRF向MCM中下载密码,读出并记录MIFARE1卡的TAGTYPE、SN、SIZE,读出并记录卡中某数据块(如扇区1块0)的数据。q用镊子取出非接触式IC卡开发板上的MCU芯片,将仿真头插入MCU的IC座。q编译实训程序,设置断点。q打开片内RAM及寄存器窗口,在写数据区(首地址为10H的16个单元)设置要写入卡中的数据。q天线范围内无卡时运行程序,记录程序停在断点处的相关数据。说明是否能正确读/写卡,如不能,根据现象定位故障点。q将卡置入天线范围内,运行程序,记录程序停在断点处的相关数据。说明是否能正确读/写卡,如不能,根据现象定位故障点。SmartCardSmartCard 实训程序:mode EQU 00H;设置KEYSET=KEYSET0,使用密码A sector_nr EQU 01H;设置认证扇区为扇区1 R_H_BUF EQU 40H;读入数据缓冲区 R_E_BUF EQU 50H;读入数据暂存区 W_H_BUF EQU 10H;写入数据区 R_addr EQU 04H;被读取的块地址(扇区1的块0)W_addr EQu 05H;被写入的块地址(扇区1的块1)SmartCardSmartCardORG 0000H AJMP MAIN ORG 0050HMAIN:MOV SP,#60H;重新设置堆栈 CLR EA;关闭所有中断 CLR P3.4 SETB P3.3;关闭MCM200 NOP NOP CLR P3.3;激活MCM200 NOP LCALL D500MSSTART:NOP NOP MOV A,#80H;SOR软件复位 MOV R0,#01H MOVX R0,A NOP NOP LCALL D500MS CLR P3.3;再次激活MCM200 CLR P3.3S
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!