MFRC522

MFRC522 是一款应用广泛的非接触读卡器芯片,集成了在 13.56MHz 下的多种非接触通信方式和协议,具有很高的技术集成度。

规格说明

工作电压:3.3V

工作电流:10-26mA

控制方式:SPI、I2C、UART

引脚说明

yjsm

管脚号 管脚名 类型 管脚描述
1 A1 G 地地址线
2 PVDD P 管脚电源
3 DVDD P 数字电源
4 DVSS G 数字地
5 PVSS G 管脚电源地
6 NRSTPD I 复位脚。为低电平时,内部功能模块包括振荡器均停止工作,输入管脚与外部断开。
该管脚上的上升沿可用来开启内部复位相位。
7 SIGIN I 通信接口输入:接收数字数据流、串行数据流
8 SIGOUT O 通信接口输出:输出串行数据流
9 SVDD P S²C 管脚电源:向 S²C 管脚供电
10 TVSS G 发送端 TX1 和 TX2 输出级的地
11 TX1 O 载波发送管脚 1
12 TVDD P 发送驱动器电源
13 TX2 O 载波发送管脚 2
14 TVSS G 发送驱动器电源地
15 AVDD P 模拟电源
16 VMID P 内部参考电压
14 RX I RF 信号输入
18 AVSS G 模拟地
19 AUX1 O 用于测试的辅助输出
20 AUX2 O 用于测试的辅助输出
21 OSCIN I 晶振反向放大器;也就是外部时钟输入
该引脚还可以作外部时钟(fosc = 27.12 MHz)的输入
22 OSCOUT O 晶振反向放大器输出
23 IRQ O 中断请求输出:指示一个中断事件
24 ALE I 地址锁存使能:高电平时将 AD0-AD5 所存到内部地址所存
25-31 D1-D7 I/O 8 位双向数据总线 注:不支持 8 位并行接口
注:如果主控制器选择 I2C 作为数字主控制器接口,那么这些管脚可以用来定义 PC 地址
注:对于串行接口,这些管脚可以用作测试信号或 I/O
32 AO I 地址线

读写模式

ISO/IEC 14443A

ISO/IEC 14443A 是一种通信协议,用于支持 A 型非接触式智能卡与读写器之间的交互。

典型应用:广泛应用于 MIFARE 卡(如 MIFARE Classic、MIFARE DESFire)等系统。

通信方式:

  • 调制方式:
    • 读写器发出的信号使用ASK(幅移键控)调制
    • 数据传输采用曼彻斯特编码
  • 数据速率:
    • 支持 106 kbps 的数据传输速率。
  • 防冲突机制:
    • 支持多卡防冲突机制,可在多张卡同时存在的情况下识别和通信。

工作流程:

  1. 读写器初始化:向周围发送询问信号,检测是否有卡片进入其工作范围。
  2. 卡片应答:卡片收到信号后,回应自己的唯一标识符(UID)。
  3. 身份验证:读写器和卡片进行认证,以确认双方合法性。
  4. 数据传输:开始交换数据,如读卡信息、写入数据等。
  5. 终止通信:完成通信后,读写器发送停止信号。

ISO/IEC 14443B

ISO/IEC 14443B 是另一种通信协议,与 A 型不同,B 型主要用于特定的安全场景和一些非接触式卡片类型(如电子护照、健康卡等)。

通信方式:

  • 调制方式:
    • 读写器发出的信号也使用ASK 调制
    • 数据传输采用BPSK(二进制相移键控)编码
  • 数据速率:
    • 与 A 型相同,支持 106 kbps 的数据传输速率。
  • 防冲突机制:
    • 支持独特的防冲突机制,与 A 型不同。

工作流程:

  1. 读写器初始化:向周围发送询问信号,检测是否有卡片进入其工作范围。
  2. 卡片应答:B 型卡片采用不同的应答机制,通常会发送特定的 ATQB 信号。
  3. 数据传输:双方进行数据交换,通常会进行更复杂的加密和验证。
  4. 终止通信:读写器发送停止信号,结束通信。

这是两种非接触式智能卡通信协议,它们定义了如何在读卡器(例如 RC522)和非接触式卡之间进行通信。也就是说只要是这两个通信协议的非接触式卡都可以与 RC522 进行通信。

通信方式

I2C

支持 I2C 总线接口可以使得主机可以用较少的管脚连接到 MFRC522I2C 接口操作遵循 I2C 总线接口规范。该接口只能工作在从机模式。

I2Cdlt

在标准模式、快速模式和高速模式中,MFRC522 可用作从接收器或从发送器 SDA 是一个双向数据线,通过一个上拉电阻连接到正电压。不传输数据时,SDA 和 SCL 均为高电平。标准模式下,I2C 总线的传输速率为 100kBd,快速模式下为 400kBd,高速模式下为 3. 4Mbit/s。
如果选择 I2C 总线接口,管脚 SCL 和 SDA 管脚具有符合 I2C 接口规范的尖峰脉冲抑制功能。

每个字节后面必须跟一个应答位。数据传输时高位在前。一次数据传输发送的字节数不限,但必须符合读/写周期格式。

