当前位置: 首页 >> 汽车资讯

汽车canc(汽车CAN数据报文分析)

时间:2024-04-24 浏览量:

1. CAN报文定义

CAN报文是指发送单元向接受单元传送数据的帧。我们通常所说的CAN报文是指在CAN线(内部CAN、整车CAN、充电CAN)上利用ECU和CAN卡接收到的十六进制报文

2. CAN协议中CAN报文种类

报文传输过程中有:数据帧远程帧错误帧过载帧帧间隔

3. CAN报文的组成

通常接收到的CAN报文由很多部分(图1)组成,解析报文时用到的主要是帧ID数据两部分。

汽车CAN数据报文分析

3.1 帧ID的组成

接收到的十六进制的ID实际上是由 29 位标识符转换而来,目前大多数的通信协议中都直接给出了相应的帧ID,不需要换算。如表 1 所示。

汽车CAN数据报文分析


表1中,P为优先级,有3位,可以有8个优先级( 0 ~ 7 );R为保留位,有 1位,固定为0 ;DP为数据页,有1位,固定为0;PF为报文的代码,有8 位;PS为报文的目标地址(也就是报文的接收方),有8位;SA为报文的源地址(也就是报文的接收方),有8位。

汽车CAN数据报文分析

3.2 数据段的组成

数据段一般由1 ~ 8个字节(Byte)组成,来代表通信协议中相应的含义。每个字节有2个字符,分为高4位和低4位。有的数据需要相邻的2个字节组合才能表示,则需要分为高字节和低字节。

例如 ,收到表2所示通信协议中需要的报文(ID:1818D0F3 ):

1818D0F3 ce 0d 00 7d 00 6d 11 00 。

第 1 个字节ce中的c为高 4 位,e为低 4 位。第 1 、 2字节表示总电压,而且注明Byte 1 为低字节,Byte 2 为高字节,那么解析时就应该为: 0dce。

4 CAN报文的解析

根据需要收到CAN报文之后,需要根据具体的通信协议解析,然后分析解析出的数据是否正确。下面进行报文实例解析。数据类型定义如表 4 所示。

汽车CAN数据报文分析


  • 报文内容如表2所示。收到的报文为:1818D0F3 ce 0d 00 7d 00 6d 11 00 。协议中规定报文的第一、二字节表示总电压,高字节在前,低字节在后。又总电压的单位为0.1 V。所以在上面的数据中 0 dce代表总电压,转为十进制为 3534,乘以0.1V的单位,则得到总电压值为353.4 V。
  • 协议中规定报文的第三、四字节表示总电流,又总电流的单位为 0.1A,偏移量为 32000 。所以在上面的数据中 7d00 代表总电流,转为十进制为32000 ,乘以 0.1 再减去 3200 的偏移量等于0 ,则说明此时电池组没有被充电或放电,电流为 0 。
  • 协议中规定报文的第六、七字节表示最高电池电压及位置。单体电池电压单位为0.01V。最高 4 位代表箱号。所以在上面的数据中116d 代表最高电池电压及位置,其中1代表箱号,即最高电池电压在第1 箱。 116 d代表最高电池电压,转为十进制为 365 ,乘以 0.01 A的单位,则得到最高电池电压为3.65 V。


友情链接