Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Embedded CAN中的错误主动节点和错误被动节点之间有什么区别?_Embedded_Can Bus - Fatal编程技术网

Embedded CAN中的错误主动节点和错误被动节点之间有什么区别?

Embedded CAN中的错误主动节点和错误被动节点之间有什么区别?,embedded,can-bus,Embedded,Can Bus,我了解CAN中TEC和REC计数器的概念。当检测到错误时,错误活动节点是否会发送活动错误帧 一旦TEC计数高于127,则错误主动节点将变为错误被动节点。这是否意味着它将开始传输被动错误帧 另外,当其他节点检测到某个节点正在传输主动错误帧时,它们是否会自动传输被动错误帧?这些节点可以称为错误被动节点吗 这是我的困惑,需要澄清。是的,它将停止发送带有显性位序列的所谓活动错误帧,并切换到隐性。其他节点不会响应,但会增加其REC计数器。一旦发送了活动的错误帧,总线仲裁将像往常一样重新启动,最高优先级的帧

我了解CAN中TEC和REC计数器的概念。当检测到错误时,错误活动节点是否会发送活动错误帧

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

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


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

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

引述:

故障限制

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

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

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