一种高性能的锂电池管理系统设计

2022-09-10

锂电池管理系统 (BMS) 作为一种管理锂电池全运行过程的嵌入式系统, 起到实时监控、安全保护、自动均衡、智能充放电控制、估算剩余电量等重要功能, 是锂电池组中不可或缺的重要部件。随着锂电池技术的不断发展, 原有应用在数码领域的锂电池凭借其性能上的优势, 逐步广泛应用于汽车、军工、电力、通信等各行各业, 电池的容量越来越大, 电压与功率也越来越高, 锂电池的数量也随之增多, 对电池管理系统的要求也越来越高。本文提供一种多串锂电池组电池管理系统的设计方案。

一、系统特性总述

本文设计的BMS采用TI公司ARM Cotex-M4核的微控制器芯片TM4C123BH6PZ, 搭配MAXIM的MAX17830电池电压监测芯片和TI公司的BQ34Z100电量计量芯片[1]。系统具有以下功能特性:

(1) 高精度电池的电压, 精度可达±5m V;

(2) 多路电池模组的温度测量, 精度可达±1℃

(3) 充放电流的实时测量, 精度可达0.5%;

(4) 锂电池运行状态的相关统计, 包括充放电时长、充放电次数以及各种告警状态的次数;

(5) 故障告警和保护功能, 包括过流保护、短路保护、过压保护、过放保护、过温保护、欠温保护、电池故障保护、反接保护;

(6) 各种保护和运行参数可设置;

(7) 系统日志及电池重要历史数据的存储;

(8) 剩余电量估算;

(9) RS232调试串口, 支持命令调试

(10) RS485和CAN总线数据通信协议;

(11) 低功耗的休眠模式和自动唤醒。

二、主要芯片简介

(一) 中央处理器芯片TM4C123BH6PZ

TM4C123BH6PZ是TI公司推出的一款用于嵌入式控制系统的高性能、多功能32位控制器, 基于ARM Cotex-M4F核, 采用100管脚的LQFP封装, 主频80MHz, 100DMIPS处理能力, 内置256KB Flash和32KB SRAM以及2KB EEPROM。该芯片具有丰富的通信接口资源, 包括8个UART控制器4个SSI模块, 6路I2C模块, 1路CAN2.0控制器, 其它资源包括2个看门狗定时器, 6个16/32位通用定时器, 10个GPIO模块, 2个12位ADC模块, 1个JTAG模块集成SWD。

TM4C123BH6PZ微控制器还具有一个带备用电池的休眠模块, 从而有效地使TM4C123BH6PZ在长时间未被激活时进入低功耗状态。休眠模块拥有一个上电/掉电序列发生器、连续时间计数器 (RTC) 、多种休眠唤醒选项、以及专用的带备用电池的存储器, 使其很好的适合电池应用。

(二) 锂电池电池电压监测芯片MAX17830

MAX17830是MAXIM公司推出的12路电压数据采集芯片, 广泛应用于电池串联系统之中。它拥有12路精度可达±0.25%的高精度高速电压测量通道, 可以检测6至12串锂电池电压, 并且只需要109µS就能完成12路电压数据的扫描, 同时集成了2路温度检测通道。该芯片还具备电池失效状态检测, 可以检测电池的过压、欠压、过温以及欠温。MAX17830提供12路驱动控制输出, 用于控制锂电池的均衡开关。MAX17830具有汽车级的高可靠性, 工作范围-40℃~105℃。MAX17830还具有良好的可扩展性, 通过I2C总线最大级联31颗, 可以支持测量372个锂电池。

(三) 锂电池电量计量芯片BQ34Z100

BQ34Z100是TI公司推出的多串锂电池电量计量芯片。采用TI专利技术Impedance Track能够测量3V~65V电池的容量, 能够自动根据电池的老化衰减和自放电进行容量估算补偿。另外还能够测量充放电电流以及温度。

(四) 其它芯片

