Hyowinner的MBD技术论坛

 找回密码
 立即注册
搜索
查看: 193|回复: 0

BMS菊花链通信与控制方法:别只看连线,关键是采样、均衡和故障降级

[复制链接]

132

主题

314

帖子

5372

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
5372
QQ
发表于 2026-9-4 15:35:25 | 显示全部楼层 |阅读模式
BMS菊花链通信与控制方法:别只看连线,关键是采样、均衡和故障降级

在动力电池 BMS 项目里,经常会听到“菊花链”这个词。很多同学第一反应是:主控板接第一片采样芯片,第一片再接第二片,第二片再接第三片,一路串下去。这种理解没有错,但只停留在硬件连接层面。真正到项目里,菊花链不是一根线把芯片串起来这么简单,而是一整套“高压采样节点怎么同步、数据怎么读回、错误怎么重试、均衡怎么下发、断链后怎么降级”的控制方法。

尤其在电池包里,菊花链一端连着低压 BMS 主控,另一端深入高压电芯堆。它既要解决隔离和抗干扰,也要保证几十到上百节单体电压、温度、均衡状态和故障诊断能够稳定回来。MBD 工程师如果只在模型里放一个 CellVoltage 数组,而不建通信时序、采样延迟、节点失效和均衡约束,仿真会比真实系统乐观很多。

先把结论放前面:BMS 菊花链控制方法至少要管住 6 件事。

1. 主控怎样唤醒、初始化和寻址各级采样节点。
2. 单体电压和温度是广播同步采样,还是逐节点触发采样。
3. 读回数据时如何校验 CRC/PEC、如何重试、如何判断节点丢失。
4. 均衡命令怎样下发,是否允许边采样边均衡,均衡占空比和温升怎么限制。
5. 断线、断链、通信错误、开路线、单体过压/欠压后如何降级。
6. MIL/SIL/HIL 里如何复现真实链路延迟、丢帧、错误码和故障恢复。


截图1:BMS 菊花链拓扑的重点不是“串起来”,而是主控、隔离、采样节点和可选环回链路的完整关系


一、菊花链解决的是什么问题

动力电池包通常由很多串联电芯组成。采样芯片或从板需要测量每一节单体电压、若干温度点,并控制被动均衡电阻或均衡开关。问题在于,这些采样点处在不同的高压共模电位上,不能简单用 MCU 的普通 ADC 引脚去测。

菊花链方案的基本思路是:每一段电芯由一个采样节点负责,节点之间通过隔离通信串接,低压主控只和第一段或隔离接口直接通信。命令沿链路向后传,响应再沿链路返回。工程里常见的实现包括 isoSPI、变压器隔离、电容隔离、差分总线或厂家自定义的堆叠通信接口。不同芯片实现细节不一样,但控制问题很相似。

它的优势很明显:

1. 可以用较少的隔离通道连接多个高压采样节点。
2. 电池包串数扩展比较方便,增加节点即可覆盖更多电芯。
3. 主控可以用统一命令调度全部采样节点。
4. 数据链路天然按节点顺序组织,便于建立 Cell1 到 CellN 的映射。
5. 对高压共模和线束隔离比普通低压通信更友好。

但它的代价也很明确:

1. 链路越长,总通信时间越长,最远节点的响应延迟更大。
2. 中间节点或线束故障可能影响后级节点通信。
3. 需要严格处理 CRC/PEC、timeout、重试和节点定位。
4. 均衡电阻会带来热问题,不能只按电压最高就一直打开。
5. 开路线诊断、温度采样和均衡动作之间会互相影响。
6. 真实链路有唤醒、转换、读回、休眠等时序,模型里不能当成立即可得。

所以菊花链的工程难点,不在于画出拓扑图,而在于控制方法是否能覆盖这些边界。

二、主控调度:先把采样周期设计清楚

BMS 主控通常不会“随便想读就读”。更常见的是周期性调度:

