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 |
三、策略要点
-
硬件极速关断:50µs 检测 + <1µs 关断,不依赖 MCU。短路能量与时间成正比,速度就是一切。
-
AFE 32ms 自动重试:AFE 每 32ms 尝试重新打开 MOS------短路消失即恢复,无需 MCU 干预。硬件层天然具备"自恢复"能力。
-
软件防误报:12/14 投票过滤容性启动脉冲。如果真是电容充电引起的,额外有预充重试机制兜底。
-
故障清除等 60s:短路消失后不立即清故障,等足一分钟确认并非暂时性解除。这是对"短路是否真的没了"的审慎判断。
-
3 次锁定:允许 3 次自恢复,第 3 次锁定。短路是危险事件,不能无限重试------每次短路都是对 MOS、电池、线束的一次冲击。
-
充电解锁:锁定后只有插充电器才能解除------设计假设接入充电柜是一种"安全确认",运维人员在场。
四、与过流保护的层级关系
电流从小到大:
放电过流告警 → 只通知,不动作
放电过流保护1 → 禁止放电,可自恢复(锁定机制)
放电过流保护2 → 禁止放电,更快速响应(锁定机制)
短路保护 → 硬件直接触发,禁止放电(3 次锁定,充电解锁)
响应速度:
过流告警/保护 → 秒级(软件滤波延时)
短路保护 → 微秒级(AFE 硬件直连)
本文基于量产 BMS 代码分析。