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.

[参考译文] TMS320F28388D:通过 CAN 传输两个消息之间所需的最小延迟是多少

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1359167/tms320f28388d-what-is-the-minimum-delay-required-between-two-message-transmission-over-can

器件型号:TMS320F28388D
主题中讨论的其他器件: TMS320F28379D

各位专家、您好!

我正在通过 CAN A/B 从10ms schedular 发送多条消息。 我要发送和接收大约35个 Tx 和7个 RX 消息。 我当前正在使用 TMS320F28388D 控制器。 我可以看到、当我在每个10ms 帧上持续发送消息(3-5)时、我会看到某些消息速率的 TX 速率不一致。 甚至有些也不会被传输。 由于时间对航空航天应用至关重要、我必须解决此问题、因此我想征求您对以下问题的意见:

1.两次传输/接收之间所需的最小延时时间是多少?

CAN_ES 寄存器的这个 TXOK 位是否确定传输已完成、无挂起的情况?

3.是否真的需要在发送报文后产生中断来检测传输是否成功完成?

在一些 TI e2e 博客中、我看到两次消息传输之间需要最低135us 的延迟。 这个 e2e 帖子用于 TMS320F28379D 控制器、我相信它对 TMS320F28388D 控制器也有效吗?

开发驱动程序时考虑了 牵引方法、未实现中断方法。

请查看价格列、其波动在以下视频中。  我正在寻找您对相同问题的回答

e2e.ti.com/.../CANTest.mp4

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

    Abhijit,

               这是一个复杂的问题。 除了处理 CAN 流量外、在很大程度上还取决于 CPU 执行的其他操作。

    1. 两次传输/接收之间所需的最小延时时间是多少?

    没有此类要求。 可以一次性标记多个要传输的消息对象。 当检测到总线处于空闲状态时、将按照报文对象优先级的顺序依次发送这些状态。 当然、如果总线中的其他节点尝试传输数据、CAN 总线仲裁规则就会起作用。

    2.来自 CAN_ES 寄存器的此 TXOK 位是否确定传输已完成、没有待处理的内容?

    否。 它只表示最后一次传输成功。 即、网络上至少有一个节点确认。 它不指示所有等待的传输已完成。

    3.是否真的需要在发送消息后产生中断来检测传输是否成功完成?

    这完全取决于应用。 在大多数应用中、CPU 必须满足多个外设的需要、因此轮询是不切实际的、并且不可避免地使用中断。

    在一些 TI e2e 博客中、我看到两次消息传输之间至少需要135us 的延迟。

    不正确。 135us 是传输具有扩展标识符的帧所需的平均时间。  

    此 e2e 帖子是用于 TMS320F28379D 控制器的、我相信它还适用于 TMS320F28388D 控制器吗?

    是的、适用于任何具有 CAN 模块的器件。

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

    有没有办法得到邮箱状态、表明所选邮箱的上一次传输完成、可用于下一条消息。

    例如、假设我为一条消息配置了邮箱20、现在传输已完成、我必须使用同一邮箱来接收新消息或传输另一条消息。 我有这种情形、因为我有超过32个邮箱的更多 TX 和 RX 消息。  

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

    您可以轮询 TxRqst 位以获知 CAN_TXRQ_21寄存器中相应的报文对象

     来自 TRM:

    "在一个成功 发送后、如果自开始发送起、没有新的数据写入报文对象(NewDat = 0)、TxRqst 位被复位"。

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

    请下载我的应用报告 http://www.ti.com/lit/SPRACE5 、并仔细阅读调试提示。 通过查看此检查清单、可以解决大多数 CAN 问题。  

    TRM 一章介绍了如何在 MCU 中实现 CAN 协议。 即、它解释了各种寄存器/位的功能。 但未介绍协议本身。 有关协议信息、请观看以下精彩视频:

    https://training.ti.com/automotive-can-overview

    https://training.ti.com/ti-precision-labs-canlinsbc-can-and-can-fd-protocol?context=1139747-1138099-1139707-1138111

    https://training.ti.com/ti-precision-labs-canlinsbc-can-and-can-fd-overview?context=1139747-1138099-1139707-1138109

    https://training.ti.com/ti-precision-labs-canlinsbc-can-physical-layer?context=1139747-1138099-1139707-1138110