CAN报文解析—案例

1. CAN报文定义

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

2. CAN协议中CAN报文种类

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

3. CAN报文的组成

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

3.1 帧ID的组成

接收到的十六进制的ID实际上是由 29 位标识符转换而来,目前大多数的通信协议中都直接给出了相应的帧ID,不需要换算。如表 1 所示。
在这里插入图片描述
表1中,P为优先级,有3位,可以有8个优先级( 0 ~ 7 );R为保留位,有 1位,固定为0 ;DP为数据页,有1位,固定为0;PF为报文的代码,有8 位;PS为报文的目标地址(也就是报文的接收方),有8位;SA为报文的源地址(也就是报文的接收方),有8位。
在这里插入图片描述

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 所示。
在这里插入图片描述
报文内容如表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。
5 CAN报文的解析—案例分析
5.1 江淮3代车仪表无SOC和电池总压
  • 首先找到相应的通信协议,如表5所示。
  • 然后通过整车CAN收到相应报文,如表6所示。
  • 接着找到ID: 180460F4的报文(180460F4数据帧扩展帧
    0x08 60 5f 00 07 0c 76 07 d0 )进行解析。
  1. 当前SOC=95(5f转换为十进制)×1%(分辨率)+ 0(偏移量)= 95%。
  2. 电池组电压=3190(0c76转换为十进制)× 0.1(分辨率)+ 0(偏移量)= 319 。
  • 最后得出结论:BMS已经正常发送SOC和电池总压至整车CAN,仪表未显示可能是仪表本身问题或者仪表连接整车CAN线路出了问题。
    在这里插入图片描述
    在这里插入图片描述
5.2 江淮 4 代车无法进行慢充
  • 首先插上充电枪后确认充电回路已形成(充电机直流输出端能测到电池电压)。
  • 再找到通信协议中BMS的慢充部分,如表 7 所示。
  • 然后通过整车CAN接收到报文,如表 8 所示。
  • 接着找到ID:403 ( 0 x 00000403 数据帧 标准帧 0x08 03 00 3c 0d 8e 00 00 00 )进行解析。
  1. 控制指令: 03 转换为二进制为 11 —充电器开启(11为二进制),说明BMS允许充电。
  2. 充电电流需求= 60 ( 003c转换为十进制)× 0.1 (分辨率)+ 0 (偏移量)= 6 A。
  3. 充电电压需求= 3470 (0d8e转换为十进制)×0.1(分辨率)+0(偏移量)= 347V。
  • 最后可以得出结论:在充电回路形成、BMS允许充电、充电需求正常的情况下,充电机仍然无输出,肯定是充电机本身有问题。
    0字节处的11是二进制
    在这里插入图片描述
  • 184
    点赞
  • 1080
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
### 回答1: CAN报文解析Excel工具是一种用于解析CAN总线通信数据并将其转化为Excel表格形式的工具。CAN(Controller Area Network,控制器局域网络)是一种常用于汽车、工业自动化等领域的通信协议,用于实现各个控制模块之间的数据交互。 CAN报文是CAN总线上发送和接收的数据,它包含了具体的信号值、标识符、帧格式等信息。CAN报文解析Excel工具可以读取CAN报文的原始数据,对其进行解析并提取所需的信息。这些信息可以包括报文的ID、时间戳、数据字节、信号位等。 通过CAN报文解析Excel工具,我们可以将解析后的CAN报文数据导入到Excel表格中,以便进行更加直观和方便的数据分析和处理。Excel具有强大的数据处理和图表绘制功能,可以帮助工程师和研究人员更好地理解和分析CAN通信数据。 CAN报文解析Excel工具的使用步骤通常包括以下几个方面: 1. 导入CAN报文数据文件:将原始的CAN报文数据文件导入到工具中,可以是文本文件或其他格式。 2. 设置报文解析规则:根据CAN报文的具体格式和结构,设置对应的报文解析规则,包括ID、信号位等参数。 3. 解析CAN报文数据:工具根据设置的解析规则,对CAN报文数据进行解析,提取所需的信息,并将其转化为Excel表格形式。 4. 数据分析和处理:利用Excel的数据处理和图表绘制功能,对解析后的CAN报文数据进行分析、统计和可视化展示,方便用户进行更深入的数据研究。 总之,CAN报文解析Excel工具是一种方便实用的工具,可以帮助用户将CAN报文数据转化为Excel表格形式,便于数据分析和处理。它对于CAN总线通信数据的解析与分析提供了很大的便利和效率。 ### 回答2: CAN报文解析Excel工具是一种用于CAN总线通信数据的解析工具,它的作用是将CAN报文数据解析为可读的格式并存储到Excel表格中。 CAN(Controller Area Network)总线是用于在汽车、工业设备等领域中传输数据的一种通信协议,它常用于车辆诊断系统、传感器数据采集等场景。CAN报文是CAN总线上的数据单元,由若干个字节组成,其中包括了消息ID、数据值、数据长度等信息。 CAN报文解析Excel工具的工作原理是通过读取CAN数据包,将其按照事先定义好的格式进行解析,并将解析后的数据存储到Excel表格中。该工具可以根据不同的需求,定制解析规则,以适应不同的CAN通信协议。 该工具的优势在于解析过程自动化,并且结果以可读的形式呈现在Excel表格中,便于工程师或技术人员进行数据分析和统计。它能够帮助用户快速准确地分析CAN通信中的数据,节省了手动解析的时间和精力,提高了工作效率。 此外,CAN报文解析Excel工具还可以实现数据的录制和回放功能,用户可以将CAN数据包进行记录并保存,稍后再次进行解析分析。这对于故障排查、系统优化等工作非常有用。 总之,CAN报文解析Excel工具是一种简化CAN报文解析过程的工具,它能够帮助用户高效地处理CAN总线通信数据,并提供可读的数据结果,方便用户进行后续的数据分析和处理。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值