首页 > 范文大全 > 正文

基于STM32的锂电池管理系统

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于STM32的锂电池管理系统范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘 要】本文设计了一种以 STM32F103VET6单片机和 LTC6802 芯片为核心的锂电池管理系统,实现对8节锂离子单体电池电压的检测及显示,对电池组充放电进行监控和保护,实现电池组的SOC估算和充放电均衡,利用RS485总线对其进行通讯设计。

【关键词】STM32F103;锂电池;LTC6802;RS485总线;电池监测;电池管理

Lithium Battery Management System Based on STM32

SU Zhen-yu

(The Mine of Huainan City Institute of Electronic Technology, Huainan Anhui 232001,China)

【Abstract】A STM32F103VET6 SCM system is designed and LTC6802 chip as the core of the lithium battery management system, implementation of section 8 of lithium ion monomer battery voltage detection and display, to monitor and protect of charge and discharge the battery pack, battery SOC estimation and charge and discharge is balanced, using the RS485 bus communication design on it.

【Key words】STM32F103;Lithiumbatteries;LTC6802; RS485Bus;Battery monitoring;Battery management

0 引言

近年来,环保和节能的问题日益突出,锂离子电池(简称锂电池)由于其具有能量密度高使用寿命长自放电小无记忆效应及单节电池电压高等诸多优点,迅速成为市场的主流电池产品。在矿用产品中,锂电池逐步替代了铅酸电池和镍氢电池。但锂电池在使用时也存在一个重要的问题,它在过充电或是在过放电时电池可能会发生爆炸,因此需要良好的保护电路来配合使用,这样可以杜绝电池爆炸的问题。为此,本文提供了一种以STM32F103为核心的电池管理系统,它通过对8节锂电池组单体电池状态的检测,实现对电池组的管理,防止过充电和过放电,并完成SOC估算和均衡,同时通过485总线与外部通讯。1 LTC6802简介[3]

LTC6802是一款电池监测芯片,内部包括12位分辨率的模数转换器,高精度电压参考源,高电压输入多路转换器和串行接口。每片LTC6802可测量12节串联电池电压,最大允许测量电压60伏。可同时监测全部电池电压或单独监测串联电池中的任一节电池。芯片采用独特的电平移动串行接口,多片LTC6802可直接串联,芯片之间无需光耦或隔离器件。

多片LTC6802串联时可同时工作,全部串联电池的电压测量时间在13ms以内。为减小功耗,LTC6802还可对每节电池的过电压与欠电压状态进行实时监控。芯片每个电池输人端内部连接有MOS开关用于对过充电池放电。

图1

单片机可以通过SPI总线从LTC6802读取数据,并控制相应电池输入的MOS管的导通和关闭,以实现电芯均衡。输入通路中插入100Ω的串联电阻,而不会引入重大的测量误差,为了保护LTC6802电压采集引脚,防止电压高出最大输入电压,在每一个电芯采输入端口并联一个7.5V稳压管,并在每个电压采集引脚前加阻容滤波电路,从而有效地滤除高频干扰,保证电压采集的正确性。

2 STM32简介[1-2]

采集控制和信号调理模块的核心处理器使用STM32F103VET6芯片,STM32是意法半导体公司推出的基于ARM32位Cortex-M3CPU,片内自带512K高速FLASH程序存储器高达64K的SRAM;2.0~3.6V供电和IO管脚兼容5V电平stm32多达13个通信接口;CAN、USB、双I2C、3个SPI、5个USART接口片内2个12位逐次逼近型AD转换器,它有18个通道,各通道的AD转换可以单次连续或间断模式执行其最大转换速率达1MPS电压转换范围0~3.6V,转换精度±0.8mV。由于LTC6802不能满足检测每个电池电芯温度的要求,所以电池电芯的温度将使用STM32片内AD进行检测;而电池的充放电电池也将由STM32来进行采集,而电池的温度、电流信号变化缓慢,STM32可以达到系统的要求。

3 电压采集和均衡部分[4-5]

STM32可以通过SPI总线从LTC6802读取数据,根据所采集到锂电池电芯电压,判断当前电池电芯电压是过压或者是欠压。当电池欠压时,STM32发出报警信号,并通过控制管脚打开充电MOS管,对电池进行充电,并实时监控充电电流,防止充电电流过大,同时监测电池各个电芯电压以防止有电芯充过压。

当电池电芯过压时,STM32通过配置LTC6802的寄存器,打开相应的和电池电芯并联的MOS管,对过充电电芯进行放电。STM32通过控制相应电池输入的MOS管的导通和关闭,以实现电芯均衡。均衡程序流程图如图1所示。

4 温度采集和RS485总线通信部分

由于LTC6802只有两个引脚作为温度传感器的输入用来检测电池电芯的温度,不能满足8节电芯每节电芯温度的检测,因此使用STM32进入温度传感器的数据采集。

STM32的内部ADC是12位的逐步逼近型模拟数据字转换器,最快转换时间达到1us,完全满足温度检测。对温度传感器进行实时数据采集,并通过软件处理转换为对应的温度值。当电池电芯的温度超过60度时,发出报警信号,温度低于50度时解除报警信号。

STM32通过SPI总线与LTC6892进行通信同时,通过RS485总线将电压、电池充放电电流、温度数据及均衡状态上传到上级控制系统。当电池发生故障时,也会通过RS485将故障信息上传到上级控制系统,以便于上级控制系统可以做出进一步的处理和故障记录。

图2 写时序

图3 读时序

图4

5 系统软件设计

由于在设计中采用了微处理器做控制核心,所以软件设计非常重要为了增加程序的可维护性,方便今后的扩展和程序移植,所以采用C语言编写,软件设计采用模块化设计思路,功能模块包括监控程序及初始化模块参数测量模块数据计算模块保护模块等。

在软件设计中,STM32与LTC6802之间 的SPI通信是最为关键的一步。因为只有保 证可靠的通信,STM32才能够控制LTC6802进行电芯电压采集以及控制均衡电路的开 启和关闭。为了实现SPI通信,首先要清楚 LTC6802的读写时序。LTC6802的写时序如 图2所示,读时序如图3示。

软件设计流程图如图4所示。

6 结论

本文采用STM32F103VET和LTC6802设计了磷酸铁锂动力电池组状态监测系统。该系统采集8只串联动力电池电芯的电压 和温度, 对电芯进行均衡,并通过485总线上传待测电芯的电压、温度以及均衡状 态。经过实际测试,该系统的电压采集精度 为±4mV,温度采集误差为±1℃。该系统 工作稳定可靠,具有重要的应用价值。

【参考文献】

[1]王永虹,徐炜,郝立平.STM32系列ARM Cortex.M3微控制器原理及实践[M].北京:北京航空航天大学出版社,2008:318-338.

[2]李宁.基于MDK的STM32处理器开发与应用[M].北京:北京航空航天大学出版社,2008,10.

[3]LTC6802-1多节电池的电池组监视器[Z].2009.

[4]张金顶,王太宏,龙泽,雷晶晶,李进.基于MSP430单片机的12节锂电池管理系统[J].电源技术研究与设计,2011,5.

[5]王有琚,张维戈,王占国.LTC6802在电池管理 系统中的应用[J].微处理机,2011,4(2).