☰
2S电池组被动均衡方案:从硬件设计到固件策略全落地
2026/10/16 1:17:29 网站建设 项目流程

电池均衡这个词,在动力电池领域听得最多,一说到均衡大家脑海里全是13串、16串、甚至96串那种大系统。但这两年储能和备用电源里越来越多的2S小系统,也开始在BMS方案里专门加入均衡功能,我最近就在一个模拟项目X里,用MP2642GR-Z做均衡前端、PIC18F86J55做主控,给一套2S1P的备用电源做了均衡控制,从硬件电路到固件策略完整跑了一遍。这套方案最适合手头正在做小型储能、UPS备电、便携电源、户外电源这类产品的硬件和固件工程师参考,尤其是那种"电池只有两串、客户又要求BMS必须有均衡功能"的项目。

文章不会讲太高深的理论,重点是把均衡这件事在2S系统里真正落地:方案怎么选、参数怎么算、策略怎么写、问题怎么排查。我尽量用做项目时的真实经历来说,踩过的坑和验证过的数据都会放出来,给正在做类似产品的人一条相对顺的路。

1. 两串电池也要做均衡:先搞清楚"不一致"从哪来

1.1 电芯出厂再一致,用着用着也会加速拉开

很多工程师刚接触2S电池组时第一反应是:才两串,出厂配好对不就行了?这个想法放到实际产品里站不住脚。出厂时电芯的电压、容量、内阻可以挑得相当接近,但一旦装进系统、开始充放电循环,有几个因素会让两节电芯越走越远。

第一个是自放电率差异。同一批电芯,哪怕出厂参数完全一致,在仓库里闲置两三个月,开路电压也能差出20到50mV,这个偏差在磷酸铁锂上尤其明显。第二个是温度梯度。备用电源系统里,电池往往贴着功率板或者发热元件,两节电芯一节靠近热源、一节远离热源,温差三五摄氏度,充放电效率和自放电速率就不一样,日积月累就成了容量差异。第三个是循环老化,充电末端电压偏高的那节电芯过充风险更大、老化更快,内阻变大之后压差又开始反向扩大,形成正反馈。

这些差异单看都不大,问题在于储能和备用电源系统常常长时间浮充,或者以小电流持续充电。压差会被时间慢慢放大,一旦某节电芯电压超过保护阈值,整个系统就充不满了,这就是2S系统也要认真做均衡的根本原因。

1.2 均衡方案选型:2S这个场景里被动均衡更实际

均衡大体分两类。主动均衡做能量转移,把高能量电芯的电搬到低能量电芯里去;被动均衡则是把多余能量通过电阻耗散掉。网上很多文章把主动均衡讲得很高级,但在2S系统里我最后还是选了被动均衡,理由比较务实:

一是成本。主动均衡需要电感或者电容加开关管加驱动电路,对一个本来就很便宜的小型储能产品来说,新增的物料成本占比太高,产品在市场上根本没法定价。

二是均衡电流需求小。2S系统的单体容量一般不大,备用电源场景更是以小电流长浮充为主,被动均衡提供几十毫安的均衡电流,配合上合理的策略,足够把压差收敛到安全范围。

三是可靠性和体积。被动均衡的电路简单到就是均衡电阻加开关管加采样电阻,故障模式非常清晰,要么导通耗能,要么关断不工作,不会出现能量转移方向搞反这种隐蔽问题。

1.3 整体架构与器件分工

这套方案中MP2642GR-Z和PIC18F86J55的分工很明确。MP2642GR-Z作为均衡控制前端,内部集成充电泵、MOS驱动和采样接口,负责把均衡通道建立起来。PIC18F86J55作为系统主控,负责采集两节电芯的电压和温度,跑均衡策略,控制均衡开关,同时把状态通过UART上报给上位机,处理充电器使能、放电回路保护等系统级功能。

从功能框图看,两节电芯串联的结构确实简单,但真正落地的时候,采样精度、均衡开关的控制时序、策略的滞回逻辑,每一个环节都有坑。后面几章我逐个展开说。

2. 两颗核心芯片各自承担什么角色

