技术科普

当前位置:首页>技术与支持>技术科普
全部 850 方案下载 1 技术科普 14 协议标准 7 开发包下载 1 行业资讯 827

TI公司的TRF7960芯片开发电子标签读写器的探讨

时间:2015-10-06   访问量:1388
{90}

TRF7960是什么:13.56MHz读写器开发芯片

TRF7960 是 TI 开发的工作频率为 13.56MHz、支持 ISO15693 与 ISO14443A/B 协议的射频读写器开发芯片。对自行开发读写器的团队来说,它的一大优势是资料齐全:TI 官方公开的说明书中包含详细的参考电路以及基于 MSP430 单片机的参考代码,参考这些资料做自己的开发板或产品板,基本上难度不大。MCU 可以使用并口或 SPI 串口操作 TRF7960,其中并口相对简单一些,SPI 通信则有几个问题需要特别注意。下面把这三个问题讲清楚——它们也是这块芯片开发中最常见的踩坑点。

13.56MHz射频读写器开发原理

13.56MHz领域的两个协议体系

在开发之前先要理清协议。工作于 13.56MHz 的无线 RFID 技术领域主要有两个 ISO 协议标准:一个是 ISO14443,另一个是 ISO15693。ISO14443 又分为 TYPEA 与 TYPEB 两种协议,通信速率为 106kb/s,两者的区别主要在于载波的调制深度以及位的编码方式。这两个协议在读写距离上差异明显:ISO15693 读写距离较远,ISO14443 读写距离稍近,但后者的应用更为广泛——门禁卡、公交卡、工牌这些日常量最大的卡片基本都走 ISO14443。这也解释了为什么开发读写器时通常要同时支持这两套协议:距离需求和应用普及度分别指向不同的标准。

用SPI操作时容易踩的三个坑

坑一:软件模拟SPI的时序

TI 给出的 SPI 参考代码使用的是 MSP430 的内置 SPI 接口,但在实际开发中,由于单片机内部资源或引脚分配的限制,往往需要用软件模拟 SPI 通讯。这时必须严格遵循 TRF7960 的 SPI 协议:不通讯的时候,片选 NSS 保持高电平、时钟 CLOCK 保持低电平;通讯的时候 NSS 保持低电平。写一位数据时,要在 CLOCK 为低电平期间根据数据值设置 MOSI 数据线,然后由 CLOCK 的上升沿通知 TRF7960 可以接收数据,下降沿之后继续准备下一位要发送的数据。读一位数据时方向相反:在 CLOCK 为高电平期间由 TRF7960 根据数据值设置 MISO 数据线,然后由 CLOCK 的下降沿通知 MCU 可以接收数据,上升沿之后继续准备下一位。这两段的采样沿不同,写用上升沿、读用下降沿,如果搞混就会出现读到的数据始终不对的情况。

坑二:Direct Command的额外时钟沿

MCU 可以使用 Direct Command 直接向 TRF7960 发送一个字节的命令码,执行复位、进入省电模式、向卡片发送数据、调整接收电路增益等功能——这是控制芯片状态最直接的方式。但 Direct Command 的 SPI 时序有一个特殊要求容易被忽略:在发送完一字节的命令之后、在 SS 拉高之前,CLOCK 需要多出一个上升沿。如果只按普通写字节的时序处理,命令不会被执行,表现为"程序写了但芯片毫无反应"。调试时如果确认命令码正确却不见效果,应先检查这一处时序。

坑三:中断标志读取即清除

TRF7960 向磁场中的卡片发送数据后,需要等待卡片回应,是否收到卡片回送的数据、是否反应超时等执行情况都通过中断机制表示。这里有一个与常见芯片不同的特性:在 NXP 的射频芯片上,可以不使用中断引脚 IRQ,而是直接查询射频芯片的中断标志寄存器来获得各种事件的发生情况;但在 TRF7960 上不能这样做,因为读一次中断标志寄存器就会把寄存器中的中断标志清除掉。一旦用轮询方式读取,标志就被清掉,后续处理逻辑会丢失事件。因此电路中通常必须使用 IRQ 引脚——用 IRQ 使能 MCU 中断,或者直接查询 IRQ 引脚状态,得知 TRF7960 内部发生了中断事件后,再用 SPI 读取中断标志寄存器获取详细的中断事件信息。理解"先看 IRQ、再读寄存器"这个顺序,是这块芯片中断处理正确性的前提。

