首页 > 其他分享 >CAN解析

CAN解析

时间:2022-08-13 11:03:22浏览次数:48  
标签:0.1 报文 总压 bit 解析 ID

0. 前言

1. CAN报文解析

报文组成

一般CAN总线调试工具会显示下面几个参数,比较全的情况下

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

以我平时用的工具为例

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

帧ID

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

标识符PGN:

P R DP PF PS SA
3 1 1 8 8 8
  • P:优先级,有3位,可以有8个优先级(0~7)
  • R:保留位,有 1位,固定为0
  • DP:数据页,有1位,固定为0
  • PF:报文的代码,有8 位
  • PS:报文的目标地址(也就是报文的接收方),有8位
  • SA:报文的源地址(也就是报文的发送方),有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发送的报文,byte1对应电池总压的字节,byte2对应电池总压高字节

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
From: https://www.cnblogs.com/coderning/p/16582090.html

相关文章