100 lines
2.8 KiB
Markdown
100 lines
2.8 KiB
Markdown
|
# 主动均衡BMS主从机通讯协议
|
|||
|
|
|||
|
> 暂定采用MODBUS协议
|
|||
|
>
|
|||
|
> 主CPU当主机,从CPU为从机
|
|||
|
>
|
|||
|
> 从机收到蓝牙数据后直接传给主机
|
|||
|
>
|
|||
|
> 从机除了蓝牙数据以外不会主动向主机发送数据,只响应主机指令,如读取数据等;
|
|||
|
>
|
|||
|
> 从机主动工作内容为读取V1/V2电压,监测电池掉线,监测电池电压,监测均衡电流,获取GPS,开关桥驱动
|
|||
|
>
|
|||
|
> 从机被动工作内容为蓝牙收发数据,电容充放电(均衡),LCD显示。
|
|||
|
|
|||
|
## 1.主从通讯协议内容
|
|||
|
|
|||
|
### 1.1从机直接发送给主机
|
|||
|
|
|||
|
1. 蓝牙模块数据
|
|||
|
|
|||
|
### 1.2主机从从机读取数据
|
|||
|
|
|||
|
1. V1/V2电压
|
|||
|
2. 掉线监测状态
|
|||
|
3. 电池电压状态
|
|||
|
4. 均衡电流
|
|||
|
5. GPS数据
|
|||
|
|
|||
|
### 1.3主机发送指令给从机
|
|||
|
|
|||
|
1. 发送蓝牙数据
|
|||
|
2. 电容开关充电
|
|||
|
3. 电容开关放电
|
|||
|
4. 桥驱动电源开关
|
|||
|
5. LCD数据
|
|||
|
|
|||
|
### 1.4主机发送配置数据给从机
|
|||
|
|
|||
|
1. 蓝牙开关
|
|||
|
2. BUCK占空比
|
|||
|
3. BOOST占空比
|
|||
|
|
|||
|
## 2.协议帧格式
|
|||
|
|
|||
|
> 采样MODBUS协议
|
|||
|
>
|
|||
|
> 相关定义如下:
|
|||
|
>
|
|||
|
> 起始码:0x53
|
|||
|
>
|
|||
|
> 读数据:0x03
|
|||
|
>
|
|||
|
> 发指令:0x06
|
|||
|
>
|
|||
|
> 发数据:0x10
|
|||
|
>
|
|||
|
> 结束码:0x4C
|
|||
|
|
|||
|
### 2.1主机读取从机数据
|
|||
|
|
|||
|
发送:
|
|||
|
|
|||
|
| 起始码 | 功能码 | 地址 | 数据高位 | 数据低位 | 校验低位 | 校验高位 |
|
|||
|
| ------ | ------ | ----- | -------- | -------- | -------- | -------- |
|
|||
|
| 0x53 | 0x03 | 00-FF | 0x xx | 0x xx | 0x xx | 0x xx |
|
|||
|
|
|||
|
响应:
|
|||
|
|
|||
|
| 起始码 | 功能码 | 地址 | 寄存器数量 | 数据1高位 | 数据1低位 | ... | 校验低位 | 校验高位 |
|
|||
|
| ------ | ------ | ----- | ---------- | --------- | --------- | ---- | -------- | -------- |
|
|||
|
| 0x53 | 0x03 | 00-FF | 0x xx | 0x xx | 0x xx | | 0x xx | 0x xx |
|
|||
|
|
|||
|
### 2.2主机发送命令给从机
|
|||
|
|
|||
|
发送:
|
|||
|
|
|||
|
| 起始码 | 功能码 | 命令号 | 校验低位 | 校验高位 |
|
|||
|
| ------ | ------ | ------ | -------- | -------- |
|
|||
|
| 0x53 | 0x06 | 00-FF | 0x xx | 0x xx |
|
|||
|
|
|||
|
响应:
|
|||
|
|
|||
|
| 起始码 | 功能码 | 命令号 | 执行结果 | 校验低位 | 校验高位 |
|
|||
|
| ------ | ------ | ------ | -------- | -------- | -------- |
|
|||
|
| 0x53 | 0x06 | 00-FF | 0x xx | 0x xx | 0x xx |
|
|||
|
|
|||
|
### 2.3主机发送数据给从机
|
|||
|
|
|||
|
发送:
|
|||
|
|
|||
|
| 起始码 | 功能码 | 起始地址 | 寄存器数量 | 数据1高位 | 数据1低位 | ... | 校验低位 | 校验高位 |
|
|||
|
| ------ | ------ | -------- | ---------- | --------- | --------- | ---- | -------- | -------- |
|
|||
|
| 0x53 | 0x10 | 00-FF | 0x xx | 0x xx | 0x xx | | 0x xx | 0x xx |
|
|||
|
|
|||
|
响应:
|
|||
|
|
|||
|
| 起始码 | 功能码 | 起始地址 | 寄存器数量 | 发数据结果 | 校验低位 | 校验高位 |
|
|||
|
| ------ | ------ | -------- | ---------- | ---------- | -------- | -------- |
|
|||
|
| 0x53 | 0x10 | 00-FF | 0x xx | 0x xx | 0x xx | 0x xx |
|