CAN中的错误活动节点和错误被动节点有什么区别?

问题描述 投票:0回答:1

我理解CAN中TEC和REC计数器的概念。我想知道的是错误活动节点在检测到错误时是否会发送活动错误帧?

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

此外,当其他节点检测到节点正在发送活动错误帧时,它们是否会自动发送被动错误帧?这些节点可以称为错误被动节点吗?

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

embedded can-bus
1个回答
2
投票

是的,它将停止发送具有显性位序列的所谓主动错误帧,并切换到隐性。其他节点不会响应,但会增加其REC计数器。一旦发送了活动错误帧,总线仲裁就像往常一样重新启动,优先级最高的帧获胜。

引用article from CAN-CiA

故障限制

CAN数据链路层以非常高的概率检测所有通信错误。检测到错误条件的节点发送错误标志并丢弃当前发送的帧。接收错误标志的所有节点也会丢弃该消息。在本地故障的情况下,所有其他节点识别由检测到它并且自己第二次发送的节点发送的错误帧,这导致最终重叠的错误帧。有效错误帧由六个显性位和一个8位隐性定界符组成,后跟IMF。这种本地错误全球化方法保证了网络范围内的数据一致性,这是分布式控制系

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

如果其中一个计数器达到127,则节点转换为错误被动状态。在这种状态下,节点发送由六个隐性位组成的无源错误标志。该标志被发送节点的显性位覆盖。这意味着错误被动节点无法通知其他节点有关错误接收的帧。从系统的角度来看,这是一个危急的情况。如果发送节点永久地产生错误标志,则这也将延迟并且在最坏情况下(高优先级消息)阻止另一通信。因此,如果TEC达到256,则节点被强制进入总线关闭状态。在总线关闭状态下,节点仅传输隐性位级。要转换到错误活动状态,需要两个条件:复位和128 x 11位的出现。这意味着其余节点能够在总线关闭中的节点恢复之前传输128个数据帧,并将其自身再次集成为网络中的错误活动节点。

© www.soinside.com 2019 - 2024. All rights reserved.