应答

应答是在一个数据字节结束后强制产生的。应答相应的时钟脉冲由主机产生。在应答时钟脉冲周期内,数据发送器释放 SDA 线(高电平)。在应时钟脉冲期间,接收器拉低 SDA 线使得它在该时钟脉冲的高电平时间内保持低电平。

I2Cyd

地址

I2C总线地址与EA管脚的定义有关。

如果 EA 管脚为低电平,则对于所有 MFRC522 器件,器件总线地址的高4位固定为 0101b。 器件总线地址剩余的3位(ADR_0,ADR_1,ADR_2)可由用户自由配置,这样就可以防止与其它 I2C 器件产生冲突。

如果 EA 管脚设置为高电平,则 ADR_0-ADR_5 完全由外部管脚来确定。ADR_6 总是设置为0。

在这两种模式下,外部地址编码都在复位条件释放后立即锁定。不考虑使用管脚上的进一步变化。通过配置外部连线,I2C总线的地址管脚还可用作测试信号的输出。

I2Cdz

UART

UARTlx

通过对 TestPinEnReg寄存器的 RS23LineEn 位清零,信号 DTRQ 和 MX 可以禁止。

传输速度

默认的传输速率为 9.6kBaud。要改变传输速率,主机控制器必须向 SerialSpeedReg 寄存器写 入一个新的传输速率值。位 BR TO[2:0] 和位 BR_T1[4:0] 定义的因数用来设置 SerialSpeedReg 中的传输速率。

UARTslb

帧格式

长度
起始位 1 位 0
数据位 8 位 数值
结束位 1 位 1

对于数据和地址字节,LSB 位必须最先发送。传输过程中不使用奇偶校验位。

发送和读写数据时,第一个字节的内容为地址,第二个字节开始的才是数据

第一个字节的 MSB 位设置使用的模式。MSB 位设置为 1 时从 MFRC522 读取数据,MSB 位设置 为 0 时将数据写入 MFRC522。第一个字节的位6保留为将来使用。

UARTdz

SPI

MFRC522 支持 SPI 接口与主机的高速通信,接口可处理高达 10Mbit/s 的数据速率。在与主机通信时,MFRC522 作为一个从机,从外设主机上接收数据来设置寄存器发送和接 收与 RF 接口通信有关的数据。

SPItxfs

在SPI通信中 MFRC522 作为从机。SPI 时钟信号 SCK 必须由主机产生。数据通过 MOSI 线从主机传输到从机。通过 MIS0 线数据从MFRC522 发回到主机。
MOSI 和 MISO 传输每个字节时都是高位在前。MOSI 和 MISO 上的数据在时钟的上升沿必须保持不变,在时钟的下降沿改变。

地址

第一个字节的 MSB 位定义了使用模式。MSB 位设置为 1 时,从 MFRC522 读取数据 MSB 位设置为 0 时,将数据写入 MFRC522。第一个字节的位 6-1 定义地址,LSB 位应当设置为 0。

SPIdz

不同接口的接线方式

jxfs

RFID

RFID(Radio Frequency Identification)是一种通过无线电波进行物体识别和数据交换的技术。RFID 系统可以在没有接触的情况下,从一定距离内读取标签中的信息。

组成

一个完整的 RFID 系统通常由三部分组成:RFID 标签(Tag)、RFID 读写器(Reader)、中间件或计算机系统(Middleware/Backend System)。

RFID 标签(Tag)

RFID 标签是被贴在物品上或集成到物体内的设备,内含一个微芯片和天线。RFID 标签的主要作用是存储与物体相关的信息(如物品编号、存储数据等),并通过无线电波与 RFID 读写器进行通信。

RFID 读写器(Reader)

RFID 读写器负责发送和接收射频信号,它通过天线发射一个射频信号到 RFID 标签,同时接收从标签反射回来的信号并解码,从而获取标签上的数据。

中间件或计算机系统(Middleware/Backend System)

这个系统通常负责处理从 RFID 读写器接收到的标签信息。它可能会包括数据库、管理软件、企业资源规划(ERP)系统等,用来存储和分析标签数据,并执行后续的决策或操作。

工作原理

激活:RFID 读写器通过天线发射电磁波(射频信号),激活附近的 RFID 标签。对于被动标签,读写器的信号为其提供能量。

响应:被激活的 RFID 标签通过其天线将存储的信息(如卡号或其他数据)以无线电波的形式传回读写器。

解码与处理:读写器接收标签的信号,并将其解码。然后,读写器将信息传输到计算机系统或中间件,以便进一步处理(如查询数据库、进行验证等)。

反馈(可选):在某些系统中,读写器可能需要发送反馈或执行其他操作,例如解锁门禁、发送警报等。

IC 卡

S50 是一种非接触式智能卡,可以被 RC522 读写模块读取和写入。

RC522 模块和非接触式 IC 卡的通信是基于射频识别技术(RFID)。当卡片靠近读写器时,读写器发出一个射频信号,IC 卡中的天线通过电磁感应获取能量,并响应 RC522 发来的请求,传输数据。

示例代码

https://github.com/TooUpper/SensorDrive