CAN网络的三种工作状态
近海
|
2019.12.30
|
0
+关注

为了更好地管理CAN网络,增强网络可靠性,CAN协议规定网络内的每个节点有三种工作状态,且这三种工作状态在满足条件的情况下可以互相转化。本文就来分析一下这三种工作状态的定义、动作权限和转化条件,以帮助大家更好地理解CAN总线网络。

CAN协议规定网络中的每个节点可以处于三种工作状态:主动错误状态、被动错误状态和总线关闭状态。下图所示为三种工作状态之间的关系。

(1)REC:接收错误计数器。当节点检测到接收错误时,REC值增加;当节点正确接收数据帧时,REC值减少。

(2)TEC:发送错误计数器。当节点检测到发送错误时,TEC值增加;当节点正确发送数据帧时,TEC值减少。

(3)REC、TEC的数值会引起节点工作状态的改变。节点复位时两者的值均清零。

1. 主动错误状态

节点初始化后首先进入主动错误状态,此时REC和TEC的值都是零。

当节点的REC计数值≤127并且TEC计数值≤127时,节点处于主动错误状态。

处于主动错误状态的节点能够正常参与总线通信。当检测到错误时将发送主动错误标志,错误标志由6个连续的显性位组成,以此来通知其它节点总线上出现错误。

当节点的REC计数值大于127或者TEC的计数值大于127时,节点进入被动错误状态。

2. 被动错误状态

当节点REC计数值大于127或者TEC的计数值大于127时,节点处于被动错误状态。

处于被动错误状态的节点能够正常参与总线通信。当检测到错误时将发送被动错误标志,错误标志由6个连续的隐性位组成。当发送结束后,处于被动错误状态的节点在下一次发送之前需要等待一些额外时间。

当节点的REC计数值≤127并且TEC计数值≤127时,节点进入主动错误状态;当TEC的计数值大于255时,节点进入关闭状态。

3. 关闭状态

当节点TEC计数值大于255,节点进入关闭状态,不能发送或接收。

处于关闭状态的节点不允许对总线产生任何影响,此时节点既不会发送任何报文也不会发送ACK应答、错误帧、过载帧等,节点处于离线状态,保证错误节点不会影响其它节点之间的通信。

当节点复位或者连续检测到128次11位连续隐性位时,节点进入主动错误状态。

4. 特例

最后为大家介绍一个特例。如果CAN总线上只有1个节点,该节点发送数据帧后得不到应答,那么节点TEC最大只能计数到128,即节点只能进入被动错误状态而不会进入关闭状态。

总结

以上介绍了CAN网络节点的三种工作状态,包括每种状态的定义、节点的工作权限以及三种状态之间的转化条件,最后介绍了CAN总线上只有1个节点情况下的节点状态。希望通过本文的介绍,能帮助您更好地理解CAN节点的工作状态以及CAN网络的管理机制,设计出更加可靠的CAN总线网络。

精选留言
延伸阅读
更多报告干货
写留言
3545
阅读
收藏
回到顶部