BMS断线检测电路实现:从原理到AFE内置方案与分立设计
一、为什么需要断线检测
在 BMS 中,电芯电压采样线(NTC 线、均衡线同理)可能因振动、连接器松动、线束断裂而断开。断线后系统仍能读到一个"假电压"------断线点的电压被 AFE 内部高阻和相邻电芯内阻分压得到,看起来正常但实际不代表真实电芯电压。
正常: 电芯n+ ──[采样线]── AFE_Cn (电压=真实电芯电压)
断线: 电芯n+ ╳ [断线] AFE_Cn (电压被内阻Ri分压,是假值)
如果把假电压当真值使用,会导致:
- 电芯一致性误报警
- 过充/过放保护失效
- 均衡策略错误
因此断线检测是 BMS 功能安全的必备机制。
二、断线检测的两大技术路线
| 方案 | 代表厂商 | 核心原理 |
|---|---|---|
| 电流源法 | ADI(LTC/ADBMS)、松下 | 内部上拉/下拉 100μA 电流源,两次采样做差 |
| 电阻分压法 | NXP、TI、美信 | 内部开关投切分压电阻,比较电压变化 |
三、方案一:电流源法(ADI LTC/ADBMS 系列)
3.1 内部电路结构
ADI 的 AFE(LTC6804/LTC6811/ADBMS6830 等)在 ADC 输入端内置了上拉和下拉两个 100μA 电流源:
┌──[上拉100μA]── V+
│
AFE_Cn ──[MUX]──┬──┤
│ │
ADC └──[下拉100μA]── V-
通过 ADOW(Open Wire Detect)命令控制电流源方向:
- PUP=1:接通上拉电流源(灌电流),断开下拉
- PUP=0:接通下拉电流源(拉电流),断开上拉
3.2 检测原理(两次采样做差)
第1次:PUP=1,上拉电流源工作 → 采样所有电芯电压,存入 CELLPU[]
第2次:PUP=0,下拉电流源工作 → 采样所有电芯电压,存入 CELLPD[]
计算: CELLΔ[n] = CELLPU[n] - CELLPD[n]
判断: 若 CELLΔ[n+1] < -400mV → Cn 引脚断线
为什么差值能判断断线?
| 状态 | 上拉采样 | 下拉采样 | 差值 |
|---|---|---|---|
| 采样线正常 | 电流源被电芯电压"顶住",几乎无影响 | 同上 | ≈ 0V |
| Cn 断线 | 断线点被上拉电流源拉向高电位 → CELL(n+1) 偏小 | 断线点被下拉拉向低电位 → CELL(n+1) 偏大 | < -400mV |
举例(所有电芯 4V,C2 断线):
CELLPU[3] ≈ 12V - V+ (上拉把断线点拉高,CELL3读数偏小)
CELLPD[3] ≈ 12V - V- (下拉把断线点拉低,CELL3读数偏大)
CELLΔ[3] = CELLPU[3] - CELLPD[3] = V- - V+ < -400mV → 判断 C2 断线
3.3 首末引脚的特殊处理
- C0(最底端):只需判断一次上拉或下拉,因为底端没有更下面的电芯
- Cn(最顶端):同理只需一次判断
- 中间引脚:通过相邻电芯差值判断
3.4 检测流程(软件)
c
// ADI AFE 断线检测伪代码
void OpenWireDetect(void)
{
// 第1次:上拉电流源采样
SendADOWCommand(PUP=1);
WaitADCComplete();
ReadCellVoltages(CELLPU); // 存入上拉采样值
// 第2次:下拉电流源采样
SendADOWCommand(PUP=0);
WaitADCComplete();
ReadCellVoltages(CELLPD); // 存入下拉采样值
// 判断断线
for (n = 0; n < CELL_COUNT-1; n++) {
delta = CELLPU[n+1] - CELLPD[n+1];
if (delta < -400) {
ReportOpenWire(n); // Cn 断线
}
}
}
四、方案二:电阻分压法(NXP/TI/美信)
4.1 内部电路结构
电阻分压法在采样引脚内部集成开关控制的分压电阻,通过投切开关改变分压比:
AFE_Cn ──┬──[R1]── Vref
│
├──[开关S1]──[R2]── GND
│
ADC
检测时闭合 S1,接入额外下拉电阻 R2,比较接入前后的电压变化。
4.2 检测原理
| 状态 | 接入 R2 前 | 接入 R2 后 | 电压变化 |
|---|---|---|---|
| 采样线正常 | 电芯电压经采样电阻直接驱动 | R2 与电芯内阻并联,电压略降 | 变化小(< 阈值) |
| Cn 断线 | 断线点浮空,电压不确定 | R2 把断线点拉向 GND,电压骤降 | 变化大(> 阈值) |
TI 的方案(如 BQ76952/BQ79616)在 VC 引脚内置电流源,使能后向引脚注入电流,断线时残压被放电,通过电压行为判断故障。
4.3 与电流源法的对比
| 对比项 | 电流源法 | 电阻分压法 |
|---|---|---|
| 检测元件 | 100μA 电流源 | 开关+分压电阻 |
| 判断依据 | 两次采样差值 >400mV | 接入分压后电压变化量 |
| 检测速度 | 需两次完整 ADC 转换 | 一次对比即可 |
| 误报风险 | 电容大时需多次采样 | 电阻值需精心设计 |
| 代表芯片 | LTC6811、ADBMS6830 | MC33771、BQ79616、MAX14920 |
五、分立方案:不用 AFE 内置功能时的断线检测
如果使用通用 ADC 或电阻分压方案(无内置断线检测),可以用外部电路实现。
5.1 方案 A:上拉/下拉电阻 + ADC 比较
在每个采样引脚增加一个可开关的上拉或下拉电阻,通过 MCU GPIO 控制:
电芯n+ ──[Rs]──┬── ADC_IN
│
├──[R_pull]──[MOS开关]── VCC(上拉)
│
└──[C_filter]── GND
检测步骤:
- 正常采样:MOS 断开,ADC 读电芯电压 V_normal
- 检测采样:闭合 MOS,接入上拉电阻 R_pull,ADC 读 V_test
- 判断:
- 正常:V_test ≈ V_normal(电芯低阻顶住上拉)
- 断线:V_test 被拉向 VCC(断线点高阻,上拉生效)
5.2 方案 B:恒流源注入法
用外部恒流源向采样线注入微小电流(如 50μA),检测电压变化:
电芯n+ ──[Rs]──┬── ADC_IN
│
[恒流源50μA]── GPIO控制
│
GND
原理与 AFE 内置电流源法相同,只是用外部电路实现。
5.3 方案 C:分压电阻比值法
在采样链路中设计两个不同阻值的分压网络,通过切换比较:
电芯n+ ──[R1=10k]──┬── ADC1
│
[R2=100k]──[开关]── GND
闭合开关前后 ADC 读数比值不同,断线时比值异常。
六、温度采样线断线检测
NTC 温度采样线断线检测原理类似:
VCC ──[R_fix]──┬── ADC_TEMP
│
NTC ── GND
| 状态 | ADC 读数 |
|---|---|
| 正常 | 中间值(对应温度) |
| NTC 断线 | Rt→∞,ADC→VCC(接近满量程) |
| NTC 短路 | Rt→0,ADC→0 |
判断阈值:
- 断线:ADC > 0.95 × VCC(如 3.1V/3.3V)
- 短路:ADC < 0.05 × VCC(如 0.1V/3.3V)
这也是之前温度检测文章中推荐"上拉接法"的原因------断线→高电平,短路→低电平,判据明确。
七、设计注意点与踩坑经验
7.1 滤波电容过大会导致误报
采样引脚的滤波电容 C_filter 越大,电流源注入后电压建立越慢。如果 ADC 采样时电容还没充放电到位,两次采样差值不够,会漏报断线。
对策:
- 滤波电容不宜过大(通常 100nF~1μF)
- 断线检测时执行 2 次以上 ADOW 命令,让电容充分建立
- 增大电流源作用时间
7.2 检测周期与采样盲区
断线检测需要两次完整 ADC 转换,耗时较长(通常几十 ms)。检测期间正常电压采样暂停,形成"采样盲区"。
工程实践:
- 断线自检周期 2.5s ,2 次滤波,总时间约 5s
- 正常电压采样周期 10~100ms,断线检测低优先级后台执行
- 不要在充放电动态过程中频繁检测
7.3 采样电阻阻值匹配
采样线串联电阻 Rs(通常 10Ω~100Ω,用于限流和滤波)与 AFE 内部内阻配合,影响断线检测灵敏度。Rs 过大可能导致正常时也被误判。
7.4 多节同时断线
相邻两条采样线同时断线时,差值判断可能失效。需要结合总电压校验(Pack 总压 vs 单体求和)辅助判断。
7.5 均衡与断线检测互斥
均衡开启时,均衡电流会影响电芯电压,此时做断线检测容易误报。应在均衡关闭时执行断线检测。
八、各厂商断线检测实现对比
| 厂商/芯片 | 检测方法 | 电流源大小 | 判断阈值 | 命令 |
|---|---|---|---|---|
| ADI LTC6804 | 电流源法 | 100μA | 差值 >200mV | ADOW |
| ADI LTC6811/ADBMS6830 | 电流源法 | 100μA | 差值 >400mV | ADOW |
| NXP MC33771 | 电阻分压法 | --- | 电压变化量 | 内置诊断 |
| TI BQ79616 | 电流源+电阻 | --- | 电压行为 | 内置诊断 |
| 美信 MAX14920 | 电阻分压法 | --- | 电压变化量 | 寄存器配置 |
| 松下 | 电流源法(下拉) | --- | 差值 | 私有命令 |
九、总结
断线检测是 BMS 安全机制的重要一环,核心是**"主动注入扰动,观察电压响应"**:
- 电流源法(ADI 主流):上拉/下拉 100μA 两次采样做差,差值 >400mV 判断线,原理清晰但需两次转换
- 电阻分压法(NXP/TI/美信):投切内部分压电阻,比较电压变化,速度快但电阻设计需精心
- 分立方案:外部上拉电阻+MOS 开关,或恒流源注入,适合无内置功能的通用 ADC
- 温度线断线:利用 NTC 断线→满量程、短路→0 的极值判据
- 关键注意点:滤波电容不能太大、检测周期要合理、均衡时不检测、总压交叉校验
断线检测的本质是:正常时电芯是低阻电压源,能"顶住"外部扰动;断线后引脚变高阻,扰动会显著改变电压。 抓住这个本质,各种方案就都能理解了。
如果文章对你有帮助,欢迎点赞、收藏、关注!有问题欢迎评论区交流。
主要参考:
- CSDN:诊断 | AFE断线自检详解 https://blog.csdn.net/ningvay/article/details/107288662
- OFweek:聊聊AFE的断线检测功能 https://dianyuan.ofweek.com/2019-05/ART-8321002-11000-30324638.html
- ADI:A Deeper Look into Open Wire Detection https://www.analog.com/en/resources/technical-articles/deeper-look-open-wire-detection.html
- CSDN:关于使用LTC6811/LTC6804断线自检的一些心得 https://blog.csdn.net/u010474219/article/details/135170559
- TI:Open-Wire Fault Diagnostics for BMS https://www.ti.com/lit/an/sdaa369/sdaa369.pdf
系列导航:
- BMS硬件设计:电池电压采样方案总览
- BMS硬件设计:温度检测电路详解
- BMS通信核心:AFE菊花链技术详解
- BMS隔离芯片完全指南
- 本文:BMS断线检测电路实现