1. 唤醒采样链路。
2. 检查链路是否在线。
3. 广播单体电压转换命令。
4. 等待 ADC 转换完成。
5. 逐节点或成组读回电压寄存器。
6. 校验 PEC/CRC。
7. 读取温度、GPIO、状态寄存器和故障标志。
8. 根据电压、温度、SOC、充电状态计算均衡请求。
9. 下发均衡命令。
10. 根据包状态决定保持唤醒、低功耗或休眠。

这个过程里最容易被低估的是时间预算。假设一个电池包有 10 个采样节点,每个节点负责 12 节电芯。即使单个节点转换很快,主控还要读回 120 路电压、若干温度、状态寄存器和通信校验结果。如果还要重试错误节点、做开路线诊断、写均衡寄存器,100 ms 或 200 ms 周期里能做多少动作必须算清楚。


截图2:菊花链控制方法的核心是调度,广播转换、等待转换、读回校验和均衡命令要在一个周期内闭合


在 MBD 模型里,不建议直接把 CellVoltage 当成每个周期立即更新的理想输入。更合理的方式是建一个采样服务层:

1. `BmsChain_WakeupReq`:链路唤醒请求。
2. `BmsChain_AdcStartCmd`:广播采样命令。
3. `BmsChain_ConvDone`:转换完成标志或等待时间。
4. `BmsChain_ReadReq`:读回请求。
5. `BmsChain_NodeAlive`:每个节点在线状态。
6. `BmsChain_PecOk`:每个节点通信校验结果。
7. `BmsChain_CellV`:单体电压数组。
8. `BmsChain_DataAge`:数据年龄,表示这一路电压多久没有有效更新。
9. `BmsChain_Valid`:该单体当前是否可信。

只要加上 `DataAge` 和 `Valid`,很多模型行为就会更接近真实系统。比如链路偶发错误时,不一定马上把电压置零,而是保留上一次可信值,同时把数据年龄增加;超过最大年龄后,才判定该段数据不可用于充放电控制。

三、广播采样和逐节点读回要分开理解

菊花链里常见一个误解:既然节点是串着的,那么采样一定也是一个个采。实际不一定。很多电池监控芯片支持广播转换命令,主控下发一次命令后,各节点几乎同时开始 ADC 转换。这样能让整包单体电压更接近同一个时间截面。

读回通常又是另一回事。数据返回需要沿链路传输,主控可能按节点顺序读寄存器,也可能一次读多个寄存器组。即使采样是同步的,读回也是有先后顺序的。因此模型里要区分两个时间:

1. 采样时刻:电芯电压真正被 ADC 捕获的时刻。
2. 数据到达时刻:主控拿到并校验这组数据的时刻。

对于 SOC、SOH、单体过压/欠压、最大最小电压计算,采样时刻的一致性很重要。对于控制器任务调度,数据到达时刻也很重要。比如主控 100 ms 任务在第 20 ms 下发转换,在第 40 ms 读回完成,那么策略层到底使用上一周期数据还是本周期数据,要定义清楚。

这和电机控制里的 ADC/PWM 时序类似:不是变量有值就行,而是要知道这个值对应哪个真实时刻。

四、通信错误不能只做“读不到就报故障”

菊花链通信链路长、环境复杂,偶发错误并不少见。工程上要把通信错误至少分成几类:

1. PEC/CRC错误:收到响应,但校验失败。可能是干扰、线束问题、节点异常或主控读写时序错误。
2. timeout:规定时间内没有收到响应。可能是节点掉电、断链、唤醒失败或链路物理断开。
3. 节点数量不一致:初始化时识别到的节点数和配置不一致。
4. 节点顺序错配:硬件连接、软件映射或配置表错误,导致 Cell 编号和物理位置错位。
5. 数据范围异常:通信正常,但读回值不可信,例如全 0、全 F、跳变过大或温度无效。
6. 开路线故障:采样线断开,通信芯片仍在线,但部分电芯电压读数异常。

