在CAN网络中,节点之间通过发送或接收报文来传递信息,而不同类型报文的作用各不相同。本文主要讨论CAN网络中的各种报文在CAN网络中的功能,正是不同报文之间的配合使得CAN网络有序运行。
CAN报文分类
CAN网络中的报文也叫信息帧,共分为五种,分别是数据帧、远程帧、错误帧、过载帧和帧间隔。
1.数据帧
数据帧被用于节点之间交换数据,在CAN协议中有两种数据帧类型2.0A(标准帧)和2.0B(扩展帧),这两种帧的区别在于ID的长度不同。标准帧ID的长度为11位,扩展帧ID长度为29位。
数据帧由7个段组成:帧起始、仲裁场、控制场、数据场、CRC场、ACK场和帧结束,如下图所示为数据帧的结构。
从上图可以看出,帧起始由一个显性位(低电平)组成,发送节点发送帧起始,其它节点利用帧起始信号进行同步。
仲裁段决定了报文优先级大小,报文的ID越小,优先级越高,用来解决CAN总线非破坏性多点竞争问题。每一个CAN节点在发送数据的同时监控总线电平,如果电平不同,则停止发送并进行处理。如果该位位于仲裁段,该节点退出总线竞争;如果位于其它段,则产生错误事件。
控制段表示报文中数据字节的数量,范围0—8字节。
数据段为0—8字节,短帧结构,实时性好,适合汽车和工控领域。
CRC段由15位CRC校验码和CRC界定符组成,用来检查数据传送过程中是否出错。CRC计算中,被除的多项式包括帧的起始域、仲裁域、控制域、数据域及15位为0的解除填充的位流给定。
ACK段为接收应答位,当接收节点接收到的帧起始到CRC段都没错误时,它将在ACK段发送一个显性电平,发送节点发送隐性电平,线与结果为显性电平。
2.远程帧
接受数据的节点可通过发送远程帧请求源节点发送数据。它由6个段组成:帧起始、仲裁段、控制段、校验段、应答段、帧结束。
3.错误帧
节点检测到错误时将向总线发送错误帧。CAN总线共有五种错误帧:
(1)CRC错误:发送与接收的CRC值不同发生该错误;
(2)格式错误:帧格式不合法发生该错误;
(3)应答错误:发送节点在ACK阶段没有收到应答信息发生该错误;
(4)位发送错误:发送节点在发送信息时发现总线电平与发送电平不符发生该错误;
(5)位填充错误:通信线缆上违反通信规则时发生该错误。
4.过载帧
过载帧包含两个段:过载标识段及过载界定符段。下述三种状态将导致过载帧发送。
(1)接收方在接收一帧之前需要过多的时间处理当前的数据(接收尚未准备好);
(2)在帧空隙检测到显性位信号;
(3) 在错误界定符或过载界定符的第8位采样到一个显性位会发送一个过载帧。
5.帧间隔
用来隔离数据帧、远程帧和它们前面的帧,错误帧和过载帧前面不加帧间隔。
帧间隔过后,如果没有节点发送帧,则总线进入空闲状态。
以上介绍了CAN网络中的各种报文类型,包括每种报文的功能、帧结构及报文中每个位的定义,希望能够帮助大家更好地理解CAN网络中报文的概念,能够在设计中更好地利用CAN网络技术。