0
点赞
收藏
分享

微信扫一扫

can bus off解释

总线空闲的时候, 他是recessive电平,canH 和canL之间电压差等于0.

bus off的时候, can控制器 会去检查连续11个bit,如果都是recessive,那么内部计数器加1.等加到了127的时候, bus off 就会恢复。  


这个条件很好满足:

case 1: 只要空闲的时候,上面没有节点发数据,那么都是recessive电平, 很快就可以恢复。

case 2: can帧的结构: 在EOF帧尾(连续7个recessive bit)之后, 还需要有interframe space 。  这个interframe space iso11898规定它是连续的3个recessive bit.

     can帧的最后是ack slot,它有两个bit。  ackSlot[0]是接收bit, ackSlot[1]是ack间隔符。 这个间隔符就是recessive bit.

   因此1个位ackSlot[1], 加上 7个位的EOF, 加上3个位的interframe space, 这样就是11bit了。

  当总线上有节点发送报文的时候, 那么就会出现11个连续 recessive bit. 只要出现了128帧报文。 那么就可以被 bus off节点接收到。


busoff的时候,mcu该如何去恢复?

有寄存器可以看到busoff, 最简单的,重新初始化can控制器, 这个节省时间, 也不用关心busoff中断。 

举报

相关推荐

0 条评论