大家好、
我希望使用2个 TRF7970A (TRF)芯片(8-32字节数据包、大约每100ms 发送一次)通过 NFC 链路在两个系统之间来回发送小数据包。
两端都是完全已知的(完全相同的硬件、C2000 MCU 和相同的基本软件)、而且器件根本不需要处理任何第三方 NFC 接口。
我花了一些时间对 SPI 接口等进行编码、以便与 TRF 进行交互、我已经阅读并重新阅读了几次相关数据表、以及许多其他针对14443A/B 和15639等各层的规格文档。
这一切都非常复杂、TRF 数据表非常混乱、似乎涉及很多问题、例如处理射频冲突、多个目标、参数选择等
在我的目标(工业控制)应用中、只有两个类型相同的器件彼此相邻、一个始终是发起方、另一个始终是目标方、 但是、需要有双向通信(如果更容易的话、它们可以是交替的单向通信、作为单独的"交易"进行时间分离。 即发起方向目标方发送数据包、或发起方向目标方请求数据包)
我要寻找的是对几个问题的一些回答:)
1/是否可以设置一个非常简单的状态机来利用 TRF 的 ISO14443A/B 组帧特性向目标发送数据包而无需参考 SENS_REQ/SDD/PFA 协商和时隙时序等?
2如果我将两端配置为完全相同的值、除了一端配置为启动器、另一端配置为目标、我是否只能发送一个非 ISO 固定长度的数据字符串并让另一端接收它? 我知道 TRF 嵌入了一些用于执行 SDD 状态机的逻辑、 并将目标协议标识位移出-如果我配置为 ISO14443A/B 模式、我是否需要使用此位、或者我是否只能有一个处理 RX 标志的 IRQ 处理程序(在传输/接收完成后)、然后读出已发送的数据字节? 我可以保证在任何一个传输中传输的字节都少于127字节。
3否则,是否有人成功地将示例/参考软件堆栈移植到 C2000架构? 堆栈的忙等待性质存在一些问题(我需要定期检查接收到的传输、然后使用 CPU 执行其他任务、在监听模式下、它不能等待500ms、等待潜在的传输)...
很抱歉我的问题含糊不清。 我正在执行简单的自举 NFC 串行连接、以便自行实现、而不是业界通用的 NFC P2P 或读/写器堆栈实现...
我知道我不能做的(由于硬件设计)是进入直接模式0或1并实时移入/移出调制位-事后看来这是最好的方法:(
如果有任何链接、提示或建议、我们将不胜感激!
谢谢、
Kyle