非接触式IC卡技术的基本规范_第1页
非接触式IC卡技术的基本规范_第2页
非接触式IC卡技术的基本规范_第3页
非接触式IC卡技术的基本规范_第4页
非接触式IC卡技术的基本规范_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

非接触式IC卡技术电子与信息工程学院提纲非接触式IC卡概述系统构成/分类/国际标准非接触式IC卡工作原理

能量传递/信息传递/防冲突非接触式IC卡芯片技术

MIFARE1非接触式IC卡接口技术MIFARE1为什么要使用非接触式IC卡?在频繁操作的场合,如门禁、考勤、小额电子钱包(公交收费、食堂收费、高速公路收费、停车场收费)、身份认证等场合,接触式IC卡越来越明显的暴露出其弊端:容易磨损操作速度慢使用不方便什么是非接触式IC卡?

ContactlessICC非接触式IC卡是在卡中敷设天线,利用天线的接收发射,与读写器的天线交换信号,实现一种无线通讯,非接触式IC卡又被称为射频卡(RFC——RadioFrequencyCard),简称RF卡,非接触式IC卡系统被称为射频识别系统(RFID——RadioFrequencyIdentification)。非接触式IC卡系统构成非接触式IC卡:数据载体,应答器非接触式IC卡读写器:卡接口设备,阅读器,寻呼器

非接触式IC卡的基本构成

非接触式IC卡:芯片+天线+卡基非接触式IC卡读写器的构成高频模块(发送器和接收器)、控制单元耦合元件(天线)

非接触式IC卡的特点

可靠性高、寿命长。

非接触式IC卡与读写器之间无机械接触,避免了由于接触读写而产生的各种故障。非接触式ID卡表面无裸露的芯片,无须担心芯片脱落、静电击穿、弯曲、损坏等问题,既便于卡片的印刷,又提高了卡片使用的可靠性。

操作快捷便利。动态处理。成本较高。非接触式IC卡的分类按片内IC:存储卡、逻辑加密卡、CPU卡按工作距离:密耦合卡、近耦合和疏耦合卡

按工作频率的高低:125kHz的低频卡(30kHz~300kHz),13.56MHz的高频或射频卡(3MHz~30MHz),915MHz、2.45GHz的超高频卡(300MHz~3GHz)、5.8GHz的微波卡(>3GHz)。

按卡内芯片供电方式:卡内带电池的有源卡和卡内无电池、由读写器以无线感应方式供电的无源卡

