3、硬件选型:NFC读写器芯片选型(PN532/ST25R)、天线设计要点、功耗评估

好,咱们进入硬件选型环节。说实话,NFC配网方案能不能落地,硬件选型占了七成功力。芯片选错了,天线画歪了,功耗没算准,后面软件写得再漂亮也是白搭。我这些年踩过的坑,今天一次性给你讲透。

3.1 主流NFC读写器芯片对比:PN532 vs ST25R

市面上能用的NFC读写器芯片不少,但真正适合做物联网配网的,我个人习惯只看两个系列:NXP的PN532和ST的ST25R系列。为什么?因为生态成熟、资料多、遇到问题能找到人问。

PN532:老将出马,一个顶俩

PN532是NXP的经典款,出来得有十几年了。我最早接触它是在2016年做智能门锁项目,那时候国产替代方案还不多,PN532几乎是唯一选择。

核心参数:

  • 工作频率:13.56MHz(标准NFC频段)
  • 支持协议:ISO/IEC 14443 A/B、Felica、Mifare全系列
  • 接口:I2C、SPI、UART(三种都支持,很灵活)
  • 最大读写距离:被动模式下约5cm,主动模式下约7cm
  • 供电电压:3.3V或5V
  • 工作电流:主动模式约80mA,待机模式约10μA

我的经验:PN532最大的优点是稳定。我在一个工业环境项目里用过它,旁边就是大功率电机,电磁干扰很严重。PN532愣是没出过一次通信失败。但缺点也很明显——功耗偏高,不适合电池供电的设备。

ST25R系列:后起之秀,能效之王

ST25R是ST意法半导体近几年主推的系列。我是在2019年做一款便携式配网工具时开始用的,当时被它的低功耗特性吸引。

核心参数(以ST25R3916为例):

  • 工作频率:13.56MHz
  • 支持协议:ISO/IEC 14443 A/B、Felica、ISO 15693、NFC-V等
  • 接口:SPI(主接口),I2C(辅助)
  • 最大读写距离:主动模式下可达10cm以上
  • 供电电压:2.4V至5.5V
  • 工作电流:主动模式约35mA,待机模式约1μA

避坑指南:我曾经在ST25R的初始化时序上栽过跟头。它的上电复位时序比PN532严格,如果MCU启动太快,ST25R还没准备好,SPI通信就会失败。解决办法是在初始化前加一个至少10ms的延时。嗯,这个坑我替你们踩过了。

选型对比表

对比项 PN532 ST25R3916
功耗(主动) ~80mA ~35mA
功耗(待机) ~10μA ~1μA
最大距离 5-7cm 8-10cm
接口灵活性 I2C/SPI/UART SPI为主
协议支持 基础NFC 更全面(含ISO 15693)
价格 约15-25元 约20-35元
适合场景 插座、网关等持续供电设备 便携式、电池供电设备

你想想看,如果你的设备是插电的,比如智能插座、WiFi网关,用PN532完全够用,成本还低。但如果是做手机配网器、手持编程工具这种电池设备,ST25R的低功耗优势就体现出来了。

3.2 天线设计要点:别让好芯片配烂天线

天线设计是NFC硬件里最容易翻车的地方。我见过太多人芯片选得很好,结果天线画得乱七八糟,读卡距离只有1cm。说白了,天线就是NFC的喇叭,喇叭不好,再好的功放也白搭。

天线设计核心参数

  • 电感量:通常要求在0.5μH到2μH之间。PN532推荐1.4μH,ST25R推荐1.2μH
  • 谐振频率:必须精确调谐到13.56MHz,偏差超过±5%就会明显影响距离
  • Q值:一般在10到30之间。Q值太高带宽窄,Q值太低信号弱
  • 天线尺寸:典型矩形天线,边长3cm到6cm之间