不同错误的控制动作不能一样。PEC 偶发错误可以重试并保留上一次可信值;连续 timeout 可能要判定节点失联;节点数不一致通常属于初始化失败,应禁止高压上电;开路线则要禁止该段均衡,并限制充放电。

建议 MBD 模型中给每个节点至少保留这些状态:

1. `NodeAlive`:节点在线。
2. `CommOk`:当前周期通信成功。
3. `CommFailCnt`:连续通信失败计数。
4. `OpenWireSuspected`:开路线疑似。
5. `DataValid`:本节点数据可用于控制。
6. `DataAge`:上一次有效数据到现在的时间。
7. `NodeDegraded`:该节点进入降级。

如果只有一个 `BMS_CommFault` 总标志,后期很难定位是第几个节点、哪类错误、是否可恢复。

五、均衡控制:不是电压最高就一直放电

电池被动均衡看起来很简单:哪节电压高,就打开对应均衡电阻放掉一点能量。实际工程里约束很多。

均衡至少要受这些条件限制:

1. 车辆状态:一般在静置、充电末端或允许均衡的工况下进行,不一定允许行驶中长期均衡。
2. 单体温度:温度过高要禁止或降低均衡占空比。
3. 电压可信性:通信错误、开路线、数据年龄过大时不能根据该数据做均衡。
4. 电压阈值:不是最高就均衡,而是最大最小差值、单体绝对电压和 SOC 区间都满足条件。
5. 热预算:均衡电阻、采样芯片、从板和电芯附近温度都要考虑。
6. 采样干扰:部分芯片在均衡打开时测量精度会受影响,需要错开采样或做补偿。
7. 时间预算:每个均衡通道的开启时间、累计时间、冷却时间要受限。


截图3:均衡控制推荐建成状态机,测量、评估、均衡脉冲、冷却和故障锁定要分开


一个比较稳妥的均衡控制状态机可以这样设计:

1. IDLE:车辆状态不允许、温度无效、数据无效或电压差不满足时保持关闭。
2. MEASURE:广播采样并读回有效电压、温度和节点状态。
3. EVALUATE:计算最大最小电压、目标电芯、允许均衡通道和热限制。
4. BALANCE:按 duty 或时间片打开均衡通道。
5. COOLDOWN:关闭均衡,等待温度恢复或重新测量。
6. LOCKOUT:开路线、过温、通信失效、单体过压等故障下锁定均衡,等待恢复或维修。

这样做的好处是,模型行为容易解释。测试工程师看到均衡没有打开时,可以查是状态不允许、温度不允许、电压差不够,还是该节点通信不可用。不要把所有条件写在一条很长的 if 判断里,后期调试非常痛苦。

六、控制方法要区分“保护”和“优化”

BMS 菊花链采集的数据会服务两类功能。

第一类是 保护:单体过压、单体欠压、温度过高、采样线断开、通信失效。这些直接影响安全边界。保护逻辑应优先使用可信数据,并且在数据不可用时走保守降级。

第二类是 优化:SOC 估算、SOH 分析、均衡策略、热管理优化、可用功率估算。这些依赖数据质量,但不一定要求每个周期都强制动作。数据短时间不可用时,可以保持上一次估计值或降低置信度。

这两类不能混在一起。比如某个节点数据年龄超过阈值,SOC 估算可以先冻结或降低权重,但充电保护不能假装数据仍然可信。再比如均衡是优化动作,不能为了均衡让过温、开路线或通信异常风险扩大。

工程上可以给每个数据打三个标志:

1. `ValidForProtection`:是否可用于安全保护。
2. `ValidForEstimation`:是否可用于SOC/SOH估算。
3. `ValidForBalancing`:是否可用于均衡决策。

这三个标志不一定相同。某路电压短时间未更新,也许还能用于估算平滑,但不应继续用于判断是否打开均衡电阻。

七、断链后的降级策略怎么做

