CAN-BUS 中的位填充

0 can-bus bitstuffing

接收节点 (CAN-BUS) 如何知道位填充不是数据的实际位部分?

检查下面的这个例子。两者都是有效的流,但它们的内容不同:

VALID - 位填充流(我用粗体填充零)

11111 0 10101

VALID - 不是位填充流

11111010101

Xer*_*xiz 7

你误解了填充概念。因为在数据流中填充了额外的位。发送方和接收方根据规则知道,在 5 个 0 或 5 个 1 之后,下一位将是交替填充位并且没有数据。

在 5 个相等的位后填充

11111 0 010101

无馅:

11111010101

因此,具有交替位的消息在总线上会更短,因为不需要额外的填充位。需要填充是因为 CAN 是一个异步总线,它需要每 5 位下降或上升沿用于不同 CAN 控制器之间的时钟重新同步。例如,如果填充在 3 位之后开始,您可以在具有更高容差的不同控制器上使用振荡器。但这会增加填充开销,反之亦然。所以 5 位是一种权衡。