CAN总线通信协议实例社会应用中的错误检测机制
在社会的各个方面,CAN总线通信协议实例以其高性能和可靠性被广泛应用。汽车产业是其中最为典型的例子,因为对安全性、舒适性、方便性、低公害以及低成本的要求使得各种电子控制系统得到了开发。这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,因此多条总线构成的情况很多,线束的数量也随之增加。为了适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,CAN总线应运而生。
CAN总线作为一种可靠性非常高的总线,其出错概率非常小,这也是它被广泛应用的原因之一。在实际研发中,工程师更关注的是如何检测和处理可能出现的问题。在本文中,我们将详细介绍CAN总线错误检测机制,并展示常见错误示例,如图3到图7所示。
每种错误都有其特定的形式和关系,以及检测与校验原理。可以将它们分为位错误、位填充错误、CRC错误、格式错误和应答错误五大类,每类具体解释如图8所示。此外,还会讨论主动误差和被动误差,以及节点状态转换关系如图9所示。
为了避免某些设备因为自身原因而不断地破坏数据帧,从而影响其他正常节点通讯,CAN-bus规范中规定了发送计数器和接收计数器,并根据计数值不同节点会处于不同的状态。这一过程涉及到位流处理器(BSP)、位时序逻辑(BTL)以及误差管理逻辑(EML),如图10所示。
最后,本文还将介绍如何使用CANscope分析仪来测试网络通讯正确性、可靠性以及合理性,如图12所示。这款工具集成了海量存储示波器等功能,是进行全方位评估并快速定位故障节点必备工具。