RFID电子标签读写器用于卡片编码与信息录入工位

从参考设计到产品板

有了官方参考电路与参考代码,做出能跑通的原型板并不困难,但从原型到可量产的产品板之间还有几步要走。第一是天线部分:13.56MHz 靠磁场耦合工作,天线线圈的电感量与匹配电容直接决定读距,官方参考电路给出的是特定尺寸天线的参数,实际产品外形一变就需要重新设计并实测。第二是电源与滤波:射频电路的电源噪声会直接影响接收灵敏度,布局与去耦必须按高频电路的要求处理。第三是合规测试:成品需通过电磁兼容相关测试才能上市。上海营信信息在这类读写器产品的开发流程中,通常把天线匹配与接收灵敏度实测作为关键节点,而不是等整机装好后再调。此外,如果项目只需要成品读写器而不打算自行开发,选用支持多协议的成熟机型(同时覆盖 ISO15693 与 ISO14443A/B)可以省去芯片级开发的全部工作量。

RFID读写器与天线配套用于设备柜体集成

小结

TRF7960 的价值在于资料完整、上手门槛低,官方参考电路与 MSP430 参考代码足以支撑起原型开发。真正决定项目成败的是三个细节:软件模拟 SPI 时的采样沿方向、Direct Command 结尾多出的那个时钟沿、以及中断标志"读取即清除"所要求的 IRQ 优先处理顺序。这三点都属于"不知道就调不出来、知道了就一次通过"的类型。此外还要意识到,从能跑通的原型到可量产的产品板之间,天线匹配、电源滤波与合规测试仍需完整走一遍——芯片选对了只是起点。

常见问题

TRF7960支持哪些协议和频率?

工作频率为 13.56MHz,支持 ISO15693 与 ISO14443A/B 协议,也就是说同时覆盖高频领域的两套主要标准。这使得基于它开发的读写器可以兼顾读写距离较远的 ISO15693 场景与普及度更高的 ISO14443 卡类场景,适合需要一台设备兼容多种卡型的产品。

为什么参考代码用硬件SPI,实际却要软件模拟?

TI 的参考代码基于 MSP430 内置 SPI 接口编写,而实际项目中常因单片机内部资源占用或引脚分配限制,无法使用硬件 SPI 模块,只能用普通 IO 口软件模拟。模拟时最容易出错的不是时钟频率,而是采样沿——写数据用上升沿通知、读数据用下降沿通知,两者方向相反,时序写错会导致读回的数据始终不正确。

Direct Command发了没反应是怎么回事?

多半是 SPI 时序少了时钟沿。Direct Command 在发送完一字节命令后、SS 拉高之前,CLOCK 需要额外多出一个上升沿;若按普通写寄存器的时序处理,命令不会被执行。排查顺序建议是:先确认命令码正确,再检查这个额外时钟沿是否发出,最后检查片选与时钟的空闲电平是否符合"不通讯时 NSS 高、CLOCK 低"的规定。

能不能用轮询方式读中断标志,不用IRQ引脚?

不能。TRF7960 的中断标志寄存器具有"读取即清除"的特性,轮询一次就把标志清掉了,后续无法判断到底是收到了卡片回应还是发生了超时。正确做法是使用 IRQ 引脚:先用 IRQ 使能 MCU 中断或直接查询该引脚状态,确知芯片内部发生了中断事件,再用 SPI 读取中断标志寄存器获取具体事件类型。上海营信信息在基于这类芯片的模块开发中,把 IRQ 处理逻辑作为独立的验证项,避免因事件丢失导致偶发的读卡失败。

ISO14443和ISO15693该怎么选?

看读取距离需求和卡片生态。ISO15693 读写距离较远,适合需要一定覆盖范围的场合;ISO14443 读写距离稍近,但应用更广泛,门禁卡、公交卡、工牌等主流卡片基本都基于它。如果产品面向的是通用卡类市场,应以 ISO14443 为主;如果需要覆盖更远的读取距离、且标签可控,则可优先 ISO15693。两者都支持的芯片(如 TRF7960)适合需要兼容多种卡型的开发需求。

上一篇:RFID读写器和电子标签的防冲突算法

下一篇:ISO15693协议RFID芯片的防冲突与常用参数