本文设计需要用到外部存储器, 数据量较大的信息存储在外置FLASH中, 数据量小的信息存储在外置EEPROM中。24LC16BT-I是Microchip公司推出的高性价比EEPROM, 存储容量16Kbit, 采用SOIC-8封装, I2C访问总线, 最快访问时间900ns。本文设计选用Winbond公司的NOR-FLASH芯片W25Q16JVSSIQ-TR, 16Mbit的存储容量, SPI访问总线, 133MHz的时钟频率, 3ms写周期时间。

三、系统架构设计

整体系统结构如图1所示, TM4C123BH6PZ通过I2C总线访问MAX17830获取锂电池电芯的电压测量数据和电池温度测量数据, 通过I2C总线访问BQ34Z100获取锂电池的电流测量数据和剩余容量估算数据 (SOC) 。汇总锂电池数据后, 判断锂电池组运行状态, 根据运行状态通过GPIO控制MOSFET实现对电池充放电的控制, 并将数据和状态记录到FLASH之中, 对所有状态的出现次数进行统计, 将统计数据记录到EEPROM中。通过内部集成的UART控制器实现RS232和RS485通信功能, 通过内部CAN总线控制器实现对外的CAN总线通信功能。通过这些通信接口可以实现与外部设备比如PC的信息交互。通过PC可以将各种需要设置的参数值传输给BMS并保存在EEPROM中。短路检测电路通过比较器检测电流超过安全门限值, 通过中断信号通知处理器紧急响应。

锂电池的电压安全范围一般在2.0V~4.5V, 标称3V, 单颗MAX17830可测量的6~12串锂电池。根据锂电池应用场景不同可以根据需求接入对应串数的锂电池。最大标称电压32V。

四、硬件设计

(一) TM4C123BH6PZ硬件设计

TM4C123BH6PZ与外部EEPROM、BMIC通过I2C连接, 与外部FLASH通过SPI接口连接。内部级联、上联及调试端口通过串口连接。可扩展LCD液晶显示, RS232接口, RS485接口, 以太网接口, CAN总线接口, LED指示灯等。

(二) MAX17830硬件设计

MAX17830通过隔离的I2C芯片与TM4C123BH6PZ进行通讯, SCL与SDA上拉电阻均配置为10k, 在MAX17830端SCL与SDA信号线上均串10欧姆电阻用于信号阻抗匹配。MAX17830仅用120.5u S可完成12节电池的电压采样。支持外部均衡开关, 匹配的驱动MOS信号配置1kΩ电阻, GS端加稳压管防止线束插拔瞬间高压损坏均衡MOSFET, 均衡MOSFET的耐压值大于60V, 均衡电流可根据容量大小选用不同的均衡电阻, 一般配置为50Ω。

(三) BQ34Z100硬件设计

BQ34Z100提供多种接口选项, 其中包括I2C, 本文设计采用I2C接口, 通过信号隔离器件与TM4C123BH6PZ通讯, 信号线串10Ω电阻用于阻抗匹配。电流采集端SRN与SRP信号上分别串100Ω电阻, 并0.1u F电容用于滤波。

五、软件设计

(一) 软件分层设计

如图2所示, 本文设计的软件系统分为三个层次, 三个层次包括BSP (Board Support Package) 层、芯片驱动层和应用层。其中BSP包括TI TM4C系列标准通用驱动库以及本文设计的外围硬件驱动程序, 主要完成处理器和板上资源的初始化和封装, 向上层提供统一的访问接口, 以便屏蔽硬件差异, 便于程序的移植。通用驱动层包括MAX17830、BQ34Z100、24LC16BT-I、W25Q16JVSSIQ-TR等的芯片驱动程序, 它们统一调用BSP的接口, 完成各自芯片的初始化, 向应用层提供统一的访问接口。应用层包括命令行模块、电池管理模块和通信模块, 命令行支持用户通过Console口输入命令行, 用于系统的测试以及人机交互, 通信模块将锂电池的各种数据统一上传, 并接受上游设备下发的各种配置指令, 电池管理模块是整个系统的核心业务模块, 负责管理锂电池的运行。

(二) 软件流程设计

1. 系统启动运行流程

如图3所示, 系统启动后, 设置处理器的时钟, 根据硬件设计配置相应的引脚, 初始化使用到的外部总线, 通过I2C初始化MA17830和BQ34Z100, 设置一个1秒定时器, 并使能全局中断, 处理器开始等待中断触发, 并根据中断进入中断处理程序。

