BMS 电池管理系统架构详解:从单体到系统级
本文将深入剖析电池管理系统的分层架构设计,涵盖 AFE 采样链、主控 MCU 选型策略、通信拓扑对比以及高压安全隔离方案,为 BMS 工程师提供系统级的设计参考。
1. 引言
电池管理系统(Battery Management System,简称 BMS)是新能源汽车和储能系统中最核心的电子控制单元之一。一个设计良好的 BMS 需要在几毫秒内完成数百节电芯的电压采样、温度监控、SOC 估算、均衡控制以及故障诊断,同时保证功能安全等级达到 ASIL-C/D。
本文将 BMS 架构分为三个层次展开讨论:
- 单体采样层:AFE(Analog Front End)芯片的拓扑与采样策略
- 主控决策层:MCU 选型、SOC/SOH 算法部署与存储架构
- 通信与隔离层:SPI/isoSPI/CAN 总线的选型与高压隔离设计
2. 单体采样层架构
2.1 AFE 芯片拓扑
目前主流 AFE 芯片(如 ADI LTC6811、TI BQ79616、NXP MC33771)均支持菊花链(Daisy Chain) 拓扑,单颗芯片通常可管理 12~16 串电芯。
┌──────────────────────────────────────────────────────┐
│ BMS Master MCU │
│ (SPI Host) │
└──────────┬───────────────────────────────────────────┘
│ isoSPI / SPI
┌─────▼─────┐ ┌───────────┐ ┌───────────┐
│ AFE #1 │◄────►│ AFE #2 │◄────►│ AFE #3 │
│ Cells 1-12│ │Cells 13-24│ │Cells 25-36│
└───────────┘ └───────────┘ └───────────┘
对于 800V 高压平台(如保时捷 Taycan、小鹏 G9),通常需要 6~8 颗 AFE 级联。此时菊花链的可靠性和通信延迟成为关键约束。
2.2 电压采样精度与滤波
以 LTC6811 为例,其 ADC 分辨率为 16-bit,在 ±5V 量程下 LSB 约为 152μV。但在实际系统中,以下几点会显著影响采样精度:
- RC 滤波时间常数:典型前端滤波电阻为 100Ω~1kΩ,电容为 10nF~100nF,截止频率 f_c = 1/(2πRC) 约 1.6kHz~159kHz
- PCB 走线阻抗:长走线产生的 IR drop 在高倍率充放电时可达数 mV 级别
- 共模噪声:高压侧 PWM 开关噪声耦合
采样抗混叠设计建议:
// LTC6811 ADC 采样配置示例
// 使用 7kHz 低通滤波 + 模式 7 (27kHz 采样率)
// ADCOPT = 0: 标准模式; ADCOPT = 1: 快速模式
#define ADC_MODE_7KHZ 0x00 // 7kHz, 标准模式
#define ADC_MODE_27KHZ 0x01 // 27kHz, 快速模式 (仅 cell 电压)
void ltc6811_cfg_adc(uint8_t mode) {
uint16_t cfg = 0;
// REFON=1, ADCOPT=mode, GPIO[5:0] as inputs
cfg |= (1 << 2); // REFON enabled
cfg |= (mode << 0); // ADC mode select
cfg |= (0x3F << 9); // GPIO pull-down on
ltc6811_write_cfg(cfg);
}
2.3 温度采样网络
典型 BMS 在每个模组上部署 4~8 个 NTC 热敏电阻(如 Murata NCP15WF104),通过 AFE 的 GPIO 通道以分压方式采样:
VREF ─────┬─────┐
R1 │
10k │
├─────┴───► AFE GPIOx (ADC input)
NTC
(100kΩ @ 25°C)
│
GND
NTC 温度转换公式(Steinhart-Hart 简化版):
$$T = \frac{1}{\frac{1}{T_0} + \frac{1}{B} \cdot \ln\left(\frac{R}{R_0}\right)} – 273.15$$
其中 B = 4250K,T₀ = 298.15K(25°C),R₀ = 100kΩ。
float ntc_to_temperature(float resistance) {
const float T0 = 298.15f; // 25°C in Kelvin
const float R0 = 100000.0f; // 100kΩ at 25°C
const float B = 4250.0f; // B-constant
float inv_T = (1.0f / T0) + (1.0f / B) * logf(resistance / R0);
return (1.0f / inv_T) - 273.15f; // Kelvin -> Celsius
}
工程注意点:当 NTC 线束断裂时,ADC 读数会趋向 VREF 或 GND,对应极端温度。务必在软件中加入 NTC 开路/短路诊断,否则可能导致误触发热失控保护。
3. 主控决策层架构
3.1 MCU 选型
BMS 主控 MCU 的核心需求:
| 需求 | 指标 | 典型选型 |
|---|---|---|
| 算力 | > 200 DMIPS | NXP S32K3xx, Infineon TC3xx, TI TMS570 |
| Flash | ≥ 2MB | 支持 OTA A/B 分区 |
| RAM | ≥ 256KB | ECC 保护 |
| CAN FD | ≥ 3 路 | 动力 CAN / 诊断 CAN / 预留 |
| 功能安全 | ASIL-D | Lockstep 双核或 ECC 全覆盖 |
| AEC-Q100 | Grade 1 | -40°C ~ +125°C |
以 NXP S32K344 为例,其双核 Lockstep Cortex-M7 @ 160MHz,提供约 400 DMIPS 算力,足以运行扩展卡尔曼滤波(EKF)或自适应 SOC 估计算法。
3.2 SOC 估算软件架构
// SOC 估算核心调度框架
typedef struct {
float soc; // 当前 SOC (0.0 ~ 1.0)
float soh; // 当前 SOH
float ocv; // 开路电压 OCV
float r0; // 欧姆内阻
float r1, c1; // RC 环节参数 (1阶 Thevenin)
float v_rc; // RC 环节极化电压
float q_max; // 当前最大可用容量 (Ah)
} battery_state_t;
typedef enum {
SOC_MODE_OCV_LOOKUP, // 静置态: OCV-SOC 查表
SOC_MODE_COULOMB, // 动态: 安时积分
SOC_MODE_EKF, // 稳态: 扩展卡尔曼滤波
SOC_MODE_CHARGE_END, // 充电末端: 电压拐点校准
} soc_mode_t;
soc_mode_t select_soc_mode(battery_context_t *ctx) {
if (ctx->rest_time > 3600) // 静置超过 1 小时
return SOC_MODE_OCV_LOOKUP;
if (ctx->current < 0.5) // 小电流稳态
return SOC_MODE_EKF;
if (ctx->cell_voltage > 4.15f && ctx->current < 1.0f)
return SOC_MODE_CHARGE_END;
return SOC_MODE_COULOMB; // 默认: 安时积分
}
3.3 数据存储与 NVM 策略
BMS 需要持久化的关键数据:
| 数据项 | 大小 | 写入频率 | 存储介质 |
|---|---|---|---|
| SOC/SOH 断点保存 | 32B | 每 10 分钟 | MCU Data Flash (EEPROM 模拟) |
| 循环计数 + 累计 Ah | 16B | 每循环 1 次 | MCU Data Flash |
| 故障 DTC 日志 | 4KB | 事件触发 | 外部 SPI NOR Flash (≥16MB) |
| 电芯历史极值 | 128B | 每次行程结束 | MCU Data Flash |
| OTA 固件备份 | 2MB | OTA 时 | 外部 NOR Flash |
Flash 磨损均衡:以 NXP S32K3 的 64KB Data Flash 为例,典型擦写寿命 10 万次。若每 10 分钟写入一次 SOC 断点数据,按 16 块虚拟扇区做磨损均衡,总寿命约为:16 × 100,000 × 10 min ≈ 30 年,远超出整车寿命。
4. 通信与隔离层架构
4.1 通信总线对比
| 总线 | 速率 | 拓扑 | 隔离方案 | 典型用途 |
|---|---|---|---|---|
| SPI | ≤10 Mbps | 点对点 | 数字隔离器 | 板内 AFE 通信 |
| isoSPI | 1 Mbps | 菊花链 | 变压器/电容 | 跨模组 AFE 级联 |
| CAN | 1 Mbps | 总线型 | 隔离 CAN 收发器 | 整车通信 |
| CAN FD | 5~8 Mbps | 总线型 | 隔离 CAN FD | 诊断 / OTA |
| 菊花链 UART | 2 Mbps | 菊花链 | 电容隔离 | TI BQ79616 级联 |
4.2 高压隔离设计
800V 平台下,BMS 主控板和高压采样板之间需要满足 IEC 60664-1 加强绝缘 要求,即至少需要承受 2×U_max + 1000V ≈ 3900V 的隔离耐压。
// 隔离失效检测 — 通过周期性读回 AFE 寄存器
bool check_isolation_integrity(uint8_t afe_id) {
uint16_t cfg_readback, cfg_expected;
cfg_expected = ltc6811_get_cfg_shadow(afe_id);
cfg_readback = ltc6811_rdcfg(afe_id);
// CRC 校验由 LTC6811 PEC 保证,此处做配置回读一致性检查
if (cfg_readback != cfg_expected) {
set_fault(DTC_AFE_COMM_LOSS | (afe_id << 8));
return false;
}
return true;
}
实际工程中,isoSPI 的变压器选型至关重要。推荐使用 TDK ACT1210 系列共模扼流圈配合 Pulse HX1188NL 隔离变压器,可有效抑制共模瞬态抗扰度(CMTI)> 100kV/μs。
4.3 系统级 BMS 通信架构图
┌────────────────────────────────────────────────────────┐
│ Vehicle CAN Bus │
│ (CAN FD 2Mbps / CAN 500kbps) │
└────┬────────────┬──────────────┬──────────────┬─────────┘
│ │ │ │
┌────▼────┐ ┌────▼────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ VCU │ │ MCU │ │ BMS │ │ OBC │
│(Vehicle │ │(Motor │ │ Master │ │(On-Board │
│ Control)│ │Control) │ │ Board │ │ Charger) │
└─────────┘ └─────────┘ └─────┬─────┘ └───────────┘
│ isoSPI (1Mbps)
┌─────────────────┼─────────────────┐
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
│ CMU #1 │ │ CMU #2 │ │ CMU #3 │
│ (AFE x2) │ │ (AFE x2) │ │ (AFE x2) │
│ 24 cells │ │ 24 cells │ │ 24 cells │
└─────────┘ └─────────┘ └─────────┘
isoSPI ────────────┘ │ └──────────── isoSPI
Daisy Chain (Transformer Isolated)
5. 功能安全与冗余设计
5.1 ASIL 分解策略
BMS 核心安全目标(Safety Goal):
| ID | 安全目标 | ASIL | 安全状态 |
|---|---|---|---|
| SG-01 | 防止过充导致热失控 | ASIL-D | 断开主继电器 |
| SG-02 | 防止过放导致电芯损坏 | ASIL-C | 限功率并告警 |
| SG-03 | 防止过温运行 | ASIL-C | 降功率 / 断开 |
针对 ASIL-D 的 SG-01,可进行 ASIL 分解:
- ASIL-D = ASIL-B(D) + ASIL-B(D):使用独立的两路电压采样链
- AFE #1(主路):LTC6811 → 经 MCU Lockstep Core A 处理
- AFE #2(冗余):TI BQ79616 → 经 MCU Lockstep Core B 处理
5.2 二级保护硬件
BMS 应具备独立于 MCU 的硬件过压保护(Secondary Protection):
// 硬件过压比较器 (独立于 MCU)
// 使用 TI BQ77216 作为 Secondary Protector
// 当任一电芯电压超过 4.25V,直接触发保险丝驱动信号
#define SECONDARY_OV_THRESHOLD_MV 4250 // 4.25V
#define SECONDARY_UV_THRESHOLD_MV 2200 // 2.20V
BQ77216 响应时间 < 1ms,不依赖任何软件逻辑,满足功能安全对独立性的要求。
6. 工程实践中的常见陷阱与建议
6.1 AFE 菊花链断开恢复
当某颗 AFE 因 EMI 干扰导致通信故障时,整个菊花链断裂。应在 LTC6811 的 isoSPI 端口处添加看门狗超时回退电路,确保通信丢失时 AFE 自动进入保护状态,而非维持上一次的均衡指令——后者可能导致电芯过放。
6.2 SOC 跳变问题
安时积分法的核心误差源——电流传感器零漂(通常 ±50mA)。在 50kWh 电池包上,±50mA 的漂移每小时累积误差约为 50mAh,100 小时后达到 5Ah(约 10% SOC 偏差)。建议:
- 每次静置 >2 小时后执行 OCV-SOC 重校准
- 使用双电流传感器(LEM + Shunt)交叉校验
- 充电末端 SOC=100% 时强制复位累计误差
6.3 均衡策略的时间窗口
被动均衡(Passive Balancing)通常在充电末端执行,典型均衡电流 50~200mA。以 100Ah 电芯为例,5% 的 SOC 差异需要:
$$t_{balance} = \frac{C_{cell} \times \Delta SOC}{I_{balance}} = \frac{100 \times 0.05}{0.1} = 50 \text{ 小时}$$
因此,被动均衡无法在单次充电中完成大范围容量偏差修正。对于定期均衡,建议设置均衡窗口跨多次充电周期,并加入均衡累积计数器。
7. 结语
BMS 架构设计是一个多维度权衡的过程:采样精度 vs 物料成本、通信速率 vs EMI 鲁棒性、SOC 精度 vs 算力消耗、功能安全等级 vs 系统复杂度。本文从单体采样、主控决策到通信隔离三个层次进行了系统性的梳理,希望能为 BMS 工程师在实际项目中提供工程化的参考框架。
随着 800V 高压平台和 CTC(Cell-to-Chassis)架构的普及,BMS 正逐步向无线化(wBMS,如 ADI 的方案)和云原生(Cloud BMS,利用大数据优化 SOC/SOH 算法)方向演进,这将在后续文章中深入探讨。
参考资料:
– ADI LTC6811 Datasheet
– TI BQ79616-Q1 Technical Reference Manual
– NXP S32K3xx Reference Manual
– ISO 26262-5:2018 Annex D – ASIL Decomposition
– IEC 60664-1 Insulation Coordination
标签:#BMS架构 #AFE采样 #SOC估算 #功能安全 #高压隔离 #菊花链 #电池管理系统
发表回复