CAN报文解析
一、获得CAN报文的过程
准备软硬件环境,硬件周立功CAN卡,软件使用ZLGCANTest,安装在电脑上;通过CAN卡连接整车CAN或者调试端口,通过软件交互界面获取CAN报文。
二、CAN2.0B报文基本格式
接收到的报文,是一串十六进制的字符,而报文格式定义和位数是按照二进制定义的。29位扩展标识符,报文帧格式如下图所示。表格中,上面一行为字段代号,下面一行表示字段的位数。SA为报文的源地址,有8位。
三、报文基本组成
初始能够获得的是帧ID的一串字符,就是前面的29位扩展标识符,通过帧ID找到目标所在行,进而找到数据段。数据段包含的信息,是我们需要的部分。
IDENTIFIER 11BITS |
SRR |
IDE |
IDENTIFIER EXTENSION 18BITS |
|||||||||||||||||||||||||||
|
R |
DP |
PDU FORMAT(PF) |
SRR |
IDE |
PF |
PDU SPECIFIC(PS) |
SOURCE ADDRESS(SA) |
||||||||||||||||||||||
3 |
2 |
1 |
1 |
1 |
8 |
7 |
6 |
5 |
4 |
3 |
|
|
2 |
1 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
9 |
8 |
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
以上为29 标识符的分配表:
其中,优先级为3 位,可以有8 个优先级;R 一般固定为0;DP 现固定为0;8 位的PF 为报文的代码;8 位的PS 为目标地址或组扩展;8 位的SA 为发送此报文的源地址。
四、数据段的组成
数据段由8个字节组成,对应通信协议中约定的含义。每个字节有2个字符,前边字符代表高4位,后边字符代表低4位。
例如,一串报文1818D0F3 ce 0d 00 7d 00 6d 1100(ID是1818D0F3)。第1个字节ce中的c为高4位,e为低4位。如果通讯协议规定,第1、2字节表示总电压,而且注明Byte1为低字节,Byte2为高字节,那么解析时就应该为:0dce。
例如 :
OUT |
IN |
ID |
周期 |
BMS |
仪表/车载终端 |
0x18B1D0F4 |
200ms |
位置 |
数据名 |
备注 |
|
BYTE1 |
电池总电压低字节 |
0.1V/bit 数据范围:0-10000(0-1000V) |
|
BYTE2 |
电池总电压高字节 |
||
BYTE3 |
电池系统电流低字节 |
0.1A/bit, 偏移:-400 数据范围:0-8000(-400~400A) |
|
BYTE4 |
电池系统电流高字节 |
||
BYTE5 |
最高电池温度 |
1℃/bit,偏移-40℃ 数据范围:0-250(-40℃-210℃) |
|
BYTE6 |
最低电池温度 |
||
BYTE7 |
电池系统剩余电量 |
1%/bit, 数据范围:0-100(0-100%) |
|
BYTE8 |
电池系统故障 |
见附表4-1 |
五、具体CAN报文解析过程
收到的报文为:1818D0F3 ce 0d 00 7d 00 6d 11 00。
第一、二字节,协议中规定了,1818D0F3 ID帧内,第一、二字节表示电压,并且,高字节表示高字节表示电压数值的高位,低字节表示电压数值的低位,比例因子0.1V。
数据中0dce代表总电压,转为十进制为3534,乘以0.1 V的单位,则得到总电压值为353.4 V。
第三、四字节,协议中规定报文的第三、四字节表示总电流,又总电流的单位为0.1 A,偏移量为32000。数据中7d00转为十进制为32000,乘以0.1再减去3200的偏移量0,则说明此时电池组没有被充电或放电,电流为0。
第六、七字节,协议中规定报文的第六、七字节表示最高单体电池电压及位置。单体电池电压单位为0.01 V,最高4位代表箱号。数据中116d,其中1代表箱号,即最高电池电压在第1箱。16d代表最高电池电压,转为十进制为365,乘以0.01 A的单位,则得到最高电池电压为3.65 V。
十六进制转换成十进制数的方法,从最低位开始,16的0次方加第一位+16的1次方加第二位数……比如前文中的116d,最高4位代表箱体编号,16^0+1=1,因此箱体号为1;后面的12位代表单体电压,计算方式(16^0+13)+(16^1+6)+(16^2+1)=365,算式中的13是报文中的d。
CAN报文:
https://blog.csdn.net/LiuXF93/article/details/113729294
CAN报文:数据帧详解
https://blog.csdn.net/u010650845/article/details/125990942
标签:字节,16,0.1,报文,电压,解析,电池 From: https://www.cnblogs.com/yking/p/17422277.html