【车载IoT】国标《电动汽车远程服务与管理系统技术规范》:协议数据包结构及定义(重点)

国标《电动汽车远程服务与管理系统技术规范》解读三部曲:

系统架构及协议概述: https://blog.csdn.net/XiuHua_Wu/article/details/113530169
车载设备设计规范: https://blog.csdn.net/XiuHua_Wu/article/details/113530895
协议数据包结构及定义(重点):https://blog.csdn.net/XiuHua_Wu/article/details/113732636

本文为国标的阅读笔记第3篇:

  • 国标:《电动车远程服务于管理系统技术规范 第3部分:通讯协议及数据格式》GB/T 32960.3-2016 http://c.gb688.cn/bzgk/gb/showGb?type=online&hcno=674DE45C0AD3DE2CD75B9C4CD8ED57C1
  • 建议在阅读本文前,先阅读:【车载IoT】国标《电动汽车远程服务与管理系统技术规范》:系统架构及协议概述https://blog.csdn.net/XiuHua_Wu/article/details/113530169
  • 若要落实到具体实现,还请仔细阅读国标。

传输规则

协议应采用大端模式的网联字节序来传递字和双字

数据包结构

起始字节 定义 数据类型 描述及要求
0 起始符 STRING 固定为ASCII字符“##”
2 命令单元:命令标识 BYTE 见定义表
3 命令单元:应答标志 BYTE 见定义表
4 唯一识别码 STRING 当传输车辆数据实时,应使用车辆VIN,其字码应符合GB 16735的规定;如传输其他数据,则使用唯一自定义编码
21 数据单元加密方式 BYTE 0x01:数据不加密。0x02:数据经过RSA算法加密。0x03:数据经过AES128位算法加密。0xFE:异常。0xFF:无效。其他:预留
22 数据单元长度 WORD 数据单元长度是数据单元的总字节数,有效值范围:0~65531
24 数据单元 - 数据单元格式和定义见定义表
倒数第1位 校验码 BYTE 采用BCC(异或校验),校验范围:从命令单元的第1个字节开始,同后1个字节异或,知道校验码前1字节为止,校验码占用1个字节,当数据单元存在加密时,应先加密后校验,先校验后解密

命令标识定义

编码 定义 方向
0x01 车辆登入 上行
0x02 实时信息上报 上行
0x03 补发信息上报 上行
0x04 车辆登入 上行
0x05 平台登入 上行
0x06 平台登出 上行
0x07~0x08 终端数据预留 上行
0x09~0x7F 上行数据系统预留 上行
0x80~0x82 终端数据预留 下行
0x83~0xBF 下行数据系统预留 下行
0xC0~0xFE 平台交换自定义数据 自定义

应答标志

应答包定义:

  • 命令的主动发起方应答标志为0xFE时,表示此包为命令包;当应答标志不是0xFE时,被动接受方应不应答。
  • 当命令的被动接收方应答标志不是0xFE时,此包表示为应答包。
  • 当服务端发送应答时,应变更应答标志,保留报文时间,删除其余报文内容,并重新计算校验位。
编码 定义 说明
0x01 成功 接受到的信息正确
0x02 错误 设置未成功
0x03 VIN重复 VIN重复错误
0xFE 命令 表示数据包为命令包,而非应答包

时间(均采用北京时间)

数据表示内容 长度/字节 数据类型 有效值范围
1 BYTE 0~99
1 BYTE 1~12
1 BYTE 1~31
小时 1 BYTE 0~23
分钟 1 BYTE 0~59
1 BYTE 0~59

数据单元格式和定义

车辆登入数据格式和定义

数据标识内容 长度/字节 数据类型 描述及要求
数据采集时间 6 BYTE[6] 见时间定义
登入流水号 2 WORD 车载终端每登入一次,登入流水号自动+1,从1开始循环累加。最大值:65531循环周期:天
ICCID 20 STRING SIM卡ICCID号(ICCID应为终端从SIM卡获取的值,不应人为填写或修改)
可充电储能子系统数 1 BYTE 可充电储能子系统数n,有效值范围:0~250
可充电储能系统编码长度 1 BYTE 可充电充能系统编码长度m,有效范围:0~50("0"表示不上传该编码)
可充电储能系统编码 n×m STRING 可充电储能系统编码宜为终端从车辆获取的值

备注:可充电储能子系统指当车辆存在多套可充电储能系统混合使用时,每套可充电储能系统为一个可充电储能子系统

实时信息上报数据格式和定义

数据表示内容 长度/字节 数据类型 描述及要求
数据采集时间 6 BYTE[6] 见时间定义
信息类型标志(1) 1 BYTE 见信息类型标志定义
信息体(1) - - 根据数据类型不同,长度和数据类型不同
- -
信息类型标志(n) 1 BYTE 见信息类型标志定义
信息体(n) - - 根据数据类型不同,长度和数据类型不同

信息类型标志