2.1 MP2642GR-Z:均衡通道的"施工单位"

MP2642GR-Z是一颗面向多串电池均衡设计的前端芯片,它内部集成充电泵,能从较低的那节电芯电压上泵出足够高的驱动电压,用来驱动高侧均衡MOS,这样整个电路就不需要额外的高压电源或电平转换电路。

工作过程是这样的:PIC18F86J55判断出需要均衡哪一节电芯之后,通过控制接口把命令发出去,芯片内部的充电泵启动,把均衡MOS的栅极电压抬起来,均衡电流从该节电芯的正极流出,经过均衡电阻和MOS回到该节电芯负极。整个回路只在这一节电芯内部闭合,不经过另一节电芯,所以两节电芯之间的均衡通道在电气上是完全独立的。

外围电路上这颗芯片也比较省事,一个均衡通道只需要一颗功率电阻、一颗电流采样电阻加几个滤波电容。对2S系统来说,两节电芯就是两个独立通道,各管各的。均衡电流的大小可以通过芯片内部的电流寄存器读出来,这对调试帮助非常大——不需要拿电流钳去测,直接用I2C接口读寄存器就能确认均衡通道是不是真的在工作。

注意:以上对芯片内部结构的描述基于常见均衡前端芯片的应用框架,具体引脚定义和寄存器映射以实际数据手册为准,硬件设计时一定要先拿规格书核对时序和极限参数。

2.2 PIC18F86J55:系统主控和策略大脑

PIC18F86J55是某半导体厂商经典8位单片机里偏大一点的型号,自带LCD驱动和丰富的模拟外设。放在2S均衡方案里做主控,外设资源非常宽裕,开发调试都很顺手。

它在这套系统里最核心的任务,是把两节电芯的电压采集准确。MP2642GR-Z负责建立均衡通路,但"要不要均衡""均衡多久""什么时候停下来"这些判断完全由MCU负责。我在这版固件里用内部ADC配合外部RC滤波做电压采集,再在软件上做过采样和两点校准,最终采集精度做到±5mV以内,这个精度对2S系统的均衡控制完全够用。

除了电压采集,它还同时处理温度采集、充放电MOS控制、UART通信上报、均衡状态LED显示,以及异常保护联锁。比如充电过压保护一旦触发,MCU要先关断充电MOS,再关均衡,这个优先级顺序必须在固件里写得清清楚楚。

2.3 两串系统特有的中点采样问题

两节电芯串联之后会形成一个公共点,就是串联中点。这个点的电压采集是整个系统里最容易出问题的地方,做过多串BMS的工程师往往在中点采样上也翻过车。

中点在电气上是第一节电芯的负极,也是第二节电芯的正极。采样这个点时,如果走线不合理,均衡电流在地平面上的扰动会直接叠加到采样信号上。我在这版设计里用了独立的开尔文走线:从电芯极柱拉一根细线直接到采样电阻,功率线完全不共用,在MCU的ADC引脚前再加一级阻容滤波。实测下来,采样纹波从之前的十几毫伏降到两三毫伏以内。

另外一个时序问题:均衡开启瞬间,充电泵启动会产生一个电流尖峰,同时中点电压也会跳动,如果采样正好踩在这个时间点,读到的数据必然不准。这个我用软件延时解决——均衡开关动作之后先等20ms,等回路稳定了再开始采样,这个20ms的经验值在调试时反复验证过。

3. 硬件设计落地:电路结构、参数计算与布局避坑

3.1 单通道均衡电路结构

先把一个均衡通道的电路结构说清楚。以第一节电芯CELL1为例,均衡回路是这么走的:CELL1正极通过均衡电阻和MOS管回到CELL1负极,MP2642GR-Z负责驱动这颗MOS,芯片的采样引脚同时监测均衡回路电流和CELL1电压。第二个通道CELL2完全独立,正极直接接均衡电阻到自己的负极。两套回路只在系统地上有交集,其余部分互不相干。

电流采样电阻我选的是10mΩ的合金电阻,它把均衡电流转换成电压信号送回MP2642GR-Z,MCU读取芯片内部电流寄存器后,就能实时知道当前均衡电流是多少。这个设计在调试阶段价值很大,可以快速判断均衡回路是否真的建立起来,而不是只靠软件上的开关状态推测。

