解析MFRC522封装代码

代码和在我之前的文章: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锁认证

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值