当前CAN总线通讯技术已经运用于各行各业之中,基本是每个总线设计工程师必学的一个通讯网络。但什么是CAN通讯中的错误帧,很多人还是处于只知其名,不知其所以然的状态,也因此造成许多工程师在明知总线通讯出现问题却束手无策的困扰。
一、错误标定
检测到错误条件的站通过发送错误标志指示错误。对于“错误主动”的节点,错误信息为“主动错误标志”,对于“错误被动”的节点,错误信息为“被动错误标志”。站检测到无论是位错误、填充错误、形式错误,还是应答错误,这个站会在下一位时发出错误标志信息。
只要检测到的错误的条件是CRC错误,错误标志的发送开始于ACK界定符之后的位(其他的错误条件除外)。如图1所示:
二、故障界定
至于故障界定,单元的状态可能为以下三种之一:“错误主动”、“错误被动”、“总线关闭”。
1、“错误主动”的单元可以正常地参与总线通讯并在错误被检测到时发出主动错误标志。
2、“错误被动”的单元不允许发送主动错误标志。“错误被动”的单元参与总线通讯,在错误被检测到时只发出被动错误标志。而且,发送以后,“错误被动”单元将在初始化下一个发送之前处于等待状态。(见“挂起发送”)
3、“总线关闭”的单元不允许在总线上有任何的影响(比如,关闭输出驱动器)。
三个转态的转换方式如图2所示: