基于单片机的RFID读写器设计(6)
图4-2
为了处理Mifare卡在读卡器产生的电磁场中激励后,未完成处理义从激励
场中拿开的情况,软件中启用了RC522芯片内部的定时器。若超过设定的时间未得到卡片应答,则中止与卡的通信,返回“卡无反应”的错误信息。
从图4-2中可以看出Tranceive命令的核心处理方法:根据相关通信状态指示寄存器的内容返回各种错误状态字,若有位冲突错误,则进一步返回位冲突位置。Tranceive命令不处理面向比特的帧,这种帧只可能在MIFARE卡防冲突循环中出现。为了保持Tranceive命令对各种MI-FARE卡命令的普适性,该命令只完成帧的发送和接收,不对帧信息作处理,所有位冲突处理留在函数外进行。
需要注意的是,Tranceive命令不能自动中止,在任何情况下从该命令返回时必须先执行IDLE指令使RC522转入空闲态。
5.1.2 MFAuthent命令
RC522简化了与MIFARE卡的加密认证操作,用一个MFAuthent命令代替了原来RC500需要的Authentl和Authent2两条命令。MFAuthent命令执行的最终目的在于开启RC522的加密认证单元。该指令执行成功后,RC522芯片与MIFARE卡间的通信信息将首先加密,然后再通过射频接口发送。从本质上讲,MFAuthent是一条变相的Tranceive命令,其算法流程图与图4一致。但RC522芯片内部已经对通信过程中的各种通信状态作了相应处理,且该命令执行完后自动中止,因此用户只须检测定时器状态和错误寄存器状态来判断执行情况。实际上,MFAuthent只可能有一种错误状态(RC522与MI-FARE卡通信帧格式错误),此时该命令不能打开加密认证单元,用户必须重新执行认证操作。
MFAuthent执行过程中RC522将依次从FIFO中读取1字节认证模式、l字节要认证的E2PROM块号、6字节密钥和4字节射频卡UID号等信息,在命令执行前必须保证这12字节数据完整地保存在FIFO中。认证模式有A密钥认证和B密钥认证两种,一般选用A密钥认证。
一次MFAutllent认证只能保证对MIFARE卡的一个扇区中的4个数据块解密,若要操作其他扇区的数据用户还须另外启动对该扇区的认证操作。
5.2 Mifare卡操作程序设计
对Mifare卡的操作分为请求、反碰撞、选择、认证、读、写、增值、减值、存取和传输,对Mifare卡的操作流程图如图所示,具体描述如下:
1请求操作
当有Mifare卡进入读写器天线作用范围内,读写器发出Request命令。卡上的ATR将启动,将卡上的第0扇区的第0块上得卡片类型号(TagType)共2个字节数据发给读写器,建立卡与读写器的第一步通信联络。如果不进行请求操作,接下去的操作无法进行。
请求函数如下:
char PcdRequest(unsigned char data req_code,unsigned char *pTagType) req_mode是输入参数,Request All时输入命令代码52H,Request Idle时输入参数26H.
pTagType是输出,返回2个字节的卡类型号。
操作成功返回值为0 。 2 反碰撞操作
在请求操作之后,要进行的是反碰撞操作,得到一张卡的序列号。当多张Mifare卡同时处于读写器天线作用范围内,读写器与一张Mifare卡进行通信,取得徐序列号。由于Mifare卡的序列号全球唯一,不可能重复,保证下一步只对一张Mifare卡操作。
反碰撞函数如下:
char PcdAnticoll(unsigned char *pSnr)
pSnr是输入,存放序列号(4byte)的内存单元首地址。 操作成功时函数返回值为0. 3卡选择操作
在Mifare卡成功完成请求,反碰撞操作后,进行的操作是卡选择。对指定序列号的卡进行选择操作,选中的卡可以进一步同RC522进行通信,其余的卡恢复到初始状态。
卡选择操作函数:
char PcdSelect(unsigned char *pSnr) pSnr是输入,Mifare卡的序列号。 操作成功时函数返回值为0. 4 认证操作
为了访问Mifare卡的EEPROM存储器中存放的数据,必须进行认证操作。认证的过程从RC522内部开始。用户首先要将正确的密钥放入RC522的密钥缓冲区中,然后比较RC522的密钥缓冲区中存放的密钥与Mifare卡尾块中存放的密钥是否相同,相同可以对Mifare卡进行下一步操作,不相同不允许对Mifare进行下一步操作。
认证的程序流程一般分为三步:(1)为了进行认证操作,密钥必须转化为标准的格式,然后存入RC522的内部密钥缓冲区中,将6字节的未编码的密钥转化成12字节的编码密钥,有米要编码函数char ChangeCodeKey( )实现;(2)讲已转换格式后的密钥送到RC522的FIFO中,有函数char PcdAuthKey( )实现;(3)用存放RC522的FIFO 中得密钥和卡上的密钥进行验证,由函数char PcdAuthState( )完成。
相关函数如下:
…… 此处隐藏:406字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




