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.

[参考译文] TMS570LS0232:CAN:大于8字节的消息

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1190094/tms570ls0232-can-messages-greater-than-8-bytes

器件型号:TMS570LS0232
主题中讨论的其他器件:HALCOGEN

您好!

我一直在进行 CAN 通信。 我想通过 CAN 发送数据、但数据大于8字节。

J1939文件指出"长度大于8字节的消息太大、无法放入单个 CAN 数据帧。 因此,必须打破它们
几个较小的数据包中、而这些数据包在单独的 CAN 数据帧中传输"。 那么、我如何才能将我的消息分解成多个数据包。 您能提供一个示例代码。

谢谢你。
此致。

Zeynep

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

    您好、 Zeynep、

    请参阅 HALCoGen->help->examples 或--> Help topics/examples 下的示例

    e2e.ti.com/.../example_5F00_canIntCommunication.c

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

    您好!

    感谢您的回答、但这不是我想要的。  

    我需要发送大小大于8字节的消息。 我将通过 CAN 发送这些消息。 每个数据字节都意味着不同的东西。 例如、4个字节将是我将用于分配给变量的值。 我将使用它来选择读取/写入2字节值等命令。此外、还需要一个8字节地址值来确定要分配的地址。 所有这一切都超过了8字节的消息大小。 正如我在第一个问题中提到的、我需要将 CAN 帧拆分为几个部分。 但是、我不明白如何精确地执行此操作。 我希望能够解释我的问题。

    关于 CAN 帧和 CAN TP: www.linkedin.com/.../can-tp-iso-15765-2-vivek-maurya

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

    CAN 帧的数据字段最多可以包含8个字节。 正如您在第一封邮件中提到的、对于任何大于8字节的邮件、您必须将邮件分成几个较小的帧。  

    HALCOGen 帮助中的示例是发送大于8字节的消息。  

    它每次传输8个字节:

    for (cnnt=0;<D_COUNT;cnt++)

    canTransmit (canREG1、canMESSAGE_BOX1、TX_PTR);//传输8个不同的数据块1 x 1 */
    while (TX_DONE =0){};/*…… 等待发送请求通过*/
    TX_DONE = 0;
    TX_PTR +=8;//下一个块...*/