# 电源类CAN协议标准 为了更好的兼容不同设备,我们规范了CAN协议的标准,使得同类型不同型号设备能无缝切换,自动被ROS识别并直接使用,方便更换硬件时候的软件移植工作。以下为电源使用的专用CAN协议。

请先确保阅读了[CAN协议构架说明](https://docs.hexmove.cn/books/hexmove/page/can-Zxd)再开始以下内容

请注意使用设备CANID替换表中XX部分

电源类设备的大类ID为 06

--- ### 电源指令总表 此表展示了专用指令的所有指令内容,方便快速查询和定位
指令集 反馈集 重要性 说明
设备对象 命令内容 大类 (00~1F) 型号 (00~FF) 编号 (00~FF) 功能 (00~FF) 大类 (00~1F) 型号 (00~FF) 编号 (00~FF) 功能 (00~FF) 反馈内容 周期性
电池 / / / / / 06 xx xx B1 BMS状态信息 周期反馈 必备
/ / / / / 06 xx xx B2 BMS数据反馈 周期反馈 必备
充电站 充电站设置 06 xx xx 13 06 xx xx B3 充电站状态信息 周期反馈 必备
/ / / / / 06 xx xx B4 充电站数据反馈 周期反馈 必备
数字电源 数字电源设置 06 xx xx 15 06 xx xx B5 电源数据反馈 周期反馈 必备
--- ### 1. BMS状态信息 用于带有BMS功能的电池包的数据采集
BMS状态信息
发送方 接收方 CAN ID 数据长度 周期(ms)
本设备 外部 0x 06 XX XX B1 4 1000
数据位 功能 数据类型 说明
byte\[0\] 工作状态 unsigned int8 0x00: 正常 / 0x01: 警告 /0x02: 保护
byte\[1\] 警告状态 unsigned int8 警告状态表
byte\[2\] 保护状态 unsigned int8 保护状态表
byte\[3\] 充电标识 unsigned int8 0x00: 未充电 / 0x01: 充电中
byte\[4~7\] / / /
警告状态表
说明
bit\[0\] 0: 正常 / 1: 警告 电池过压警告
bit\[1\] 0: 正常 / 1: 警告 电池欠压警告
bit\[2\] 0: 正常 / 1: 警告 电池高温警告
bit\[3\] 0: 正常 / 1: 警告 电池低温警告
bit\[4\] 0: 正常 / 1: 警告 放电过流警告
bit\[5\] 0: 正常/ 1: 警告 充电过流警告
bit\[6\] 0: 正常 / 1: 警告 低电量警告(SOC<20%)
bit\[7\] / /
保护状态表
说明
bit\[0\] 0: 正常 / 1: 触发 电池过压保护
bit\[1\] 0: 正常 / 1: 触发 电池欠压保护
bit\[2\] 0: 正常 / 1: 触发 电池高温保护
bit\[3\] 0: 正常 / 1: 触发 电池低温保护
bit\[4\] 0: 正常 / 1: 触发 放电过流保护
bit\[5\] 0: 正常 / 1: 触发 充电过流保护
bit\[6\] 0: 正常 / 1: 触发 低电量保护(SOC<10%)
bit\[7\] 0: 正常 / 1: 触发 短路保护

电池包必须带有BMS才能使用该功能

> 举例: 型号0x01 编号0x02 的BMS 充电中。 > >
发送实例 > >
传输目标 > > CAN ID > > 帧格式 > > 帧类型 > > 数据长度 > > 数据位(L->H) > >
设备 > > / > > / > > / > > / > > / > >
上位机 > > 0x06 01 02 B1 > > 数据帧 > > 扩展帧 > > 4 > > 00 00 00 01 > >
--- ### 2. BMS数据反馈 用于带有BMS功能的电池包的数据采集
BMS数据反馈
发送方 接收方 CAN ID 数据长度 周期(ms)
本设备 外部 0x 06 XX XX B2 8 500
数据位 功能 数据类型 说明
byte\[0\] SOC unsigned int8 范围 0~100
byte\[1\] SOH unsigned int8 范围 0~100
byte\[2\] 电池电压低8位 unsigned int16 单位:0.01V
byte\[3\] 电池电压高8位
byte\[4\] 电池电流低8位 signed int16 单位:0.1A
byte\[5\] 电池电流高8位
byte\[6\] 电池温度低8位 signed int16 单位:0.1℃
byte\[7\] 电池温度高8位

电池包必须带有BMS才能使用该功能

> 举例: 型号0x01 编号0x02 的BMS 满电48V反馈。 > >
发送实例 > >
传输目标 > > CAN ID > > 帧格式 > > 帧类型 > > 数据长度 > > 数据位(L->H) > >
设备 > > / > > / > > / > > / > > / > >
上位机 > > 0x06 01 02 B2 > > 数据帧 > > 扩展帧 > > 8 > > 64 64 C0 12 00 00 68 01 > >
--- ### 3. 充电站设置 用于配套的自动充电站的设置
充电站设置
发送方 接收方 CAN ID 数据长度 周期(ms
外部 本设备 0x 06 XX XX 13 5 /
数据位 功能 数据类型 说明
byte\[0\] 工作模式 unsigned int8 0:自动(默认) /1:手动 查看工作模式功能表
byte\[1\] 手动开关设置(仅手动模式有效) unsigned int8 0:断开(默认) /1:连接 查看工作模式功能表
byte\[2\] 蜂鸣器使能(报警无法关闭) unsigned int8 0:关闭 /1:开启(默认)
byte\[3\] 再充电压差值(与满电电压的压差) unsigned int8 单位:0.1V(默认1.0V)
byte\[4\] 充电截至电流 unsigned int8 单位:0.1A(默认0.2A)
byte\[5~7\] / / /
充电站状态信息
发送方 接收方 CAN ID 数据长度 周期(ms)
本设备 外部 0x 06 XX XX B3 7 500/接触触发(看备注)
数据位 功能 数据类型 说明
byte\[0\] 工作模式 unsigned int8 0:自动 /1:手动
byte\[1\] 充电站探测状态 unsigned int8 0:未接触 /1:已接触
byte\[2\] 工作状态 unsigned int8 0: 断开/ 1:连接 / 2:已充满(低电流) / 3:错误
byte\[3\] 错误状态 unsigned int8 查看错误状态表
byte\[4\] 蜂鸣器使能状态 unsigned int8 0:关闭 /1:开启(默认)
byte\[5\] 再充电压差值 unsigned int8 单位:0.1V(默认1.0V)
byte\[6\] 充电截至电流 unsigned int8 单位:0.1A(默认0.2A)
byte\[7\] / / /
错误状态表
字节 状态值 说明
byte\[3\] 0x00 无错误
0x01 电源过压
0x02 充电过流
0x03 短路保护
工作状态指示表
工作状态 LED状态 蜂鸣器状态
断开(未接触) 无灯
断开(已接触) 绿灯闪烁
连接 红绿交替
已充满 绿灯常亮
错误 红灯常亮 按规定的错误发声模式
工作模式功能表
工作模式 探测状态 手动开关 工作状态
自动 未接触 无效 断开
接触 无效 连接
手动 未接触 无效 断开
接触 连接 连接
断开(默认) 断开

一般反馈周期为500ms,如果出现充电站探测变化则立即发送充电站状态信息帧

再冲电电压差指完成第一次充电后,如果电池电压下降超过设置的压差值,会再次启动充电

> 举例: 型号0x02 编号0x03 的充电站 手动控制连接。 > >
发送实例 > >
传输目标 > > CAN ID > > 帧格式 > > 帧类型 > > 数据长度 > > 数据位(L->H) > >
设备 > > 0x06 02 03 13 > > 数据帧 > > 扩展帧 > > 5 > > 01 01 00 0A 02 > >
上位机 > > 0x06 02 03 B3 > > 数据帧 > > 扩展帧 > > 7 > > 01 01 01 00 00 0A 02 > >
--- ### 4. 充电站数据反馈 用于配套的自动充电站的充电数据反馈
充电站数据反馈
发送方 接收方 CAN ID 数据长度 周期(ms)
本设备 外部 0x 06 XX XX B4 4 500
数据位 功能 数据类型 说明
byte\[0\] 充电电压低8位 unsigned int16 单位:0.01V
byte\[1\] 充电电压高8位
byte\[2\] 充电电流低8位 signed int16 单位:0.1A
byte\[3\] 充电电流高8位
byte\[4~7\] / / /
> 举例: 型号0x02 编号0x03 的充电站48V 1A充电。 > >
发送实例 > >
传输目标 > > CAN ID > > 帧格式 > > 帧类型 > > 数据长度 > > 数据位(L->H) > >
设备 > > / > > / > > / > > / > > / > >
上位机 > > 0x06 02 03 B4 > > 数据帧 > > 扩展帧 > > 4 > > C0 12 0A 00 > >
--- ### 5. 数字电源设置 用于专用的数字电源
数字电源设置
发送方 接收方 CAN ID 数据长度 周期(ms
外部 本设备 0x 06 XX XX 15 8 /
数据位 功能 数据类型 说明
byte\[0\] 电源通道ID unsigned int8 1~255
byte\[1\] 模式 unsigned int8 1:恒压模式 / 2:恒流模式
byte\[2\] 反馈周期 unsigned int8 单位ms
byte\[3\] / / /
byte\[4\] 输出电流或最大电流 unsigned int16 单位 mA 恒压模式为最大电流
byte\[5\]
byte\[6\] 输出电压或最大电压 unsigned int16 单位 mV 恒流模式为最大电压
byte\[7\]
数字电源数据反馈
发送方 接收方 CAN ID 数据长度 周期(ms)
本设备 外部 0x 06 XX XX B5 8 按设置周期
数据位 功能 数据类型 说明
byte\[0\] 电源通道ID unsigned int8 1~255
byte\[1\] 模式 unsigned int8 1:恒压模式 / 2:恒流模式
byte\[2\] 错误码 unsigned int8 查看错误状态码
byte\[3\] / / /
byte\[4\] 输出电流或最大电流 unsigned int16 单位 mA 恒压模式为最大电流
byte\[5\]
byte\[6\] 输出电压或最大电压 unsigned int16 单位 mV 恒流模式为最大电压
byte\[7\]
错误状态表
字节 状态值 说明
byte\[2\] 0x00 无错误
0x01 电源过压
0x02 电源过流
0x03 电源过温