PN532 NFC/RFID 控制器模块技术文档
1. 概述
PN532 是 NXP 推出的高性能 13.56MHz NFC 控制器芯片,相比 RC522,它支持更全面的协议栈:ISO/IEC 14443A/B(读写MIFARE全系列)、FeliCa(日本电子支付标准)以及 ISO/IEC 18092 NFCIP-1(点对点通信和卡模拟)。模块内置完整协议固件,主控只需发送简单命令帧即可完成复杂 NFC 操作,极大降低开发难度。广泛应用于门禁、移动支付、NFC 配对、电子名片交换等场景。
2. PN532 vs RC522 对比
| 特性 |
PN532 |
RC522 |
| 协议支持 |
14443A/B, FeliCa, NFCIP-1 |
仅 14443A/MIFARE |
| NFC P2P |
✅ 支持 |
❌ 不支持 |
| 卡模拟 |
✅ 支持 |
❌ 不支持 |
| 读写距离 |
最大 70mm |
最大 50mm |
| 发射功率 |
+23dBm |
较低 |
| FIFO |
512字节 |
64字节 |
| 接口速率 |
HSU 1.2Mbps |
SPI 10Mbps |
| 价格 |
较高(约¥18-30) |
较低(约¥5-10) |
3. 引脚定义
| 引脚 |
名称 |
方向 |
SPI模式 |
I2C模式 |
UART模式 |
| 1 |
VCC |
PWR |
3.3V / 5V(模块LDO) |
同左 |
同左 |
| 2 |
GND |
PWR |
地 |
地 |
地 |
| 3 |
SCL |
IN |
SCK (时钟) |
SCL (时钟) |
- |
| 4 |
SDA |
I/O |
MOSI |
SDA (数据) |
- |
| 5 |
MISO |
OUT |
MISO |
- |
- |
| 6 |
SS/CS |
IN |
NSS (片选) |
- |
- |
| 7 |
TX |
OUT |
- |
- |
TX (发送) |
| 8 |
RX |
IN |
- |
- |
RX (接收) |
| 9 |
RSTPD |
IN |
复位(低有效) |
同左 |
同左 |
| 10 |
IRQ |
OUT |
中断(可选) |
同左 |
同左 |
接口模式选择:通过模块上的拨码开关或短接焊盘设置(SEL0/SEL1)。
4. 接口模式配置
| SEL1 |
SEL0 |
模式 |
| 0 |
0 |
SPI |
| 0 |
1 |
HSU (高速UART) |
| 1 |
0 |
I2C |
| 1 |
1 |
保留 |
5. 电气特性
| 参数 |
最小值 |
典型值 |
最大值 |
单位 |
| 芯片供电 VDD |
2.7 |
3.3 |
5.5 |
V |
| 模块供电(含LDO) |
3.3 |
5.0 |
5.5 |
V |
| 工作电流(RF发射) |
40 |
60 |
120 |
mA |
| 待机电流 |
- |
25 |
100 |
μA |
| 发射功率 |
- |
- |
+23 |
dBm |
| I2C 时钟 |
- |
100 |
400 |
kHz |
| UART 波特率 |
9600 |
115200 |
1288000 |
bps |
| SPI 时钟 |
- |
- |
5 |
MHz |
| 工作温度 |
-30 |
+25 |
+85 |
°C |
6. 命令帧格式(通用)
PN532 使用标准的 帧通信协议:
[PREAMBLE] [START] [LEN] [LCS] [TFI] [DATA...] [DCS] [POSTAMBLE]
0x00 0xFF ... ... 0xD4 ... ... 0x00
- PREAMBLE:0x00(前导)
- START:0x00 0xFF(帧起始)
- LEN/LCS:数据长度和长度校验
- TFI:帧标识(主机→PN532为0xD4,PN532→主机为0xD5)
- DATA:命令/响应数据(最多262字节)
- DCS:数据校验和
- POSTAMBLE:0x00(帧结束)
7. 常用命令
| 命令 |
代码 |
说明 |
| GetFirmwareVersion |
0x02 |
获取固件版本 |
| SAMConfiguration |
0x14 |
安全访问模块配置 |
| InListPassiveTarget |
0x4A |
被动寻卡(最常用) |
| InDataExchange |
0x40 |
数据交换(读写卡) |
| TgInitAsTarget |
0x8C |
初始化为NFC目标(卡模拟) |
| InJumpForDEP |
0x56 |
发起P2P连接 |
8. 典型应用电路
8.1 I2C 接线(推荐,仅需2线)
MCU (3.3V) PN532模块
--------- --------
3.3V/5V --------> VCC
GND <-------> GND
I2C_SCL --------> SCL
I2C_SDA <-------> SDA
GPIO --------> RSTPD (复位)
(可选) <-------- IRQ
8.2 SPI 接线
MCU (3.3V) PN532模块
--------- --------
3.3V/5V --------> VCC
GND <-------> GND
SPI_SCK --------> SCL (SCK)
SPI_MOSI --------> SDA (MOSI)
SPI_MISO <-------- MISO
GPIO(CS) --------> SS/CS
GPIO --------> RSTPD
9. 使用注意事项
- 供电选择:模块通常板载 3.3V LDO,可直接供 5V。裸芯片必须 3.3V。
- 接口初始化后必须执行 SAMConfiguration(一般用 0x14, 0x01, 0x14, 0x01 → 普通模式),否则无法正常操作卡片。
- 读距优化:+23dBm 发射功率下最大 70mm,实际距离受天线设计、卡片类型和环境影响。
- 多卡防碰撞:
InListPassiveTarget 可指定最大返回卡数(MaxTg),默认1张。
- NFC P2P:需双方均支持 ISO 18092,PN532 可做 Initiator 或 Target。
- 卡模拟模式:TgInitAsTarget 可让 PN532 模拟 MIFARE 卡或 NFC 标签,但需注意部分手机对卡模拟 SENS_RES/SEL_RES 的兼容性。
- I2C 地址:默认 0x48(7-bit,左移后 0x90),部分模块通过跳线可选。
- IRQ 使用建议:使用中断模式代替轮询可显著降低功耗和 CPU 占用。