均衡MOS的栅极驱动来自芯片充电泵,不需要MCU额外给PWM或者电平转换,接口干净。MCU端只需要给芯片发开启/关闭通道的指令,剩下的功率级动作都由MP2642GR-Z完成。

3.2 均衡电阻与MOS的参数计算

均衡电阻是整个被动均衡回路里发热最大、最需要认真算的器件。以我这版设计为例,单体是标称3.2V、满充3.65V的磷酸铁锂,目标均衡电流设定为20mA。为什么取20mA?因为2S备用电源的充电电流本身就不大,均衡电流取充电电流的十分之一到二十分之一比较合适,既能压住压差又不会在均衡电阻上烧太多热量。

均衡电阻阻值按最恶劣情况计算:满电电压3.65V,减去MOS管导通压降约0.05V,再减去采样电阻上的压降0.2mV,均衡电阻上分到的电压约3.6V。要得到20mA电流,电阻值就是3.6V除以0.02A等于180Ω。我选了标称180Ω、1W的贴片功率电阻,给了一倍以上的功率裕量。

实际均衡电流是随电芯电压变化的:3.2V时只有约17.5mA,3.65V时接近20mA。虽然电流小了点,但均衡策略本来就是电压越接近满充越需要工作,所以这个非线性特性不影响效果。

MOS管选型有两个参数要关注:一是在小封装里Rds(on)尽量低,二是栅极阈值电压要能被充电泵输出驱动。我用了一颗20V耐压的小MOS,Vgs(th)在1V左右,充电泵的输出电压足够让它完全导通。导通不完全的后果是MOS工作在放大区,热量全耗在MOS上,均衡电流又达不到设计值,这个坑后面还会单独讲。

3.3 布局布线的几个关键点

布局布线直接决定采样精度和EMC表现,这部分我按踩坑的优先级排序:

采样走线必须开尔文接法。电芯的功率线和采样线在极柱处分流,采样线末端到MCU的ADC引脚之间加RC滤波,千万不要把采样线直接接在均衡电阻的功率走线上,否则均衡电流的压降会全部叠加到采样结果里。

均衡电阻和MOS要远离MCU的ADC采样入口。均衡电阻是板上最主要的发热源和噪声源,放在板边,背面铺大面积铜箔辅助散热。

地线不能共用一条细线。两节电芯的采样地、芯片地、MCU地要按星形或多点汇聚到系统电源地,避免均衡电流通过公共地阻抗产生压差耦合。

充电泵的驱动走线尽量短,不要和采样线平行长距离走线。这个我在第一版PCB上犯过:驱动线和采样线在板子同一面平行走了将近3厘米,结果充电泵开关噪声容性耦合到ADC通道,采样值始终有规律性的跳动,后来加宽间距加屏蔽过孔才解决。

3.4 结构件与热设计的配合

两串电池的系统体积通常很小,均衡电阻的发热如果处理不好,热量会直接传导到电芯壳体上。我在结构上把均衡电阻放在独立的一小块板上,通过排针和主控板连接,同时在均衡电阻下面贴了导热硅胶垫连接到金属外壳。实测连续均衡半小时,电阻表面温度从室温升到大约70℃,外壳表面只有轻微温热,对电芯的影响在可接受范围。

功率裕量这里再多说一句:均衡启动瞬间,充电泵建立驱动电压之前MOS会处于半导通状态,瞬时电流可能超过设定值的数倍,功率余量不够的电阻容易直接炸掉。所以我建议均衡电阻的功率按设计功耗的三倍选,成本增加很少,但可靠性提升很明显。

4. 固件策略:均衡不是看到压差就开

4.1 均衡状态机设计

均衡控制最忌讳的就是简单粗暴:一看到压差大于阈值就开均衡,开了就不管。我在这版固件里把均衡过程拆成几个状态:空闲、预均衡、正式均衡、均衡暂停、均衡完成。

空闲状态下,只有充电和静置才允许进入预均衡,放电状态下直接禁止均衡。原因是放电过程本身会自然缩小压差,此时开均衡纯属增加损耗和发热,没有任何收益。

