CAN-bus总线是应用最广泛的现场总线之一,而很多非常熟练的CAN工程师,面对一条CAN报文到底有多少位的问题时,却不能非常准确地回答。今天我们就从最基本的帧格式来解惑一条CAN报文的到底有多少位。
CAN报文帧分为几种呢?CAN-bus通信帧共分为数据帧、远程帧、错误帧、过载帧和帧间隔。而数据帧和远程帧又有标准帧和扩展帧两种。其帧类型以及用途如表 1所示:
表 1 帧类型及用途
Ø 数据帧
数据帧从结构上看分为7段,分别为起始段、仲裁段、控制段、数据段、CRC校验段、ACK应答段、帧结束段。如图1:
图 1 标准数据帧跟扩展数据帧结构图
l 帧起始段:该段由单个显性位构成,在总线空闲时才允许发送,所有节点必须同步于开始发送的数据帧的起始位;
l 标准帧仲裁段:标准帧的仲裁段由11位ID码和一个显性位RTR码组成,RTR码为远程帧标识位;
l 扩展帧仲裁段:扩展帧的仲裁段由29位ID码、一位显性的SRR码、一位隐性的IDE码和一位显性的RTR码组成;
l 标准帧控制段:标准帧的控制段由单位显性的IDE、保留位r0和4位数据长度代码DLC组成,DLC数据段采用BCD编码;
l 扩展帧控制段:扩展帧的控制段由两个保留位r1和r0和4位的DLC数据段组成,r1和r0都为显性填充,接收时无论保留位是显性还是隐性都没有影响;
l 数据段:一个数据段为8个字节;
l CRC校验段:CRC校验段由15位的校验码和1个隐性位填充的CRC界定符组成,CRC校验范围为帧起始、仲裁段、控制段和数据段;</