CAN中传输层的机制

时间:2015-03-05 21:35:33

标签: can-bus

CAN中的传输层分段大小大于8Bytes的消息

我的问题是:

- 对于所有类型的消息,是否可以使用一个缓冲区来分段数据,在这种情况下,我们考虑最长的消息并简单地使用缓冲区[MAX_DATA_MESSAGE]?或者我们应该为每条消息使用缓冲区?

- 是否可以在同一个缓冲区中混合传输帧和接收帧?

1 个答案:

答案 0 :(得分:0)

我假设您在CAN中编写传输层时表示ISO-TP。

虽然您只能在同一个(RX-TX CAN ID对)上一次传输一条消息。你可能有不止一对。对于每个这样的对,您将需要一个单独的缓冲区。这些缓冲区的大小应该是您希望从所有支持的消息中看到的最大消息大小,但无论如何您应该检查大小而不仅仅是接受数据并将其复制。

如果你只在RX帧完全接收后构建TX帧,则可以使用相同的RX和TX缓冲区,但我不推荐它,因为这很容易使用相同的缓冲区来完成两个不同的任务