从 CAN 总线关闭状态恢复

Recovery from CAN Bus-off State

在CAN网络中。如果一个节点进入总线关闭状态,它必须等待 128 次出现 11 个连续的隐性位。所以我的问题是为什么只有 11 个隐性位,是否有任何特定原因要遵循该标准?

数据框:

11 位 = 1 位 ACK 定界符 + 7 帧结束符 + 3 IFS

错误帧:

11 位 = 8 个错误定界符 + 3 个 IFS

所以这意味着您需要等待:

  • 128 次成功的数据帧或错误帧。
  • 或者只是 11 个连续隐性位出现 128 次。

从总线关闭中恢复。

最好的情况是空闲状态(总线状态为隐性状态),假设波特率为1Mb/s(那么1位时间为1us),一共需要等待128*11*1us = 1408us。

当 REC 值达到 256 时进入 BUS OFF 状态,因此要从 128 乘以 11 隐性位恢复需要发送恢复,128 是 256 的一半,它将进入主动故障状态。