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.

[参考译文] TMS320F2.8379万D:CAN总线通信延迟

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1090786/tms320f28379d-can-bus-communication-delay

部件号:TMS320F2.8379万D

我正在通过CAN总线在2个DSP板之间发送数据。

它正在运行,甚至我也在CAN分析仪上接收正确的数据。

发送之间的最小延迟是多少。

我正在以1000 kbps的速度发送数据,从33微秒循环发送,并且丢失数据,如果我增加延迟,我就会得到一些数据。

我观察到,通过CAN总线发送数据至少需要120-140微秒的延迟。

我  是在下面计算的

CAN总线,MCU时钟速度为200 MHz。

最大比特率为100万 // 1000Kbps。


每个帧共有131个(大约 )位,包括64位数据。


因此,100万 /131 = 7633帧可 在1秒内通过CAN发送


因此,发送1帧需要1秒/7633 = 131微秒。

----------------------------------

如果我每30微秒发送10次,那么我几乎没有在另一个主板上收到2或3个数据包。

我有没有办法每隔30微秒通过CAN总线发送一次数据?

示例代码:

(;;)

CAN_SEND (,,);

延迟(30); //我每隔30微秒发送一次数据。

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    发送2.8379万发送之间需要的最小延迟是什么。

    没有"最小延迟"。您可以背对背地发送帧。 需要记住的重要一点是,帧的传输只能在前一帧的传输完成后开始。

    那么2000那么1109.0786万1帧2.8379万帧需要1秒/7633=131微秒的时间才能发送。

    这只是一种近似的情况。 确切的位数从不是恒定的。 它将会改变,因为物料位数将根据传输的数据而改变。 我最多可以容纳145人。

    如果2000如果我109.0786万我每2.8379万每30微秒发送10次,那么我几乎不会在其它主板上收到2或3个数据包。

    我不理解如何每30秒传输一个帧,每帧至少需要131秒才能完成传输。

    变速器之间的持续延迟是不正确的。 在启动下一个传输之前,您需要确保之前的传输已完成。