can中的错误活动节点和错误被动节点之间有什么区别



我了解can中TEC和REC计数器的概念。错误活动节点在检测到错误时会发送主动错误帧吗?

一旦TEC计数高于127,则错误活动节点将成为错误被动。这是否意味着它将开始传输被动错误帧?

另外,当其他节点检测到节点正在传输活动误差帧时,它们会自动传输被动误差帧吗?这些节点可以称为错误被动节点吗?

这是我的困惑,需要清晰。

是的,它将停止发送具有主要位序列的所谓活动错误帧,然后切换为隐性。其他节点不会响应,但会增加其rec计数器。一旦发送了主动错误框架,总线仲裁照常重新启动,优先级框架获胜。

引用Can-Cia的文章:

故障限制

CAN数据链路层以很高的概率检测所有通信错误。检测错误条件的节点会发送错误标志并丢弃当前发射的帧。所有收到错误标志的节点也丢弃了该消息。如果发生局部故障,所有其他节点都会识别出检测到它并自行发送的节点发送的错误框架,从而导致最终重叠的错误帧。主动误差框架由六个主要位和一个8位隐性定界线制成,然后是IMF。这种本地错误全球化方法保证了整个网络数据一致性,这是分布式控制系统中的重要功能。

如果所有错误都以很高的概率检测到,则永久错误可能导致传输消息的延迟延迟。在最坏的情况下,所有通信都通过错误框架中止。为了避免这种情况,CAN协议引入了两个错误计数器:一个用于接收消息(REC),另一个用于传输消息(TEC)。根据ISO 11898-1(CAN数据链路层协议的标准)中规定的规则,它们的增加和减少。

如果其中一个计数器达到127,则节点将转移到错误的被动状态。在这种状态下,节点传输由六个隐性位制成的被动错误标志。该标志被传输节点的主要位覆盖。这意味着一个错误被动节点无法将其他节点告知错误接收到的帧。从系统的角度来看,这是一个关键情况。如果传输节点永久产生错误标志,则这也会延迟,并且在最坏的情况下(高优先消息)阻止了另一个通信。因此,如果TEC达到256,则将节点被迫进入公交状态。在总线状态下,节点传输仅隐性位级。要运输到误差,活动状态需要两个条件:重置和128乘11位时间的发生。这意味着其余节点能够在总线上的节点恢复并将其作为错误活动节点集成到网络之前传输128个数据帧。