众所周知,在CAN总线上短路CAN_High和CAN_Low会导致总线关闭。
就物理层而言,这种状况是如何导致公交车停驶的呢?
发布于 2014-04-19 19:53:36
CAN是一种差分协议。这意味着0或1(是具体的、显性的和隐性的)是根据CANH和CANL线路上电压的差异来决定的。
当你缩短这两条线路,就不会有任何电压差异,这是在电压范围内的隐性位。换句话说,缩短两条线路将被认为是隐性比特的连续传输。
当您传输6个或多个连续的隐性位时,它被视为错误!
当错误计数超过255时,CAN控制器进入BUS_OFF状态。
由于行短,将有更多的隐性比特和错误计数将达到255在任何时间,这将导致BUS_OFF。
CAN协议确实有一个“总线恢复机制”,在其中它将等待连续11位隐性比特128次(当总线短路时会等待),但是同样的错误帧也会发生,并且它将返回到BUS_OFF中。
这个循环还会继续!
https://stackoverflow.com/questions/23157033
复制相似问题