CAN报文解析

CAN报文定义

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

CAN编码格式(Intel、Motorola)

CAN总线数据传输规则

对于单个Byte,CAN总线在进行数据传输时,首先传输一个字节的高位(MSB),最后传输该字节的低位(LSB)。
一般情况下,主机厂在定义CAN总线信号的时候,都会明确定义字节的发送顺序,总共有两种顺序:1.首先发送byte0(LSB),然后byte1,byte2,…,最后byte7(MSB)。
2.首先发送byte7(MSB),然后byte6,byte5,…,最后byte0(LSB)。
其中前者发送顺序(先LSB,后MSB)是目前主机厂的主流。
下面以CAN总线报文的发送顺序为首先发送LSB,最后发送MSB的方式为前提,介绍Intel格式和Motorola格式这两种编码方式的不同。

Intel格式编码

当一个信号的数据长度不超过1 Byte,并且信号在一个字节内实现时,该信号的高位(S_msb)将被放在该字节的高位,信号的低位(S_lsb)将被放在该字节的低位。
当一个信号的数据长度超过1 Byte或者数据长度不超过1 Byte,但是采用跨字节的方式实现时,该信号的高位(S_msb)将被放在高字节(MSB)的高位,信号的低位(S_lsb)将被放在低字节(LSB)的低位,这样信号的起始位就是低字节的低位。

Motorola格式编码

当一个信号的数据长度不超过1 Byte并且信号在一个字节内实现时,信号的高位(S_msb)将被放在该字节的高位,信号的低位(S_lsb)将被放在该字节的低位,这样,信号的起始位就是该字节的低位。
当一个信号的数据长度超过1 Byte或者数据长度不超过一个字节但是采用跨字节方式实现时,该信号的高位(S_msb)将被放在低字节(MSB)的高位,信号的低位(S_lsb)将被放在高字节(LSB)的低位,这样信号的起始位就是高字节的低位。

注意

当一个信号的数据长度不超过1 Byte时,Intel和Motorola两种格式的编码结果完全一致,但是当数据长度超过1 Byte时,两者的编码结果出现了明显的不同。

CAN协议中CAN报文种类

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

CAN报文的组成

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

帧ID的组成

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

数据段的组成

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

例如 ,通信协议中需要的报文(ID:0000060B ): 0000060B 57 4e 01 7d 00 6d 11 00 。
第 1 个字节57中的5为高 4 位,7为低 4 位。第 1 、 2字节表示横向距离,而且注明Byte 1 为低字节,Byte 2 为高字节,那么解析时就应该为: 4e57。

CAN报文的解析

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

解析实例:
在这里插入图片描述
我们看到有8个signal。分别是ID、纵向距离、横向距离、纵向速度、横向速度、动态属性、RCS、class(在这里没用)。
拿纵向距离跟横向距离解释一下:
目标纵向距离:
在这里插入图片描述
在这里插入图片描述
这个signal有13个位组成,字节1为 0x4E*32的意思是向左移动5位,(2的5次幂是32),0xc4<<3是右移三位,跟上面的字节对齐,相加形成一个13位的信号。请添加图片描述
目标横向距离:
在这里插入图片描述

0xc4与上0x70是保留后三位。乘以256(2的8次幂是256)是左移8位,给下面的8为字节留地方(补0)。
在这里插入图片描述
请添加图片描述

  • 73
    点赞
  • 650
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
### 回答1: CAN解析Excel工具是一种用于解析CAN总线通信数据并将其转化为Excel表格形式的工具。CAN(Controller Area Network,控制器局域网络)是一种常用于汽车、工业自动化等领域的通信协议,用于实现各个控制模块之间的数据交互。 CANCAN总线上发送和接收的数据,它包含了具体的信号值、标识符、帧格式等信息。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)总线是用于在汽车、工业设备等领域中传输数据的一种通信协议,它常用于车辆诊断系统、传感器数据采集等场景。CANCAN总线上的数据单元,由若干个字节组成,其中包括了消息ID、数据值、数据长度等信息。 CAN解析Excel工具的工作原理是通过读取CAN数据包,将其按照事先定义好的格式进行解析,并将解析后的数据存储到Excel表格中。该工具可以根据不同的需求,定制解析规则,以适应不同的CAN通信协议。 该工具的优势在于解析过程自动化,并且结果以可读的形式呈现在Excel表格中,便于工程师或技术人员进行数据分析和统计。它能够帮助用户快速准确地分析CAN通信中的数据,节省了手动解析的时间和精力,提高了工作效率。 此外,CAN解析Excel工具还可以实现数据的录制和回放功能,用户可以将CAN数据包进行记录并保存,稍后再次进行解析分析。这对于故障排查、系统优化等工作非常有用。 总之,CAN解析Excel工具是一种简化CAN解析过程的工具,它能够帮助用户高效地处理CAN总线通信数据,并提供可读的数据结果,方便用户进行后续的数据分析和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值