两轮BMS 短路保护策略详解

BMS 短路保护策略详解

基于量产 60V BMS(STM32F0 + SH367306 AFE),拆解短路保护从硬件触发到软件锁定的完整策略。


一、短路保护为什么特殊?

过流保护是软件阈值比较,短路保护是硬件直接检测。短路时电流数百A/ms级上升,软件 10ms 采样周期根本来不及。所以 AFE(SH367306)内置了专用模拟比较器:

放电过流保护 短路保护
检测方式 软件阈值比较 AFE 硬件比较器
响应延时 数十ms ~ 秒 <50µs
阈值量级 数十A ~400A
系统动作 仅禁止放电 同时禁止充放电(掩码 0x14)

二、四层架构

复制代码
硬件层(<50µs):      AFE 比较器 → SC 标志 → 硬件自动关断 MOS
驱动层(50ms 周期):   12/14 投票滤波 → 确认真实短路
故障层(10ms 周期):   标志触发 → 禁止充放电 → 恢复/锁定状态机
系统层(50ms 周期):   NVRAM 统计 → 历史记录

硬件层

AFE 通过分流器压降判断:阈值 200mV(≈400A),持续 >50µs 即触发。触发后硬件自动关断放电 MOS------不经过 MCU、不经过 I2C,<1µs 完成。

驱动层

MCU 每 50ms 读一次 AFE 状态。采用 12/14 多数投票:700ms 窗口内 ≥12 次读到 SC 标志才确认短路。作用是过滤容性负载上电瞬间的短脉冲大电流。

故障层

上游确认后直接置故障标志(不做阈值比较)。故障响应掩码 0x10 = 禁止放电

故障恢复条件

短路消失后,MCU 侧故障并不会立即清除 。清除路径有三条(FDR.c:1342):

c 复制代码
s_faultClearCondition[ShortCircuitFlt] = ShortCircuitFltRecovery()
                                       | ChargeCurr_flg
                                       | ShortCircuitFltLock_flg;

路径 1:时间恢复 ------ 短路消失后等待 60s

短路消失(AFE 不再报 SC),FaultCode 依然置位。ShortCircuitFltRecovery 开始计时,等待 60 秒后才允许清除:

复制代码
短路消失 → AFE SC 标志停止 → SCStatus = 0
         → ShortCircuitFltRecovery 计时(i++)
         → i > ShortCircuitRecov_Times(= 1min × 60 × 10 = 600 周期 = 60s)
         → Counter++,若 Counter < 3 → rtvalue = true → 故障清除

60 秒的等待是为了确保短路真的解除了,而不是短暂消失后再次发生。

路径 2:充电恢复 ------ 插上充电器立即清除

检测到充电电流(current_mA < -500mA)→ Counter 清零,故障立即清除。相当于"接入充电柜 = 安全确认"。

路径 3:锁定后清除

Counter ≥ 3 次后 ShortCircuitFltLock_flg = true,此标志本身就是清除条件------故障码清除,但 forbidDisCharge_flg 持续生效,直到充电解锁。

锁定与解除
复制代码
每次短路恢复 → Counter++(共 3 个 Counter 槽位)
Counter < 3  → 允许自恢复,可继续用
Counter ≥ 3  → 锁定!forbidDisCharge 持续生效
             → 必须插充电器 → ChargeCurr_flg = true
             → Counter 清零 + 锁定解除
参数 默认值 来源
AFE 硬件重试 32ms SH367306 RST1:0 寄存器
MCU 确认次数 12 次 驱动层防抖
故障恢复等待 60s ShortCircuitProtectReleaseInterval_Min = 1
允许自恢复次数 3 次 ShortCircuitProtectSelfRecoveryTimes
锁定解除 插充电器 ChargeCurr_flg 触发
充电解锁延时 5s ShortCircuitFltLockRec_Cnt > 50

三、策略要点

  1. 硬件极速关断:50µs 检测 + <1µs 关断,不依赖 MCU。短路能量与时间成正比,速度就是一切。

  2. AFE 32ms 自动重试:AFE 每 32ms 尝试重新打开 MOS------短路消失即恢复,无需 MCU 干预。硬件层天然具备"自恢复"能力。

  3. 软件防误报:12/14 投票过滤容性启动脉冲。如果真是电容充电引起的,额外有预充重试机制兜底。

  4. 故障清除等 60s:短路消失后不立即清故障,等足一分钟确认并非暂时性解除。这是对"短路是否真的没了"的审慎判断。

  5. 3 次锁定:允许 3 次自恢复,第 3 次锁定。短路是危险事件,不能无限重试------每次短路都是对 MOS、电池、线束的一次冲击。

  6. 充电解锁:锁定后只有插充电器才能解除------设计假设接入充电柜是一种"安全确认",运维人员在场。


四、与过流保护的层级关系

复制代码
电流从小到大:
  放电过流告警  → 只通知,不动作
  放电过流保护1 → 禁止放电,可自恢复(锁定机制)
  放电过流保护2 → 禁止放电,更快速响应(锁定机制)
  短路保护      → 硬件直接触发,禁止放电(3 次锁定,充电解锁)

响应速度:
  过流告警/保护 → 秒级(软件滤波延时)
  短路保护      → 微秒级(AFE 硬件直连)

本文基于量产 BMS 代码分析。

相关推荐
zwenqiyu2 小时前
非线性字符串数据结构串讲
数据结构·c++·学习·算法
z小猫不吃鱼2 小时前
03 Optimal Brain Surgeon 详解:Hessian 剪枝为什么有效?
算法·机器学习·剪枝
硕风和炜2 小时前
【LeetCode: 1301. 最大得分的路径数目 + DP】
java·算法·leetcode·动态规划·dp·记忆化搜索
用户99045017780092 小时前
做了一个AI诊断,参考倪海厦中医理论,科学养生
算法
努力中的编程者2 小时前
STL-vector的模拟实现
开发语言·c++·算法·stl·vector
weixin_400005603 小时前
RL-frenet-trajectory-planning-in-CARLA
人工智能·深度学习·算法·机器学习·自动驾驶
Keven_113 小时前
AcWing算法提高课思路速查:动态规划
算法·动态规划
剑挑星河月3 小时前
94.二叉树的中序遍历
java·算法·leetcode
拳里剑气3 小时前
C++算法:队列与BFS
c++·算法·bfs·宽度优先·队列