CAN总线故障界定的目标是实现数据传输系统即使在节点发生故障的情况下也能维持很高的可用性。
因此故障界定策略必须证明在以下2个方面是可靠的:
区分短期故障和永久性故障;
找到并断开故障节点。
故障界定策略是每个节点都配备有一个发送错误接收器及一个接收错误接收器,前者记录发送帧期间发生的错误数目,后者则记录接收帧期间发生的错误数目。
1、错误状态的种类
对故障界定而言,CAN节点根据错误计数结果的不同,可以处于下列3种状态之:主动错误状态、被动错误状态和总线关闭态。
1、主动错误状态
主动错误状态是可以正常参加总线通信的状态。处于主动错误状态的单元检测出错误时,输出主动错误标志。
2、被动错误状态
被动错误状态是易引起错误的状态。
处于被动错误状态的单元虽能参加总线通信,但为不妨碍其它单元通信,接收时不能积极地发送错误通知。
处于被动错误状态的单元即使检测出错误,而其它处于主动错误状态的单元如果没发现错误,整个总线也被认为是没有错误的。
处于被动错误状态的单元检测出错误时,输出被动错误标志。
另外,处于被动错误状态的单元在发送结束后不能马上再次开始发送。在开始下次发送前,在间隔帧期间内必须插入“延迟传送”(8 个位的隐性位)。
3、总线关闭态
总线关闭态是不能参加总线上通信的状态。信息的接收和发送均被禁止。
这些状态依靠发送错误计数和接收错误计数来管理,根据计数值决定进入何种状态。错误状态和计数值的关系如下表和图所示:
2、故障界定规则
发送错误计数值和接收错误计数值根据一定的条件发生变化。错误计数器在错误标志的第一个位出现的时间点上开始计数。一次数据的接收和发送可能同时满足多个条件。
错误计数值的变动条件如下表所示: