Embedded 从CAN总线关闭状态恢复

Embedded 从CAN总线关闭状态恢复,embedded,can-bus,Embedded,Can Bus,在CAN网络中。如果节点断开总线,它必须等待11个连续隐性位的128次出现。所以我的问题是为什么只有11个隐性位,有没有具体的理由遵循这个标准 数据帧: 11位=1位ACK分隔符+7帧结束+3个IFS 错误帧: 11位=8个错误分隔符+3个IFS 因此,这意味着您需要等待: 128次成功的数据帧或错误帧 或者仅仅是11个连续隐性位的128次出现 从公共汽车上恢复过来 最好的情况是在空闲状态(当总线状态为隐性时),假设波特率为1Mb/s(因此1位时间为1us),您需要总共等待128*11*1u

在CAN网络中。如果节点断开总线,它必须等待11个连续隐性位的128次出现。所以我的问题是为什么只有11个隐性位,有没有具体的理由遵循这个标准

数据帧

11位=1位ACK分隔符+7帧结束+3个IFS

错误帧:

11位=8个错误分隔符+3个IFS

因此,这意味着您需要等待:

  • 128次成功的数据帧或错误帧
  • 或者仅仅是11个连续隐性位的128次出现
从公共汽车上恢复过来


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

数据帧:

11位=1位ACK分隔符+7帧结束+3个IFS

错误帧:

11位=8个错误分隔符+3个IFS

因此,这意味着您需要等待:

  • 128次成功的数据帧或错误帧
  • 或者仅仅是11个连续隐性位的128次出现
从公共汽车上恢复过来


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

当REC值达到256时,进入总线关闭状态,以便从128乘以11隐性位需要发送的数据中恢复,128是256的一半,它将进入活动故障状态。

当REC值达到256时,进入总线关闭状态,以便从128乘以11的隐性位恢复,128是256的一半,它将进入活动故障状态。

谢谢。我还有一个疑问,CAN节点应该成功地接收到128次上述帧才能从总线断开状态恢复。我的问题是,有没有具体的理由保留128次@Nik@Arun这是经验练习,他们发现128次就足够了。实际上,人们不使用此规则从总线关闭恢复,大多数Can控制器允许使用来实现您自己的规则(如等待40毫秒恢复)。谢谢@Nik。他们将在平均时间内做什么,他们将只是等待或任何恢复机制,他们将遵循?如果他们只是等待,这意味着同样的问题会再次出现,那么有什么必要等待,而不是停止其他消息的传输以等待恢复时间。@Arun他们将只是等待,过了这段时间后,他们会尝试返回巴士。如果错误持续发生,他们将需要一种机制来报告错误,例如:在Autosar中,他们尝试进行快速恢复和慢速恢复,如果仍然总线断开,他们将其报告给错误管理模块。请参阅7.7,谢谢。我还有一个疑问,CAN节点应该成功地接收到128次上述帧才能从总线断开状态恢复。我的问题是,有没有具体的理由保留128次@Nik@Arun这是经验练习,他们发现128次就足够了。实际上,人们不使用此规则从总线关闭恢复,大多数Can控制器允许使用来实现您自己的规则(如等待40毫秒恢复)。谢谢@Nik。他们将在平均时间内做什么,他们将只是等待或任何恢复机制,他们将遵循?如果他们只是等待,这意味着同样的问题会再次出现,那么有什么必要等待,而不是停止其他消息的传输以等待恢复时间。@Arun他们将只是等待,过了这段时间后,他们会尝试返回巴士。如果错误持续发生,他们将需要一种机制来报告错误,例如:在Autosar中,他们尝试进行快速恢复和慢速恢复,如果仍然总线断开,他们将其报告给错误管理模块。参见第7.7节