4、电压采样电路设计:电芯电压采样原理、差分采样与隔离采样、AFE芯片选型(如AD7280A、LTC6811、MAX17853)、采样精度与误差分析

电芯电压采样,是BMS最核心的功能之一。说白了,BMS要是不知道每节电池的电压,那后面的均衡、保护、SOC估算全是扯淡。我刚开始做BMS那会儿,觉得电压采样不就是用ADC读一下嘛,有什么难的?后来踩了坑才发现,这里面的门道深着呢。

4.1 电芯电压采样原理

锂电芯的电压范围,单节通常在2.5V到4.2V之间。串联成组后,总电压可能高达几百伏。采样电路要做的,就是精确测量每一节电芯的端电压。

最基本的思路是什么?用电阻分压。但分压有两个致命问题:一是分压电阻会一直耗电,电池会慢慢被放空;二是精度受电阻温漂影响大。所以现在基本没人用纯分压方案了。

主流方案是用AFE芯片内部的ADC直接测量。AFE芯片通过多路复用器,依次选通每一节电芯的电压,送到ADC转换。这里有个关键点:电芯是串联的,每一节电芯的参考地都不一样。比如第1节电芯的负极是BAT-,正极是CELL1;第2节电芯的负极是CELL1,正极是CELL2。所以测量第2节电芯时,ADC的参考地必须是CELL1,而不是BAT-。

这就是为什么AFE芯片需要做电平移位。它内部有精密电阻网络和开关阵列,能把每一节电芯的电压都转换到以芯片自身地为参考的电压范围。嗯,这里要注意,芯片的供电电压和耐压范围,决定了它能支持多少节电芯串联。

4.2 差分采样与隔离采样

差分采样和隔离采样,是两种不同的概念,很多人容易搞混。我简单解释一下。

差分采样,指的是ADC测量的是两个输入端的电压差,而不是对地的电压。对于电芯电压测量来说,每一节电芯的电压本身就是差分信号——正极和负极之间的电位差。AFE芯片内部通常都集成了差分输入的多路复用器和ADC,所以天然支持差分采样。差分采样的好处是能抑制共模噪声。你想想看,电机驱动产生的强电磁干扰,会同时耦合到电芯的正负极上,但差分测量只关心差值,共模噪声就被抵消了。

隔离采样,指的是采样电路和主控电路之间没有直接的电气连接,而是通过隔离器件(如光耦、磁耦、容耦)传递信号。为什么要隔离?因为电芯组的总电压可能高达几百伏,而主控芯片的工作电压只有3.3V或5V。如果不隔离,一旦发生故障,高压会直接窜入低压侧,烧毁主控芯片,甚至危及人身安全。

我个人的习惯是:AFE芯片和主控MCU之间必须做隔离。AFE芯片本身可以是非隔离的,它直接挂在电池组上,但它的通信接口(SPI或isoSPI)必须通过隔离器件连接到MCU。LTC6811用的isoSPI就是一种隔离通信协议,通过变压器耦合实现隔离,非常经典。

核心要点:

  • 差分采样解决的是共模干扰问题
  • 隔离采样解决的是高压安全问题
  • 两者不是二选一,而是都需要

4.3 AFE芯片选型

市面上主流的AFE芯片,我接触过的有三家:ADI的AD7280A、Linear Technology(现属ADI)的LTC6811、Maxim(现属ADI)的MAX17853。这三款芯片各有特点,我分别说说。

4.3.1 AD7280A

AD7280A是较早的产品,支持6节电芯采样。它的特点是集成度较高,内部有ADC、电压基准、温度传感器接口。但它的采样速率不算快,而且通信接口是SPI,需要外部隔离。我在一个48V的低压BMS项目里用过它,当时觉得够用,但后来发现它的精度在高温下会漂移,需要做温度补偿。

另外,AD7280A的菊花链功能比较弱,级联时通信稳定性一般。如果你做的是12节以上的电池包,我不太推荐用它。

4.3.2 LTC6811

LTC6811是我用得最多的芯片,也是目前行业内的标杆。它支持12节电芯采样,最大误差只有1.2mV(典型值)。它的isoSPI接口非常强大,通过一对双绞线就能实现高速隔离通信,距离可以做到100米以上。

我记得有一次做储能项目,电池包分布在好几个机柜里,距离主控板有十几米远。用LTC6811的isoSPI,一根网线就搞定了通信和隔离,省了不少事。

LTC6811还有一个好处:它支持被动均衡,内部集成了均衡开关管,最大均衡电流可以到200mA。虽然200mA对于大容量电芯来说有点小,但做小电流均衡足够了。

4.3.3 MAX17853

MAX17853是Maxim推出的产品,支持12节电芯采样,精度和LTC6811相当。它的特点是采样速率非常快,所有通道可以在1ms内完成转换。这对于需要实时监测的应用很有优势。

另外,MAX17853的通信接口是UART,通过变压器隔离。它的菊花链功能也很强,最多可以级联32个芯片,支持384节电芯。我在一个大型储能项目里见过它,当时觉得它的诊断功能很丰富,比如开路检测、过压欠压检测都是硬件自动完成的,不需要MCU干预。

选型建议:

  • 如果你做的是12节以下的低压BMS,AD7280A够用,但要注意温度补偿
  • 如果你做的是12-48节的中压BMS,LTC6811是首选,稳定可靠
  • 如果你做的是48节以上的高压BMS,或者需要极快采样速率,MAX17853更合适

4.4 采样精度与误差分析

采样精度是BMS性能的关键指标。精度不够,SOC估算就是空中楼阁。我见过一个项目,因为采样误差太大,SOC跳变了好几次,客户直接投诉。

误差来源主要有以下几个方面:

误差来源 典型值 影响
ADC量化误差 ±0.5 LSB 分辨率限制,无法消除
电压基准漂移 ±10 ppm/°C 温度变化时精度下降
输入偏置电流 ±1 nA 在分压电阻上产生压降
电阻匹配误差 ±0.1% 分压比例不准确
噪声干扰 ±100 μV 随机波动,可滤波

我曾经在一个项目中,发现采样值总是偏大。排查了很久,最后发现是PCB布局的问题——采样线走得太长,而且和功率线平行走了几厘米,耦合了噪声。后来我把采样线改成差分走线,加了一对100pF的滤波电容,问题就解决了。

这里有几个提高精度的实用技巧:

  • 使用高精度电压基准:AFE芯片内部的基准通常够用,但如果要求极高精度,可以考虑外部基准
  • 做软件滤波:我习惯用中值滤波+滑动平均,先去掉异常值,再平滑处理
  • 定期校准:在产线上用高精度万用表标定,把校准系数存到EEPROM里
  • 注意温度补偿:AFE芯片的精度会随温度变化,可以在固件里做查表补偿

避坑指南:

我曾经犯过一个低级错误:采样线的滤波电容选得太大,导致采样值响应很慢。电芯电压已经变了,采样值还停留在老值上。后来我把电容从1μF改成了100nF,响应速度就正常了。记住,滤波电容不是越大越好,要兼顾响应速度和噪声抑制。

最后说一句,采样精度不是越高越好。对于大多数应用,±5mV的精度已经足够。盲目追求高精度,只会增加成本和设计复杂度。你想想看,电芯本身的电压波动就有几十毫伏,你非要测到微伏级,有意义吗?