菊花链最大的工程风险之一是断链。断链后,主控可能只能看到断点前的节点,断点后的节点全部失联。不同硬件支持能力不同,有些系统会增加反向链路或环回链路,用于从另一侧读取后级节点,从而定位断点并保留部分数据。

无论硬件是否支持环回,软件都要定义降级策略:

1. 初始化阶段发现节点数不一致:禁止高压上电,提示采样链路故障。
2. 行驶中单次 PEC 错误:重试,保留上一次有效值,不立即降级。
3. 行驶中连续通信失败:冻结相关节点数据,限制充放电功率,禁止均衡。
4. 后级节点全部失联:根据失联范围进入更高等级降级,必要时请求安全停车或禁止再次 READY。
5. 链路恢复:不能收到一帧就完全恢复,应连续多帧有效,并重新完成开路线/状态检查。
6. 清故障:通信恢复和诊断清码要分开,当前断链未恢复时不能只靠清码解除控制降级。

这里和 VCU 故障诊断类似,故障成熟、控制降级、DTC 存储和恢复条件应该分层处理。菊花链通信故障不是一个简单报警,它会直接影响电压保护和功率控制的可信度。

八、MBD建模时要补齐链路延迟

很多 BMS 模型在 MIL 仿真里把电芯模型输出直接接到 CellVoltage 数组,这样做用于算法初期验证可以,但不能代表真实控制器。真实链路至少有这些延迟:

1. 唤醒延迟。
2. 命令传输延迟。
3. ADC 转换时间。
4. 多节点读回时间。
5. CRC/PEC 校验和重试时间。
6. 任务调度等待时间。
7. 数据从驱动层到应用层的缓存延迟。

如果不建这些延迟,单体过压保护在仿真里会显得反应很快;真实系统中,保护动作可能晚一个采样周期甚至多个重试周期。对普通均衡问题,这个误差可能不大;对充电末端过压、低温充电限制、短时通信丢失和功率限制,这个误差就很关键。

建议至少在模型中加入:

1. 采样服务状态机。
2. 节点级有效性和数据年龄。
3. 通信失败注入开关。
4. 可配置的转换时间和读回时间。
5. 重试次数和重试间隔。
6. 采样数据缓存,区分“采样时刻”和“应用层使用时刻”。
7. 节点失效后的替代值策略。

这样做出来的 MIL/SIL 才能和 HIL 更接近。

九、HIL验证要覆盖通信故障和均衡热约束

菊花链相关测试不能只验证“能读到电压”。建议至少覆盖下面几类用例。

1. 正常链路:所有节点在线,电压、温度、状态寄存器周期性更新,PEC 全部通过。
2. 单次通信错误:注入一次 PEC 错误或 timeout,验证重试、数据保持和不误报。
3. 连续通信失败:连续多周期错误,验证节点失效、数据年龄、功率限制和DTC。
4. 断链定位:在第 N 个节点后断开,验证前级节点可用、后级节点失联、可选环回是否生效。
5. 开路线故障:断开某个采样线,验证开路线诊断、均衡禁止和故障锁存。
6. 单体过压/欠压:电压阶跃越过阈值,验证保护成熟时间和充放电限制。
7. 均衡过温:均衡电阻或从板温度升高,验证 duty 降低、cooldown 和锁定策略。
8. 恢复路径:通信恢复、电压恢复、温度恢复后,验证恢复时间、故障清除和重新允许均衡的条件。


截图4:菊花链控制验证要覆盖通信、采样线、均衡热风险、单体过压和降级策略


HIL 里要注意,普通 CAN 报文注入不一定能真实模拟采样芯片菊花链。更好的做法是把驱动层返回状态抽象出来,允许测试脚本注入节点级错误,例如 `Node3_PecFail`、`Node5_Timeout`、`Cell42_OpenWire`、`BalanceFet_OverTemp`。这样测试用例能直接覆盖控制方法,而不是只在应用层把电压数组改一改。

十、常见误区

