# 电源类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
| 电源过温 |