Edit online

中止发送

3 Mar 2025
Read time: 1 minute(s)

如果发送缓冲器的消息由于优先级低而无法发送,将长时间阻塞缓冲器。为了避免这种情况,如果传输尚未开始,主机控制器可以通过分别置位 TPA 或 TSA 来撤回传输请求。

TPA 和 TSA 都使能一个中断标志 AIF。只有当 CANFD 控制器没有向 CAN 总线传输任何内容时,才会执行中止操作。

中止操作的执行会有以下情况:

  • 如果节点丢失仲裁,将在仲裁之后执行中止操作。
  • 在 CAN 节点未收到确认的不成功传输后,错误计数器会增加,并且将执行中止操作。
  • 如果 STB 中至少还有一帧信息剩余,而主机已命令传输所有帧 (TSALL = 1),控制器则会向主机发出完成的帧信息和中止信号。

中止传输需要一些时间,具体取决于 CAN 帧信息通信速度和帧长度。执行中止,则会导致以下结果:

  • TPA 释放 PTB 导致 TPE = 0。释放 PTB 后,帧数据仍保存在 PTB 中。
  • TSA 释放 STB 的单个消息或所有消息。这取决于是使用 TSONE 还是 TSALL 来启动传输。TSSTAT 将相应更新。
注: 不建议同时置位 TPA 和 TSA。如同时置位 TPA 和 TSA,则 AIF 将被置位,PTB 和 STB 的传输都可能被中止,以下中断标志可能被置位:
  • AIF(每次 PTB 和 STB 传输中止触发一次)
  • TPIF + AIF
  • TSIF + AIF
  • TPIF + TSIF(很少见,只有当控制器没有立即处理 TPIF 时才会发生)
  • TPIF + TSIF + AIF(很少见,只有当控制器不立即处理 TPIF 和 TSIF 时才会发生)