77范文网 - 专业文章范例文档资料分享平台

RDID射频识别读写器 - 图文(4)

来源:网络收集 时间:2020-05-18 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

广西科技大学(筹) 基于单片机的RFID读写器的软件设计

表5-1 MFRC522命令表

命令 Idle CalcCRC Transmit NoCmd Change Receive Transceive 1000 1100 命令代码 0000 0011 0100 0111 动作 无动作;取消当前命令的执行。 激活CRC协处理器或执行自测试 发送FIFO缓冲区的命令 无命令改变,该命令用来修改命令寄存器的不同位,但又不触及其他命令,如掉电。 激活接收器电路 如果寄存器ControlRed的Initiator位被设为1:将FIFO缓冲区的数据发送到天线并在发送完成后自动激活接收器。如果寄存器ControlReg的Intiator位被设为0:接收天线的数据并自动激活发送器。 MFAuthent Soft Reset

表5-1对RC522的命令集做了概述,下面着重介绍Tranceive命令和MFAuthent命令。

1110 1111 执行读写器的MIFARE标准认证。 复位MFRC522. 5.1.1 Tranceive命令

该循环命令重复发送FIFO的数据,并不断接收RF场的数据。第一个动作是发送,发送结束后命令变为接收数据流。

发送 接收 发送 接收??

每个发送过程中都在BitFramingReg寄存器的StartSend位置位时启动。Tranceive命令通过向命令寄存器写入任何一个命令(如idle)来软件清除。

5.1.2 MFAuthent命令

该命令用来处理Mifare认证以使能到任何Mifare普通卡的安全通信。在命令激活前以下数据必须写入FIFO: ? 认证命令代码(0x60,0x61)

12

广西科技大学(筹) 基于单片机的RFID读写器的软件设计

? 块地址 ? 扇区密钥字节0 ? 扇区密钥字节1 ? 扇区密钥字节2 ? 扇区密钥字节3 ? 扇区密钥字节4 ? 扇区密钥字节5 ? 卡序列号字节0 ? 卡序列号字节1 ? 卡序列号字节2 ? 卡序列号字节3

总共12字节,应当写入FIFO中。

注:当MFAuthent命令有效时,任何FIFO访问都被禁止。只要访问FIFO的操作发生,ErrorReg寄存器的WrErr位就置位。

该命令在Mifare卡被认证且Staus2Reg寄存器的MFCrypto1On位置位时自动终止。 当卡未响应时该命令不会自动终止,因此,定时器必须初始化成自动模式。这时,除IdleIRQ外,TimerIRQ也可用作终止的标准。在认证的过程中,RxIRQ和TxIRQ被禁止。认证命令结束后(处理完协议后或将IDLE写入命令后)只有Crypto1On位有效。 如果认证过程中有错误出现,则ErrorReg寄存器的ProtocolErr位置位。Status2Reg寄存器的Crypto1On位清零。

5.2 Mifare卡操作程序设计

对Mifare卡常用的操作指令分为请求应答、防冲撞、选卡、认证、读/写操作、增/减值、存取和传输,下面用流程图描述Mifare卡的整个操作过程,如图5-1所示:

(1) 请求操作

当有Mifare卡进入读写器天线有效扫描范围内时,读写器发出Request命令。卡上的ATR将启动,Request命令将与Mifare卡进行通信,读取Mifare卡上的第0扇区的第0块上的卡片类型号TagType(2个字节),由MFRC522传输给单片机进行处理,建立卡片与读写器的第一步通信。如果不进行以上操作,读写器对Mifare卡的其他操作将无法进行。

查询函数如下:

char PcdRequest(unsigned char data req_code,unsigned char *pTagType)

13

广西科技大学(筹) 基于单片机的RFID读写器的软件设计

参数说明:

req_code[IN]:寻卡方式

0x52=寻感应区内所有符合14443A标准的卡 0x26=寻未进入休眠状态的卡 pTagType[OUT]:卡片类型代码

开始 请求应答 防冲撞 选卡片 否 是否选中 是 否 三次互相认证 是否合法 是 读 写 加 减 恢复 传送 停止

图5-1 Mifare卡的操作流程图

14

广西科技大学(筹) 基于单片机的RFID读写器的软件设计

(2) 防冲撞操作

在查询操作之后,要进行的是防冲撞操作,只取其中一张Mifare卡的序列号。如果有多张Mifare卡同时处于读写器天线有效作用范围内,读写器首先与每一张Mifare卡进行通信,分别取得其序列号,通过防冲撞功能,读写器将会根据Mifare卡的序列号来选择其中一张Mifare卡,此卡将与读写器进行数据交换,没有选中的卡片继续处于等待状态。

防冲撞函数如下:

char PcdAnticoll(unsigned char *pSnr) 参数说明:

pSnr[OUT]:卡片序列号,4字节

(3) 选卡操作

当Mifare卡成功完成请求应答,防冲撞操作后,下一步将进行选卡选择。对指定序列号的卡进行选择操作,选中的卡可以进一步同MFRC522进行通信,其余的卡恢复到初始状态。选卡操作流程图如图5-2所示:

选卡操作函数:

char PcdSelect(unsigned char *pSnr) 参数说明:

pSnr[IN]:Mifare卡的序列号,4字节。

选卡操作 设置延时 Y 校验数据成功? N 选卡失败返回参数 N 序列号验证对比成功? Y 选卡成功返回参数

图5-2 选卡操作流程图

15

广西科技大学(筹) 基于单片机的RFID读写器的软件设计

(4) 认证操作

如果要对卡片的存储器中存放的信息进行访问,需要进行卡片认证操作。通过将存储在MFRC522的RAM中的密码集中得一组密码与Mifare卡上的密码进行匹配认证,如果这组密码匹配,则可以对Mifare卡进行下一步操作,不匹配则不能对Mifare卡进行下一步操作。

认证操作函数如下:

char PcdAuthState(unsigned char data auth_mode,unsigned char data addr,unsigned char *pKey,unsigned char *pSnr)

参数说明:

auth_mode[IN]: 密码验证模式 0x60 = 验证A密钥 0x61 = 验证B密钥 addr[IN]:块地址 pKey[IN]:密码

pSnr[IN]:卡片序列号,4字节。

(5) 读操作

Mifare卡通过认证操作后,读操作允许单片机通过MFRC522来读取卡片上的数据,一次只能读取16个字节。从卡片上读取的数据需要由单片机进行验证,以确保数据信息的有效性。

读操作函数:

char PcdRead(unsigned char data addr,unsigned char *pData) 该函数从指定的块中读取16字节的数据。 参数说明: addr[IN]:块地址

pData[OUT]:读出的数据,16字节。

(6)写操作

在认证指令通过后,Write写指令允许用户将数据写入到Mifare卡指定的扇区或数据块中。每次写入完整的16B的数据块。

写操作函数:

char PcdWrite(unsigned char data addr,unsigned char *pData) 参数说明: addr[IN]:块地址

pData[IN]:写入的数据,16字节

16

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库RDID射频识别读写器 - 图文(4)在线全文阅读。

RDID射频识别读写器 - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1053098.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: