ImageVerifierCode 换一换
格式:PPT , 页数:21 ,大小:172KB ,
资源ID:8269548      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8269548.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(应电智能卡技术7读卡器编程.ppt)为本站会员(hwpkd79526)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

应电智能卡技术7读卡器编程.ppt

1、第三章 3.3 任务三 M1卡数据读写程序的编写,编程练习一,记录自己的卡号 用Keil 51创建工程文件 test.prj包括: test.c、REG516.H、M500A.h、rc500.lib 单片机芯片型号: STC89C516RD+ 编译、链接 将生成的.HEX 写入读卡器 用M1卡测试,读写器与M1卡交换数据的过程: 1)由读写器MCU(微控制器)发送指令给MCM(读写器模块) 2)MCM执行指令并将其转换为射频信号发送给卡; 3)卡接收到来自MCM的指令后,按指令完成其内部的各种处理,并回送应答信号/数据给MCM; 4)MCM接收卡回送的射频信号并将其转换为数字信号输出给MCU,

2、读写器MCU读取MCM接收到的应答/数据,即可完成与M1卡的数据交换。,M C M 基 本 通 信 指 令 集 p97,MCM 内 核 特 殊 寄 存 器,MIFARE卡的读写操作步骤,激活MCM MCM软复位 向MCM下载密码(LOAD KEY),校验传输密码正确后可向MCM的KEY-RAM写入用户自己设定的密码,以上操作与卡无关。M500PcdConfig() 请求应答(ANSWER TO REQUEST):寻卡 防冲突(ANTICOLLISION):选择唯一一张卡 选择标记(SELECT):激活所选择的卡 认证 (AUTHENTICATION):安全性 读写操作(读、写、加值、减值):交

3、换数据 (READ/WRITE/INCREAMENT/DECREMENT) 停止(HALT):置卡为停止模式,防止重复操作。,LOAD KEY,REQUEST,ANTICOLLISION,READ/WRITE/INC/DEC,HALT,MIFARE 卡操作步骤,AUTHENTICATION,SELECT,卡应答:TAGTYPE(2B),卡应答:SN(4B)+校验码(1B),卡应答:SIZE(1B),卡应答:AE位,while(1) if(M500PiccRequest(PICC_REQALL,card_type)!=0) continue; / 寻卡if(M500PiccAnticoll(0,

4、card_sn)!=0) continue; / 防碰撞if(M500PiccSelect(card_sn,card_type)!=0) continue;/ 选卡if(M500PiccAuth(PICC_AUTHENT1A, card_sn, 0,13)!=0) continue; /密钥认证if(M500PiccRead(13,data_buf)!=0) continue;if(M500PiccWrite(13,temp)!=0) continue;if(M500PiccRead(13,data_buf)!=0) continue;Beep(200);,void sio_init() TM

5、OD=0x20; /设定定时器1的工作方式为方式2TH1=0xfd; /设置串行口波特率为9600TL1=0xfd;SCON=0x50; /设置串行口的工作方式为方式1,允许接收PCON=0x00;TR1=1; ET1=0;TI=0; RI=0; ES=0; void tran_chr(BYTE chr) TI=0; SBUF=chr; while(!TI); void sio_str(char * str,BYTE len) BYTE i;for(i=0;ilen;i+) tran_chr(stri); ,库函数 RC300.LIB,为保护开发成果,仅向客户提供目标代码 而不提供源代码;或只

6、提供部分源程序,而将关键部分以库函数的方式提供。 C51标准库函数 .lib 用户库函数 头文件中对库函数内函数的名称、功能、调用值、返回值等进行说明。,接口函数介绍,char M500PcdConfig(void)/* 函 数 名:M500PcdConfig功 能:配置RC500说 明:入口参数:无返 回 值:成功时为0 */,char M500PiccRead( unsigned char addr, unsigned char *_data) 功 能:读值说 明:从指定的的块号读出数据。入口参数:addr : 块号063*_data : 读出的数据返 回 值:成功时为0,char M50

7、0PiccRequest(unsigned char req_code, unsigned char *atq);功 能:寻卡说 明:Request 指令将通知MCM在天线有效的工作范围(距离)内寻找MIFARE 1卡片。如果有MIFARE 1卡片存在,这一指令将分别与MIFARE 1进行通信,读取MIFARE 1卡片上的卡片 类型号TAGTYPE(2个字节),由MCM传递给 MCU,进行识别处理。 程序员可以根据TAGTYPE来区别卡片的不同类型。 入口参数:req_code : 寻卡方式 PICC_REQALL,PICC_REQSTD返 回 值:成功时为0,char M500PiccAnt

8、icoll (unsigned char bcnt, unsigned char *snr)功 能:防碰撞说 明:如果有多于一张的Mifare 1卡片在MCM之天线的有效的工作范围(距离)内 ,必须使用AntiCollision指令,使MCM能够在这一叠 Mifare 1卡片中选择个别的一张卡片。入口参数:bcnt : 默认为0,已知位*snr : 卡序列号返 回 值:成功时为0,char M500PiccSelect(unsigned char *snr, unsigned char *sak) 功 能:选卡说 明:在一个成功的AntiCollision指令之后,或在任何时候当程序员想实际地

9、与已知序列号卡片进行通信时,必须使用Select指令,以建立与所选卡的通信。为了允许在Select指令以后对卡片能进行Read/Write等指令的操作,Select指令是很重要的,必须首先被使用。被选择的卡片将给出其自己的存储器容量-已编码的一个BYTE(字节) 如果有多于一张的Mifare 1卡片在MCM之天线的有效的工作范围(距离)内 ,必须使用AntiCollision指令,使MCM能够在这一叠 Mifare 1卡片 中选择个别的一张卡片。入口参数:snr : 卡序列号,4Bsak : 返回参数的存储容量,1B返 回 值:成功时为0,char M500PiccAuth( unsigned

10、 char keyAB, unsigned char *snr, unsigned char key_addr, unsigned char block)功 能:密钥认证说 明:希望能读取Mifare 1 卡片上的数据之前,程序员必须证明他的读/写请求操作是被允许的。入口参数:keyAB : KEYA or KEYBsnr : 卡序列号key_addr:密码数组序号block:绝对块号返 回 值:成功时为0,char M500PiccWrite( unsigned char addr, unsigned char *_data) 功 能:写值说 明:讲数据写入指定的块号。入口参数:addr :

11、 块号063*_data : 要写入的数据返 回 值:成功时为0,char M500PiccHalt(void)功 能:终止说 明:终止操作。入口参数:返 回 值:成功时为0,char M500PiccValue(unsigned char dd_mode, unsigned char addr, unsigned char *value,unsigned char trans_addr);功 能:块值操作说 明:从指定的块进行增值或减值操作(电子钱包)。入口参数:dd_mode : 操作方式 PICC_DECREMENT(减值) PICC_INCREMENT(增值)addr : 块号*value : 操作的块值trans_addr: 卡块地址返 回 值:成功时为0,如何把卡序列号、锁死扇区号等信息显示出来?,实训 非接触式IC卡的读写控制,编写程序:实现M1卡基本功能的测试,以判断某一M1卡是否有扇区被锁死。 一般测试方法:分别对M1卡015扇区的块12写入数据16*0xFF,然后读取写入的数据。如读写都顺利通过,则认定该M1卡基本正常;否则,认定该卡有扇区被锁死。 建议采用安全的测试方法:分别对M1卡015扇区的块1或2进行读操作。如读取成功,则认定该M1卡基本正常;否则,认定该卡有扇区被锁死。 两人一组,下课前交作业,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报