类型编码 说明 备注
0x01 整车数据 见信息体的整车数据定义
0x02 驱动电机数据 见信息体的驱动电机数据定义(停车充电过程无需传输该数据)
0x03 燃料电池数据 见信息体的燃料电池数据定义
0x04 发动机数据 见信息体的发动机数据定义(停车过程无需传输该数据)
0x05 车辆位置数据 见信息体的车辆位置数据定义
0x06 极值数据 见信息体的极值数据定义
0x07 报警数据 见信息体的报警数据定义
0x08~0x09 终端数据预留 -
0x0A~0x2F 平台交换协议自定义数据 -
0x30~0x7F 预留
0x80~0xFE 用户自定义 见信息体的用户自定义

整车数据格式和定义

数据表示内容 长度/字节 数据类型 描述及要求
车辆状态 1 BYTE 0x01:车辆启动状态。0x02:熄火。0x03:其他状态。0xFE:异常。0xFF:表示无效。
充电状态 1 BYTE 0x01:停车充电。0x02:行驶充电。0x03:未充电状态。0x04:充电完成。0xFE:异常。0xFF:无效。
运行模式 1 BYTE 0x01:纯电。0x02:混动。0x03:燃油。0xFE:异常。0xFF:无效。
车速 2 WORD 有效值范围:02200(表示0km/h220km/h)最小计量单元:0.1km/h。0xFF,0xFE:异常。0xFF,0xFF:无效。
累计里程 4 DWORD 有效值范围:09999999(表示0km999999.9km)。最小计量单元:0.1km。0xFF,0xFF,0xFF,0xFE:异常。0xFF,0xFF,0xFF,0xFF:无效。
总电压 2 WORD 有效值范围:010000(表示0V1000V)。最小计量单元:0.1V。0xFF,0xFE:异常。0xFF,0xFF:无效。
总电流 2 WORD 有效值范围:020000(偏移量1000A,表示-1000A+1000A)。最小计量单元:0.1A。0xFF,0xFE:异常。0xFF,0xFF:无效。
SOC 1 BYTE 有效值范围:0100(表示0%100%)。最小计量单元:1%。0xFE:异常。0xFF:无效。
DC-DC状态 1 BYTE 0x01:工作。0x02:断开。0xFE:异常。0xFF:无效。
档位 1 BYTE 见档位定义
绝缘电阻 2 WORD 有效范围060000(表示0kΩ60000kΩ)。最小计量单元:1kΩ
预留 2 WORD 预留位

驱动电机数据

数据表示内容 长度/字节 数据类型 描述及要求
驱动电机个数 1 BYTE 有效值1~253
驱动电机总成信息列表 ∑每个驱动电机总成信息长度 - 按驱动电机序号依次排列,每个驱动电机数据格式和定义见《每个驱动电机数据格式和定义》(本文未列出,见国标)

燃料电池数据

数据表示内容 长度/字节 数据类型 描述及要求
燃料电池电压 2 WORD 有效值范围:020000(表示0V2000V)。最小计量单元:0.1V。0xFF,0xFE:异常。0xFF,0xFF:无效。
燃料电池电流 2 WORD 有效值范围:020000(表示0A+2000A)。最小计量单元:0.1A。0xFF,0xFE:异常。0xFF,0xFF:无效。
燃料消耗率 2 WORD 有效值范围:060000(表示0kg/100km600kg/100km)。最小计量单元:0.01kg/100km。0xFF,0xFE:异常。0xFF,0xFF:无效。
燃料电池温度探针总数 2 WORD N个燃料电池温度探针。有效值范围:0~65531。0xFF,0xFE:异常。0xFF,0xFF:无效。
探针温度值 1×N BYTE[N] 有效值范围:0240(数值偏移量40°C,表示-40°C+200°C)。最小计量单元:1°C。
氢系统中最高温度 2 WORD 有效值范围:02400(偏移量40°C,表示-40°C200°C)。最小计量单元:0.1°C。0xFF,0xFE:异常。0xFF,0xFF:无效。
氢系统中最高温度探针代号 1 BYTE 有效值范围:1~252。0xFE:异常。0xFF:无效。
氢气最高浓度 2 WORD 有效值范围:060000(表示0mg/kg50000mg/kg)。最小计量单元:1mg/kg。0xFF,0xFE:异常。0xFF,0xFF:无效。
氢气最高浓度传感器代号 1 BYTE 有效值范围:1~252。0xFE:异常。0xFF:无效。
氢气最高压力 2 WORD 有效值范围:01000(表示0MPa100MPa)。最小计量单元:0.1MPa。
氢气最高压力传感器代号 1 BYTE 有效值范围:1~252。0xFE:异常。0xFF:无效。
高压DC/DC状态 1 BYTE 0x01:工作。0x02:断开。0xFE:异常。0xFF:无效。

车辆位置数据

