This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TRF7964A:RFID 标签错误校正

Guru**** 2384150 points
Other Parts Discussed in Thread: TRF7964A
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/721022/trf7964a-rfid-tag-error-correction

器件型号:TRF7964A

主席先生或女士,

我在 专有设计中使用 TRF7964A、该设计包含一个1uH 桶形电感器、作为与 NTAG216 RFID IC 定制标签进行通信的天线。  感应器天线为13 x 13mm、与电感器顶部具有3mm 的固定距离。  原型在感应器顶部的标签上运行良好、而不是在特殊滤筒中的正常位置。  然后、有必要更换三块电路板上的电感器、以提升其安装位置、使其与感应器下方的3mm 高度一致。  在更换电感器后、这三个原型中的两个原型的通信非常糟糕、第三个原型仍然可用、但重试次数很多、故障频繁。

该电路与您推荐的电路相同、使用1%电阻器和2%电容器、但遗憾的是、电感器容差为10%。  天线调优组件值是使用 SimSmith 进行选择的、并在一个采样电感器上使用 VNWA 进行了验证、天线阻抗为52欧姆。  根据您的经验、10%容差电感器的接收灵敏度会有多大变化?  内部 RSSI 电平一直读取为7。

现在、我要问的主要问题是重试 CRC、奇偶校验、组帧和噪声/冲突错误。  如果在选择过程中出现任何这些错误、我将禁用 IC (EN 低电平)、然后重新启用 IC 并重新启动选择过程。  这似乎效果相当好。  但是、当我读取标签数据时、我通过重新启动读取序列来重试这些错误。  这主要是可行的、但有时在将读取序列传输到 IC 后、IC 不会开始传输到标签、并且固件会发出超时错误信号。  我已在 DSO 上验证了这一点。  出现超时后,再次重试也会失败,并出现超时错误。  当超时发生时、IRQ 服务子例程被禁用、因此不会干扰重试尝试。  在读取序列被发送到 IC 后、IRU 服务子例程被立即重新启用。

此重试方案是否正确、或者固件是否应发送其他命令序列以在开始新操作之前正确终止先前的读取操作?

此致、

