0

众所周知,CAN 总线上的 CAN_High 和 CAN_Low 短路会导致总线关闭状态。

对于物理层,这种情况如何导致总线关闭状态?

4

1 回答 1

2

CAN是一种差分协议。这意味着 0 或 1(具体而言,显性和隐性)是根据 CANH 和 CANL 线路上的电压差决定的。

当你短接这两条线时,不会有任何电压差,属于隐性位的电压范围。换句话说,短接两条线将被视为隐性位的连续传输。

当您传输 6 个或更多连续隐性位时,将被视为错误!

当这个错误计数超过 255 时,CAN 控制器进入 BUS_OFF 状态。

随着线路短路,会有更多的隐性位,错误计数将立即达到 255,这将导致 BUS_OFF。

CAN 协议确实有一个“总线恢复机制”,它会等待 11 个连续的隐性位 128 次(当总线短路时它会等待),但同样的错误帧会发生,并且会回到 BUS_OFF。

这个循环将继续!

于 2014-04-19T19:53:36.357 回答