6020/4820 BMS 软件控制策略+源代码

本文详细介绍了6020/4820 BMS的软件控制策略,包括系统上电、预充电、主继电器控制、RS485通信、休眠模式、电压电流温度采样等关键步骤。此外,还提供了源码的特点,如逻辑功能中文注解、SOC温度补偿算法、开发历史记录和功能测试案例。附带了工程源码的下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能明细

1、 系统上电:

开机时直接打开System_Power_EN,(置System_Power_EN高)

2、 预充电部分:

IO控制,上电时开启(Pre_DIS_EN置高),直到进入保护(欠压状态)时关闭(Pre_DIS_EN置低)。

3、 主继电器开关动作:

a) 打开+12VDC/DC_EN(使能+12VDC/DC_EN,置高)

b) 开关继电器期间,测试ADC_12V,若ADC_12V小于12V,则进入故障状态,关主继电器,关System_Power_EN

c) 开关动作后延时500ms关+12VDC/DC_EN(失能+12VDC/DC_EN,置低)

4、 RS485通信

a) 需要通信时置RS485_Power_EN高
b) 通信超时后(准备进入Sleep状态前)关RS485_Power_EN,置低

5、 休眠

a) 进入休眠条件:通信结束后60秒
b) 进入休眠前动作要求:无
c) 唤醒条件:RS485通信唤醒、看门狗唤醒、预充电唤醒、外部按键唤醒
d) 唤醒后动作:
`` i. 通信唤醒:使能通信(RS485_Power_EN),计时等待通信超时,超时后再次进入休眠
`` ii. 看门狗唤醒:
`` `` `` 1. 喂狗
`` `` `` 2. 检测Pack电压,若存在欠压状态,根据欠压逻辑执行
`` `` `` 3. 按照Sleep状态下补偿SOC并更新SOC
`` `` `` 4. 若无欠压,再次进入休眠
`` iii. 预充电唤醒:计时等待通信超时(1分钟),超时后再次进入休眠
`` iv. 外部按键唤醒:计时等待通信超时(1分钟),超时后再次进入休眠

6、 电压、电流、温度采样

a) 采样周期30秒
b) 采样前使能
`` i. 采样Pack电压前使能ADC_Pack_EN,置高
`` ii. 采样Cell电压前使能ADC_Cell_EN,置高
c) 采样后失能
`` i. 采样Pack电压后失能ADC_Pack_EN,置低
`` ii. 采样Cell电压后失能ADC_Cell_EN,置低
d) 电流采样:零点标记法

7、 外部看门狗

a) 喂狗周期:1分钟
b) 喂狗脉冲:脉冲宽度大于100ns

8、 工作状态检测

a) 检测充放电电流判定充放电状态,主动进入休眠状态
`` i. 电流为正:充电状态
`` ii. 电流为负:放电状态
`` iii. 进入休眠前标记系统状态为休眠状态
`` iv. 退出休眠状态时根据电流判定充放电状态

9、 保护处理

a) 过压:(只在充电时检测)
`` i. 4~4.2V:主动上报告警
`` ii. 大于4.2V:尝试连续3次后,锁定状态,关主继电器,同时主动上报告警
`` iii. 锁定恢复:放电恢复
b) 欠压:(只在放电时检测)
`` i. 2.7V~3V:主动上报告警
`` ii. 2.5V~2.7V:尝试连续3次后,锁定状态,关主继电器,关预充电,同时主动上报告警
`` iii. 小于2.5:关System_Power_EN
`` iv. 锁定恢复:充电恢复
c) 不平衡:任意Cell压差大于0.5V时关主继电器,关System_Power_EN
d) 过温:
`` i. 40~45度:主动上报告警
`` ii. 大于45度:断主继电器
e) 欠温:
`` i. -15~-20度:主动上报告警
`` ii. 小于-20度:断主继电器
f) 过流:主动上报告警
g) 短路:尝试3次,连续3次短路后,锁定状态,主动上报告警,断主继电器
h) 短路恢复:充电恢复
i) 短路测试方法:
`` i. 使能Pre_DIS_EN(置高),延时1秒后检测Pack-电压
`` ii. Pack-电压小于1/3Vpack额定电压,认为短路
`` iii. 立刻断开Pre_DIS_EN
`` iv. 短路测试周期30秒

10、 SOC:

a) 算法:SOC-OCV + CoulombCount
b) 采样周期:250ms
c) 系统定时记录SOC值到EEPROM中,定时时间为4分钟
d) 休眠状态下,在休眠唤醒4次后更新SOC值(与看门狗配合使用),4次约4分钟,次数根据看门狗喂狗值调试决定

11、 循环充放电使用次数:

在这里插入图片描述

12、 使用时间:

a) 采用RTC(本次不使用)
b) 采用WatchDog的时钟做时基
c) 记录出厂时间(EEPROM配合)

13、 调试模式支持

a) 读取Pack电压、温度、电流
b) 读取单体Cell电压
c) 读取故障信息:故障码

14、 故障记录

a) 记录故障时的运行参数:最高Cell电压、最低Cell电压、当前温度、Pack总电压、告警码
b) 记录条数:仅记录最近的一条数据(当前故障)

15、 异常处理及恢复办法

a) 过压:锁定后,放电解锁;电压恢复后自动恢复正常状态
b) 欠压:锁定后,充电解锁;电压恢复后自动恢复正常状态
c) 过温:温度恢复后自动恢复
d) 欠温:温度恢复后自动恢复
e) 过流:不锁定,状态解除后,自动恢复
f) 短路:锁定状态,状态解除后,自动恢复;充电解锁

软件设计流程

在这里插入图片描述

工程源码

源码特点

1. 详细的逻辑功能中文注解
2.SOC部分,过程计算记录温度补偿算法采用 三维平面Z值插补的原型
3. 有开发历史记录文档
4.有功能测试代码案例

BMS_Super
https://www.aliyundrive.com/s/2FBULRVLxj3
提取码: 47ry
点击链接保存,或者复制本段内容,打开「阿里云盘」下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「Thunder Studio」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值