(课件)ic卡公交收费机设计(三)mifare1卡读写软件设计

上传人:bin****86 文档编号:55692127 上传时间:2018-10-04 格式:PPT 页数:37 大小:241.60KB
返回 下载 相关 举报
(课件)ic卡公交收费机设计(三)mifare1卡读写软件设计_第1页
第1页 / 共37页
(课件)ic卡公交收费机设计(三)mifare1卡读写软件设计_第2页
第2页 / 共37页
(课件)ic卡公交收费机设计(三)mifare1卡读写软件设计_第3页
第3页 / 共37页
(课件)ic卡公交收费机设计(三)mifare1卡读写软件设计_第4页
第4页 / 共37页
(课件)ic卡公交收费机设计(三)mifare1卡读写软件设计_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《(课件)ic卡公交收费机设计(三)mifare1卡读写软件设计》由会员分享,可在线阅读,更多相关《(课件)ic卡公交收费机设计(三)mifare1卡读写软件设计(37页珍藏版)》请在金锄头文库上搜索。

1、IC卡公交收费机设计(三) MIFARE 1卡读写软件设计,电子与信息工程学院,课 程 目 标,非接触式IC卡读写控制 MIFARE 1卡读写控制功能的实现,项目开发IC卡公交收费系统,系统需求分析: 具备小额电子钱包功能,定额方式收费 操作方便快捷 工作距离50cm 具备显示余额、异常报警(非法卡或余额不足) 可将当班收款额上传总站数据库 公交公司可调整定额额度 卡遗失可挂失 抗干扰能力强,项目设计之三软件实现,读写器与M1卡交换数据的过程: 1)由读写器MCU(微控制器)发送指令给MCM, 2)MCM执行指令并将其转换为射频信号发送给卡; 3)卡接收到来自MCM的指令后,按指令完成其内部的

2、各种处理,并回送应答信号/数据给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):激活所选择的卡 认证 (AUT

3、HENTICATION):安全性 读写操作(读、写、加值、减值):交换数据 (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)初始化,设置各寄存器,特别是

4、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) 检查出错标志,若有标志被设置,则进行相应的出错处理,例如设置出错标志等,并返回主程序;若没有标志被设

5、置,表示接收正确,将进行下一步操作(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

6、 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:NOPNOPMOV A,#0CH ;设置STACONMOV R0,#01HMOVX R0,AMOV A,#0EH ;设置BAUDRATEMOV R0,#05HMOVX R0,AMOV A,#0C0H ;

7、设置ENABLEMOV R0,#02HMOVX R0,AMOV A,#0C6H ;设置MODEMOV R0,#07HMOVX R0,AMOV A,#0CH ;再次设置STACONMOV R0,#01HMOVX R0,AMOV A,#02H ;设置RCODEMOV R0,#0EHMOVX R0,A,MOV A,#07H ;设置BCNTS=7bitsMOV R0,#03HMOVX R0,AMOV A,#10H ;设置BCNTR=2BytesMOV R0,#04HMOVX R0,A JUDGE_COMMAND: ;选择REQ STD还是REQ ALL MOV A,R2XRL A,#01HJNZ RQ

8、T_STD RQT_ALL:MOV A,#52HSJMP RQT_NEXT RQT_STD:MOV A,#26H RQT_NEXT:MOV R0,#00H ;发送命令码MOVX R0,ANOP,MOV A,#0AH ;设置TOC=1msMOV R0,#06HMOVX R0,A RQT_STACON:MOV R0,#01H ;读 STACONMOVX A,R0JNB ACC.7,RQT_STACON ;判断 DV=1?MOV R7,A ;暂存STACON MOV A,#00H ;清零TOCMOV R0,#06HMOVX R0,AMOV A,R7 ;判断是否出错JB ACC.6,RQT_TE_ER

9、RJB ACC.3,RQT_BE_ERRMOV R0,#00H ;读TAGTYPEMOVX A,R0MOV 20H,AMOV R0,#00HMOVX A,R0MOV 21H,AMOV B,#00H ;设置 OK 标志SJMP RQT_EXIT,RQT_BE_ERR: ;错误处理MOV B,#01HSJMP RQT_EXIT RQT_TE_ERR:MOV B,#02HSJMP RQT_EXIT RQT_EXIT:RET,Authentication 认证操作,MCM中设有专用的密码存储器(KEY-RAM),用于存储3个密码集KEYSET0,KEYSET1,KEYSET2,每一个KEYSET又包含

10、了各个扇区的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

11、操作。,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 Blo

12、ck)并且Access Bits允许值操作。,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

13、 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/NAKNOPNOPMOV A,#10H ;SEND BCNTS(16bits:命令码+块地址)MOV R0,#03HMOVX R0,AMOV A,#04H ;SEND BCNTR(4bits:ACK/NAK)MOV R0,#04HMOVX R

14、0,AMOV A,#0C0H ;SEND CODEMOV R0,#00HMOVX R0,AMOV A,#addr ;SEND BLOCK ADDRMOV R0,#00HMOVX R0,A,MOV A,#0AH ;SET TOC=1msMOV R0,#06HMOVX R0,A D_wait_value: ;读STACON,判断DV=1?MOV R0,#01HMOVX A,R0JNB ACC.7,D_wait_valueMOV R6,AMOV A,#00H ;清零TOCMOV R0,#06HMOVX R0,AMOV A,R6 ;出错判断JB ACC.6,DEC_TE_ERRJB ACC.3,DEC

15、_BE_ERRAJMP DEC_CONTI DEC_TE_ERR: ;NOTAGERRMOV B,#01HAJMP DEC_EXIT DEC_BE_ERR:MOV B,#02HAJMP DEC_EXIT,DEC_CONTI:MOV R0,#00H ;读入ACK/NAK, MOVX A,R0ANL 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),表示可以DECSJMP DEC_NEXT D_N2:M

16、OV B,#03H ;其他错误应答(00000011),CODEERAJMP WRITE_EXIT,WRITE_NEXT: ;开始写数据MOV A,#32 ;SEND BCNTS=32bits(4B VALUE)MOV R0,#03HMOVX R0,AMOV A,#04H ;SEND BCNTR=4 bits(ACK/NAK)MOV R0,#04HMOVX R0,AMOV R5,#4 ;送4B 值MOV R0,#00HMOV R1,#D_BUF DEC_VALUE:MOV A,R1MOVX R0,AINC R1DJNZ R5,DEC_VALUE,MOV A,#0AH ;SET TOC=1msM

17、OV R0,#06HMOVX R0,A DEC_end: ;DV=1?MOV R0,#01HMOVX A,R0JNB ACC.7,DEC_endMOV A,#00H ;清零TOCMOV R0,#06HMOVX R0,A Judge_answer:MOV R0,#01H ;出错判断 MOVX A,R0JNB ACC.6,DEC_error_TE MOV B,#00H DEC_ANSWER: ;读入ACK/NAKMOV R0,#00HMOVX A,R0ANL A,#0FHCJNE A,#04H,D_ERR1 ;(00000100为VALUE OVERFLOW)MOV B,#0FEHSJMP DEC_EXIT D_ERR1:MOV B,#0FFH ;其他错误 DEC_EXIT:RET,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号