按使用过程中的读写方式:只读卡(ID卡)和读写卡(带EEPROM)EMID厚卡卡EMID薄卡卡PHILIPSMIFARE1卡TI((德州仪仪器)Tag-it电电子标签签手表卡与与钥匙扣扣卡特点频段工作频率数据传输速率读写距离读写区域低频125~134KHz慢适中(<1m)较为均匀高频13.56MHz较快适中(<1m)较为均匀超高频860~960MHz快远(<10m)很难定义不同频段段射频卡卡的特点点非接触式式IC卡卡的国际际标准标准组织阵营频段技术规范EPCglobal全球产品电子代码管理中心

欧美企业沃尔玛、思科、敦豪快递、麦德龙和吉列等UHF(860-960MHz)电子产品代码(EPC)、电子标签规范和互操作性、识读器-电子标签通信协议、中间件软件系统接口等ISO/IEC国际标准组织/国际电工委员会

全球非盈利工业标准组织多个频段识别卡与身份识别ISO/IEC14443自动识别ISO/IEC15693ISO/IEC18000UID泛在技术核心组织日本电子厂商、IT企业2.45GHz和13.56MHz电子标签超微芯片部分规格

注释:ICC———集成成电路卡卡CICC——Close-CoupledICC,紧紧密(密密耦合))卡;PICC——ProximityICC,称为为接近((近耦合合)卡;;VICC———VicinityICC,称为为邻近(疏耦耦合)卡。CD——CouplingDevice,,是读写器中中发射电磁波波的部分ISO/IEC14443国际标准准现阶段ISO/IEC14443(草案)主要要有两个体系系并存:ISO/IEC14443-TypeA、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卡———Mifare1S50卡、UltraLight卡LEGICTypeA卡卡、上海公公交卡即华虹虹IC卡、复复旦微电子TypeA卡ISO14443TypeB卡———ATMELRF020ISO15693(电子子标签)卡———PHILIPSI-Code2、TITag-it标签I-CODE(电子标签签)卡——PHILIPSI-Code、、上海贝岭BL75R02SONYFelica卡——香港港八达通、深深圳通中国二代身份份证目前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卡等等。非接触式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。防冲突方案::位帧防冲突((BitAntiCollision)动态时隙-ALOHA法法(Slotted-ALOHA法法)项目引入———IC卡公交交收费机定额收费操作方便快捷捷可显示余额非法卡或余额额不足报警可将当班收款款额上传总站站数据库总站可调整定定额额度。卡遗失可挂失失。项目设计之一一——卡型选选择接触式逻辑加加密卡——SLE4406非接触式ID卡——EM的4001卡非接触式逻辑辑加密卡——PHILIPS的Mifare卡操作不方便没有加密逻辑辑,不安全容易实现定额额收费,操作作方便快捷,,安全性高,,通用性强Mifare1非接触触式IC卡基本性能指标标:卡内器件:无线智能卡芯芯片MifareMF1ICS50+天线线圈标准:遵从ISO/IEC14443TypeA标准工作频率:13.56MHz数据传送速率率:106kbit/s((9.4μs/bit))Mifare卡与读写器之之间的信号Mifare卡的信号调调制方式TypeA与TypeB调制程程度的比较TYPEA:100%ASKTYPEB:10%ASK从读写器到卡卡的调制与编编码载波:fc=13.56MHz数据传输速率率:13.56MHz/128=106kbit/s(9.4μs/bit)调制方式:TYPEA用100%ASK,TYPEB用10%ASK,编码方式:TYPEA用改进的MILLER编码,TYPEB用NRZ编编码(不归零零制数位编码码)从卡到读写器器的调制与编编码副载波:fc/16=847.5kHz数据传输速率率:106kbit/s调制方式:副副载波调制编码方式:TYPEA用MANCHESTER-ASK,TYPEB用BPSK-NRZ(二进进制相移键控控数位编码)Mifare1卡片的的存储结构存储容量:1024×8位字长(即1KB),存储介质:EEPROM分为16个扇区(扇区区0~15))每个扇区有4个块(Block)块0、块1、块2和块3。每个块有16个字节。一个扇区共有有16Byte×4=64Byte块功能详解1)厂商块地址:扇区0块0内容:IC卡卡厂商标志。。其中:第0~4个字节为卡序序列号SN,第5个字节为序列列号的校验码码;第6个字节为卡容容量字节“SIZE”;第7,8个字节为卡类类型号Tagtype;特性:基于保保密性和系统统的安全性,,这一块在IC卡厂商编编程之后被置置为写保护,,因此该块不不能再复用为为应用数据块块。例:420A7E00368804004481740630373937H序列号SN::420A7E00H+校验码36H容量字节SIZE:88H卡类型号TagType:0400H块功能详解2)数据块每扇区3个数数据块(扇区区0只有2个个),每块16字节。可可由区尾块中中的存取控制制位(accessbits)配配置为:读写块:用作作一般的数据据保存,可用用读/写命令令直接读/写写整个块值块:用作数数值块,可以以进行初始化化值、加值、、减值、读值值的运算,相相应配用的命命令为INC/DEC/RESTORE/TRANSFER命令。通常数据块中中的数据都是是需要保密的的数据,对这些数据的的读/写/加值/减值均需:符符合该块存取取条件的要求求+通过该扇扇区的密码认认证。块功能详解3)区尾块每个扇区的块块3为区尾((SectorTrailer))块:KEYA((6B)+Accessbits(4B)+KEYB(6B))例:A0A1A2A3A4A5FF078069B0B1B2B3B4B5密钥A:A0A1A2A3A4A5H((缺省值)密钥B:B0B1B2B3B4B5H((缺省值)存取控制位::FF078069H((缺省值)Mifare1卡存存取控制与数数据区的关系系Accessbits(存取控制制位):定义义该扇区中4个块的访问问条件,及定定义数据块的的类型(读写写或值)Mifare1卡出厂初始化化时,所有扇扇区块3的初始化值均均为A0A1A2A3A4A5FF078069B0B1B2B3B4B5卡初始化后的的存取控制条条件为:密码A永不可读,校校验密码A或密码B正确后可以以修改;密码B在校验密码码A或密码B正确后可读读,可修改改;数据块在校校验密码A或密码B正确后可读读,可修改改。小结:MIFARE1卡特特点一EEPROM存储器器结构提供供多应用::1K字节EEPROM,16个扇区区,4数数据块/扇区,16字节/块。用户户可以定义义每一个存存储器块的的访问条件件。每个扇扇区(每应应用)拥有各自独立的密钥钥,支持带带密钥层次次的多应用用。Mifare1卡卡的密码码认证方式式Mifare1卡的密码的的认证采用用了三次相相互认证的的方法,具具有很高的的安全性。。(A)环::Mifare1卡向读读写器发送送一个随机机数据RB;(B)环::读写器器收到RB后向Mifare1卡片片发送一个个令牌数据据TOKENAB=用读写写器中存放放的密码加加密后的RB+读写写器发出的的一个随机机数据RA;(C)环::Mifare1卡片收收到TOKENAB后后,用卡中中的密码对对TOKENAB的加密的的部分进行行解密得到到RB’,,并校验第第一次由((A)环中中Mifare1卡片发出出去的随机机数RB是是否与(B)环中接接收到的TOKENAB中中的RB’’相一致;;若读写器器与卡中的的密码及加加/解密算算法一致,,将会有RB=RB’,校验验正确,否否则将无法法通过校验验;(D)环环:如果果(C)环环校验是正正确的,则则Mifare1卡片用卡卡中存放的的密码对RA加密后后发送令牌牌TOKENBA给读写器器;(E)环::读写器器收到令令牌TOKENBA后,用用读写器中中存放的密密码对令牌牌TOKENBA中的RA(随机数数)进行解解密得到RA’;并并校验第一一次由(B)环中读读写器发出出去的随机机数RA是是否与(D)环中接接收到的的TOKENBA中的RA’相一致致;同样,,若读写器器与卡中的的密码及加加/解密算算法一致,,将会有RA=RA’,校验验正确,否否则将无法法通过校验验;(A)环::Mifare1卡取随随机数RB=1100,KEY1=1010,,加密/解密密算法:异异或,发送送RB给读读写器(B)环::读写器器取随机数数RA=0011,,KEY2=1010,加密/解密密算法:异异或,接收收RB对RB加密密:TOKENB=RB异或或KEY2=0110,发送送TOKENB+RA(C)环::Mifare1卡片对对TOKENB解解密:RB‘=TOKENB异或KEY1=1100=RB,,校验正确确;(D)环环:Mifare1卡片片对RA加加密TOKENA=RA异或KEY1=1001;;(E)环::读写器器收对TOKENA解密密:RA’=TOKENA异或KEY2=0011=RA,,校验正确确小结:MIFARE1卡特特点二高保密性::全球唯一SN;密钥及传输输密码保护护,各扇区区密码独立立且有三套套(KEYSET0、1、2)二个((KEYA、KEYB))密码。密码认证采采用三次相相互认证;;存取控制位位保护,用户可以定定义每一个个存储器块块的访问条条件RF信道数数据加密Mifare1非非接触式IC卡功能能组成POWEROFF状态IDLE状状态READY状态ACTIVE状态HALT状状态RESETREQUEST命命令ANTICOLLISION命令启动防冲突突循环读取卡回送送的UID(SN))HALT命命令SELECTUID命令应用:AUTENTICATION/READ/WRITE/INC/DEC命令令WAKEUP命令MIFARE卡防冲突流程程小结:MIFARE1卡特特点三真正的防冲冲突:卡芯片与读读写芯片中中都内嵌防防冲突模块块,可实现现真正的((硬件)防防冲突,可可高速识别别天线范围围内的多张张卡。小结结::MIFARE1卡卡其其他他特特点点高可可靠靠性性::无线线通通讯讯链链路路使用用各各种种校校验验机制制确确保保数数据据可可靠靠传传输输用户户更更方方便便:卡芯芯片片中中内内建建有有增增值值/减减值值的的专专项项数数学学运运算算电电路路,,非非常常适适合合公公交交/地地铁铁等等行行业业的的定定额额收收费费系系统统实训训5MIFARE1卡卡的的读读写写操操作作与与存存储储结结构构按标标志志连连接接非非接接触触式式IC卡卡读读写写器器的的电电源源线线,,电源源指指示示灯灯闪闪亮亮一一下下表表示示连连接接正正确确。。注意意电电源源+5V与与地地不不可可接接反反。。按标标志志连连接接非非接接触触式式IC卡卡读读写写器器与与PC机机间间的的通通信信线线,,打打开开MIFARE系系列列非非接接触触式式IC卡卡演演示示软软件件MWRF,,确确认认通通信信正正常常。。装载载密密码码((LoadKey))操操作作:在RFDEMO软软件件界界面面中中选选择择密密码码集集0((KEYSET0)),,密密码码A((KEYA)),,将将扇扇区区0-14的的密密码码A设设置置为为全全F,,而而将将扇扇区区15的的密密码码A设设置置为为全全0。。启启动动密密码码下下载载,,下下载载过过程程中中红红色色指指示示灯灯点点亮亮;;下下载载完完毕毕后后红红色色指指示示灯灯熄熄灭灭。。MIFARE1卡卡读写写操作作:将MIFARE1卡按按任意意方向向置入入MIFARE开发发板天天线有有效工工作范范围内内,对对MIFARE1卡的的扇区区0、、1和和15的块块0、、1、、2进进行读读/写写操作作。记记录读读取的的卡数数据,,标明明各块块的类类型及及卡的的类型型号、、序列列号、、容量量及各各扇区区的密密码和和访问问权限限。注意::不得得随意意修改改各扇扇区块块3的的数据据,特特别是是访问问权限限字节节,以以免造造成扇扇区被被锁死死。防冲突测试试(1)分别别读出并记记录二张MIFARE1卡卡(分别记记为1#卡卡、2#卡卡)的序列列号,及其其扇区0块块1的内容容,记录在在报告上。。(2)将二二张MIFARE1卡同时时放置在读读写器天线线有效工作作范围内,,在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的设置置,否则容容易错误将将存取控制制位设为永永不可写,,将无法恢恢复为默认认值。C2X3_bC2X2_bC2X1_bC2X0_bC1X3_bC1X2_bC1X1_bC1X0_bC1X3C1X2C1X1C1X0C3X3_bC3X2_bC3X1_bC3X0_bC3X3C3X2C3X1C3X0C2X3C2X2C2X1C2X0BX7BX6BX5BX4BX3BX2BX1BX0存取控制位位的结构11111111000001111000000001101001存取控制位位对块3的的控制结构构密码A密码A存取控制存取控制密码B密码BC1X3C2X3C3X3readwritereadwritereadwrite000neverKEYA|BKEYA|BneverKEYA|BKEYA|B010neverNeverKEYA|BneverKEYA|Bnever100neverKEYBKEYA|BneverneverKEYB110neverNeverKEYA|Bnevernevernever001neverKEYA|BKEYA|BKEYA|BKEYA|BKEYA|B011neverKEYBKEYA|BKEYBneverKEYB101neverNeverKEYA|BKEYBnevernever111neverNeverKEYA|Bnevernevernever存取控制位位对数据块块的控制结结构C1XYC2XYC3XYReadWriteIncrementDecr,Transfer,restore000KEYA|BKEYA|BKEYA|BKEYA|B010KEYA|Bnevernevernever100KEYA|BKEYBnevernever110KEYA|BKEYBKEYBKEYA|B001KEYA|BneverneverKEYA|B011KEYBKEYBnevernever101KEYBnevernevernever111Nevernevernevernever查表3:C1X0=0,C2X0=1,C3X0=0,,其他位不变变。对照表1::存取控制制字节=EF078169H将扇区14块3的内内容修改为为FFFFFFFFFFFFEF078169FFFFFFFFFFFF项目设计之之二——硬硬件设计MCUMIFARE卡读写模块EEPROM存储器RS232接口显示报警天线卡Mifare核心心读写模块块MCM功能:读写器MCU与MIFARE卡之之间的接口口,负责读读写卡,其其基本功能能包括产生生发送/接接收射频信信号、调制制/解调、、防冲突处处理和安全全管理。工作频率::13.56MHz。通信速率率:106Kbps工作距离::MCM200———25mm,MCM500———100mm防冲突:真真正的防冲冲突功能。。安全性与可可靠性:每每个扇区设设有3套密码及其其认证和密密码存储器器,模块与卡片片通信时,,数据加密密,多种通信信校验机制制接口:标准准MIFARE并行行接口MCM与MCU接口口电路直接用数据据总线传送送地址和数数据:MODE、USEALE接高电平,,ALE对接;A0~A3悬悬空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卡的数据据交换。。MCM基本通信指令集MCM内核特殊寄存器MIFARE卡的读写操操作步骤激活MCMMCM软复位向MCM下载密码(LOADKEY),校验传输输密码正确后后可向MCM的KEY-RAM写入用户自己己设定的密码码,以上操作作与卡无关。。请求应答(ANSWERTOREQUEST):寻卡防冲突(ANTICOLLISION):选择唯一一一张卡选择标记(SELECT):激活所选选择的卡认证(AUTHENTICATION)):安全性读写操作(读读、写、加值值、减值)::交换数据(READ/WRITE/INCREAMENT/DECREMENT)停止(HALT):置卡为停停止模式,防防止重复操作作。SOR/LOADKEYREQUESTANTICOLLISIONREAD/WRITE/INC/DECHALTMIFARE卡操作步步骤AUTHENTICATIONSELECT卡应答: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接收到的应答答或数据。AnswertoRequest(请求求应答)指令令Request指令将通知MCM在天线有效的的工作范围((距离)内寻寻找MIFARE1卡。命令码:26H或52H。卡收到该指令令将回送卡类类型号作为卡卡应答:TAGTYPE(2个字节)Witha“requeststd”(26H)instructiononlycardswhicharenotsetintoa“HALT-mode”willrespondtothisrequest,oritmaybeexpandedtoallcardsinthefieldwitha““requestall”(52H)option.ThefirstoptionisneededtopreventtheMCMfromselectingonecardseveraltimes.Differencebetween“requeststd””&““requestall””Request:NOPNOPMOVA,#0CH;;设置置STACONMOVR0,,#01HMOVX@R0,,AMOVA,#0EH;;设置置BAUDRATEMOVR0,,#05HMOVX@R0,,AMOVA,#0C0H;;设置置ENABLEMOVR0,,#02HMOVX@R0,,AMOVA,#0C6H;;设置置MODEMOVR0,,#07HMOVX@R0,,AMOVA,#0CH;;再次次设置置STACONMOVR0,,#01HMOVX@R0,,AMOVA,#02H;;设置置RCODEMOVR0,,#0EHMOVX@R0,,AMOVA,#07H;;设置置BCNTS=7bitsMOVR0,,#03HMOVX@R0,,AMOVA,#10H;;设置置BCNTR=2BytesMOVR0,,#04HMOVX@R0,,AJUDGE_COMMAND:;;选选择REQSTD还是是REQALLMOVA,R2XRLA,#01HJNZRQT_STDRQT_ALL:MOVA,#52HSJMPRQT_NEXTRQT_STD:MOVA,#26HRQT_NEXT::MOVR0,,#00H;;发送送命令令码MOVX@R0,,ANOPMOVA,#0AH;;设设置TOC=1msMOVR0,,#06HMOVX@R0,,ARQT_STACON::MOVR0,,#01H;;读读STACONMOVXA,,@R0JNBACC.7,RQT_STACON;;判判断DV=1?MOVR7,,A;;暂存存STACONMOVA,#00H;;清零零TOCMOVR0,,#06HMOVX@R0,,AMOVA,R7;;判判断是是否出出错JBACC.6,,RQT_TE_ERRJBACC.3,,RQT_BE_ERRMOVR0,,#00H;;读读TAGTYPEMOVXA,,@R0MOV20H,AMOVR0,,#00HMOVXA,,@R0MOV21H,AMOVB,#00H;;设置置OK标标志志SJMPRQT_EXITRQT_BE_ERR::;;错误误处理理MOVB,#01HSJMPRQT_EXITRQT_TE_ERR::MOVB,#02HSJMPRQT_EXITRQT_EXIT::RETAntiCollision防防冲冲突如果果有有多多于于一一张张的的Mifare1卡处处在在MCM天线线的的有有效效工工作作范范围围((距距离离))内内,,则则发发生生了了冲冲突突。。AntiCollision操操作作使MCM能在在多多张张Mifare1卡中中选选择择某某一一张张卡卡。。AntiCollision操操作作由由一个个AntiCollisionLoop(防防冲冲突突循循环环,,内内部部处处理理))来来实实现现。。设设置置STACON寄存存器器中中的的AC位启启动动AntiCollision循环环。。MCM发发送送AntiCollision命命令令((93H+20H)),,每张张天天线线范范围围内内的的MIFARE1卡卡接接收收AntiCollision命命令令后后,,都都将将回回送送自自己己的的SN作作为为应应答答。。由于于每每张张卡卡的的SN各各不不相相同同,,MCM接接收收到到的的信信息息((即即SN))至至少少有有1位位即即是是0又又是是1((即即该该位位的的前前、、后后半半部部都都有有负负载载波波调调制制)),,防防冲冲突突循循环环找找到到第第1个个冲冲突突位位将将其其置置1((排排除除该该位位为为0的的卡卡)),,然然后后查查第第2个个,,依依次次排排除除,,最最后后不不再再有有冲冲突突的的SN即即为为最最后后读读取取的的SN。。Anticollision::NOPNOPMOVA,,#0CHSETBACC.0;;设设置置AC=1,,启启动动防防冲冲突突MOVR0,,#01HMOVX@R0,,AACALLDELAY_500μμs;;延延迟迟1000μμsACALLDELAY_500μμsMOVA,,#10H;;设设置置BCNTS为为2BytesMOVR0,,#03HMOVX@R0,,AMOVA,,#28H;;设设置置BCNTR为为5BytesMOVR0,,#04HMOVX@R0,,AMOVA,,#93H;;发发送送命命令令码码MOVR0,,#00HMOVX@R0,,AMOVA,,#20H;;发发送送NVBMOVR0,,#00HMOVX@R0,,AMOVA,,#0AH;;设设置置TOC为为1msMOVR0,,#06HMOVX@R0,,AANTI_STACON::MOVR0,,#01H;;读读STACONMOVXA,,@R0JNBACC.7,,ANTI_STACON;;判判断断DV=1?MOVR7,,A;;暂暂存存STACONMOVA,,#00H;;清清零零TOCMOVR0,,#06HMOVX@R0,,AMOVA,,R7;;判判断断是是否否出出错错JBACC.6,ANTI_TE_ERRJBACC.3,ANTI_BE_ERRMOVR7,,#04HMOVB,#00HMOVR1,,#30H;;设设置片内内RAM的SN暂存区区首地址址MOVR0,,#00HANTI_LOOP::MOVXA,,@R0;;读入入4字节节SN并并逐一异异或MOV@R1,AXRLB,AINCR1DJNZR7,ANTI_LOOPMOVXA,,@R0;;读入入1字节节校验码码XRLA,B;;用用校验码码异或校校验SNJNZANTI_CHK_ERR_EXIT;;校校验出错错MOVB,#00H;;设置置OK标标志AJMPANTI_BACKANTI_TE_ERR:;;错误误处理MOVB,#01HAJMPANTI_BACKANTI_BE_ERR:MOVB,#0AHAJMPANTI_BACKANTI_CHK_ERR_EXIT:MOVB,#08HANTI_BACK::RETSelectTag选择择卡片操操作SelectTag操作将选中AntiCollision操作所所读取的的SN对对应的卡,使该该卡进入入激活状状态,只只有该卡卡才能进进行后续续的认证证及访问问操作。。MCM发发送Select命令(93H+70H+SN及及校验码码)卡接收该该命令后后将MCM发送的SN与自己的的序列号号比较,,若一致致则该卡卡被激活活(ACTIVE),其他他卡则仍仍留在READY状态。被被选择((激活))的卡将将回送其其容量((SIZE)字节作为为应答。。SELECT::MOVA,#0CHMOVR0,,#01HMOVX@R0,AMOVA,#0F0H;;设置ENABLEMOVR0,,#02HMOVX@R0,AMOVA,#38H;;设置BCNTS=7BytesMOVR0,,#03HMOVX@R0,AMOVA,#08H;;设置BCNTR=1ByteMOVR0,,#04HMOVX@R0,AMOVA,#93H;;发送命命令码MOVR0,,#00HMOVX@R0,AMOVA,#70H ;发发送NVBMOVR0,,#00HMOVX@R0,AMOVR7,,#04HMOVB,#00HMOVR0,,#00HMOVR1,#40H;SN暂存存区首地址址SELECT_WRT_LOOP:MOVA,@R1 ;取取出ANTICOLLISION指令令读取的SN字节MOVX@R0,,A;;发送SN字节给卡卡XRLB,A;;SN字节相异异或生成校校验码INCR1DJNZR7,SELECT_WRT_LOOPMOVA,BMOVX@R0,,A;;发送送校验码MOVA,#0AH;;SETTOCMOVR0,#06HMOVX@R0,,ASEL_RD_STACON_AGAIN:;;READSTACONMOVR0,#01HMOVXA,@R0JNBACC.7,SEL_RD_STACON_AGAIN ;判断断DV=1?MOVR6,A;;暂存STACONMOVA,#00H;;清零零TOCMOVR0,#06HMOVX@R0,,AMOVA,R6;;判断是是否出错JBACC.6,,SEL_TE_ERRJBACC.5,,SEL_PE_ERRJBACC.3,,SEL_BE_ERRJBACC.4,,SEL_CE_ERRMOVR0,#00H;;读读取SIZE字节MOVXA,@R0MOV22H,A;;SIZE字节存存入22HMOVB,#00H;;设置置OK标标志SJMPSEL_EXITSEL_TE_ERR:;;错错误处理MOVB,#01HLJMPSEL_EXITSEL_PE_ERR:MOVB,#05HLJMPSEL_EXITSEL_CE_ERR:MOVB,#02HLJMPSEL_EXITSEL_BE_ERR:MOVR7,#0AHLCALLD500USMOVB,#0BHSEL_EXIT::RETAuthentication认证证操作MCM中设设有专用的的密码存储储器(KEY-RAM),用用于存储3个密码集集KEYSET0,,KEYSET1,,KEYSET2,,每一个KEYSET又包含含了各个扇扇区的KEYA及及KEYB。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)和和写“地址址”(扇区区号0~15)到DATA寄寄存器,启启动Authetication操作作。READ/WRITE操作READ/WRITE均需整整块操作。。READ::发送命令码码30H+块地址((0~63)接收指定块块的数据((16B))通常用2次次读并比较较是否一致致来校验是是否正确读读WRITE:发送命令码码A0H+块地址(0~63)接收ACK/NAK应答来校校验是否正正确接收命命令发送块数据据(16B)接收ACK/NAK应答来校校验是否正正确写入EEPROMValueOperate值操作作MIFARE卡专门为公公交/地铁铁等行业的的定额收费费系统设有有值操作命命令,包括括INCREAMENT/DECREAMENT/TRANSFER/RESTORE对某块进行行值操作的的前提是该该块已被初初始化为““值块”((ValueBlock)并且AccessBits允许值值操作。值块的初始始化方法:对某某块按固定定的格式进进行写操作作格式:address———块地址址(1B))value———值((4B,有有符号)例如,对块块地址为01H的块块进行值块块初始化,,初始化值值VALUE=00030000H,,则数据格格式为FE01FE0100030000FFFCFFFF00030000高低低Increment/Decrement/TransferIncrement:addsthespecifiedvaluetothememoryvalueDecrement:subtractsthespecifiedvaluefromthememotyvalueTransfer:EachIncrementorDecrementinstructionmanipulatingastandardvalueblockhastobefollowedbyaTransferintructionwhichactuallystoresthecalculatedresultinthecardmemory.Untilthen,theresultiskeptinaninternalvaluebufferresgister.DECREMENT:入口:块地地址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,AMOVA,#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;;出出错判断JBACC.6,DEC_TE_ERRJBACC.3,DEC_BE_ERRAJMPDEC_CONTIDEC_TE_ERR:;;NOTAGERRMOVB,#01HAJMPDEC_EXITDEC_BE_ERR:MOVB,#02HAJMPDEC_EXITDEC_CONTI:MOVR0,#00H;;读入ACK/NAK,MOVXA,@R0ANLA,#0BH;;仅检查查0,1,,3位CJNEA,#00H,D_N1MOVB,#07H;NOTAUTHERR(应答为为00000000)SJMPDEC_NEXTD_N1:CJNEA,#0AH,D_N2;;收到到ACK应应答(00000101),,表示可以以DECSJMPDEC_NEXTD_N2:MOVB,#03H;其他错误误应答(00000011)),CODEERAJMPWRITE_EXITWRITE_NEXT:;;开始始写数据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_VALUEMOVA,#0AH;;SETTOC=1msMOVR0,#06HMOVX@R0,ADEC_end:;;DV=1??MOVR0,#01HMOVXA,@R0JNBACC.7,DEC_endMOVA,#00H;;清零TOCMOVR0,#06HMOVX@R0,AJudge_answer:MOVR0,#01H;;出错判判断MOVXA,@R0JNBACC.6,DEC_error_TEMOVB,#00HDEC_ANSWER:;;读入入ACK/NAKMOVR0,#00HMOVXA,@R0ANLA,#0FHCJNEA,#04H,D_ERR1;;(00000100为VALUEOVERFLOW)MOVB,#0FEHSJMPDEC_EXITD_ERR1:MOVB,#0FFH;;其他错误误DEC_EXIT:RETTRANSFER入口:块块地址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,AMOVA,#10H;;SETTOC=1.5msMOVR0,#06HMOVX@R0,AT_end: ;DV=1?MOVR0,#01HMOVXA,@R0JNBACC.7,T_endMOVA,#00H;;清零TOCMOVR0,#06HMOVX@R0,AJudge_answer:;;出错判断MOVR0,#01HMOVXA,@R0JBACC.3,T_error_BEJBACC.6,T_error_PEMOVB,#00HAJMPNEXT_TRANST_error_BE: ;出错错处理MOVB,#03HSJMPNEXT_TRANST_error_PE:MOVB,#05HSJMPNEXT_TRANSNEXT_TRANS:MOVA,#95D;;SETTOC=9msMOVR0,#06HMOVX@R0,AT_Toc_end:;;DV=1?(EEPROM写写入结束否??)MOVR0,#01HMOVXA,@R0JNBACC.7,T_Toc_endMOVR6,AMOVA,#00H;;CLEARTOCMOVR0,#06HMOVX@R0,AMOVA,R6;;出错判断JBACC.6,T_TAG_ERRJBACC.3,T_BIT_ERRMOVB,00HSJMPNEXT_ANSWERT_TAG_ERR:;;出错处处理MOVB,#09HAJMPT_EXITT_BIT_ERR:MOVB,#0BHAJMPT_EXITNEXT_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 ;其他他错误MOVB,#04HT_EXIT:RET实训6非非接触式IC卡的读写控控制实训程序将读读写器MCU片内RAM中的16个个数据写入卡卡的一个数据据块,然后将该数据据块中的数据据读出并存入入读写器MCU的片内RAM中。MCU采用查查询方式与MCM通信。。实训程序说明明:mode选选择密码集集KEYSET0、1、、2及密码A、Bsector_nr认认证扇区号号(0~15)R_H_BUF 读入入数据缓冲区区首地址R_E_BUF 读入入数据暂存区区首地址W_H_BUF 写入入数据区首地地址R_addr 被读取取的块地址((0~63))W_addr 被写入入的块地址((0~63))实训步骤用非接触式IC卡读写软软件MWRF向MCM中中下载密码,,读出并记录录MIFARE1卡的TAGTYPE、SN、、SIZE,,读出并记录录卡中某数据据块(如扇区区1块0)的的数据。用镊子取出非非接触式IC卡开发板上上的MCU芯芯片,将仿真真头插入MCU的IC座座。编译实训程序序,设置断点点。打开片内RAM及寄存器器窗口,在写写数据区(首首地址为10H的16个个单元)设置置要写入卡中中的数据。天线范围内无无卡时运行程程序,记录程程序停在断点点处的相关数数据。说明是是否能正确读读/写卡,如如不能,根据据现象定位故故障点。将卡置入天线线范围内,运运行程序,记记录程序停在在断点处的相相关数据。说说明是否能正正确读/写卡卡,如不能,,根据现象定定位故障点。。实训程序:modeEQU00H;;设置KEYSET=KEYSET0,使用用密码Asector_nrEQU01H;;设置认证证扇区为扇区区1R_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)ORG0000HAJMPMAINORG0050HMAIN:MOVSP,#60H;;重新设设置堆栈CLREA ;关关闭所有中断断CLRP3.4SETBP3.3;;关闭MCM200NOPNOPCLRP3.3;;激活MCM200NOPLCALLD500MSSTART:NOPNOPMOVA,#80H;;SOR软件复位MOVR0,#01HMOVX@R0,ANOPNOPLCALLD500MSCLRP3.3;;再次激活活MCM200CLRP3.3MOVR2,#01H ;选择择REQUESTALL指令LCALLREQUEST;;请求响应REQUESTSETBp3.4;;断点①,查看看TAGTYPE——((20H)((21H)LCALLANTICOLLISION;;防冲突突ANTICOLLISIONSETBP3.4;;断点②,查看看SN——((30H)~(34H))LCALLSELECT ;选选择卡片SELECTSETBP3.4;;断点③,查看看SIZE———(22H)LCALLLOAD_KEY;;下载密码码SETBP3.4LCALLAUTH;;密码认认证AUTHENTICATIONSETBP3.4LCALLWRITE ;写数数据WRITESETBP3.4LCALLREAD;;读数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论