误区一:菊花链就是 SPI 多接几个从设备。

不准确。电池包菊花链通常处在高压共模环境,涉及隔离、抗干扰、堆叠寻址、链路校验、唤醒休眠和安全降级,不是普通板内 SPI 扩展。

误区二:广播采样后所有数据就是完全同步的。

不完全。采样可以接近同步,但读回、校验、缓存和应用层使用仍有延迟。模型里要区分采样时刻和使用时刻。

误区三:通信错误只要重试就行。

不够。偶发错误可以重试,连续错误要成熟成节点故障;节点失效后要影响数据可信度、功率控制、均衡许可和 DTC。

误区四:均衡只按最高单体电压控制。

不对。均衡还要看温度、车辆状态、充电状态、数据可信性、开路线诊断、热预算、累计时间和采样干扰。

误区五:MIL 里电压数组正常,实车链路就没问题。

不对。MIL 里如果没有通信状态、延迟、丢帧、PEC、开路线和节点失效,无法覆盖真实菊花链控制风险。

十一、一个可落地的控制方法清单

如果从零设计 BMS 菊花链控制,建议按下面清单推进:

1. 先确定硬件拓扑:节点数量、每节点电芯数、通信隔离方式、是否支持环回、线束长度和 EMC 约束。
2. 定义节点映射:物理 Cell 编号、节点编号、寄存器编号、模型数组下标必须一致。
3. 设计采样周期:电压、温度、状态寄存器、开路线诊断、均衡控制分别多久执行一次。
4. 建立采样服务状态机:唤醒、转换、等待、读回、校验、重试、休眠。
5. 建立数据可信度模型:NodeAlive、DataValid、DataAge、CommFailCnt、OpenWireSuspected。
6. 建立均衡状态机:允许条件、目标选择、PWM/duty、cooldown、过温锁定。
7. 建立故障分级:偶发通信错误、节点失联、断链、开路线、单体过压/欠压、均衡过温。
8. 建立降级策略:数据替代、功率限制、禁止均衡、禁止充电、禁止READY或请求安全下电。
9. 建立测试接口:MIL/SIL/HIL 都能注入节点级错误,而不是只能改最终电压值。
10. 建立追溯矩阵:需求、模型状态、标定量、DTC、测试用例和HIL曲线要能互相对应。

结论

BMS 菊花链不是“把采样芯片串起来”这么简单。它是一套围绕高压采样节点的控制系统:主控要调度采样,链路要校验和重试,数据要判断可信度,均衡要受温度和故障约束,断链后要保守降级,HIL 要能复现节点级失效。

对 MBD 工程师来说,真正有价值的建模方式,是把菊花链抽象成“采样服务 + 数据有效性 + 均衡控制 + 故障降级”的四层结构。这样模型既能服务算法验证,也能服务代码生成、基础软件接口、HIL测试和后期问题定位。

相关学习资源

1. STM32嵌入式软件MBD开发实例:适合理解模型到嵌入式驱动接口、PIL/HIL和控制器部署。
2. Simulink仿真及代码生成技术入门到精通:适合系统补齐 Simulink、Stateflow、代码生成和验证闭环。
3. Simulink/Stateflow建模规范:适合把采样服务、均衡状态机和故障降级做成可维护模型。
4. VCU故障诊断怎么做:从Simulink状态机到DTC和HIL验证:适合对照理解故障成熟、DTC和HIL注入闭环。

参考资料

1. Analog Devices ADBMS1818 multicell battery stack monitor
2. Analog Devices LTC6811-1 multicell battery monitor
3. Texas Instruments BQ79616-Q1 battery monitor and balancer
4. NXP MC33771C battery cell controller

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyowinners
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|MBD全栈技术学校|苏ICP备2025212294号-1|Hyowinner校长B站首页|手机版|小黑屋|Hyowinner的MBD技术论坛

GMT+8, 2026-10-15 22:54 , Processed in 0.116593 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表