Al Otis JR

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Alton、

    电感器的10%容差可能会影响读取灵敏度、但我无法实际评论其大小、因为它高度依赖于系统。 您需要做的是调整接近中值、然后确保您不会在该读取范围的边缘读取标签。 不确定是否可以获得足够大的样本批次、以便仅测试光谱任一侧的组件。

    至于重试、我们的建议以及我们在软件中所做的是对器件进行软复位、方法是发送软启动和空闲直接命令、后跟1ms 延迟、然后重新配置器件寄存器并重新启动与标签的通信。 这用于处理您在上面提到的所有错误。 在某些情况下、我们在执行此步骤之前重试1-5次、这是非常好的做法、但在尝试对器件进行软复位之前、应进行最大重试次数。 完成命令序列以清除所有内部状态机等、并将器件置于全新的运行状态。 这样、通信错误通常会得到解决、除非标签仍放置在射频场中因不良射频通信而导致此类问题的任何区域。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    拉尔夫

    感谢您的及时响应。  关于电感器、不能选择对每个单元进行调优、但可以选择使用精密绕组电感器。  我的客户尚未投入生产、因此我将要求他们调查替代电感器源。  对于原型、我们使用 Bourns 的 OTS 单元。  我还想增加电感器的直径以完全覆盖标签天线区域。

    关于重试、目前我没有对 TRF7964A 进行软复位、以解决麻烦的重复错误。  我会尝试这个并返回给您。  7964A 由两个 ISR 提供服务。  第一个是移动进程的1ms 计时器中断、第二个是 IRQ 中断。  ISR 级别读取函数一次只读取一页(4字节)。  如果需要多个页面、则会对每个页面重复读取。  应用级的读取时间并不重要。  应用程序对整个标签存储器(222页、888字节)执行一次读取操作、然后继续执行其他操作。  如果未发生错误、则需要大约2秒钟。  如果出现多个错误、这可能会扩展到10-20秒、这仍然正常。

    我假设软复位仅影响7964A、不会取消选择标签。  请确认。

    更多信息。

    阿尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Alton、

    我并不是要对每个电感器进行调优、而是针对中值情况进行调优、然后了解电感器值在该容差范围内的性能如何变化。 如果您可以在电感值的变化范围内读取标签、那么您就可以了。

    软重置将取消选择标签、因为它将会终止 RF 字段。 没有其他方法可以正确复位器件。 无论怎样、这都是标准程序、NFC 论坛要求在尝试兼容 NFC 论坛时、在最大重试次数超过(通常设置为2)后、必须关闭射频字段并从步骤1重新启动通信。 并不是您需要的、而是仅仅声明由于错误而重置射频场是 NFC 工作方式的预期行为、而不是器件缺陷。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    拉尔夫

    对电感器而言、这是正常的。

    作为错误恢复过程的一部分、重新选择标签的需要是我的 RFID 代码的一个适度更改、但我将进行更改并测试结果。 当前、应用程序选择标签作为步骤1、然后执行读取作为步骤2、最后取消选择标签作为步骤3。 选择操作包括 ISR 级别重试、首先将 EN 设置为低电平1ms、然后等待振荡器稳定、然后再继续。 读取操作假定标签被选中并且不会尝试重新选择标签。 在新方案中、标签选择将是读取操作的一部分、并包含在重试中。 这也适用于不属于此帖子的写操作。 我将保留"仅选择"操作、以便对标签参数进行初始查询。 选择操作将使用软复位、而不是将 EN 设置为低电平1ms。

    当我使用软复位来启动选择时、我是否可以假设振荡器(之前已启用并稳定)仍然稳定? 或者换句话说、软复位不会停止并重新启动振荡器。 请确认。

    此致、

    阿尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Alton、

    振荡器将保持稳定、软复位不会停止并重新启动振荡器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    拉尔夫


    感谢你的帮助。  我重写了 NTAG21x 标签读取和写入 函数、以始终从完全复位和选择开始。  这是一个硬件复位(将 EN 切换为低电平1ms)、然后是一个软复位、然后等待振荡器稳定、然后再执行选择。  任何检测到的错误都将从开始重新启动。  总尝试计数设置为10。  读取和写入函数一次只读一页、页数在标签限制中为1。  任何错误都将重试一次。  如果检测到另一个错误、该过程将在完全复位时重新启动、然后选择。  成功读取的页面不会重新读取、仅剩余页面。

    这确实改进了操作、但我仍然获得 IRQ 中断超时、这是由于 IRQ 在成功的命令之间随机变为高电平导致 ISR 错过了发送完成中断的前沿。  为了纠正这一问题、我在每次命令传输之前添加了对寄存器0x0C 和0x0D 的读取、作为 ISR 启动代码的一部分。  我通过连续读取标签1000次来测试代码。  通常、添加所有固件更改后的不可纠正的错误计数约为3-4%。  不太好。

    接下来、我尝试改善桶形电感器天线顶部和感应器之间的磁耦合。  这是一个脏物。  在四个不同的 PCB 上运行的完整测试会产生0%的不可纠正的错误。  我现在对进一步的耦合改进感到非常难忘。

    在一个相关主题上、我在数据表中找不到 TRF7964A 如何报告带有 NAK 的标签报告的主机传输错误的说明。  这在何处讨论?  寄存器0x0C 描述中的信息似乎只指 TRF7964A 在标签应答传输期间检测到的错误。  我错过了什么吗?

    此致、

    阿尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Alton、

    NAK 应答在软件级别处理。 TRF7964A 可识别射频错误、例如 CRC、奇偶校验、来自多个标签的碰撞响应等。但它不会检查协议特定错误(如 NAK)或 ISO7816-4中定义的错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    拉尔夫

    当我询问 NAK 感应时、我的想法一定是在别处。  NAK 存储在 FIFO 中的第一个字节的高位字节中、报告的 FIFO 字节计数为1。  我的代码已经处理了这些条件。

    我认为这已经完成了我目前的问题。  感谢你的帮助。

    此致、

    阿尔