1.充电总体流程
整个充电过程包括六个阶段:物理连接完成、低压辅助上电、充电握手阶段、充电参数配置阶段、充电阶段和充电结束阶段。在各个阶段, 充电机和BMS如果在规定的时间内没有收到对方报文或者没有收到正确报文,十六进制为什么0x开头,即判定为超时。超时时间除特殊规定外,均为5s。充电流程如 下图1所示。
图1 充电总体流程图
2.地址分配
充电机和BMS的地址是不可配置的,其地址是固定在程序代码中,包括服务工具在内的任何手段都不能改变其源地址。充电机和BMS的地址
分配如下表所示。 充电和BMS地址分配表
3.报文分类解析
3.1.低压辅助上电及充电握手阶段
充电握手阶段报文分类表
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”为发送此报文的源地址为充电机。
十六进制0x的意思是:以0x开始的数据表示16进制,计算机中每位的权为16,即(16进制)10等于(10进制)1乘以16。十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,。
“ 01 01 00” 为此报文的数据,表示充电机通讯协议版本号为V1.1。
3.1.2.BHM报文
其中最高输出电压数据分辨率:0.1V/位,0V偏移量。
1、十六进制数以数字零开始,0x中的x在c语言中是不分大小写的,即0x与0X等价。2、八进制以英文字母o开头,在c语言里也是不分大小,即o与O等价。3、十六进制数是一种逢十六进一的计数体制,基数是16,用0~9,A~F。
抓包工具显示的报文内容为: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
0x是十六进制数的前缀。现实生活中,我们最常见的数为十进制数,比如交通信号灯上的数字,电子表上的时间等。如果在这些地方你看到0xAA,就会感觉很奇怪。但是这样的数代表什么意思,为什么会有这样的数,它与十进制的数有。
报文内容分析:0x1801F456为此报文ID。分析方法同上。
0x是十六进制数的前缀。比如,0x12就表示它是一个十六进制数12,折合十进制数为18
“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
0X2A(十进制为42) 0XA0 (十进制为160) 0XFFFF (十进制为65535)以下各数不是合法的十六进制整常数:5A (无前缀0X) 0X3H (含有非十六进制数码)3,十进制整常数 十进制整常数没有前缀。其数码为0~9。以下各数是。
0x1CEB56F4 06 30 30 30 30 30 32 FF
因为此报文超过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。
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”表示电池类型为镍氢电池。
注意:各报文的数据内容以实际抓包的数据为准,分析方法相同。