数据表示内容 长度/字节 数据类型 描述及要求
定位状态 1 BYTE 【BIT0】0:有效定位;1:无效定位。(当数据通信正常,而不能获取定位信息时,发送最后一次有效定位信息,并将定位状态置为无效。【BIT1】0:北纬;1:南纬。【BIT2】0:东经;1:西经。【BIT3~7】保留
经度 4 DWORD 以度为单位的纬度值乘以106,精确到百万分之一度
纬度 4 DWORD 以度为单位的纬度值乘以106,精确到百万分之一度

极值数据

数据表示内容 长度/字节 数据类型 描述及要求
最高电压电池子系统号 1 BYTE 有效值范围:1~250。0xFE:异常。0xFF:无效。
最高电压电池单体代号 1 BYTE 有效值范围:1~250。0xFE:异常。0xFF:无效。
电池单体电压最高值 2 WORD 有效值范围:015000(表示0V15V)。最小计量单元:0.001V。0xFF,0xFE:异常。0xFF,0xFF:无效。
最低电压电池子系统号 1 BYTE 有效值范围:1~250。0xFE:异常。0xFF:无效。
最低电压电池单体代号 1 BYTE 有效值范围:1~250。0xFE:异常。0xFF:无效。
电池单体电压最低值 2 WORD 有效值范围:015000(表示0V15V)。最小计量单元:0.001V。0xFF,0xFE:异常。0xFF,0xFF:无效。
最高温度子系统号 1 BYTE 有效值范围:1~250。0xFE:异常。0xFF:无效。
最高温度探针序号 1 BYTE 有效值范围:1~250。0xFE:异常。0xFF:无效。
最高温度值 1 BYTE 有效值范围:0250(数值偏移量40°C,表示-40°C+210°C)。最小计量单元:1°C。0xFE:异常。0xFF:无效
最低温度子系统号 1 BYTE 有效值范围:1~250。0xFE:异常。0xFF:无效。
最低温度探针序号 1 BYTE 有效值范围:1~250。0xFE:异常。0xFF:无效。
最低温度值 1 BYTE 有效值范围:0250(数值偏移量40°C,表示-40°C+210°C)。最小计量单元:1°C。0xFE:异常。0xFF:无效

报警数据

数据表示内容 长度/字节 数据类型 描述及要求
最高报警等级 1 BYTE 为当前发生的故障中的最高等级值,有效值范围:0~3。0:无故障。1:1级故障,指代不影响车辆正常行驶的故障。2:2级故障,指代影响车辆性能,需驾驶员限制行驶的故障。3:3级故障,为最高级别故障,指代驾驶员应立即停车处理或请求救援的故障具体等级对应的故障内容由厂商自行定义。0xFE:异常。0xFF:无效。
通用报警标志 4 DWORD 见通用报警标志位定义(本文未列出,具体见国标)
可充电储能装置故障总数N1 1 BYTE N1个可充电储能装置故障有效值范围:0~252。0xFE:异常。0xFF:无效。
可充电储能装置故障代码列表 4×N1 DWORD 扩展性数据,由厂商自行定义,可充电储能装置故障个数等于可充电储能装置故障总数N1
驱动电机故障总数N2 1 BYTE N2个驱动电机故障有效值范围:0~252。0xFE:异常。0xFF:无效
驱动电机故障代码列表 4×N2 DWORD 厂商自行定义,驱动电机故障个数等于驱动电机故障总数N2
发动机故障总数N3 1 BYTE N3个驱动电机故障,有效值范围:0~252。0xFE:异常。0xFF:无效
发动机故障列表 4×N3 DWORD 厂商自行定义,发动机故障个数等于驱动电机故障总数N3
其他故障总数N4 1 BYTE N4个其他故障,有效值范围:0~252。0xFE:异常。0xFF:无效
其他故障代码列表 4×N4 DWORD 厂商自行定义,故障个数等于故障总数N4

自定义数据

数据表示内容 长度/字节 数据类型 描述及要求
自定义数据长度 2 WORD 自定义数据长度n,有效范围1~65531
自定义数据 1×N BYTE[N] 扩展性数据,由用户自行定义

档位状态位定义

定义
Bit7 预留,预留位用0表示
Bit6 预留,预留位用0表示
Bit5 1:有驱动力。0:无驱动力。
Bit4 1:有制动力。0:无制动力。
Bit3~0 挡位:=0000:空挡。=0001:1挡。=0010:2挡。=0011:3挡。=0100:4挡。=0101:5挡。=0110:6挡。=…。=1101:倒挡。=1110:自动D挡。=1111:停车P。

车辆登出数据格式和定义

数据表示内容 长度/字节 数据类型 描述及要求
登出时间 6 BYTE[6] 见时间定义
登出流水号 2 WORD 登出流水号与当次登入流水号一致

平台登入数据格式和定义

数据表示内容 长度/字节 数据类型 描述及要求
平台登入时间 6 BYTE[6] 见时间定义
登入流水号 2 WORD 下级平台每登入一次,登入流水号自动加1,从1开始循环累加,最大值为65531,循环周期为天
平台用户名 12 STRING 平台登入用户名
平台密码 20 STRING 平台登入密码
加密规则 1 BYTE 0x01:数据不加密。0x02:数据经过RSA算法加密。0x03:数据经过AES128位算法加密。0xFE:异常。0xFF:无效。其他:预留

平台登出数据格式和定义

数据表示内容 长度/字节 数据类型 描述及要求
登出时间 6 BYTE[6] 见时间定义
登出流水号 2 WORD 登出流水号与当次登入流水号一致

猜你喜欢

转载自blog.csdn.net/XiuHua_Wu/article/details/113732636