预均衡是一个持续观察窗口。进入这个状态后,系统连续采样电压,确认压差稳定存在而不是某个瞬时噪声,只有压差在窗口内持续超过启动阈值,才切换到正式均衡。这个窗口能有效过滤掉充电末端纹波造成的误触发。

正式均衡阶段,MCU按策略周期性开启或关闭对应通道,同时持续监控电压和温度。如果电芯表面温度超过45℃,立即进入均衡暂停,等温度回落后再恢复,防止热失控。

4.2 电压采集与滤波的软件实现

电压采集是一切策略的基础。PIC18F86J55自带10位ADC,分辨率大约3mV每步,单纯用原始采样值做均衡判断不够用。我的做法是两级滤波加校准:

硬件上在ADC入口做RC低通滤波,时间常数约1ms,滤掉高频噪声;软件上做中值滤波加滑动平均,每50ms触发一次采样序列,连续采7次,去掉最大值和最小值再取平均。这个组合能把分辨率等效提升到约1mV级别。

校准方面,用高精度电压源对整条采样链路做了两点校准,把实际分压比和偏置写进Flash。量产时每块板子在产线做一次两点校准,写入各自的校准系数。实测下来,整个温度范围内误差能控制在±5mV以内。

提示:单片机的ADC参考电压受供电波动影响很大,有条件就加一颗独立的高精度基准芯片,别直接拿LDO输出当ADC基准用,否则温度一变采集值就跟着飘,均衡策略再写得再好也白搭。

均衡控制的伪代码我放在下面,思路可以直接参考:

