其他分享
首页 > 其他分享> > CAN报文解析

CAN报文解析

作者:互联网

0. 前言

1. 报文解析

报文组成

一般报文主要有以下几个参数(比较全的情况下)

序号 通道 方向 帧格式 帧类型 数据长度 帧ID 帧数据 时间

解析报文时主要用到的是帧ID帧数据

帧ID

接收到的帧ID是十六进制的形式,由29位标识符转换的,目前大多数的通信协议中都直接给出了相应的帧ID,不需要换算

标识符PGN:

P R DP PF PS SA
3 1 1 8 8 8

BMS与VCU之间的29位标识符PGN

P R DP PF PS SA
3 0 0 255 124 3
011 0 0 1111 1111 0111 1100 0000 0011

以上29位标识符 二进制 转换为 十六进制 为 ID=0x0CFF7C03

帧数据

帧数据一般由8个字节组成,根据相关通信协议来对应其中的含义,比如BMS发送的报文,byte3对应电流的低字节,byte4对应电流高字节

BMS与VCU之间的报文

OUT IN ID T 位置 数据 备注
电池管理系统 整车控制器 PGN=65404 100ms 1byte
2byte
3byte
4byte
5byte
6byte
7byte
8byte
电池总压低字节
电池总压高字节
电流低字节
电流高字节
soc
保留
保留
保留
电池总压
分辨率:0.1V/bit;偏移0;范围:0~1000V
电流
分辨率:0.1A/bit;偏移:-1000A;范围-1000~1000A
荷电状态
分辨率:0.4%/bit;偏移:0;范围:0%~100%
保留
保留
保留

报文解析

CAN报文解析就是用帧数据中相应的字节,根据具体的通信协议解析,计算出对应的物理信号的值

数据类型的定义

数据类型 比例 偏移量 字节数
电流 0.1A/bit -1000 2byte

value = recv(byte)*scale+offset

例:

帧ID=0x0CFF7C03

帧数据:12 34 12 34 12 FF FF FF

电流 = 3412*0.1-1000=333A

标签:0.1,报文,bit,解析,电流,ID
来源: https://www.cnblogs.com/coderning/p/16582090.html