CAN总线错误检测机制在社会应用中的实现与挑战

  • 科研动态
  • 2024年12月21日
  • 在社会的各个领域,CAN总线通信接口协议因其高性能和可靠性而被广泛应用。为了满足对安全性、舒适性、方便性、低公害和低成本的需求,汽车行业中发展了多种电子控制系统。这些系统之间通信所需数据类型及对可靠性的要求不同,因此通常采用多条总线构成,以减少线束数量并实现高速数据传输。图1展示了CAN总线在汽车中的应用场景。 图1:汽车中CAN总线的应用 除了汽车工业,CAN总线也被用于工业自动化、船舶

CAN总线错误检测机制在社会应用中的实现与挑战

在社会的各个领域,CAN总线通信接口协议因其高性能和可靠性而被广泛应用。为了满足对安全性、舒适性、方便性、低公害和低成本的需求,汽车行业中发展了多种电子控制系统。这些系统之间通信所需数据类型及对可靠性的要求不同,因此通常采用多条总线构成,以减少线束数量并实现高速数据传输。图1展示了CAN总线在汽车中的应用场景。

图1:汽车中CAN总线的应用

除了汽车工业,CAN总线也被用于工业自动化、船舶、医疗设备和其他需要分布式控制系统的地方。由于其高性能和可靠性,它已被广泛认同并得到了工业自动化领域技术发展热点之一的地位,被誉为自动化领域的计算机局域网网络,如图2所示。

图2:CAN总线网络结构

然而,在实际应用中,工程师更关注的是如何检测和处理错误帧。在进行错误检测时,我们可以通过分析波形来识别常见的几类错误,如干扰导致的通讯错误(如图3)、终端电阻过小导致差分电平幅值太小引起接收节点识别失败(如图4)、总线支路过长造成位宽度失调(如图5)等。

每一类错误都有其特定的原因以及可能产生的问题,这些问题如果不加以解决,将会严重影响整个系统的稳定运行。此外,还有可能出现卡车打开或关闭大灯时产生的干扰(如图6),或者波特率异常引起位宽度变化(如图7)等情况。

对于这些问题,我们需要了解每种类型及其间关系,以及它们是如何通过检测与校验机制得到解决。在实际操作中,可以将所有这些错误分类为五大类,每一类都有其独特之处,如表8所示,该表清晰地展示了各种类型与描述:

表8:CAN 总线上的不同类型错误

主动与被动错误是两种主要形式,其中主动故障涉及发送者直接报告故障,而被动则由接受者报告。这两种方法都是为了确保即使某个节点无法正常工作,也能通知其他节点发生了问题,并相应调整状态。

为了避免单个设备因为自身损坏而不断破坏数据帧,从而影响其他正常节点通讯,CAN-bus规范规定每个节点都应该具有一个发送计数器和一个接收计数器。当计数达到一定阈值时,节点会根据不同的状态转换关系进行调整,如表示于下面的状态转换流程:

此外,还有一些特殊情况,比如当从主动或过载标志开始连续14次显性位后,每发现8次隐形位增加计数器;当检测到连续11次隐形位时,则将计数器归零。如果某一侧未响应,即认为该侧已经关闭,那么它将重新开始统计过程。而对于正确接收或发送完成的情况,如果计数器没有超过127,则递减否则保持不变;如果不是来自本身发出的信号且未达最大次数,则递减否则保持不变;只有在完全关闭的情况下才会归零至初始条件0-0-0-0-0-00000 00111110.

最后,对于保证数据传输可靠性的措施,可以上述提到的两项检查—— 位流检测以及CRC校验——它们分别负责监控信息完整性以及同步合法性的验证。在执行这两个检查之前必须先确认信号是否有效,并确保任何时候信号不会超出预设范围以防止误判。此外,由于内置循环冗余校验码(CRC)设计,使得未经CRC检验后的故障概率远低于10^-9,因此提供了一套强大的保护机制来防止误报事件。

当然,在进行开发测试的时候,可以使用专业工具比如 CANscope 来帮助用户快速定位故障点并解决各种问题。这款工具集成了海量存储示波器、网络分析仪、误码率分析仪及协议分析仪等功能,为开发人员提供全方位评估能力,同时还能够帮助用户找到解决方案,是当前最完善的一款工具。

猜你喜欢