转载:一文解析CAN总线远程帧和错误帧

时间:2024-05-31 08:15:26

本文主要介绍了CAN总线远程帧和错误帧,首先我们先来了解了解一下通讯时使用的帧类型有哪些,他们的作用又是什么,具体的跟随小编一起来了解一下吧。

  通讯时使用下面5个类型的帧

  1、数据帧

  2、遥控帧

  3、错误帧

  4、过载帧

  5、帧间空隙

  在所有这些帧中,数据帧和遥控帧由用户设置,而其它帧则由CAN硬件设置。 数据和遥控帧有两种格式:标准和扩展格式。标准格式有11bit的ID,而扩展格式则是29bit的ID。以下是各个帧的作用。

  转载:一文解析CAN总线远程帧和错误帧

  CAN总线远程帧和错误帧

  一、远程帧

  通常,数据传输是由数据源节点(例如,传感器发出数据帧)自主完成的。但也可能存在目标节点向源节点请求发送数据的情况。要做到这一点,目标节点需发送一个远程帧,其中的标识符应与所需数据帧的标识符相匹配。随后,相应的数据源节点会发送一个数据帧以响应远程帧请求。远程帧与数据帧存在两点不同:

  1)远程帧的RTR 位为隐性状态;

  2)远程帧没有数据字段。

  当带有相同标识符的数据帧和远程帧同时发出时,数据帧将赢得仲裁,因为其标识符后面的RTR 位为显性。这样,可使发送远程帧的节点立即收到所需数据。

  转载:一文解析CAN总线远程帧和错误帧

  转载:一文解析CAN总线远程帧和错误帧

  二、错误帧

  这个帧用来通知在传输期间发生了一个错误,错误帧由一个错误标志和一个错误定界符组成,错误帧由CAN的硬件来发送。图24显示了错误帧的结构。

  (1) 错误标志:有2种错误标志类型:主动错误和被动错误标志

  a)主动错误标志:6个显性位

  b) 被动错误标志:6个隐性位

  (2) 错误定界符:由8个隐性位组成。

  转载:一文解析CAN总线远程帧和错误帧

  注1:错误标志重叠:取决于连接到总线上的各单元检测出错误的时间,错误标志可能一个重叠在另一个上,总共可达12bit长度。

  注2:主动错误标志:处于主动错误状态的单元检测出错误时输出的错误标志。

  注3:被动错误标志:处于被动错误状态的单元检测出错误时输出的错误标志。

  主动错误

  当错误主动节点检测到一个总线错误时,这个节点将产生一个主动错误标志来中断当前的报文发送。主动错误标志由6 个连续的显性位构成。这种位序列主动打破了位填充规则。所有其他节点在识别到所生成的位填充错误后,会自行产生错误帧,称为错误反射标志。错误标志字段因此包含6 到12 个连续显性位(由1 个或多个节点产生)。错误定界字段(8 个隐性位)为错误帧划上句号。在错误帧发送完毕后,总线主动恢复正常状态,被中断的节点会尝试重新发送被中止的报文。

  转载:一文解析CAN总线远程帧和错误帧

  被动错误

  当错误被动节点检测到一个总线错误时,该节点将发送一个被动错误标志,并紧接着发送错误定界字段。错误被动标志由6 个连续的隐性位构成,而错误被动节点发出的错误帧包含14 个隐性位。由此可知,除非总线错误被错误主动节点或正在发送报文的节点检测到,否则由于错误被动标志不会影响总线运行,将继续发送报文。如果发送节点产生一个错误被动标志,那么,由于位填充规则被打破,将导致其他节点产生错误帧。错误帧发送完毕后,错误被动节点必须等待总线上出现6 个连续隐性位后,才能尝试重新参与总线通讯。错误定界符由8 个隐性位组成,允许总线节点在错误发生后重新启动总线通讯。

  转载:一文解析CAN总线远程帧和错误帧

  错误帧的输出时序

  检测到发生错误的单元输出一个错误标志,以通知其它单元。

  处于主动错误状态的单元输出的错误标志为主动错误标志;处于被动错误状态的单元输出的错误标志为被动错误标志。

  发送单元发送完错误帧之后,将再次发送数据帧或遥控帧。