1. 项目概述与核心价值
在电动汽车和大型储能系统的电池管理系统(BMS)设计里,最让人头疼的往往不是单个电芯的监控,而是如何准确、可靠地测量那些连接多个电芯模块或电池包的“大铜排”——也就是汇流排(Bus Bar)的电压。这玩意儿电压不高,但意义重大,它直接反映了模块间的连接状态和电势差,是判断接触电阻、连接器老化甚至潜在热失控风险的关键窗口。以前很多方案要么用额外的ADC芯片来测,成本高、同步性差;要么就干脆不测,埋下安全隐患。
德州仪器的BQ7961x系列芯片,算是把这个问题琢磨透了。它原生支持两种汇流排连接方式:一种是走专用的BBP/N差分引脚,另一种是直接复用普通的电芯电压检测(VC)通道。这不仅仅是多了个接口那么简单,它意味着你可以在不增加额外硬件成本的前提下,把汇流排电压纳入到芯片原有的高精度采样、诊断和均衡体系里。我经手过好几个从早期分立方案切换过来的项目,实测下来,系统可靠性提升了一个档次,尤其是开线检测和诊断比较功能,能在问题刚冒头时就报警,避免了后期的大麻烦。
这篇文章,我就结合手册里的干货和我自己踩过的坑,把BQ7961x的汇流排连接、诊断控制和均衡逻辑掰开揉碎了讲清楚。无论你是正在选型的BMS架构师,还是埋头调试的嵌入式工程师,理解这些细节都能帮你设计出更皮实、更智能的电池管理系统。
2. 汇流排连接方案深度解析
BQ7961x系列提供了两种汇流排接入方式,这可不是随便二选一,每种方式都有其特定的应用场景、硬件连接要求和软件配置逻辑。选错了或者配错了,轻则测量不准,重则均衡失效甚至损坏芯片。
2.1 方案一:通过专用BBP/N引脚连接
这是最“正统”的用法。芯片上专门提供了BBP(Bus Bar Positive)和BBN(Bus Bar Negative)一对差分输入引脚,用来直接测量汇流排的电压。
2.1.1 硬件连接与测量原理
它的连接方式很直观:将汇流排的两端分别接到芯片的BBP和BBN引脚上。在芯片内部,这个差分信号会直接送入主ADC(Main ADC)路径进行测量。同时,为了进行冗余诊断,它还可以被配置到辅助ADC(AUX ADC)的输入复用器上。这样一来,系统就能用两个独立的ADC对同一个物理量进行测量,然后进行比较,实现高可靠性的诊断。
手册里的图9-54清晰地展示了这条路径:BBP/N的信号经过模拟抗混叠滤波器(AAF)和缓冲器后,进入一个16:1的MUX。当主机通过AUX_CELL_SEL寄存器选择对应的通道(例如0x01代表汇流排通道)时,该信号就会被路由到AUX ADC。主ADC的测量结果存放在BUSBAR_HI/LO寄存器中,而AUX ADC的测量结果(如果选择了该通道)则存放在AUXCELL寄存器中。
2.1.2 核心优势与设计考量
这种方式的第一个核心优势是独立性。汇流排测量完全独立于任何电芯电压通道,不会干扰正常的电芯电压采样和均衡。第二个优势是内置开线检测。BBP和BBN引脚内部集成了可控的电流源(Current Sink)。当使能开线检测(设置DIAG_COMP_CTRL3[OW_SNK1:0] = 0b11)时,这个电流源会打开。
它的诊断逻辑非常巧妙:在导线完好的情况下,BBP和BBN之间是低阻抗的汇流排,内部电流源产生的电流会在测量路径上形成一个非常小的、可预测的压降。当BBP或BBN任何一端开路时,电流源会拉高或拉低开路端的电压,导致(BBP - BBN)的差分测量值产生一个明显的异常偏移(例如接近电源轨电压或地),从而被芯片识别为故障。
实操心得:开线检测的电流设置这个内部电流源的大小是固定的,典型值在微安级别。这意味着你的PCB布线和汇流排本身的电阻需要足够小,以确保在正常连接时,电流源产生的压降远小于你的诊断阈值。通常,这个压降在几个毫伏以内是合理的。在设计阶段,最好估算一下从芯片引脚到汇流排采样点的走线电阻,确保它不会导致误报警。
2.2 方案二:连接至独立的VC通道
当芯片的VC通道有富余,或者你想用更灵活的方式监控多个电位点时,可以把汇流排像接一个电芯一样,接到某个VC通道上。例如,VCn接汇流排正端,VCn-1接负端(假设汇流排电压等于电芯n的电压)。
2.2.1 硬件连接的特别之处
这种接法有个关键区别:被用作汇流排的那个VC通道,其上方的CB(Cell Balancing)引脚必须悬空(Floating)。如图9-56(a)所示,如果汇流排接在中间某个VCn通道上,那么CBn引脚就不能再接任何东西。
为什么要悬空?这是为了防止内部用于均衡的CBFET(MOSFET)被意外正向偏置。如果CBn引脚被接到一个低阻抗点(比如另一个电芯或地),当该通道被配置为汇流排时,内部的开关状态可能导致不可预知的电流路径,甚至损坏芯片。
2.2.2 热插拔保护与RC网络
即使CBn引脚悬空,芯片要求在该CB通道上仍然要焊接那个经典的差分电容(例如10nF)。这个电容,连同其他电芯通道上的电容,共同构成了一个从电池总正(BAT)到总负(AVSS)的完整电容阶梯(Capacitor Ladder)。
这个阶梯电路至关重要,尤其是在有热插拔(Hotplug)需求的场合。当带电的电池包接入系统时,可能会产生高压毛刺。这个电容网络可以将瞬间的高压均匀地分摊到每个VC和CB引脚上,避免电压全部加在某一个引脚上导致击穿。手册图9-56(b)还特别说明了,如果汇流排接在模块最顶端的VC通道(即最高电位),除了悬空上方的CB引脚并保留差分电容外,还需要在顶部的CB引脚和BAT之间额外增加一个RC滤波网络。这个RC网络的值需要与其他CB引脚上的RC滤波器保持一致,目的是保证整个电容阶梯在热插拔事件中具有相同的时间常数,确保电压均匀分布。
2.2.3 软件配置要点
使用这种模式,你必须通过BBVC_POSN1和BBVC_POSN2寄存器明确告诉芯片,哪一个(或哪两个)VC通道被用于连接汇流排。这里有三个硬性限制:
- 最底部的通道(VC1-VC0)不支持汇流排连接。即
BBVC_POSN1[CELL1]必须为0。 - 最多只能有两个VC通道用于连接汇流排。即在这两个寄存器中,最多只能有两个比特位被设置为1。
- 汇流排不能连接到相邻的VC通道上。这是为了防止通道间的串扰和简化诊断逻辑。
配置错误会导致电芯均衡、过压/欠压(OV/UV)检测以及电压比较检查出现错误。
3. 电压诊断与比较检查机制
BMS的可靠性建立在“不相信单次测量”的原则上。BQ7961x的电压诊断核心,就是利用主ADC和AUX ADC进行交叉验证。
3.1 诊断控制逻辑
无论是哪种汇流排连接方式,诊断的基本思想都是对比。对于通过BBP/N连接的汇流排,诊断相对直接:
- 自检:主ADC对BBP/N进行测量。
- 交叉验证:通过配置,让AUX ADC也测量同一个BBP/N通道(通过MUX选择)。
- 比较:主机读取
BUSBAR_HI/LO(主ADC结果)和AUXCELL寄存器(AUX ADC结果),并比较两者差值是否在允许的容差范围内。如果超差,则表明ADC测量路径可能存在问题。
对于连接在独立VC通道上的汇流排,诊断逻辑则更为智能。因为该通道的上方CB引脚是悬空的,传统的“VC通道测量”与“CB通道测量”的比较模式不再适用。芯片内部会��动调整诊断算法:
- 它不再单独比较“电芯n”的主ADC值和AUX ADC值。
- 而是将电芯n的电压与汇流排的电压视为一个整体。
- 诊断时,芯片会比较(电芯n主ADC值 + 汇流排主ADC值)与(电芯n AUX ADC值 + 汇流排AUX ADC值)之和。 这种“和值比较”的方式,巧妙地绕开了CB引脚开路带来的问题,依然实现了对测量链路的完整性检查。
3.2 开线检测的工程实现
开线检测是BMS安全的关键防线。对于BBP/N专用引脚方式,如前所述,依靠内部电流源和电压异常判断。
在实际项目中,你需要关注以下几点:
- 使能时机:开线检测电流源通常在需要诊断时由软件临时开启,而不是一直开启,以避免不必要的功耗和对测量精度的影响。一般在进入睡眠模式前,或定期执行诊断扫描时开启。
- 诊断阈值设置:芯片不会自动判断“开线”,它只是提供一个原始的ADC测量值。主机需要根据理论计算和实验数据,设定一个合理的阈值。例如,正常连接时
(BBP-BBN)的测量值应在V_busbar ± 5mV以内,当检测值超过V_busbar ± 300mV时,则可判定为开线。 - 滤波与防误报:在噪声较大的环境中,单次测量异常可能是干扰。稳健的做法是连续进行多次测量(例如3-5次),只有超过半数的测量结果超过阈值,才上报开线故障。BQ7961x的ADC可以配置数字低通滤波器(LPF),在
ADC_CTRL1[LPF_BB_EN]中使能,能有效抑制噪声。
4. 汇流排连接下的电芯均衡处理
电芯主动均衡是BMS的核心功能,而汇流排的存在改变了均衡电流的路径,因此芯片的均衡逻辑也需要进行特殊处理。
4.1 均衡路径分析
我们以汇流排连接在独立VC通道(VCn)为例,参考手册图9-57。
- 正常均衡:对于电芯n(位于汇流排上方),其均衡电流路径是:从电芯n正极 -> VCn引脚 -> 内部CBFET(QCBn)-> CBn引脚 -> 外部均衡电阻 -> CBn-1引脚 -> 回到电芯n负极。这是一个完整的回路。
- 汇流排通道的困境:VCn通道被用于测量汇流排,其对应的CBn引脚被要求悬空。如果试图打开QCBn来均衡电芯n,电流路径在CBn这里就断开了,无法形成回路。
4.2 芯片的解决方案:相邻CBFET联动
BQ7961x采用了一个巧妙的“借道”方案。要均衡电芯n(汇流排上方的电芯),主机不能打开它正下方的CBFET(QCBn),因为它的CBn引脚是悬空的。 正确的操作是:
- 主机配置
BBVC_POSN寄存器,告知芯片VCn通道连接了汇流排。 - 当需要均衡电芯n时,主机打开相邻的下一个CBFET,即QCBn-1。
- 同时,将QCBn-1的均衡定时器设置复制给QCBn(虽然QCBn不实际导通大电流)。芯片内部利用这个信息,知道QCBn-1正在“代理”执行对电芯n的均衡。
这样,均衡电流的实际路径变为:电芯n正极 -> VCn引脚 -> 内部寄生二极管或等效路径 -> VCn-1引脚 -> 内部CBFET(QCBn-1)-> CBn-1引脚 -> 外部均衡电阻 -> CBn-2引脚 -> 回到电芯n负极。电流绕过了悬空的CBn,通过芯片内部从VCn走到了VCn-1。
4.3 均衡终止与状态标志
这种“代理均衡”模式带来了状态机上的细微变化:
- 均衡完成(CB_DONE)标志延迟:均衡的终止条件(定时器超时或电压达到阈值)是针对实际导通的QCBn-1进行判断的。当电芯n均衡完成时,QCBn-1会关闭。但是,被配置为汇流排通道的QCBn,其定时器可能还未到期。因此,芯片可能不会立即置位
CB_DONE标志,而是要等到QCBn的软件配置的定时器也超时后才会置位。这在软件处理均衡状态时需要特别注意,不能单纯依赖CB_DONE标志来判断单个电芯是否均衡完毕,而应结合电压测量值。 - OV/UV检测跳过:芯片会自动跳过对连接了汇流排的VC通道进行过压和欠压保护判断,因为该通道的电压值代表的是汇流排电压,而非电芯电压。保护判断应基于其相邻的实际电芯通道。
5. 寄存器配置与软件流程实战
理解了原理,最终要落到代码和配置上。下面以一个典型的场景为例:将汇流排连接在VC10通道(假设为中间通道),并启用相关功能。
5.1 初始化配置步骤
引脚功能配置:确认硬件上VC10和VC9连接汇流排,且CB10悬空,CB10差分电容(如10nF)已焊接。
设置汇流排位置寄存器:
// 假设VC10是第10个通道(注意寄存器位与通道号的映射,通常CELL10对应VC10) write_register(BBVC_POSN1, 0x00); // 先清零高字节寄存器(CELL16-CELL9) write_register(BBVC_POSN2, 0x04); // 设置BIT2 (对应CELL10) 为1,告知芯片VC10连接汇流排。务必检查
BBVC_POSN1[CELL1]是否为0(底部通道禁用),且设置位不超过2个,且不连续。配置ADC与滤波器:
// 使能主ADC路径上汇流排测量的数字低通滤波器(如果使用BBP/N方式,此位也适用) write_register(ADC_CTRL1, read_register(ADC_CTRL1) | (1 << LPF_BB_EN_BIT_POS)); // 配置AUX ADC,可选步骤,如果需要进行交叉验证 // 设置AUX_CELL_SEL寄存器,选择将汇流排通道连接到AUX ADC进行采样配置诊断控制:
// 使能开线检测电流源(仅适用于BBP/N方式) write_register(DIAG_COMP_CTRL3, (read_register(DIAG_COMP_CTRL3) & 0xFC) | 0x03); // 设置OW_SNK1:0 = 0b11 // 配置电压比较检查的阈值(COMP_THRESH寄存器) write_register(COMP_THRESH_HI, 0x0A); // 例如,设置主辅ADC差值阈值为10mV
5.2 运行时操作与诊断流程
- 启动测量:发送命令启动主ADC和AUX ADC扫描。
- 读取电压:读取
VCELL10_HI/LO获取汇流排电压(VC通道方式),或读取BUSBAR_HI/LO(BBP/N方式)。 - 执行诊断:
- 开线检测:在使能电流源后,读取汇流排电压。与正常值(理论应为0V或一个很小的偏置)比较,判断是否超阈值。
- 电压比较检查:读取AUX ADC对应通道的测量值(
AUXCELL寄存器),与主ADC值进行比较。 - 和值检查(针对VC通道方式):读取电芯9(VC9)和汇流排(VC10)的主、辅ADC值,分别求和后比较。
- 处理均衡:
// 假设要均衡电芯11(位于汇流排VC10的上方) // 1. 设置均衡目标电压和定时器 set_cell_balance_threshold(11, 3.60); // 目标电压3.60V set_balance_timer(11, 600); // 定时600秒 // 2. 关键:开启的是电芯11下方的CBFET(对应CB10,但实际是QCBn-1逻辑) // 芯片会根据BBVC_POSN寄存器的设置,自动处理代理逻辑。 enable_cell_balance(10); // 使能通道10的均衡控制位(对应QCB10) // 注意:这里使能的是“通道10”的控制位,但实际物理导通的是QCB9。
5.3 常见问题与排查技巧实录
问题1:汇流排电压测量值跳动大,噪声高。
- 排查:首先检查PCB布局。BBP/N或VC通道的走线是否远离开关电源、均衡MOSFET驱动等噪声源?是否使用了紧耦合的差分走线?RC滤波器的参数(通常手册推荐1kΩ + 100nF)是否合适?可以尝试增大滤波电容或启用ADC的数字低通滤波器(
LPF_BB_EN/LPF_VCELL)。 - 技巧:在软件中实现滑动平均滤波。连续采样8-16次,取平均值作为最终结果,能显著抑制随机噪声。
问题2:开线检测功能误报警。
- 排查:
- 测量BBP/N引脚对地的直流阻抗,确认没有虚焊或腐蚀。
- 检查开线检测电流源使能后,测量到的电压偏移量。用高精度万用表测量BBP和BBN之间的实际电压,与ADC读取值对比。如果偏移量在几十毫伏以内,可能是正常的线路压降,需要调宽软件中的诊断阈值。
- 确认在使能开线检测时,汇流排上是否有其他动态负载导致电压波动?最好在系统静态时进行开线诊断。
- 技巧:实现“二次确认”逻辑。第一次检测到开线后,延迟100ms再执行第二次检测。只有两次都确认,才上报永久故障。中间可以加入断开电流源、重新测量的步骤。
问题3:配置汇流排在VC通道后,该通道上方的电芯均衡无法启动或效果很差。
- 排查:
- 首要检查:
BBVC_POSN寄存器配置是否正确?是否只配置了汇流排通道,而错误地使能了该通道本身的均衡(即试图打开QCBn)?正确的做法是使能其下方通道的均衡控制位。 - 检查均衡电阻阻值是否合适?由于电流路径略有变化,等效电阻可能稍有不同,但通常影响不大。
- 用电流探头测量实际流过均衡电阻的电流,确认均衡回路是否真正导通。
- 首要检查:
- 技巧:在调试均衡功能时,可以先不接汇流排,用普通电芯负载验证均衡逻辑是否正确。然后再接入汇流排,对比均衡电流的变化。监控被均衡电芯的电压下降速率,可以间接判断均衡是否有效。
问题4:电压比较检查(主辅ADC差异)频繁报错。
- 排查:这通常是ADC校准或时序问题。
- 校准:确保在芯片上电稳定后,执行了ADC增益和偏移校准(写入
MAIN_ADC_CAL和AUX_ADC_CAL寄存器)。德州仪器通常提供校准算法或推荐值。 - 采样时序:主ADC和AUX ADC对同一通道的采样时间点是否足够接近?如果系统电压在快速变化(如充放电瞬间),两次采样间隔太长会导致差值变大。检查ADC扫描序列的配置,尽量让主辅ADC对关键通道的测量背靠背进行。
- 参考电压:检查芯片的模拟电源(AVDD)和参考电压是否稳定。纹波过大会直接影响ADC精度。
- 校准:确保在芯片上电稳定后,执行了ADC增益和偏移校准(写入
问题5:热插拔时,连接汇流排的VC通道引脚损坏。
- 排查:这几乎可以肯定是电容阶梯网络不完整导致的。
- 重点检查:那个被要求悬空的CB引脚(如CB10)上,是否确实焊接了与其它通道同规格的差分电容(如10nF)?这个电容是构成高压分压网络的关键元件。
- 如果汇流排接在顶部通道,检查BAT到顶部CB引脚之间的额外RC网络是否已安装,其R、C值是否与其他通道的RC滤波器一致?
- 检查所有VC、CB引脚上的对AVSS的电容(CVC和CCB)是否都已按手册要求焊接。这些电容共同承担热插拔时的电压应力。
通过以上这些具体的配置步骤和问题排查思路,你应该能够驾驭BQ7961x系列芯片的汇流排功能了。归根结底,理解电流路径、明确寄存器配置的意图、再加上严谨的硬件设计,是用好这颗芯片的关键。在实际项目中,建议先用评估板搭建实验电路,把所有诊断和均衡功能验证一遍,再着手设计自己的PCB,这样能避开很多潜在的坑。