充电机与BMS通信报文分析一

学习人数3276
课程类型 高级
课程时长0
综合评分5

更多内容关注‘点点电工科技’微信公众号

简介:

充电机与BMS通信报文分析一:充电握手阶段报文

通信协议参照GB/T 27930-2015

1.充电总体流程

整个充电过程包括六个阶段:物理连接完成、低压辅助上电、充电握手阶段、充电参数配置阶段、充电阶段和充电结束阶段。在各个阶段,充电机和BMS如果在规定的时间内没有收到对方报文或者没有收到正确报文,即判定为超时。超时时间除特殊规定外,均为5s。充电流程如下图1所示。

图1 充电总体流程图

2.地址分配

充电机和BMS的地址是不可配置的,其地址是固定在程序代码中,包括服务工具在内的任何手段都不能改变其源地址。充电机和BMS的地址分配如下表所示。

充电和BMS地址分配表

3.报文分类解析

3.1.低压辅助上电及充电握手阶段

充电握手阶段分为握手启动阶段握手辨识阶段,当充电机和BMS物理连接完成并上电后,开启低压辅助电源,进入握手启动阶段发送握手报文,再进行绝缘检测。绝缘检测结束后进入握手辨识阶段,双方发送辨识报文,确定电池和充电机的必要信息。充电机握手报文和车辆握手报文是为产品兼容的新增报文,用于早握手启动阶段充电机和BMS判断双方使用的标准版本。

充电握手阶段报文分类表

3.1.1.CHM报文

抓包工具显示的报文内容为:0x1826F456  01 01 00 

报文内容分析:0x1826F456为此报文ID。“0x”表示十六进制,“18”为包含报文优先级(3个位)、保留位(1个位)和数据页(1个位),保留位和数据页在本标准为0。18转化为二进制为“0001 1000”,去掉2个0即为“000110”,转化为十进制为6,即该报文的优先权为6。“26”为此报文PGN(参数组编号)或者PF。“F4”表示此报文发送的目的地址为BMS。“56”为发送此报文的源地址为充电机。

“ 01 01 00” 为此报文的数据,表示充电机通讯协议版本号为V1.1。

3.1.2.BHM报文


其中最高输出电压数据分辨率:0.1V/位,0V偏移量。

抓包工具显示的报文内容为:0x182756F4  4C 1D 

报文内容分析:0x1827F456为此报文ID。分析方法同上。

 “4C 1D” 为此报文的数据,表示最高允许充电总电压。“1D4C”(注意是1D4C不是4C1D)为十六进制转换成十进制为:7500,0.1V/位、0偏移量,所以最高允许充电总电压为:750V。

3.1.3.CRM报文


抓包工具显示的报文内容:0x1801F456  AA 00 00 00 01 00 00 00

报文内容分析:0x1801F456为此报文ID。分析方法同上。

“AA 00 00 00 01 00 00 00”为此报文的数据,第一个字节“AA”,表示辨识结果:BMS能辨识(如果为“00”表示BMS不能辨识),第二个字节到第五个字节“00 00 00 01”表示充电机编号,最后的3个字节“00 00 00”表示充电机/充电站所在区域编码,参照ASCII码。


3.1.4.BRM报文

抓包工具显示的报文内容:0x1CEC56F4   10 29 00 06 FF 00 02 00 

                                    0x1CECF456   11 06 01 FF FF 00 02 00 

                                    0x1CEB56F4   01 01 01 00 03 B8 0B 88

                                    0x1CEB56F4   02 13 41 54 43 41 04 03

                                    0x1CEB56F4   03 02 01 1F 0B 0B 15 00

                                    0x1CEB56F4   04 00 01 00 30 31 32 33

                                    0x1CEB56F4   05 34 35 36 37 38 39 30

                                    0x1CEB56F4   06 30 30 30 30 30 32 FF

                                    0x1CECF456   13 29 00 06 FF 00 02 00

因为此报文超过8个字节,在发送大于8个字节的数据之前,无论是充电机或者BMS会先发送一个连接请求的报文:0x1CEC56F4   10 29 00 06 FF 00 02 00。0x1CEC56F4为此报文ID,“1C”为包含报文优先级(3个位)、保留位(1个位)和数据页(1个位)。“EC”为此报文的功能说明(“EC”为数据大于8字节的报文连接请求)。“56”表示此报文发送的目的地址为充电机。“F4”表发送此报文的源地址为BMS。(此报文说明BMS想要发送数据长度大于8字节的报文,首先希望与充电机建立长包的发送连接,之后BMS开始传输数据)。“10 29 00 06 FF 00 02 00”为此报文的数据,“10”表示功能码16请求发送,“29 00”用两个字节表示BMS将要发送的数据数量为0x0029=41个字节数据。“06”表示要发送此报文中的41个数据一共要发送6个包才足以容纳41个字节的数据。“FF”为保留内容。“00 02 00”表示此报文BRM对应的PGN。

充电机接收到BMS发送的请求发送报文后,会发送一个功能码为17的准备发送报文,通知BMS可以发送长包报文了,此报文为:0x1CECF456   11 06 01 FF FF 00 02 00。

0x1CECF456为此报文ID,解析同上。“11 06 01 FF FF 00 02 00”为此报文的数据内容,“11”表示功能码17准备发送,说明充电机允许BMS发送长度大于8字节的数据包。“06”表示充电机允许发送的最大数据包数。“01”表示BMS将要发送的下一个数据包的编号。“FF FF”为保留内容。“ 00 02 00 ” 表示要发送的报文为BRM。

在完成长包请求连接成功后,BMS开始发送数据包编号为01包含数据内容的报文:0x1CEB56F4   01 01 01 00 03 B8 0B 88,0x1CEB56F4为报文ID,“EB”为此报文的功能说明(EC为数据大于8字节的报文连接请求,EB为长度大于8字节的报文数据内容传输)。“01 01 01 00 03 B8 0B 88”为此报文的数据内容,第一个字节“01”表示此长包的数据包编号为1号数据包(后续会有02、03、04、05、06号数据包)。紧跟着的3个字节“ 01 01 00”三个表示BMS通讯协议版本号为V1.1,后面紧跟着的一个字节“03”表示电池类型为镍氢电池。

再后面两个字节“B8 0B ”表示整车动力蓄电池额定容量为0x0BB8=3000,3000*0.1=300Ah。(后续数据内容参考BRM报文包含内容表格,按定义字节顺序查看并一一对应)。

BMS发送完所有6个数据包后,充电机如果判断接收完成则发送一个功能码为19的消息结束应答报文:0x1CECF456   13 29 00 06 FF 00 02 00,“13 29 00 06 FF 00 02 00”为此报文的数据内容,第一个字节“13”表示功能码19消息结束应答,说明充电机已经顺利接收到BMS发送的总共41个字节的数据包。“29 00”表示充电机计算的接收到的总共0x0029=41个字节的数据。“06”表示充电机计算的接收到的总共6个数据包。“FF”为保留内容。“00 02 00 ”表示接收到得报文为PGN=00 02 00的BRM报文。

注意:各报文的数据内容以实际抓包的数据为准,分析方法相同。