Other Parts Discussed in Thread: HALCOGEN
主题中讨论的其他器件: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.
Other Parts Discussed in Thread: HALCOGEN
您好!
我一直在进行 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;//下一个块...*/
}