CAN通信数据帧介绍

本文详细介绍了CAN(Controller Area Network)通信中的数据帧结构,包括帧起始、仲裁段、控制段、数据段、CRC段、ACK段和帧结束等七个组成部分。仲裁段根据标准帧和扩展帧的不同来表示数据优先级,控制段定义了数据长度和其他信息,数据段可传递0到8个字节的实际数据,CRC段用于错误检测,ACK段则确认帧的正确接收。每个段都有其特定的功能和格式,确保了CAN总线的可靠通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CAN通信有五个帧,其中最重要的是数据帧!!!!

我们下面开始讨论数据帧

一。数据帧的格式(数据帧有七个段组成)

                             ①,帧起始

                                                           表示数据帧开始的段

                               ,仲裁段

                                                           表示该帧优先级的段

                               ,控制段

                                                           表示数据的字节数及保留位的段

                               ,数据段(一个帧最多可以发送八个字节)

                                                           数据的内容,一帧可发送0~8个字节的数据

                               CRC

                                                           检查帧的传输错误的段

                               ACK

                                                           表示确认正常接收的段

                                ,帧结束

                                                           表示数据帧结束的段

二。数据帧的构成

 

三。数据帧解析

    1.帧起始

                      标准帧和扩展帧都是由1个位的显性电平表示帧起始

 

 

     2.仲裁段  (表示数据优先级的段

                标准帧和扩展帧格式在本段有所区别,区别如图所示

 

  注意:

                                  (1)  ID:高位在前,低位在后

                          (2) 基本ID,禁止高7位都为隐性,即不能:ID=1111111XXXX

                                  (3) RTR,远程请求位。0,数据帧;1, 远程帧

                                  (4) SRR,替代远程请求位。设置为1(隐性电平)

                                  (5) IDE,标识符选择位。0,标准标识符;1,扩展标识符

3.控制段(表示数据段的字节数

                 由6个位构成,表示数据段的字节数。

                 标准帧和扩展帧的控制段稍有不同,如图所示,

注意:

                               (1)   r0r1:保留位

                                          必须以显现电平发送,但是接收可以是隐性电平

                       (2)   DLC:数据长度码

                                                       0~8,表示发送/接收的数据长度(字节)

                              (3)   IDE,标识符选择位

                                         0,标准标识符

                                         1,扩展标识符

 

 

4.数据段

该段可包含0~8个字节的数据从最高位(MSB)开始输出。标准帧和扩展帧在这个段的格式完全一样

 

5.CRC段(该段用于检查帧传输错误

                          1)由15个位的CRC顺序和1个位的CRC界定符(用于分隔的位)组成

                            (2) 标准帧和扩展帧在这个段的格式也是相同的

        (1)CRC的值计算范围包括:帧起始、仲裁段、控制段、数据段

      (2)接收方以同样的算法计算 CRC 值并进行比较,不一致时会通报错误。

 

 

6.ACK段(此段用来确认是否正常接收

                (1)ACK段是由ACK(ACK Slot)ACK界定符2个位组成

                (2)标准帧和扩展帧在这个段的格式也是相同的

                  

                           3ACK的各个段

                                            发送单元ACK段:发送2个隐性位

                              接收单元ACK段:接收到正确消息的单元,在ACK槽发送显性位,通知发送单元,正常接收结束

                                                        称之为发送ACK/返回ACK

                             注意:发送 ACK 的是既不处于总线关闭态也不处于休眠态的所有接收单元中,

                                       接收到正常消息的单元(发送单元不发送ACK)。

                                       正常消息是指:不含填充错误、格式错误、CRC 错误的消息

 

 

7,帧结束。

               1)由7个位的隐性位组成。

               2)标准帧和扩展帧在这个段格式完全一样。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值