北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8634966

CAN总线通信之详解数据帧(Data Frame)

前面的文章我们对CAN总线进行了概括性的介绍,讲解了CAN总线在汽车通信中的应用,今天这篇文章深入探讨CAN总线通信——介绍下CAN通信的数据帧(Data Frame)。

cover.jpgCAN总线以“帧(Frame)”形式进行通信。“数据帧(Data Frame)”,顾名思义,是用来传输数据的。CAN总线的数据帧有标准格式(Standard Format)和扩展格式(Extended Format)的区分,标准帧的格式如下图:

stand_data_frame2.png

数据帧可以分为七段:帧起始、仲裁段、控制段、数据段、循环冗余校验段、确认段和帧结束。其中的“段”也被称为“域”,比如仲裁域、控制域、数据域、循环冗余校验域、确认域。

下面来详细介绍一下:

1)帧起始(Start Of Frame-SOF): 1bit,显性信号(逻辑0),表示数据帧(或远程帧)的开始。

2)仲裁段(Arbitration Field):包括两部分:标识符位(Identifier field-ID)和远程发送请求位(Remote Transfer Request-RTR)。

  • 标识符位,是一个功能性的地址(Functional address),CAN接收器通过标识符来过滤数据帧。标准格式的数据帧的标识符(CAN-ID)长度为11位(11 bits),ID10~ID0,ID10为最高权重位(MSB),ID0为最低权重位(LSB),按照ID10~ID0的顺序进行传输。CAN协议还规定:前7位最高权重位(ID10~ID4)不能都为“隐性”信号。

  • 远程发送请求位,简称“RTR”,1 bit。虽然这个位的名字很长,但它的功能很简单,用于区分该帧是数据帧还是远程帧:“显性信号(逻辑0)”代表数据帧(Data Frame);“隐性信号(逻辑1)”代表远程帧(Remote Frame)。

3)控制段(Control Field:包括6个位(6 bits),分别是扩展标识符位(Identifier Extension bit-IDE,1 bit);保留位0(Reseved bit0-r0,1 bit);数据长度编码位(Data Length Code-DLC,4 bits),如下图:

control_field.png

  • 扩展标识符位(IDE),用来表示该帧是标准格式还是扩展格式;

  • 保留位0(r0),保留,以后使用;

  • 数据长度编码位(DLC),4位(4 bits),包括DLC3~DLC0,表示该帧实际发送的数据的长度(以字节为单位);DLC的编码规则如下:

DLC.png

其中“d”表示显性信号;“r”表示隐性信号;

4) 数据段(Data Field:发送数据的内容,最多8个字节。数据段与DLC的对应关系如下图:

DLC_Data.png

5)循环冗余校验段(CRC Field:包括循环校验序列(CRC Sequence)和界定符(Delimiter,DEL):

  • 循环校验序列(CRC Sequence),15 bits,用于校验传输是否正确;

  • 界定符(DEL),1 bit,隐性信号,表示循环校验序列的结束;

6) 确认段(ACK Field):包括确认位(ACK SLOT)和界定符(Delimiter,DEL),表示确认是否正常接收。

  • 确认位(ACK),1 bit,节点收到正确的CRC序列时,发送端的ACK位被置位;

  • 界定符(DEL),1 bit,隐性信号;

7) 帧结束(End of Frame-EOF):7位(7 bits),隐性信号,表示帧的结束


以上是标准格式的数据帧,下面来看看扩展格式与标准格式有哪些不同,先看看下面这张图:

stand_extanded.png

仲裁段与控制段有所不同:

1)仲裁段(Arbitration Field)扩展格式的仲裁段包括五个部分:

  • 基本标识符位(Base identifier-Base ID),11 bits,与标准格式的标识符相同;

  • 替代远程请求位(Substitute Remote Request Bit,SRR),1  bit,隐性信号;

  • 扩展位(Identifier Extension bit,IDE),1 bit,标识扩展帧还是标准帧;

  • 扩展标识ID位(Extended Identifier, Extended ID),18 bits,存放扩展标识ID;

  • 远程发送请求位(Remote Transmission Request,RTR),1 bit,数据帧中为显性信号,远程帧中为隐性信号;

2)控制段(Control Field):6 bits,与标准帧不同的是:用保留1(r1)取代了标准帧的IDE,r0和DLC是一样的;也就是说,扩展帧有两个保留位r1 和r0,这两个保留位均需要发送显性信号;

好了,关于CAN总线通信的数据帧就先介绍到这里了,相关参考文章:

为什么汽车电控单元间会选择使用CAN总线进行通信?


CAN总线通信之详解数据帧(Data Frame)

来源:本站|   大小:272 KB|   下载次数:216次

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论