欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    非接触式IC卡技术.ppt

    • 资源ID:2549638       资源大小:1.02MB        全文页数:97页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    非接触式IC卡技术.ppt

    非接触式IC卡技术,电子与信息工程学院,提 纲,非接触式IC卡概述 系统构成/分类/国际标准 非接触式IC卡工作原理 能量传递/信息传递/防冲突 非接触式IC卡芯片技术 MIFARE 1 非接触式IC卡接口技术 MIFARE 1,为什么要使用非接触式IC卡?,在频繁操作的场合,如门禁、考勤、小额电子钱包(公交收费、食堂收费、高速公路收费、停车场收费)、身份认证等场合,接触式IC卡越来越明显的暴露出其弊端:,容易磨损 操作速度慢 使用不方便,什么是非接触式IC卡? Contactless ICC,非接触式IC卡是在卡中敷设天线,利用天线的接收发射,与读写器的天线交换信号,实现一种无线通讯,非接触式IC卡又被称为射频卡(RFCRadio Frequency Card),简称RF卡,非接触式IC卡系统被称为射频识别系统(RFIDRadio Frequency Identification)。,非接触式IC卡系统构成,非接触式IC卡:数据载体,应答器 非接触式IC卡读写器:卡接口设备,阅读器,寻呼器,非接触式IC卡的基本构成,非接触式IC 卡:芯片+天线+卡基,非接触式IC卡读写器的构成,高频模块(发送器和接收器)、 控制单元 耦合元件(天线),非接触式IC卡的特点,可靠性高、寿命长。 非接触式IC卡与读写器之间无机械接触,避免了由于接触读写而产生的各种故障。非接触式ID卡表面无裸露的芯片,无须担心芯片脱落、静电击穿、弯曲、损坏等问题,既便于卡片的印刷,又提高了卡片使用的可靠性。 操作快捷便利。 动态处理。 成本较高。,非接触式IC卡的分类,按片内IC:存储卡、逻辑加密卡、CPU卡 按工作距离:密耦合卡、近耦合和疏耦合卡 按工作频率的高低 :125kHz的低频卡(30 kHz 300 kHz),13.56MHz的高频或射频卡(3MHz30 MHz),915MHz、2.45GHz的超高频卡(300MHz 3GHz)、5.8GHz的微波卡(3GHz)。 按卡内芯片供电方式:卡内带电池的有源卡和卡内无电池、由读写器以无线感应方式供电的无源卡 按使用过程中的读写方式:只读卡(ID卡)和读写卡 (带EEPROM),EM ID厚卡,EM ID薄卡,PHILIPS MIFARE 1卡,TI (德州仪器) Tag-it电子标签,手表卡与钥匙扣卡,不同频段射频卡的特点,非接触式IC卡的国际标准,注释:ICC集成电路卡 CICCClose-Coupled ICC,紧密(密耦合)卡; PICCProximity ICC,称为接近(近耦合)卡; VICCVicinity ICC,称为邻近(疏耦合)卡。 CD Coupling Device,是读写器中发射电磁波的部分,ISO/IEC14443国际标准 现阶段ISO/IEC 14443(草案)主要有两个体系并存:ISO/IEC14443-Type A、ISO/IEC14443-TypeB。 TypeA:以PHILIPS公司为代表,包括SIEMENS、HITACHI、GEMPLUS、G&D和Schlumberger等公司 TypeB:以ST(意法半导体)、MOTOROLA、ATMEL、韩国SAMSUNG和日本的NEC等公司为代表。,ISO/IEC18000国际标准 18000-1:物理层 18000-2:低于135KHz通信的空中接口的参数; 18000-3:在13.56MHz通信的空中接口的参数; 18000-4:在2.45GHz通信的空中接口的参数; 18000-5:5.8GHz通信的空中接口的参数; 18000-6:860-960MHz通信的空中接口的参数; 18000-7:433MHz通信的空中接口的参数;,目前13.56MHz的产品主要包括: ISO14443TypeA卡Mifare 1 S50卡、Ultra Light卡 LEGIC Type A 卡、上海公交卡即华虹IC卡、复旦微电子Type A 卡 ISO14443TypeB卡ATMEL RF020 ISO15693(电子标签)卡PHILIPS I-Code2、TI Tag-it标签 I-CODE(电子标签)卡 PHILIPS I-Code、上海贝岭BL75R02 SONY Felica卡香港八达通、深圳通 中国二代身份证,目前125KHz的产品主要包括:,此外,还包括ATMEL的TEMIC卡系列、TI的低频标签、HITAG卡等。,非接触式IC卡工作原理,要解决的三大问题: (1)非接触卡如何取得工作电压。 (2)读写器与IC卡之间如何交换信息。 (3)防冲突问题:多张卡同时进入读写器发射的能量区域(即发生冲突)时如何对卡逐一进行处理。,非接触式IC卡与读写器接口电路,(1)读写器发射激励信号(一组固定频率的电磁波),数字信息调制在该射频信号上。 (2)IC卡进入读写器工作区内,被读写器信号激励。在电磁波的激励下,卡内的LC串联谐振电路产生共振,从而使电容内有了电荷,当所积累的电荷达到2V时,此电容可以作为电源为其他电路提供工作电压,供卡内集成电路工作所需。(谐振、整流、滤波、稳压)。 (3)同时卡内的电路对接收到的谐振信号进行解调,还原数字信息,对信息进行分析处理,判断发自读写器的命令,如需在EEPROM中写入或修改内容,还需将2V电压提升到15V左右,以满足写入EEPROM的电压要求。 (4)IC卡对读写器的命令进行处理后,发射应答信息(将应答信息调制到射频信号上)给读写器。 (5)读写器接收IC卡的射频信号并进行解调还原出应答信息。,初始化与防冲突 (AntiCollion),如果有2张或2张以上的IC卡进入读写器的工作范围,称之为冲突(或碰撞Collion),此时就需要解决如何对多张IC卡逐一处理的问题防冲突 AntiCollion。 防冲突方案: 位帧防冲突(Bit AntiCollision) 动态时隙-ALOHA法(Slotted-ALOHA法),项目引入IC卡公交收费机,定额收费 操作方便快捷 可显示余额 非法卡或余额不足报警 可将当班收款额上传总站数据库 总站可调整定额额度。 卡遗失可挂失。,项目设计之一卡型选择,接触式逻辑加密卡 SLE4406 非接触式ID卡 EM的4001卡 非接触式逻辑加密卡 PHILIPS的Mifare卡,操作不方便,没有加密逻辑,不安全,容易实现定额收费,操作方便快捷,安全性高,通用性强,Mifare 1非接触式IC卡,基本性能指标: 卡内器件: 无线智能卡芯片Mifare MF1 IC S50 +天线线圈 标准: 遵从ISO/IEC 14443 Type A 标准 工作频率: 13.56MHz 数据传送速率: 106kbit/s (9.4s/bit),Mifare卡与读写器之间的信号,Mifare卡的信号调制方式,Type A与Type B调制程度的比较,TYPE A: 100%ASK,TYPE B: 10%ASK,从读写器到卡的调制与编码,载波:fc=13.56MHz 数据传输速率:13.56MHz/128=106kbit/s(9.4s/bit) 调制方式:TYPE A用100%ASK, TYPE B用10%ASK, 编码方式:TYPE A用改进的MILLER编码, TYPE B用NRZ编码(不归零制数位编码),从卡到读写器的调制与编码,副载波:fc/16 =847.5kHz 数据传输速率:106kbit/s 调制方式:副载波调制 编码方式:TYPE A用MANCHESTER-ASK, TYPE B用BPSK-NRZ(二进制相移键控数位编码),Mifare 1卡片的存储结构,存储容量:1024×8位字长(即1KB), 存储介质:EEPROM 分为16个扇区(扇区0 15) 每个扇区有4个块(Block)块0、块1、块2和块3。 每个块有16个字节。 一个扇区共有 16 Byte×4 = 64 Byte,块功能详解,1)厂商块 地址:扇区0块0 内容:IC卡厂商标志。其中:第04个字节为卡序列号SN,第5个字节为序列号的校验码;第6个字节为卡容量字节“SIZE” ;第7,8个字节为卡类型号Tagtype; 特性:基于保密性和系统的安全性,这一块在IC卡厂商编程之后被置为写保护,因此该块不能再复用为应用数据块。 例:420A7E00368804004481740630373937H 序列号SN:420A7E00H+校验码36H 容量字节SIZE:88H 卡类型号Tag Type:0400H,块功能详解,2)数据块 每扇区3个数据块(扇区0只有2个),每块16字节。可由区尾块中的存取控制位(access bits)配置为: 读写块:用作一般的数据保存,可用读/写命令直接读/写整个块 值块:用作数值块,可以进行初始化值、加值、减值、读值的运算,相应配用的命令为INC/DEC/RESTORE/TRANSFER命令。 通常数据块中的数据都是需要保密的数据,对这些数据的读/写/加值/减值均需:符合该块存取条件的要求+通过该扇区的密码认证。,块功能详解,3)区尾块 每个扇区的块3为区尾(Sector Trailer)块: KEY A(6B)+ Access bits(4B)+KEY B(6B) 例: A0A1A2A3A4A5FF078069 B0B1B2B3B4B5 密钥A:A0A1A2A3A4A5H(缺省值) 密钥B:B0B1B2B3B4B5H(缺省值) 存取控制位:FF078069H (缺省值),Mifare 1 卡存取控制与数据区的关系,Access bits(存取控制位):定义该扇区中4个块的访问条件,及定义数据块的类型(读写或值) Mifare 1 卡出厂初始化时,所有扇区块3的初始化值均为 A0A1A2A3A4A5 FF078069 B0B1B2B3B4B5 卡初始化后的存取控制条件为: 密码A永不可读,校验密码A或密码B正确后可以修改; 密码B在校验密码A或密码B正确后可读,可修改; 数据块在校验密码A或密码B正确后可读,可修改。,小结:MIFARE 1卡特点一,EEPROM存储器结构提供多应用: 1K字节EEPROM,16个扇区, 4数据块/扇区,16字节/块。用户可以定义每一个存储器块的访问条件。每个扇区(每应用)拥有各自独立的密钥,支持带密钥层次的多应用。,Mifare 1 卡的密码认证方式,Mifare 1 卡的密码的认证采用了三次相互认证的方法,具有很高的安全性。,(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,校验正确,否则将无法通过校验;,(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,校验正确,小结:MIFARE 1卡特点二,高保密性: 全球唯一SN; 密钥及传输密码保护,各扇区密码独立且有三套(KEYSET0、1、2)二个(KEY A、KEY B)密码。 密码认证采用三次相互认证; 存取控制位保护,用户可以定义每一个存储器块的访问条件 RF信道数据加密,Mifare 1非接触式IC卡功能组成,POWER OFF状态,IDLE状态,READY状态,ACTIVE状态,HALT状态,RESET,REQUEST 命令,ANTICOLLISION命令 启动防冲突循环 读取卡回送的UID(SN),HALT命令,SELECT UID命令,应用:AUTENTICATION/READ/WRITE/INC/DEC命令,WAKE UP 命令,MIFARE 卡 防冲突流程,小结:MIFARE 1卡特点三,真正的防冲突: 卡芯片与读写芯片中都内嵌防冲突模块,可实现真正的(硬件)防冲突,可高速识别天线范围内的多张卡。,小结:MIFARE 1卡其他特点,高可靠性: 无线通讯链路使用各种校验机制确保数据可靠传输 用户更方便: 卡芯片中内建有增值/减值的专项数学运算电路,非常适合公交/地铁等行业的定额收费系统,实训5 MIFARE 1卡的读写操作与存储结构,按标志连接非接触式IC卡读写器的电源线,电源指示灯闪亮一下表示连接正确。注意电源+5V与地不可接反。 按标志连接非接触式IC卡读写器与PC机间的通信线,打开MIFARE系列非接触式IC卡演示软件MWRF,确认通信正常。 装载密码(Load Key)操作:在RFDEMO软件界面中选择密码集0(KEYSET0),密码A(KEY A),将扇区0-14的密码A设置为全F,而将扇区15的密码A设置为全0。启动密码下载,下载过程中红色指示灯点亮;下载完毕后红色指示灯熄灭。,MIFARE 1卡读写操作: 将MIFARE 1卡按任意方向置入MIFARE开发板天线有效工作范围内,对MIFARE 1卡的扇区0、1和15的块0、1、2进行读/写操作。记录读取的卡数据,标明各块的类型及卡的类型号、序列号、容量及各扇区的密码和访问权限。 注意:不得随意修改各扇区块3的数据,特别是访问权限字节,以免造成扇区被锁死。,防冲突测试 (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卡是否具备防冲突功能。,存取控制设置: (1)读出并记录扇区14块0的内容;修改内容并再次读出,记录修改后的内容。说明该块的存取控制条件。 (2)修改扇区14的存取控制字节,将扇区14块0设置为校验密码A/B正确可读,永不可修改。其他各块条件不变。 (3)重复(1),说明修改存取控制字节产生的结果。 (4)将存取控制位恢复为默认值。 注意:严禁修改对块3的设置,否则容易错误将存取控制位设为永不可写,将无法恢复为默认值。,存取控制位的结构,存取控制位对块3的控制结构,存取控制位对数据块的控制结构,查表3:C1X0=0,C2X0=1,C3X0=0, 其他位不变。 对照表1:存取控制字节=EF 07 81 69H 将扇区14块3的内容修改为 FFFFFFFFFFFFEF078169FFFFFFFFFFFF,项目设计之二硬件设计,MCU,MIFARE卡 读写模块,EEPROM 存储器,RS232接口,显示,报警,天线,卡,Mifare 核心读写模块MCM,功能:读写器MCU与MIFARE卡之间的接口,负责读写卡,其基本功能包括产生发送/接收射频信号、调制/解调、防冲突处理和安全管理。 工作频率:13.56MHz。通信速率:106Kbps 工作距离:MCM20025mm,MCM500100mm 防冲突:真正的防冲突功能。 安全性与可靠性:每个扇区设有3套密码及其认证和密码存储器 ,模块与卡片通信时,数据加密 ,多种通信校验机制 接口:标准MIFARE并行接口,MCM与MCU接口电路,直接用数据总线传送地址和数据:MODE、USEALE接高电平,ALE对接;A0A3悬空 P3.3驱动-CS,即P3.3为低时选中(激活)MCM200模块 MCM200的-IRQ接P3.2;可用查询或中断方式接收MCM发送的数据,项目设计之三软件设计,读写器与M1卡交换数据的过程: 1)由读写器MCU(微控制器)发送指令给MCM, 2)MCM执行指令并将其转换为射频信号发送给卡; 3)卡接收到来自MCM的指令后,按指令完成其内部的各种处理,并回送应答信号/数据给MCM; 4)MCM接收卡回送的射频信号并将其转换为数字信号输出给MCU,读写器MCU读取MCM接收到的应答/数据,即可完成与M1卡的数据交换。,M C M 基 本 通 信 指 令 集,MCM 内 核 特 殊 寄 存 器,MIFARE卡的读写操作步骤,激活MCM MCM软复位 向MCM下载密码(LOAD KEY),校验传输密码正确后可向MCM的KEY-RAM写入用户自己设定的密码,以上操作与卡无关。 请求应答(ANSWER TO REQUEST):寻卡 防冲突(ANTICOLLISION):选择唯一一张卡 选择标记(SELECT):激活所选择的卡 认证 (AUTHENTICATION):安全性 读写操作(读、写、加值、减值):交换数据 (READ/WRITE/INCREAMENT/DECREMENT) 停止(HALT):置卡为停止模式,防止重复操作。,SOR/LOAD KEY,REQUEST,ANTICOLLISION,READ/WRITE/INC/DEC,HALT,MIFARE 卡操作步骤,AUTHENTICATION,SELECT,卡应答:TAGTYPE(2B),卡应答:SN(4B)+校验码(1B),卡应答:SIZE(1B),卡应答: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。 (6) 检查出错标志,若有标志被设置,则进行相应的出错处理,例如设置出错标志等,并返回主程序;若没有标志被设置,表示接收正确,将进行下一步操作 (7)MCU从DATA读出MCM接收到的应答或数据。,Answer to Request (请求应答)指令,Request 指令将通知MCM在天线有效的工作范围(距离)内寻找MIFARE 1卡。 命令码:26H或52H。 卡收到该指令将回送卡类型号作为卡应答:TAGTYPE(2个字节),With 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”,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 ;设置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,A JUDGE_COMMAND: ;选择REQ STD还是REQ ALL MOV A,R2 XRL A,#01H JNZ RQT_STD RQT_ALL: MOV A,#52H SJMP RQT_NEXT RQT_STD: MOV A,#26H RQT_NEXT: MOV R0,#00H ;发送命令码 MOVX R0,A NOP,MOV A,#0AH ;设置TOC=1ms MOV R0,#06H MOVX R0,A RQT_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_EXIT,RQT_BE_ERR: ;错误处理 MOV B,#01H SJMP RQT_EXIT RQT_TE_ERR: MOV B,#02H SJMP RQT_EXIT RQT_EXIT: RET,AntiCollision 防冲突,如果有多于一张的Mifare 1卡处在MCM天线的有效工作范围(距离)内,则发生了冲突。AntiCollision操作使MCM能在多张Mifare 1卡中选择某一张卡。 AntiCollision操作由一个AntiCollision Loop(防冲突循环,内部处理)来实现。设置STACON寄存器中的AC位启动AntiCollision循环。 MCM发送AntiCollision命令(93H+20H),每张天线范围内的MIFARE 1卡接收AntiCollision命令后,都将回送自己的SN作为应答。 由于每张卡的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 ;延迟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,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,A ANTI_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,A MOV 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,#00H ANTI_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_BACK ANTI_TE_ERR: ;错误处理 MOV B,#01H AJMP ANTI_BACK ANTI_BE_ERR:MOV B,#0AH AJMP ANTI_BACK ANTI_CHK_ERR_EXIT:MOV B,#08H ANTI_BACK: RET,Select Tag 选择卡片操作,Select Tag操作将选中AntiCollision操作所读取的SN对应的卡,使该卡进入激活状态,只有该卡才能进行后续的认证及访问操作。 MCM发送Select命令(93H+70H+SN及校验码) 卡接收该命令后将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,#00H 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_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_EXIT,SEL_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 认证操作,MCM中设有专用的密码存储器(KEY-RAM),用于存储3个密码集KEYSET0,KEYSET1,KEYSET2,每一个KEYSET又包含了各个扇区的KEY A 及KEY B。 Authentication操作就是将KEY-RAM中的密码与卡中对应的密码进行三次相互认证。 Authentication操作的卡应答以AE位给出; AE=1,密码出错,未能通过认证; AE=0,密码正确,通过认证,Authetication操作包括3个步骤 1)设置KEYSTACON寄存器,指定Authetication操作及KEYSET(0、1或2) 2)设置KEYADDR寄存器,指定Authetication操作、KEYA或KEYB、待认证的扇区号 3)写“命令”(60H或61H)和写“地址”(扇区号015)到DATA寄存器,启动Authetication操作。,READ/WRITE操作,READ/WRITE均需整块操作。 READ: 发送命令码30H+块地址(063) 接收指定块的数据(16B) 通常用2次读并比较是否一致来校验是否正确读 WRITE: 发送命令码A0H+块地址(063) 接收ACK/NAK应答来校验是否正确接收命令 发送块数据(16B) 接收ACK/NAK应答来校验是否正确写入EEPROM,Value Operate 值操作,MIFARE卡专门为公交/地铁等行业的定额收费系统设有值操作命令,包括INCREAMENT/DECREAMENT/ TRANSFER/RESTORE 对某块进行值操作的前提是该块已被初始化为“值块”(Value Block)并且Access Bits允许值操作。,值块的初始化,方法:对某块按固定的格式进行写操作 格式: address 块地址(1B) value 值(4B,有符号),例如,对块地址为01H的块进行值块初始化,初始化值VALUE=00030000H,则数据格式为 FE 01 FE 01 00030000 FFFCFFFF 00030000 高 低,Increment/Decrement/Transfer,Increment: adds the specified value to the memory value Decrement: subtracts the specified value from the memoty value Transfer: 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.,DECREMENT: 入口:块地址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,A,MOV A,#0AH ;SET TOC=1ms MOV R0,#06H MOVX R0,A D_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_CONTI DEC_TE_ERR: ;NOTAGERR MOV B,#01H AJMP DEC_EXIT DEC_BE_ERR: MOV B,#02H AJMP DEC_EXIT,DEC_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_NEXT D_N1: CJNE A,#0AH,D_N2 ;收到ACK应答(00000101),表示可以DEC SJMP DEC_NEXT D_N2: MOV B,#03H ;其他错误应答(00000011),CODEER AJMP WRITE_EXIT,WRITE_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_BUF DEC_VALUE: MOV A,R1 MOVX R0,A INC R1 DJNZ R5,DEC_VALUE,MOV A,#0AH ;SET TOC=1ms MOV R0,#06H MOVX R0,A DEC_end: ;DV=1? MOV R0,#01H MOVX A,R0 JNB ACC.7,DEC_end MOV A,#00H

    注意事项

    本文(非接触式IC卡技术.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开