TRF7960 EVM评估板:多协议RFID读卡器开发与调试实战指南
1. 项目概述手头拿到一块德州仪器TI的TRF7960评估模块EVM对于想快速上手13.56MHz RFID读卡器开发或者需要评估多协议兼容性的朋友来说这绝对是个宝藏。RFID技术本身不复杂无非就是读写器和标签之间“隔空对话”但真到自己动手设计电路、调试协议时各种寄存器配置、天线匹配、数据帧解析每一步都可能是个坑。TRF7960这颗芯片的价值就在于它把模拟前端、协议处理、数据成帧甚至电压调节都集成在了一起让你能更专注于应用逻辑而不是底层射频的细枝末节。这块EVM板子就是TI官方出的一个“参考答案”。它集成了TRF7960芯片、MSP430微控制器、一个板载环形天线通过USB就能和电脑通信。更重要的是它配套的图形化软件GUI可以直接对ISO/IEC 15693、ISO/IEC 14443 A/B以及TI自家的Tag-it协议进行实操从最简单的标签盘点Inventory到复杂的块数据读写、锁定都能点点鼠标完成。对于工程师而言这不仅是功能验证的工具更是理解协议交互、调试自己硬件和软件的绝佳跳板。无论你是学生、嵌入式开发者还是系统集成工程师想搞明白多协议RFID读卡器到底是怎么工作的从这块EVM开始折腾效率会高很多。2. 硬件开箱与连接要点刚拿到EVM板子别急着通电。我建议你先花十分钟对照着板子实物和手册里的图把关键部件认全了。这能帮你避开很多低级错误。2.1 硬件组件与接口解析我手头这块是Rev A版本的板子。板子中央最大的那个QFN封装芯片就是主角TRF7960。旁边那个小一点的QFN是MSP430F2370微控制器它负责通过USB与上位机通信并按照GUI的指令配置TRF7960。板子一侧的USB-B型接口是供电和数据的唯一入口。这里有个重要提示板子默认通过一个跳线帽Power-selection jumper将USB的5V直接接到了TRF7960的电源输入VIN。这意味着只要你插上USB整个板子就上电了。在连接任何线缆或测试探头之前务必确保这个跳线状态符合你的预期。板载天线是一个印刷在PCB上的环形线圈这是为了评估和演示的便利性。对于实际产品开发你通常需要外接天线。板子上预留了一个SMA连接器J2用于此外部天线接口。这里有一个非常关键的硬件配置点直接关系到射频性能板子上有三个0欧姆电阻R3, R4, R5它们构成了一个选择网络。R3连接TRF7960输出到板载天线。R4连接TRF7960输出到SMA接口用于测试射频输出信号。R5连接SMA接口到板载天线用于通过SMA接口驱动外部天线。这三个电阻绝对不能同时焊接默认出厂配置通常是焊上R3这样信号就通往板载天线方便即插即用。如果你要用自己的天线就需要移除R3。根据需求选择焊接R4仅监测TRF7960输出或R5通过SMA驱动外部天线。 如果错误地同时焊上了R3和R4TRF7960的输出将同时驱动板载天线和SMA端口通常接50欧姆负载导致负载阻抗不匹配输出功率和效率会严重下降甚至可能损坏芯片。另一个需要注意的跳线是用于选择TRF7960与MSP430的通信接口。板子支持并行Parallel和串行SPI两种模式通过一组排针Header 1, 4, 5, 6上的0欧姆电阻或跳线帽来配置。默认通常是并行模式。除非你有特殊需求比如想用SPI接口与自己主控连接否则保持默认即可。2.2 上电连接与功耗考量连接就很简单了用一根标准的USB A转B型线缆将EVM连接到电脑即可。此时板子上的电源指示灯PWR LED应该点亮。如果没亮首先检查USB线是否完好电脑USB口是否供电正常。这里有一个实际的功耗问题需要注意手册提到TRF7960 EVM在全功率发射模式下从USB端口消耗的电流大约为120mA。而标准USB 2.0端口规范建议的最大持续供电电流是100mA高功率设备可以申请到500mA但需要枚举协商。120mA已经超出了100mA的建议值。在大多数现代电脑或带有独立供电的USB集线器上这可能没问题系统会提供足够的电流。但如果你用的是老旧的笔记本或者某些供电能力较弱的USB口可能会遇到供电不足的情况表现为板子工作不稳定、无法识别标签或者直接导致电脑USB端口保护性关闭。我的经验是如果你发现EVM连接后GUI软件频繁断开连接或者执行操作时没有反应优先怀疑供电问题。最简单的解决办法就是换一个USB口试试最好是台式机后置主板直接引出的接口或者使用一个带有外接电源的USB集线器。这是排查EVM问题时第一个要排除的硬件因素。3. 软件环境搭建与驱动安装软件部分稍微繁琐一点主要是驱动安装。TI的EVM软件包包含了必要的USB转串口驱动和图形化控制程序。根据你手上的EVM是旧版Rev -还是新版Rev A安装步骤略有不同。请先确认你的板子版本。3.1 新版TRF7960EVM Rev A软件安装对于Rev A板子其USB转串口芯片换成了Silicon Labs的CP210x系列因此需要安装对应的驱动。第一步准备驱动和软件下载VCP驱动访问Silicon Labs官网的CP210x驱动下载页面选择与你的操作系统如Windows 10/11匹配的驱动包并下载。这是一个可执行文件如CP210x_VCP_Windows.exe。下载EVM GUI软件前往TI官网的TRF7960EVM工具页面找到并下载名为TRF7960EVM_REVA_GUI_V1.1.zip或类似版本号的压缩包。第二步安装USB转串口驱动切记先不要连接EVM板子到电脑运行下载好的CP210x_VCP_Windows.exe文件。安装过程很简单基本就是一路“Next”。安装程序会将驱动文件解压到指定目录例如C:\SiLabs\MCU\CP210x。驱动安装完成后现在将EVM板子通过USB线连接到电脑。Windows会检测到新硬件并弹出“找到新硬件向导”。选择“从列表或指定位置安装高级”然后点击“下一步”。选择“在搜索中包括这个位置”然后点击“浏览”定位到驱动解压的目录例如C:\SiLabs\MCU\CP210x。Windows会自动找到合适的.inf文件。点击“下一步”完成“CP210x USB Composite Device”的安装。系统可能会再次弹出向导为“CP210x USB to UART Bridge Controller”安装驱动重复上述步骤同样指定到C:\SiLabs\MCU\CP210x目录即可。安装成功后你可以在“设备管理器” - “端口COM和LPT”下看到类似“Silicon Labs CP210x USB to UART Bridge (COMx)”的设备记住后面的COM端口号例如COM3、COM10。第三步安装并运行GUI软件将下载的TRF7960EVM_REVA_GUI_V1.1.zip解压到你喜欢的任意文件夹。直接运行解压出来的GUI.exe或类似的可执行文件。为了方便你可以为其创建一个桌面快捷方式。软件启动后通常会尝试自动检测EVM所在的COM口。如果检测成功在软件界面右下角的“Select Port”输入框里会自动显示端口号如COM10。如果未能自动检测你需要手动输入在设备管理器中看到的COM口号然后点击旁边的“Select Port”按钮。注意点击“Select Port”按钮时用鼠标点击不要按键盘上的Enter键。按Enter键会导致GUI程序直接退出这是一个比较反直觉的设计。3.2 软件界面功能分区详解成功连接后GUI主界面会完整显示。这个界面信息量很大我们把它分成几个功能区来理解协议与功能选项卡Protocol Tabs Window位于界面左上方。这是核心控制区用于选择你要操作的RFID协议或功能模块。包括ISO/IEC 15693用于高频HF远距离卡典型识别距离可达1米左右。ISO/IEC 14443A用于近场通信NFCType A卡片如MIFARE Classic、Ultralight等。ISO/IEC 14443B用于NFC Type B卡片。Tag-it™TI的专有协议。Find Tags一个实用功能会自动扫描并识别区域内所有支持协议的标签。Registers高级功能允许你直接读写TRF7960的内部寄存器用于深度调试和自定义配置。Test测试模式。命令窗口Command Window位于界面左侧中部。当你选择一个协议选项卡后这里会列出该协议支持的所有标准命令按钮例如对于15693协议你会看到“Inventory”、“Read Single Block”、“Write Single Block”等。标志窗口Flags Window位于命令窗口下方。不同的协议命令可能需要设置不同的标志位Flags例如选择高/低数据率、是否使用防碰撞、地址模式等。这个窗口的选项会根据你选择的命令动态变化。标签数据窗口Tag Data Window占据界面中部主要区域。用于输入命令所需的参数比如要读写的内存块地址、要写入的数据、UID等。从标签读回的数据也会显示在这里的灰色只读区域。日志窗口Log Window位于界面底部。这是最重要的调试信息窗口。它实时显示所有从电脑发送到读卡器的命令帧以及读卡器返回的响应和标签返回的数据。所有通信字节都以十六进制明文显示是分析通信过程、排查问题不可或缺的工具。这些日志同时也会保存到GUI程序同目录下的rfid-reader.log文本文件中。程序控制与状态区位于界面右下角。Set Protocol按钮这是一个关键但容易忽略的步骤。仅仅点击了协议选项卡如15693并不代表读卡器已经切换到了该协议。你必须点击“Set Protocol”按钮GUI才会通过USB向EVM发送一系列寄存器配置命令将TRF7960真正初始化为对应协议的工作模式。Execute按钮在设置好命令、标志和数据后点击此按钮执行当前命令。Power Control可以在“Full”和“Half”之间切换射频输出功率。但请注意板载天线匹配电路是按照全功率约200mW优化的切换到半功率约100mW时天线阻抗失配性能并非最佳仅用于模拟弱场强环境测试。Special Functions包含一些特殊功能开关如AGC自动增益控制的开启/关闭接收通道选择AM/PM等。4. ISO/IEC 15693协议实操与通信原理解析15693协议是高频RFID中应用非常广泛的一个标准常用于资产管理、门禁等需要较远读卡距离的场景。我们以它为例深入看看GUI背后到底发生了什么事。4.1 协议设置与底层命令拆解当你点击“ISO/IEC 15693”选项卡然后点击“Set Protocol”按钮时GUI并不是只发一条命令。通过查看日志窗口你会发现它连续发送了三条命令帧。我们逐条拆解第一条命令写寄存器配置芯片状态和协议01 0C 00 03 04 10 00 21 01 02 00 0001: 帧起始SOF。0C: 数据包长度12字节。00 03 04: 固定包头标识数据负载开始。10: 固件命令码表示“写寄存器”。00 21: 向地址为0x00的寄存器芯片状态控制寄存器写入值0x21。0x21的含义是开启RF输出bit5并设置供电为5V模式bit0。01 02: 向地址为0x01的寄存器ISO控制寄存器写入值0x02。0x02将协议设置为ISO15693并指定了高比特率26.48 kbps、使用单子载波、采用“1 out of 4”的编码模式。00 00: 帧结束EOF。第二条命令设置AGC01 09 00 03 04 F0 00 00 00F0: 固件命令码表示“AGC开关”。00: 参数为0x00表示关闭AGC。如果要开启这里应该是0xFF。上电复位后AGC默认是关闭的在噪声较大的环境中可以手动开启以优化接收性能。第三条命令设置接收机模式01 09 00 03 04 F1 FF 00 00F1: 固件命令码表示“AM/PM通道切换”。FF: 参数为0xFF表示选择AM幅度调制通道作为主接收通道。如果设为0x00则选择PM相位调制通道。这三条命令共同完成了TRF7960芯片对于15693协议的初始化。理解这个底层帧结构SOF长度包头命令数据EOF非常重要因为当你进入“Registers”选项卡进行手动调试或者未来自己编写单片机代码控制TRF7960时都需要遵循这个通信格式。4.2 标签盘点Inventory流程深度剖析“Inventory”是RFID中最基础也最核心的操作目的是获取读写器场区内所有标签的唯一标识符UID。操作步骤在GUI中点击“ISO/IEC 15693”选项卡。点击“Set Protocol”按钮务必执行。在命令窗口点击“Inventory”。在标志窗口你可以选择“16 Slot”16时隙或“Single Slot”单时隙模式。16时隙是防碰撞的基础。点击“Execute”。单时隙与16时隙防碰撞机制单时隙读写器发出盘点命令后场区内所有符合15693协议的标签都会同时回复它们的UID。如果只有一个标签通信成功如果有两个或以上标签同时回复无线电波就会相互干扰导致数据碰撞读写器无法解析GUI会报告碰撞错误。16时隙这是标准的防碰撞方法。读写器命令中包含一个“时隙”参数。每个标签根据自己的UID的一部分通常是最后几位计算出一个0-15之间的随机数决定自己在哪个“时隙”内回复。这样就将回复时间分散开了大大降低了碰撞概率。如果某个时隙内仍然有多个标签计算出的时隙号巧合相同读写器会检测到碰撞并可以启动更复杂的防碰撞算法如基于位冲突的树形算法来进一步筛选。日志分析 执行一次16时隙盘点日志窗口会输出16行对应16个时隙。例如01N[,40](多次出现) 这表示在该时隙例如时隙0、1、2...读写器没有收到任何标签回复01N表示无响应中断RSSI寄存器状态为0x40。60F40E[2CF7FE11000007E0,6F]这表示在某个时隙例如时隙12读写器成功接收到了数据60F接收缓冲区75%满40E接收结束。括号内是标签的回复数据2CF7FE11000007E0就是标签的UID注意是逆字节顺序实际UID需要反转后阅读6F是接收信号强度指示RSSI值。RSSI窗口解读 成功盘点后RSSI窗口会以表格形式显示更清晰的结果。例如它会显示Slot #12, UID: E0 07 00 00 11 FE F7 2C, RSSI (AM): 6, RSSI (PM): 1这里Slot #12是时隙号UID是校正字节顺序后的真实UIDRSSI (AM)和RSSI (PM)分别代表幅度和相位通道的信号强度值范围0-7。这个信息对于优化天线摆放、评估读卡距离非常有帮助。4.3 数据读写与块锁定操作盘点到UID后就可以对标签进行具体的操作了。15693标签的内存通常被组织成多个块Block每个块包含一定字节数常见为4字节。读取单个块Read Single Block在命令窗口点击“Read Single Block”。在标签数据窗口需要输入UID你要操作的那个标签的8字节UID。可以从盘点结果中复制过来。Block Address要读取的内存块地址例如0x00。点击“Execute”。如果成功标签数据窗口的“Block Data”区域会显示该块存储的4字节十六进制数据。写入单个块Write Single Block点击“Write Single Block”。输入UID和Block Address。在Data字段输入你要写入的4字节数据例如11 22 33 44。点击“Execute”。日志窗口会返回操作结果成功则显示响应码。锁定块Lock Block 这是一个不可逆的操作一旦某个块被锁定其数据将永久无法修改。点击“Lock Block”。输入UID和Block Address。执行前务必确认数据是否正确因为锁定后无法更改。点击“Execute”。成功锁定后再尝试对该块进行写操作标签会返回错误码例如0x0F表示块已锁定。重要经验在进行任何写或锁定操作前强烈建议先读取一次目标块确认地址和数据。在开发阶段可以先用一个可废弃的标签进行测试。对于关键数据块可以考虑先写入反复读取验证无误后再进行锁定操作。5. 高级功能与调试技巧掌握了基本操作后EVM GUI还提供了一些高级功能能帮助你更深入地理解系统和解决问题。5.1 “Find Tags”全局扫描功能当你手头有一堆标签但不确定它们分别支持什么协议时“Find Tags”功能就非常有用。点击这个选项卡然后点击“Execute”GUI会控制TRF7960依次在15693、14443A、14443B、Tag-it等协议模式下发送盘点请求。任何被识别到的标签其UID和协议类型都会显示在结果框中。这是一个快速识别未知标签的利器。5.2 寄存器Registers手动操作模式这是给高级用户和开发者准备的“手术台”。在这里你可以绕过GUI的预设命令直接读写TRF7960芯片的任何一个控制寄存器。每个寄存器都控制着芯片的特定功能如发射功率、接收器增益、调制深度、协议参数等。如何使用切换到“Registers”选项卡。界面会变成一个寄存器列表。左侧是寄存器地址和名称右侧是当前值十六进制和一个可编辑的输入框。要读取某个寄存器的值直接点击该寄存器所在行。要修改某个寄存器的值在对应的“Value”输入框中输入新的十六进制值然后点击旁边的“Write”按钮。应用场景举例优化读卡距离通过调整0x09TX控制寄存器的值来微调发射功率。注意硬件电路特别是天线匹配是针对特定功率优化的盲目增大功率可能效果不佳甚至损坏电路。调试接收问题在噪声环境中可以尝试调整0x0BRX控制寄存器的增益设置或者开启AGC0x0D寄存器。自定义协议参数虽然GUI支持主流协议但如果你需要测试非标或自定义的通信速率、编码方式就必须通过手动配置寄存器来实现。警告随意修改寄存器可能导致读卡器无法正常工作。修改前最好记录下默认值或者知道如何通过“Set Protocol”按钮恢复标准配置。理解每个寄存器位的含义需要仔细阅读TRF7960的数据手册。5.3 常见问题排查与实战心得结合我自己的使用经验以下是一些常见问题及解决方法GUI连接不上EVM或频繁断开首要检查USB供电。换一个USB端口最好使用带外接电源的Hub。检查驱动在设备管理器中确认CP210x端口是否存在且无感叹号。尝试重新插拔EVM或重新安装驱动。检查COM口确保GUI中选择的COM口号与设备管理器中的一致。注意如果电脑上插了多个USB转串口设备COM口号可能会变。“Set Protocol”后执行命令无反应日志无输出确认点击的是“Set Protocol”按钮而不仅仅是选择了协议选项卡。观察EVM板上的指示灯。运行GUI时协议指示灯ISO15693, ISO14443A等是被禁用的只有电源灯常亮。这是正常现象。如果退出GUI或按一下EVM上的复位按钮协议指示灯功能会恢复。检查日志窗口最开始的几行看“Set Protocol”对应的三条命令是否成功发送并有响应。如果没有说明通信链路有问题。可以盘点标签但无法读写UID错误最可能的原因。确保从盘点结果复制UID时字节顺序和格式正确。GUI中显示和输入有时是逆序的要仔细核对。标签不支持该命令不是所有15693标签都支持写和锁定操作。确认你的标签型号。块已锁定尝试对一个已锁定的块进行写操作自然会失败。先尝试读取如果返回错误码0x0F说明块被锁定。标签不在有效场内写操作需要更强的场强和更稳定的连接。尝试将标签更贴近天线中心。读卡距离非常近或不稳定天线匹配确认板载天线附近没有大的金属物体。如果使用外部天线确保其谐振频率在13.56MHz并且通过SMA连接器正确连接正确配置R3/R4/R5电阻。供电不足回归到问题1确保USB供电充足。环境干扰13.56MHz频段容易受到其他电子设备如开关电源、显示器的干扰。尝试换个环境测试或在GUI中开启AGCSpecial Functions里。如何理解日志中的错误码当标签操作失败时响应帧中会包含错误码。例如在15693协议中0x01: 命令不支持。0x02: 命令无法识别格式错误。0x03: 块不可用地址错误。0x0F: 块已锁定。0x10: 写失败可能是物理错误。结合具体操作和错误码可以快速定位问题方向。这块TRF7960 EVM是一个强大的学习和开发工具。它最大的价值在于将复杂的射频和协议交互封装成了直观的点击操作和可视化的数据流。通过反复操作、观察日志、并结合数据手册研究寄存器你能建立起对13.56MHz RFID系统从物理层到应用层的完整认知。当你用它调通各种标签后再去看TRF7960的芯片手册和参考设计那些寄存器配置、时序图、天线设计参数就不再是抽象的符号而是有了实际意义的经验支撑。这为你后续设计自己的读卡器产品打下了坚实的基础。

相关新闻