杨福宇专栏|寻找可超车的弯道:伟人讲破字当头,立也在其中了
杨福宇老师多年研究CAN总线在汽车中的应用,文章非常有实用价值,为了方便汽车行业的工程师关注杨老师的研究成果,本公众号特别开设了《杨福宇专栏》,敬请期待更多精彩内容。 Fault-degradation 表示系统出错时性能降级运行,尽量保存可用的功能,维持功能安全。这一概念在CAN开发时就有了,只是后来被更为重视。CAN为了满足性能下降时不是突然的,所以设计了运行的3种状态:主动报错(Erroractive);消极报错(Error passive)和离线(Busoff)。主动报错状态时,主动报错标志(active error flag)是6个D(显位),通过破坏填充位规则,使全体节点都知道,大家同时丢弃这个帧,保证了系统内数据的一致性。消极报错状态时,节点发现的错所发的消极报错标志(passive error flag)是6个R(隐位),报错帧不能通知到其他节点,也就不影响其他节点的正常收发。在离线状态时,节点停止了收发,代表出错太多的节点不会再干扰系统。这3种状态是根据出错计数器的值判断的,节点发现错时根据一定的规则确定出错计数器的增量,正常接收时每次将出错计数器减1,此外还有值的上下限。 但是由于设计上的缺陷,产生了第4种状态,即本文所述的等效离线状态:在一定条件下,节点会处于连续的出错状态,既不能发送,也不能接收其它节点所发的数据帧