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.

[参考译文] TMS570LC4357:CAN 持续传输期间会发生数据包丢失

Guru**** 2471610 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1023694/tms570lc4357-packet-loss-occurs-during-can-continuous-transmission

器件型号:TMS570LC4357

尊敬的团队:

客户使用 CAN1的回送功能(由邮箱1发送、由邮箱2接收)。 CAN 的正常发送和接收中断没有问题。

客户希望发送24个字节(分为3个部分)。 使用 CAN1的邮箱1发送3次、中间延迟为100us

当前的问题是、第一次发送的数据和第三次发送的数据可以被中断和接收、但第二次发送的数据不能被中断、从而导致第二次发送的数据丢失。

 第二 次 (发送)的数据:

客户尝试增加三组数据之间的间隔。 当它增加到1ms 时、发现可以接收到数据、但仍然会丢失数据包。 平均每4次丢失1个数据包。

因此 、客户再次增加了三组数据之间的间隔、但将其增加到2ms 时、数据可以正常接收、不会丢失数据包、但发送一帧(即三组数据)的时间达到大约4ms

问题: 如何在不丢失数据包的情况下缩短一帧数据(三组数据)的传输时间。 最好将三组数据的传输时间控制在大约1ms

PS:开发板已使用外部 CAN 收发器(CAN1发送、CAN2接收)进行测试、传输速率更改为1M。 问题与上述描述完全相同。 CAN 配置参数如下:

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

    应发送第二条消息、直到第一条消息成功传输。 您可以使用 TX 中断来决定何时传输第2条消息。  

    丢失的封装是否会在接收器侧产生中断? 如果未读出第3个包、则可能会被第4个包覆盖。 您是否会为您的4条消息使用不同的消息 ID 来检查是否已收到所有消息。