注意:天线周围5mm范围内不要铺铜,不要走其他信号线。金属和地平面会吸收磁场,直接导致读卡距离缩短。我曾经在一个项目里为了省空间,在天线旁边走了一根I2C线,结果读卡距离从5cm掉到了1.5cm。后来重新改板才解决。

天线匹配电路

天线不能直接连芯片,中间需要匹配电路。以PN532为例,典型的匹配电路是这样的:

// PN532天线匹配电路(参考值)
// C1 = 27pF, C2 = 27pF
// R1 = 10Ω(用于调节Q值)
// L1 = 天线线圈(目标电感1.4μH)

// 天线线圈设计参数(4层PCB,FR4材质)
// 线宽:0.5mm
// 线距:0.3mm
// 圈数:4圈
// 外形:40mm x 40mm
// 预估电感:约1.4μH

我建议你第一次打板时,在匹配电容位置预留多个焊盘,方便调试时更换不同容值的电容。因为PCB板材、铜厚、绿油都会影响实际谐振频率,理论计算只能给个大概。

调试技巧:用网络分析仪测天线谐振点最准。没有的话,用示波器看芯片TX脚的波形也行。调匹配电容,让波形幅度最大、最干净就对了。我习惯先焊标称值,然后准备±5pF的电容做微调。

3.3 功耗评估:电池设备的关键指标

功耗评估这块,我把它分成三个场景来说:主动读卡、待机监听、深度睡眠。不同场景下功耗差异巨大,你得心里有数。

场景一:主动读卡(设备发起NFC通信)

这是功耗最高的场景。PN532主动读卡时电流约80mA,ST25R约35mA。一次完整的配网操作(从检测到卡片到完成数据交换)大约需要200ms到500ms。

举个例子:如果一天配网10次,每次300ms,那么主动读卡消耗的电量是:

  • PN532:80mA × 0.3s × 10次 = 240mAs ≈ 0.067mAh
  • ST25R:35mA × 0.3s × 10次 = 105mAs ≈ 0.029mAh

你看,单次配网功耗其实不大。真正吃电的是待机。

场景二:待机监听(等待手机靠近)

设备需要定期发射射频场来检测是否有NFC设备靠近。PN532的待机模式电流约10μA,ST25R能做到1μA以下。

我建议的做法是:让设备每500ms发射一次射频脉冲,脉冲宽度约5ms。这样占空比只有1%,平均电流可以降到:

  • PN532:80mA × 1% + 10μA × 99% ≈ 0.81mA
  • ST25R:35mA × 1% + 1μA × 99% ≈ 0.35mA

嗯,这里要注意。如果设备是电池供电的,比如一颗200mAh的纽扣电池,用PN532方案只能撑约10天,而ST25R方案可以撑到20天以上。

场景三:深度睡眠(用户不操作时)

设备长时间不使用时,应该进入深度睡眠模式。此时NFC芯片完全关闭,由MCU的GPIO控制供电。

我习惯用一颗MOS管做电源开关,MCU检测到按键或定时唤醒后,再给NFC芯片上电。这样深度睡眠时NFC芯片的功耗为0,只有MCU的漏电流(约1-5μA)。

我的建议:如果你做的是电池供电的配网设备,优先选ST25R系列。如果成本敏感且设备插电,PN532完全够用。千万别为了省几块钱选PN532做电池设备,用户三天两头换电池,口碑就砸了。

3.4 实战选型决策流程

最后,我总结一个选型决策流程,你照着走一遍基本不会错:

  1. 先看供电方式:插电还是电池?插电直接选PN532,电池继续往下看
  2. 再看待机时间要求:要求超过30天?必须上ST25R+深度睡眠方案
  3. 然后看通信距离:需要8cm以上?ST25R是唯一选择
  4. 最后看接口资源:MCU的SPI口紧张?PN532支持I2C/UART更灵活

好了,硬件选型这块就讲到这里。下一章我们开始聊软件协议栈,到时候我会把NFC数据交换协议(NDEF)的封装细节掰开揉碎了讲给你听。记得带上你的开发板,咱们边看边练。