CAN-BUS中的位填充

时间:2015-08-07 14:36:53

标签: can-bus bitstuffing

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

请查看以下示例。两者都是有效的流,但它们有不同的内容:

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

  

11111 0 10101

VALID - 不填充流

  

11111010101

1 个答案:

答案 0 :(得分:4)

你误解了填充概念。 因为数据流中有附加位。 发送方和接收方通过规则知道,在5个零或5个之后,下一个位将是一个交替的填充位而没有数据。

在5个相等位后填充

  

11111 <强> 0 010101

没有填充:

  

11111010101

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