TM4C123BH6PZ支持不同中断优先级的可编程设置, 本文设计的BMS中断配置如下:

短路信号处理需要最及时响应, 设置为优先级最高, 为保证数据传输的完整性, UART和CAN的数据优先级也比较高, Console口作为调试和人机交互接口, 实时性要求相对较低, 因此优先级最低。短路中断和数据中断虽然优先级较高, 但是占用处理器时间较短。TM4C123系列芯片支持DMA功能, 如果数据传输量较大, 也可以启动DMA功能用于数据传输, 保证电池管理程序的运行。

2. 电池管理程序流程

通过定时器中断触发电池管理程序, 在中断处理程序中, 分别访问MAX17830和BQ34Z100, 获取到电芯的电压、温度和电池组的电流以及SOC, 根据电流方向判断当前电池组的充电状态, 累加电芯电压获得电池组的总电压, 判断各个参数值是否符合预先设定的安全范围, 如果超过则把状态标志位置位, 再跟上一个时刻的状态进行比较, 如果状态值一致, 说明当前时刻状态没有发生变化, 则维持, 如果状态值不一致, 根据现在状态控制MOSFET, 当状态位为1的时候, 说明故障产生需要关闭MOSFET, 当状态位为0的时候, 说明故障解除需要打开MOSFET恢复工作。锂电池的数据周期存放在FLASH当中, 也可以通过通信总线传输。最后, 根据电流判断当前BMS工作状态, 如果电流一直为0超过10分钟 (零电流计数每1秒计数一次, 共600次) , 设置TM4C123BH6PZ进入休眠模式节省功耗。

3. 锂电池均衡控制设计

多串锂电池组中每节电芯的初始电量会存在天然的差异, 这与锂电池本身生产制造过程有关, 锂电池组遵守“木桶原理”, 即电池组的容量由最低电量的电芯所决定, 因此锂电池均衡能够最大效果的改善锂电池组性能。本文设计的均衡方案为被动均衡, 通过功率电阻将电池多余的电量耗费掉, 被动均衡的优点是精度高、可靠性高、成本较低, 缺点是效率比较低、损失能量并且只能在充电时均衡。软件程序设计原理是首先根据电流判断当前是否在充电, 然后获取单节电芯电压, 求取平均电压值, 比较每一节电芯与平均值, 如果当前是在充电且大于平均值超过20m V, 通过设置MAX17830的寄存器控制均衡该节电压, 并且设置均衡标志位为1。如果没有电芯大于平均值且均衡标志位为1, 则关闭均衡, 并且清零均衡标志位。

4. 命令行程序设计

本文设计能够通过Console口输入各种命令完成对BMS的调试, 命令行数据结构如下:

命令行程序根据Console口输入的命令匹配字符串, 查找cmditems命令行表项数组, 找到对应的命令行的执行程序, 执行完毕后将需要显示的数据用字符的方式回显到Console口。

六、总结

本文的BMS采用TM4C123BH6PZ作为处理器, 用MAX17830和BQ34Z100来测量锂电池的电压、电流、温度以及电量, 能够管理最大12串标称36V的锂电池组, 并且提供RS485和CAN总线用于外部数据通信, 并且通过Console口提供多种命令行, 便于系统的调试。本系统精度高、集成度高、安全可靠, 适用于各种复杂储能应用场景。

摘要:随着锂电池光伏应用于各个工业领域, 电池管理系统作为保障锂电池性能和可靠性的关键零部件起到越来越重要的作用。本文介绍了由TI公司的TM4C123BH6PZ和MAXIM公司的MAX17830为核心构建的锂电池管理系统 (BMS) , 分析了系统设计的理念, 给出了软件、硬件的实现方法。

关键词:BMS,I2C,电量计量

参考文献

[1] 姚文祥.ARM Cortex-M3与Cortex-M4权威指南[M].清华大学出版社, 2015.25-29.

上一篇:Ti3Al金属间化合物与TC11两相钛合金焊接性能研究下一篇:全力打造党委办公室“四型模范干部”