MFRC522 是一款应用广泛的非接触读卡器芯片,集成了在 13.56MHz 下的多种非接触通信方式和协议,具有很高的技术集成度。
规格说明
工作电压:3.3V
工作电流:10-26mA
控制方式:SPI、I2C、UART
引脚说明
管脚号 | 管脚名 | 类型 | 管脚描述 |
---|---|---|---|
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 的数据传输速率。
- 防冲突机制:
- 支持多卡防冲突机制,可在多张卡同时存在的情况下识别和通信。
工作流程:
- 读写器初始化:向周围发送询问信号,检测是否有卡片进入其工作范围。
- 卡片应答:卡片收到信号后,回应自己的唯一标识符(UID)。
- 身份验证:读写器和卡片进行认证,以确认双方合法性。
- 数据传输:开始交换数据,如读卡信息、写入数据等。
- 终止通信:完成通信后,读写器发送停止信号。
ISO/IEC 14443B
ISO/IEC 14443B 是另一种通信协议,与 A 型不同,B 型主要用于特定的安全场景和一些非接触式卡片类型(如电子护照、健康卡等)。
通信方式:
- 调制方式:
- 读写器发出的信号也使用ASK 调制。
- 数据传输采用BPSK(二进制相移键控)编码。
- 数据速率:
- 与 A 型相同,支持 106 kbps 的数据传输速率。
- 防冲突机制:
- 支持独特的防冲突机制,与 A 型不同。
工作流程:
- 读写器初始化:向周围发送询问信号,检测是否有卡片进入其工作范围。
- 卡片应答:B 型卡片采用不同的应答机制,通常会发送特定的 ATQB 信号。
- 数据传输:双方进行数据交换,通常会进行更复杂的加密和验证。
- 终止通信:读写器发送停止信号,结束通信。
这是两种非接触式智能卡通信协议,它们定义了如何在读卡器(例如 RC522)和非接触式卡之间进行通信。也就是说只要是这两个通信协议的非接触式卡都可以与 RC522 进行通信。
通信方式
I2C
支持 I2C 总线接口可以使得主机可以用较少的管脚连接到 MFRC522I2C 接口操作遵循 I2C 总线接口规范。该接口只能工作在从机模式。
在标准模式、快速模式和高速模式中,MFRC522 可用作从接收器或从发送器 SDA 是一个双向数据线,通过一个上拉电阻连接到正电压。不传输数据时,SDA 和 SCL 均为高电平。标准模式下,I2C 总线的传输速率为 100kBd,快速模式下为 400kBd,高速模式下为 3. 4Mbit/s。
如果选择 I2C 总线接口,管脚 SCL 和 SDA 管脚具有符合 I2C 接口规范的尖峰脉冲抑制功能。
每个字节后面必须跟一个应答位。数据传输时高位在前。一次数据传输发送的字节数不限,但必须符合读/写周期格式。
应答
应答是在一个数据字节结束后强制产生的。应答相应的时钟脉冲由主机产生。在应答时钟脉冲周期内,数据发送器释放 SDA 线(高电平)。在应时钟脉冲期间,接收器拉低 SDA 线使得它在该时钟脉冲的高电平时间内保持低电平。
地址
I2C总线地址与EA管脚的定义有关。
如果 EA 管脚为低电平,则对于所有 MFRC522 器件,器件总线地址的高4位固定为 0101b。 器件总线地址剩余的3位(ADR_0,ADR_1,ADR_2)可由用户自由配置,这样就可以防止与其它 I2C 器件产生冲突。
如果 EA 管脚设置为高电平,则 ADR_0-ADR_5 完全由外部管脚来确定。ADR_6 总是设置为0。
在这两种模式下,外部地址编码都在复位条件释放后立即锁定。不考虑使用管脚上的进一步变化。通过配置外部连线,I2C总线的地址管脚还可用作测试信号的输出。
UART
通过对 TestPinEnReg寄存器的 RS23LineEn 位清零,信号 DTRQ 和 MX 可以禁止。
传输速度
默认的传输速率为 9.6kBaud。要改变传输速率,主机控制器必须向 SerialSpeedReg 寄存器写 入一个新的传输速率值。位 BR TO[2:0] 和位 BR_T1[4:0] 定义的因数用来设置 SerialSpeedReg 中的传输速率。
帧格式
位 | 长度 | 值 |
---|---|---|
起始位 | 1 位 | 0 |
数据位 | 8 位 | 数值 |
结束位 | 1 位 | 1 |
对于数据和地址字节,LSB 位必须最先发送。传输过程中不使用奇偶校验位。
发送和读写数据时,第一个字节的内容为地址,第二个字节开始的才是数据
第一个字节的 MSB 位设置使用的模式。MSB 位设置为 1 时从 MFRC522 读取数据,MSB 位设置 为 0 时将数据写入 MFRC522。第一个字节的位6保留为将来使用。
SPI
MFRC522 支持 SPI 接口与主机的高速通信,接口可处理高达 10Mbit/s 的数据速率。在与主机通信时,MFRC522 作为一个从机,从外设主机上接收数据来设置寄存器发送和接 收与 RF 接口通信有关的数据。
在SPI通信中 MFRC522 作为从机。SPI 时钟信号 SCK 必须由主机产生。数据通过 MOSI 线从主机传输到从机。通过 MIS0 线数据从MFRC522 发回到主机。
MOSI 和 MISO 传输每个字节时都是高位在前。MOSI 和 MISO 上的数据在时钟的上升沿必须保持不变,在时钟的下降沿改变。
地址
第一个字节的 MSB 位定义了使用模式。MSB 位设置为 1 时,从 MFRC522 读取数据 MSB 位设置为 0 时,将数据写入 MFRC522。第一个字节的位 6-1 定义地址,LSB 位应当设置为 0。
不同接口的接线方式
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 发来的请求,传输数据。