主题中讨论的其他器件:HALCOGEN
您好!
我一直在进行 CAN 通信。 我想通过 CAN 发送数据、但数据大于8字节。
J1939文件指出"长度大于8字节的消息太大、无法放入单个 CAN 数据帧。 因此,必须打破它们
几个较小的数据包中、而这些数据包在单独的 CAN 数据帧中传输"。 那么、我如何才能将我的消息分解成多个数据包。 您能提供一个示例代码。
谢谢你。
此致。
Zeynep
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.
您好!
我一直在进行 CAN 通信。 我想通过 CAN 发送数据、但数据大于8字节。
J1939文件指出"长度大于8字节的消息太大、无法放入单个 CAN 数据帧。 因此,必须打破它们
几个较小的数据包中、而这些数据包在单独的 CAN 数据帧中传输"。 那么、我如何才能将我的消息分解成多个数据包。 您能提供一个示例代码。
谢谢你。
此致。
Zeynep
您好、 Zeynep、
请参阅 HALCoGen->help->examples 或--> Help topics/examples 下的示例
您好!
感谢您的回答、但这不是我想要的。
我需要发送大小大于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;//下一个块...*/
}