代码和在我之前的文章:MFRC522的使用-CSDN博客
一、读写MFRC522一字节:
二、指定写寄存器某一位和清楚相应位:
三、开启天线的代码解析:
以下是MFRC522天线控制寄存器的相关位
以下是MFRC522天线的原理图结合上图可知,我们要想打开天线就要开启TX1和TX2输出高电平使能,计只要设置0和1位为1即可,即置入0X03;
四、MFRC522复位代码解析:
关于MFRC522模块功能设置初始化,自己看代码,注释已经很详细,可以配合MFRC522手册看
五、使用MFRC522的CRC计算代码解析
以上是涉及的寄存器:
六、MFRC522与卡之间通信
七、MFRC522 防止卡片冲突
0x20
在反碰撞过程中的作用
0x20
是一个固定的字节,通常作为反碰撞指令的一部分发送给IC卡。在MFRC522中,反碰撞的过程遵循的是ISO/IEC 14443标准,而0x20
实际上是指示IC卡进入反碰撞模式的一部分。它通常作为开始反碰撞过程的标识符,其具体含义取决于ISO 14443的协议。
相应寄存器:
注:代码中传入卡的值中第二位的设置由来,是根据ISO14443-3协议写的确认防冲撞类型,已经规定好了
serNum[0] = PICC_ANTICOLL1;
serNum[1] = 0x20;
以下是一些常见的,想知道自己去看看ISO协议
1. 0x93
(Mifare Classic 防冲突命令)
- 作用:用于 Mifare Classic 卡的防冲突。
- 解释:在防冲突过程中,MFRC522 模块会根据该指令值(
0x93
)与卡片进行通信,按照 ISO 14443-3 标准的防冲突算法(比如 Select)来获取卡片的 UID,并避免多个卡片同时响应。
2. 0x95
(防冲突命令)
- 作用:这是 Mifare Classic 卡片反碰撞过程中的另一个常用指令值。
- 解释:该指令常用于 MFRC522 模块在执行 反碰撞命令 时,让模块按照一定的反碰撞策略与卡片进行 UID 获取。
3. 0x20
(Mifare Ultralight 卡片防冲突)
- 作用:用于 Mifare Ultralight 卡片的反碰撞命令。
- 解释:在该模式下,MFRC522 模块采用不同的反碰撞协议与 Mifare Ultralight 卡片进行通信,以便正确获取 UID。
0x20
是该过程中的常见指令值。
4. 0x70
(ISO14443-A 型防冲突命令)
- 作用:用于 Mifare 系列卡片(如 Mifare Classic)或 ISO 14443-A 标准卡片的防冲突。
- 解释:
0x70
是防止多个卡片同时响应的常见指令,它帮助 MFRC522 识别和选择出一张卡片,进行后续的操作。
5. 0x26
(Mifare Ultralight 和 Mifare Plus 卡片)
- 作用:用于 Mifare Ultralight 和 Mifare Plus 卡片的防冲突。
- 解释:
0x26
是 Mifare Ultralight 卡片反碰撞过程中的参数之一,用于模块识别这些卡片。
6. 0x11
(自定义防冲突命令,通常不常见)
- 作用:这是一个较少使用的指令,通常用于特定的 非标准 RFID 卡片,或者是定制的卡片协议。
八、获取卡片类型
九、选择卡片
十、认证卡片
十一、写/读块地址
十二、录入卡片和MFRC锁认证