void battery_balance_task(void) { uint16_t v_cell1 = adc_read_filtered(CELL1_CH); uint16_t v_cell2 = adc_read_filtered(CELL2_CH); int16_t diff = v_cell1 - v_cell2; if (system_state == STATE_DISCHARGE) { balance_disable_all(); return; } if (abs(diff) > BALANCE_START_THRESHOLD_MV) { if (diff > 0) { balance_enable(BALANCE_CELL1); // CELL1电压高,均衡CELL1 } else { balance_enable(BALANCE_CELL2); } } else if (abs(diff) < BALANCE_STOP_THRESHOLD_MV) { balance_disable_all(); } if (ntc_temp_read() > BALANCE_TEMP_LIMIT_C) { balance_disable_all(); } }

这段代码核心只有三个判断:状态机是否允许、压差是否越限、温度是否过高。真正工程上的重点是阈值的滞回设计,下面单独说。

4.3 均衡阈值与滞回逻辑

我这版设了启动阈值30mV、停止阈值10mV。为什么要两个值?如果只有一个阈值,比如都是20mV,均衡把压差从30mV拉到19mV就停,但停掉之后自放电差异马上又把压差慢慢推回30mV,于是均衡再次启动,形成周期性开关抖动,MOS管和电阻都在额外损耗,整个系统看起来就跟抽风一样。

用30mV启动、10mV停止,实际表现是:压差异常时均衡连续工作,直到压差收敛到10mV以内才休眠,这之后电芯的自然波动不会再反复唤醒均衡。如果你的应用场景是三元锂电池,阈值可以稍微收紧一点,比如启动25mV、停止8mV,因为三元电芯的平台电压高、电压对SOC变化更敏感。磷酸铁锂平台区比较平,阈值太紧反而容易在平台区来回触发,没有任何意义。

4.4 与充电和保护逻辑的联动

均衡发挥作用最大的场合是充电末端。CC转CV之后,充电电流已经比较小了,均衡电流会抢占一部分充电电流,让电压偏高的那节电芯充得慢一点,整组电池就能等到低压电芯慢慢补上来,最终充满。

这里有一个必须做对的联动:均衡开启时如果检测到某节电芯电压超过过充保护阈值,保护逻辑优先,直接关断充电MOS,同时也关断均衡,绝对不能让均衡和过充保护互相打架。

我在早期一版设计里遇到过把均衡开关管和充电MOS共用驱动信号的错误做法,均衡一开启就把充电MOS带偏,保护逻辑形同虚设。这种硬件层面的互锁一定要单独拉线、单独控制,软件上也要明确优先级:过压保护大于温度保护大于均衡动作。

5. 实测数据、调试踩坑与问题速查

5.1 压差从30mV到3mV的实测收敛过程

系统搭好后,我用两节全新磷酸铁锂电芯做了实测。初始状态通过人为放电把两节电芯拉开压差,一个3.50V一个3.47V,压差约30mV。接通充电和均衡策略后,前一个小时压差快速收敛到15mV左右,之后进入缓慢收敛阶段,大约三个小时稳定在3到5mV之间,之后在这个范围内自然波动。

这个过程印证了被动均衡的一个规律:压差越大的时候,收敛速度越快;压差越小,收敛效率越低。最后要收敛到1mV以内不太现实也没有必要,因为电芯自身的电压恢复效应和自放电差异就有几个毫伏级别。目标定在10mV以内,对2S储能系统完全够用。

5.2 发热实测与长时间运行稳定性

连续均衡测试时用热像仪看了一下板上的温度分布:均衡电阻表面最高温在72℃左右,处于规格允许范围内,周围PCB区域在45℃上下。电芯靠近电阻的一侧比另一侧高2到3℃,这个温差在可接受范围,但如果结构上不做隔离,长期热辐射还是可能加速电芯老化,所以前面说的导热硅胶垫和金属外壳辅助散热不是可选项,是必须项。

长时间稳定性我验证了一个星期的浮充循环,期间发现一个值得注意的问题:充电末端电压纹波较大时,均衡策略偶尔会出现一次误触发,均衡通道闪开几十毫秒又关掉。排查下来是充电器输出纹波叠加到了采样线上,最后在采样入口加了一颗22nF电容,同时把软件的预均衡窗口从30秒延长到60秒,误触发完全消失。

5.3 常见问题排查速查表

调试期间遇到和同事讨论过的问题,整理成表格方便大家直接对照:

现象可能原因排查思路
均衡一直不开启压差没超过启动阈值用万用表比对MCU读到的单体电压,确认采样准确
均衡电流远小于设计值均衡MOS栅极驱动不足、半导通测栅极驱动波形,检查充电泵输出电容
采样电压跳变剧烈采样线和功率线共用改开尔文走线,加密RC滤波
均衡电阻异常发热均衡电流超设计值检查MOS是否完全导通,确认Vgs足够
均衡开启时充电电流异常均衡与充电逻辑冲突查硬件互锁和软件优先级
长时间静置压差反而扩大电芯自放电或内阻差异过大先做电芯筛选,排除电芯问题再追策略

5.4 几个值得留意的工程细节

均衡电阻的布置方向很有讲究。贴片电阻散热能力跟焊盘铜箔面积直接相关,建议把均衡电阻两端的焊盘铜箔加宽到3mm以上,实测电阻本体温度能降8到10℃。

量产校准策略也要提前想好。不建议在固件里做复杂的在线自动校准,产线上用两台高精度电压源标定两个点,把校准系数写入Flash,老化测试时抽查一批的一致性,这比在固件里跑自适应校准便宜得多也可靠得多。

通信协议要提前留好诊断字段。MCU把均衡状态、单体电压、温度、均衡累计时间通过UART以固定帧格式上报,工程人员手里的数据越完整,定位问题的速度越快。我在调试过程中有一半的问题都是靠这套上报数据辅助定位的,如果没有这些运行时数据,光靠万用表测板子,很多偶发问题根本复现不出来。

做完这个2S均衡方案,我最大的体会是:均衡硬件本身只是执行机构,真正的决策质量全在策略和细节上。两节电芯的系统看似简单,但采样精度、阈值滞回、热管理、保护互锁,任何一环放松了都会在量产和客户现场暴露出来。这套架构后续要扩展成3S或者4S也很方便,主要工作量在增加均衡通道和采样通道,策略逻辑几乎可以原样复用。如果你也在做类似的小型储能或备电系统,建议先把被动均衡这条路走扎实,再考虑更复杂的主动均衡,很多问题往往在简单的方案里就是最优解。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询