全网最全最详细GB23970协议CAN报文解析

全网最全最详细GB23970协议CAN报文解析

` 提示:纯手撸,辛苦了好久,肯定会有错误的,还希望观看的小伙伴给出建议。


前言

国标非车载充电机(直流)新能源电动汽车的报文代号基本以3个字母的形式出现,且首字母为B或C开头,如BHM,CRM,CRO,CCS,BCS等,在这里其实我们可以根据首字母来判断源地址-目的地址,即报文信息是由哪一端发送到哪一端。B其实是英文单词Battery蓄电池的缩写,C是Charger充电机的缩写。而直流桩相对交流桩一大不同就是将车载充电机从车端转移到了桩端,那么我们很轻易便可以从报文代号首字母看出是谁发送的报文,如BHM是B开头即是电池端/车端发送给充电机端/桩端的信号,反之亦然,CCS则是桩发送给车的信号,源地址来自充电机,目的地址来自电动汽车。


一、直流充电机的6个阶段

l 物理连接完成Physical Connection
l 低压辅助上电Aux on
l 充电握手阶段Charging Handshake Phase
l 充电参数配置阶段Charging Parameter Configuration Phase
l 充电阶段Charging Phase
l 充电结束阶段Charging Ending
在这里插入图片描述

二、报文代码分类解析

1.低压辅助上电及充电握手阶段
CHM——充电机握手
BHM——车辆握手
CRM——充电机辨识
BRM——BMS和车辆辨识报文

2.充电参数配置阶段
BCP——动力蓄电池充电参数
CTS——充电机发送时间同步信息
CML——充电机最大输出能力
BRO——车辆充电准备就绪状态
CRO——充电机输出准备就绪状态

3.充电阶段
BCL——电池充电需求
BCS——电池充电总状态
CCS——充电机充电状态
BSM——动力蓄电池状态信息
BMV——单体动力蓄电池电压(V为Voltage电压)
BMT——动力蓄电池温度(T为Temperature温度)
BSP——动力蓄电池预留报文
BST——车辆中止充电
CST——充电机中止充电

4.充电结束阶段(S是Statistic统计)
BSD——车辆统计数据
CSD——充电机统计数据

5.错误报文(报文里E代表Error错误)
BEM——BMS 及车辆错误报文
CEM——充电机错误报文

在这里插入图片描述

三、充电协议一览表

在这里插入图片描述

四、总则

以国标GB/T 27930—2015《电动汽车非车载传导式充电机与电池管理系统之间的通信协议》为基础。
27930第4、5两部分相当于总的规定,主要如下:
1.充电机与BMS之间的CAN通信网络应由充电机和BMS两个节点组成;
2.数据信息传输采用低字节先发送的格式(J1939规定,采用Intel格式);
3.正的电流值代表放电,负的电流值代表充电;
4.充电机与BMS之间的通信速率为250kbps(J1939规定);

五、PDU格式

依据J1939,直流充电协议采用扩展帧。协议数据单元(PDU)就是报文内容,如下表所示,前面P+R+DP+PF+PS+SA可以理解为报文帧ID,DATA就是充电机和BMS的通信内容。
在这里插PNG:这个很重要对后面CAN协议理解很重要入图片描述
PNG:这个很重要对后面CAN协议理解很重要

国网标准:充电机地址是56H,车辆地址是F4H

在这里插入图片描述
C :Charge 开头的是报文代号表示充电机发出报文
B :Battery 开头的是报文代号表示车车端电池控制器发出报文

六、 CAN报文解析

6.1 充电握手阶段-握手

在这里插入图片描述

6.1.1 CHM-充电机发送给车端 (功能码26H)

CANID: 0x1826F456
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

充电机发送分析:
CANID : 0x18 26 F4 56
0x18 :P 优先级为 6 转化为二进制为 110b,R(保留位)和DP(数据页)在本协议中已经被规定死为0,因此前面5:110 00 ,换算成十六进制:0x18 ,看到0x18优先级就是6
0x26 : PF (功能码)
0xF4: 目标源地址
0x56: 发送源地址
Data :	01 01 00   
数据域长度规定是3个字节,表示协议的版本 V1.1

6.1.2 BHM-车端回复给充电机 (功能码27H)

CANID: 0x182756F4
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

车端发送分析 :
CANID : 0x18 27 56 F4
0x27 : PF (功能码)
Data :	43 0E (低字节在前,高字节在后)
数据域长度规定是2个字节,0x0E43 得到最高允许充电电压:
0x0E43   转换为 十进制 3651
又数据分别率是0.13651 *0.1 = 365.1 单位为V 

6.2 充电握手阶段-辨识

在这里插入图片描述

6.2.1 CRM-充电机发送给车端 (功能码01H)

CANID: 0x1801F456
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

充电机发送分析 :
a. CANID : 0x18 01 F4 56
(优先级为 6)
Data :00 40 E2 01 00 FF FF FF    	    
00 : BSM未回复之前,或者是BSM没有回复,不能辨别,这里表示第一次发送属于未回复之前
40 E2 01 00 :多字节时,低字节在前,高字节在后,于是就,00 01 E2 40 表示,转为十进制是:123456,那么表示充电机编号是 123456,无偏移
FF FF FF : 充电机所在区域(非必须,此次是填充值)

b. CANID : 0x1C EC F4 56
此包是回复CANID(0x 1CEC56F4
Data :11 07 01 FF FF 00 02 00
11 : 为控制节 11,内容固定
07 : 可以接收数据包数,告诉车端接收的数量
01 :  即将接收包数编号为01
FF FF : 预留,默认是0xFF FF
00 02 00 : 为PGN值,BRM的PGN是 00 02 00 这里确定PGN

c. CANID : 0x1C EC F4 56
此包是回复CANID(0x 1CEB56F4)
Data :13 31 00 07 FF  00 02 00 
13 : 为控制节 13,内容固定
31 00  : 表示收到字节长度,小端模式,则00 31 转换十进制: 49 个字节
07 :  表示接收到包个数,是7包。
FF  : 预留,默认是0xFF 
00 02 00 : 为PGN值,BRM的PGN是 00 02 00 这里确定PGN

d. CANID : 0x1C EC F4 56
此包是回复CANID(0x 1CEB56F4),同时也表示已经收到辨识信息,主要看回复数据
Data :AA 40 E2 01 00 FF FF FF
数据域长度规定是8个字节,分别是
AA : BSM未回复之后,AA表示识别成功
40 E2 01 00 :多字节时,低字节在前,高字节在后,于是就,00 01 E2 40 表示,转为十进制是:123456,那么表示充电机编号是 123456,无偏移
FF FF FF : 充电机所在区域(非必须,此次是填充值)

6.2.2 BRM-充电机发送给车端 (功能码02H)

CANID: 0x180256F4 (需要多包发送会使用多包发送CANID,多包发送见示例)
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

车端发送分析 :
a. CANID : 0x 1C EC 56 F4
接收CNAID(0x1801F456)回复, CANID为0x 1CEC56F4时,告诉充电机为组包报文的传输
Data :0x18 01 F4 56
第一行数据是回复充电机CANID:0x18 01 F4 56, 数据域为00
10 31 00 07 FF 00 02 00   
10 : 为控制字 10,内容固定
31 00 : 表示传输字节长度,小端模式,则00 31 转换十进制: 49 个字节
07 : 表示发包个数,是7包。即使用CANID(0x1CEC56F4)传输49个字节内容 
FF : 预留,默认是0xFF
00 02 00 : 为PGN值,BRM的PGN是 00 02 00 这里确定PGN

b. CANID : 0x 1C EB 56 F4
接收CNAID(0x1CECF456)回复
Data :01 01 01 00 06 10 27 43
01 :  第一包有效数据
01 01 003个字节) : 表示通信协议版本号 V1.1
061个字节) : 表示电池类型,06H表示三元材料电池 
10 272个字节) : 整车蓄电池额定容量/Ah, 0x2710 转换十进制为10000 *分别率 0.1 = 1000Ah
43 :转下一包衔接 需要两个字节

Data :02 0E 42 4C 53 54 FF FF
02 :  第二包有效数据
0E(2个字节) :  接上一包最后一个字节 ,表示额定电压 43 0E 转换 0E43为十进制3651 *分别率0.1= 365.1V
42 4C 53 544个字节) : 表示电池生产厂商名称,转换十进制1414745154(我也不知道,自行百度下)
FF FF: 转下一包衔接 需要四个字节

Data :03 FF FF FF FF FF FF FF
03 :  第三包有效数据
FF FF(4个字节) : 接上一包最后两个字节 表示电池组序号
FF(1个字节) :电池组生产日期/年:1985+FF  = 2240
FF(1个字节) :  电池组生产日期/月:
FF(1个字节) :  电池组生产日期/日:
FF FF: 转下一包衔接,共需要三个字节

Data :04 FF 00 FF 35 59 4A 53
04 :  第四包有效数据
FF(3个字节) :  表示充电次数
001个字节) :  表示电池组产权标识, 0:租赁 1:车自有
FF(1个字节) :  预留
35 59 4A 53 :  转下一包衔接,共需要十七个字节

Data :05 41 33 48 31 33 45 46 
05 :  第五包有效数据
41 33 48 31 33 45 46  :  转下一包衔接,共需要十七个字节
 
Data :06 50 34 37 37 30 34 FF
06 :  第六包有效数据
50 34 37 37 30 3417个字节)  : 接上面包数, 表示车辆识别码(VID)
FF(1个字节) :  转下一包衔接,共需要八个字节

Data :07 FF FF FF FF FF FF FF 
07 :  第七包有效数据
FF FF FF FF FF FF FF(8个字节) :  接上面包数,表示BMS版本信息,是可选项

6.3 充电参数配置阶段

在这里插入图片描述

6.3.1 BCP-动力蓄电池充电参数 (功能码06H)

CANID: 0x180656F4 (需要多包发送会使用多包发送CANID,多包发送见示例)
在这里插入图片描述
充电参数配置阶段BSM发送给充电机的动力蓄电池参数,如果充电机5s内没有收到该报文,即为超时错误,充电机立即结束充电。

报文示例:
在这里插入图片描述
报文解析:

充电机发送分析 :
CANID : 0x1C EC F4 56
此包是回复CANID(0x 1CEC56F4)
Data :11 02 01 FF FF 00 06 00    
11 : 为控制节 11,内容固定,表示充电机的回复
02 : 可以接收数据包数,告诉车端接收的包数量
01 :  即将接收包数编号为01
FF FF : 预留,默认是0xFF FF
00 06 00 : 为PGN值,BCP的PGN是 00 06 00 这里确定PGN

CANID : 0x1C EC F4 56
此包是表示已经完全收到来自BMS的BCP内容
Data :13 0D 00 02 FF 00 06 00    
13 : 为控制节 13,内容固定,表示充电机的回复
0D 00 : 表示接到了数据,00 0D转换十进制为 13
02 :  表示接收到2个数据包
FF : 预留,默认是0xFF
00 06 00 : 为PGN值,BCP的PGN是 00 06 00 这里确定PGN
车端发送分析 :
a. CANID : 0x1C EC 56 F4
发送多包数据的开始CANID
Data :10 0D 00 02 FF 00 06 00
10 : 为控制节 10,内容固定
0D 00 :表示收到字节长度,小端模式,则00 0D 转换十进制: 13个字节
02 : 表示发包个数,是2包
FF : 预留,默认是0xFF
00 06 00 : BCP的PGN是 00 06 00 这里确定PGN

b. CANID : 0x1C EB 56 F4
发送多包数据的CANID,此包是收到充电机回复的消息之后才回复
Data :01 A1 01 DE 0D 4D 01 68
01 :  第一包有效数据
A1 012个字节) :表示单体动力电池最高允许充电电压,01 A1 转换十进制 417*分别率0.01 = 4.17V 
DE 0D(2个字节) :  表示最高允许充电电流,0D DE转换十进制 3550*分别率0.1 =355 A,偏移量 -400A +355 = -45A
4D 012个字节) : 表示蓄电池总能量,01 4D转换十进制 333 *分别率0.1 = 33.3KW.h 
68 :用于衔接下一包

Data :02 10 64 B0 00 CB 0D FF
02 :  第二包有效数据
102个字节):表示最高允许充电总电压,衔接上一包的数据,10 68 转换10进制 4200 *分别率0.1 = 420V 
641个字节) :  表示最高允许温度,64转换十进制 100 °,偏移量 -50 +100 =50°
B0 002个字节) :表示蓄电池荷电状态(SOC),CB转换十进制176 *0.1% = 17.6%。
CB 0D(2个字节) :表示蓄电池当前电池电压,0D CB 转换十进制 3531*分别率0.1 = 353.1V
FF :预留,默认是0xFF

6.3.2 CTS-时间同步信息 (功能码07H)

CANID: 0x1807F456
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

充电机发送分析 :
CANID : 0x18 07 F4 56 
可选项
Data :FF FF FF FF FF FF FF FF    
FF : 表示默认时间

6.3.3 CML-充电机最大输出能力 (功能码08H)

CANID: 0x1808F456
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

充电机发送分析:
CANID : 0x18 08 F4 56 
(优先级为 6)
Data :58 1B D0 07 D8 0E A0 0F    
58 1B : 表示桩端最高输出电压,1B 58转换十进制 7000*分别率0.1 = 700V
D0 07 : 表示桩端最低输出电压,07 D0转换十进制 2000*分别率0.1 = 200V
D8 0E : 表示最大输出电流,0E D8转换十进制 3800*分别率0.1 = 380A -偏移量400A = -20A
A0 0F :  表示最小输出电流,0F A0转换十进制 4000*分别率0.1 = 400A -400A = 0A

6.3.4 BRO-电池准备就绪 (功能码09H)

CANID: 0x100956F4
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

车端发送分析:
CANID : 0x10 09 56 F4  
(优先级为 4)
Data :AA    
AA : 表示BSM完成充电准备,车端完成充电准备

6.3.5 CRO-充电机准备就绪 (功能码0AH)

CANID: 0x100AF456
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

充电机发送分析:
CANID : 0x10 0A F4 56  
(优先级为 4)
Data :AA    
AA : 表示充电机完成充电准备

6.4 充电阶段

在这里插入图片描述
在这里插入图片描述

6.4.1 BCL-电池充电需求 (功能码10H)

CANID: 0x181056F4
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析

车端发送分析:
CANID : 0x18 10 56 F4 
(优先级为 6)
Data :68 10 DE 0D 02    
68 10 : 表示车端电压需求,10 68 转换十进制 4200*分别率0.1 = 420V
DE 0D : 表示车端电流需求,0D DE 转换十进制3550*分别率0.1 = 355A -400A = -45A
02 : 表示充电模式,恒流充电

6.4.2 BCS-电池充电总状态 (功能码11H)

CANID: 1CEC56F4
在这里插入图片描述
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

代码如下(示例):

车端发送分析:
a. CANID : 0x1C EC 56 F4
(优先级为 7)
Data :10 09 00 02 FF 00 11 00     
10 : 为控制节 10,内容固定
09 00 :表示发送字节数,小端模式,则00 09 转换十进制: 9个字节
02 : 表示发包个数,是2包
FF : 预留,默认是0xFF
00 11 00 : BCS的PGN是 00 11 00 这里确定PGN

b. CANID : 0x1C EB 56 F4
发送多包数据的CANID,此包是收到CANID(0x1CECF456)之后才回复
Data :01 CB 0D A0 0F 61 01 11
01 :  第一包有效数据
CB 0D(2个字节) :表示充电电压测量值,0D CB 转换十进制 3531*分别率0.1 = 353.1V 
A0 0F2个字节) :  表示充电电流测量值,0F A0转换十进制 4000*分别率0.1 =400 A
61 012个字节) : 表示单体动力蓄电池电压及其组号,1-12位是电压, 13-16蓄电池所在组号,则16*0.01 = 0.16V,组号是1 
111个字节) :表示当前荷电状态SOC%11转换十进制17 %

Data :02 58 02 FF FF FF FF FF
02 :  第二包有效数据
58 022个字节):表示剩余充电时间,02 58转换十进制 600 min
FF FF FF FF FF :预留,默认是0xFF
充电机发送分析:
a. CANID : 0x1C EC F4 56
此包是回复CANID(0x 1CEC56F4)
Data :11 02 01 FF FF 00 11 00    
11 : 为控制节 11,内容固定,表示充电机的回复
02 : 可以接收数据包数,告诉车端接收的包数量
01 :  即将接收包数编号为01
FF FF : 预留,默认是0xFF FF
00 11 00 : 为PGN值,BCS的PGN是 00 11 00 这里确定PGN

b. CANID : 0x1C EC F4 56
此包是回复CANID(0x 1CEB56F4)
Data :13 09 00 02 FF 00 11 00 
13 : 为控制节 13,内容固定
09 00  : 表示收到字节长度,小端模式,则00 09 转换十进制:9 个字节
02 :  表示接收到包个数,是2包。
FF  : 预留,默认是0xFF 
00 11 00 : 为PGN值,BCS的PGN是 00 11 00 这里确定PGN

6.4.3 CCS-充电机充电总状态 (功能码12H)

CANID: 1812F456
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

充电机发送分析:
CANID : 0x18 12 F4 56
(优先级为6)
Data :07 00 A0 0F EB 17 FD    
07 00 : 表示电压输出值 转换十进制为 7*分别率0.1 = 0.7 V
A0 0F : 表示电流输出值 转换十进制为 4000*分别率0.1 = 400-400A = 0.0A
EB 17 :  表示累计充电时间,转换十进制6123 min
FD : 充电状态,前两位。为1 是允许

6.4.4 BSM-动力蓄电池状态信息 (功能码13H)

CANID: 181356F4
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

车端发送分析:
CANID : 0x18 13 56 F4
(优先级为 6)
Data :01 4D 01 4D 04 00 10    
01 : 表示单体最高蓄电池电压所在组,为14D : 表示最高蓄电池温度,转换十进制 77° -偏移量50° = 27°
01 : 表示最高温度监测点组号
4D : 表示最低蓄电池温度,转换十进制 77° -偏移量50° = 27°
04 : 表示单体最低蓄电池电压所在组,为400 : 表示无电压过高,SOC状态正常,五电流过高,温度正常(具体参考上述文档)
10 : 表示蓄电池绝缘正常,连接器正常,充电允许(具体参考上述文档)

6.4.5 BST-BMS中止充电 (功能码19H)

CANID: 101956F4
在这里插入图片描述
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

车端发送分析:
CANID : 0x10 19 56 F4
(优先级为 4)
Data :00 01 00 F0 
00 : 表示BSM中止充电原因,(具体参考上述文档)
01 00 : 表示BSM中止充电故障原因,(具体参考上述文档)
F0 :  表示BSM中止充电错误原因,(具体参考上述文档

6.4.6 CST-充电机中止充电 (功能码1AH)

CANID: 101AF456
在这里插入图片描述
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

充电机发送分析:
CANID : 0x10 1A F4 56
(优先级为 4)
Data :40 00 F0 F0 
40 : 表示充电机中止充电原因,BMS主动中止(具体参考上述文档)
00 F0 : 表示充电机中止充电故障原因,(具体参考上述文档)
F0 :  表示充电机中止充电错误原因,电流匹配,电压正常(具体参考上述文档)

6.5 错误报文

在这里插入图片描述

6.5.1 BEM-BSM错误报文 (功能码1EH)

CANID: 081E56F4
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

车端发送分析:
CANID : 0x08 1E 56 F4
(优先级为2)
Data :F0 F0 F1 F0   
F0 : 参考报文格式
F0 : 参考报文格式
F1 : 参考报文格式
F0 : 参考报文格式

6.5.2 CEM-充电机错误报文 (功能码1FH)

CANID: 081FF456
在这里插入图片描述
报文示例:
在这里插入图片描述
报文解析:

充电机发送分析:
CANID : 0x08 1F 56 F4
(优先级为2)
Data :F0 F0 F1 F0   
F0 : 参考报文格式
F0 : 参考报文格式
F1 : 参考报文格式
F0 : 参考报文格式

6.6 多包发送

6.6.1 BMS请求

CANID : 1C EC 56 F4
DATA
字节1 :请求控制字节0x10
字节2-3 : 需要发送总字节数
字节4: 需要发送包数
字节5-7 : PGN

6.6.2 BMS发送数据

CANID : 1C EB 56 F4
DATA
字节1 :包序列号
字节2-7 :数据内容

6.6.3 充电机应答请求

CANID : 1C EC  F4 56
DATA
字节1 :回复控制字0x11
字节2 :接下来接收第一包数据包号
字节3-40xFF  0xFF
字节5-7 : PGN

6.6.4 充电机应答多包完成接收

CANID : 1C EC  F4 56
DATA
字节1 :回复控制字0x13
字节2-3 :接收总字节数
字节3 :接收总包数
字节40xFF
字节5-7 : PGN

总结

	如果有不足,麻烦留下或者私信,感谢。
  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值