APP下载

基于STM32F103RCT6的电池管理系统设计①

2020-12-28张洪涛夏耀威

关键词:锂电池程序设计管理系统

张洪涛, 夏耀威

( 湖北工业大学电气与电子工程学院,湖北 武汉 430068)

0 引 言

国外对电池管理系统(BMS)研究较早,美国、日本、德国等发达国家已经投入的大量的人力财力对电池管理系统的理论和应用进行深入研究,目前设计出的系统应用较广。TESLA是美国一家新能源公司,它的电池管理技术领先全球,其中一款最新的电池管理系统可以安全管理7000块锂电池,将其应用到Model S 型汽车上,续航里程高达500公里[1];日本丰田公司旗下的油电混动汽车具有动力强、油耗低的特点,能够达到这种节能减排的效果,归功于它的电池管理系统[2]。

国内对电池管理系统的研究起步较晚,技术上不如发达国家。但随着国家对绿色、低碳发展的重视,新能源、电动汽车等行业快速发展,国内也开始了对电池管理系统的研究。文献[3]为了延长电动汽车电池的使用寿命,基于飞思卡尔单片机开发出一款锂电池管理系统,能够对电池组中的每块电池的电压、电流及温度进行测量的采集,并采用局域网对其进行控制,调试结果显示,该款电池管理系统有较大的实用价值。文献[4]基于TMS320F2812控制器设计出一款电池管理系统,该系统的硬件电路由多个模块组成,主要包括电池组电压、电流、温度采集电路,均衡控制电路、A/D保护电路、二阶采样电路、安全检测电路和CAN电路,实验结果表明,该系统能够对能够准确采集电池状态信息。

电池管理系统在电动汽车领域得到了一定的发展,应用也越来越广泛,但一些关键技术难题仍然没有被攻破,比如电池SOC的估算精度以及蓄电池管理系统的软硬件设计需要进一步研究。

1 电池管理系统硬件设计

硬件设计部分主要包括主控模块选型,电流、电压、温度测量模块的设计以及CAN总线通信电路的设计等,总体设计思路如图1所示。

图1 硬件设计思路

1.1 主控芯片选型

主控芯片是整个电池管理系统的核心,负责对采集的数据进行运算和处理。通过分析比较,本文最终选择型号为STM32F103RCT6微型处理器,它的特点是造价低、性能好、功耗低,STM32F103RCT6的详细参数可参考文献[5]。

1.2 电流测量电路设计

电流是锂电池SOC估算模型的输入参量,电流测量值的准确性会直接影响锂电池SOC的估算结果[6]。为了得到更准确地电流值,本文选取电流传感器的型号为HTB100-P,它是由LEM开发的一款磁场平衡式电流传感器,具有绝缘性能好、测量快、精度高等优点。HTB100-P能够适应10℃~+60℃的工作的温度,其电源电压为±15V,最大测量电流是50A,HTB100-P的采样原理如图2所示。

图2 HTB100-P的采样原理图

1.3 电压测量电路设计

电压能够反映锂电池的整体状况,也是锂电池SOC估算模型的输入参量[7]。本文采用型号为AD7280A电池管理芯片进行电压采集锂,该芯片是由ADI公司开发的,具有12bit的数据通道,每个通道相互转换的时间仅为10-3毫秒。AD7280A电压管理芯片温度适应性较好,可在-40℃~105℃的范围内正常工作。该芯片测量电压的范围是8V~30V,既能单片使用,也能以菊花链的形式连接后多片使用,电压测量精度为2mV。AD7280A的电压采集电路如图3所示。

图3 AD7280A的电压采集电路

1.4 温度测量电路设计

锂电池在充放电过程中,表面温度的升高会使电池内部的化学成分法发生变化,降低安全性,也会加快电池的老化。温度也是锂电池SOC估算模型的输入参量,温度测量的精确与否会直接影响SOC的估算结果[8]。本文采用型号为NTC10K的热敏电阻进行温度测量。测量电路如图4所示,测量时,将6个NTC10K热敏电阻分别接入AD7280A的AUX1~AUX6通道。

图4 温度测量电路

1.5 CAN通信电路设计

CAN,即控制器局域网络。CAN总线通信具有硬件连接方便、可靠稳定且成本较低的特点,在电池管理系统中应用广泛。本文采用BOSCH开发的一款产品,其电路图如图5所示。该款CAN总线通信的隔离芯片采用工作电压为5V的ISO1050共模电压的范围是-12V~12V,额定运行温度为-55℃~105℃,其中电阻R115的作用是增大TXD电流,。

图5 CAN电路图

2 电池管理系统软件设计

2.1 主程序设计

主程序设计是在处理器STM32F103RCT6的基础上进行设计的,电流、电压、温度以及CAN通信等硬件电路需要系统软件进行控制,当锂电池正常充放电时,电流、电压、温度等传感器采集到相关数据保存下来,经CAN总线处理后将数据输入估算模型[9],部分流程如图6所示。

图6 主程序设计流程图

2.2 子程序设计

(1)电流采集程序设计

电流采集程序设计流程如图7所示。采用前,应先将STM32F103RCT6处理器的ADC通道初始化,便于I/O端口能够接受到电流信号。另外需要将ADC设置为连续装换模式,便于数模转换后的电流信号能够进行DMA传输。

图7 电流采集程序设计流程图

(2)电压、温度采集程序设计

本文电压采集芯片采用的是AD7280A,由于热敏电阻NTC10K接在电压采集芯片上,因此将电压和温度的采集子程序一起设计,设计流程图如图8所示。AD7280A芯片对电压和温度进行采集时的输入端均为8路,采样周期为400ns。采样应在CNVST控制寄存器为0时开始,采用过程中使用CRC进行校验,这样可以提高A/D转换传输的正确率。

图8 电压、温度采集程序设计流程图

(3)CAN总线通信程序设计

为了完成数据交换以及传达控制指令,需要对CAN通信子程序进行设计,CAN总线通信是通过CAN控制器实现的,控制器通过寄存器对总线上的数据进行发送和接受。本设计的CAN发送和接受数据的流程如图9所示。

图9 CAN发送和接受数据的流程图

3 测量系统性能测试

为了完成电池管理系统的测试,选取8节额定电压为4.2V,容量为1.75A·h的LiFePO4电池进行实验。将测试系统采集到的电流值、电压值、温度值分别与实际值进行比较,电流、电压、温度采集值与实际值对比情况分别如表1~3所示。

表1 电流采集值与实际值

表2 电压采集值与实际值

表3 电流采集值与实际值

由表1~3可知,本文设计的估算系统对电流、电压和温度的采集数据的相对误差均控制在2%以内,采集效果较好。

4 结 论

(1)完成了锂电池管理系统的硬件电路设计,包括主控芯片选型,电流、电压、温度采集传感器选型及其电路设计,以及CAN总线通信芯片的选型和电路设计。

(2)完成了锂电池管理系统的软件程序设计,在处理器STM32F103RCT6的基础上设计了电流、电压、温度采集程序和CAN总线通信程序设计。

(3)完成了锂电池管理系统的性能测试,测试结果显示,本文设计的估算系统对电流、电压和温度的采集数据的相对误差均控制在2%以内,采集效果较好。

猜你喜欢

锂电池程序设计管理系统
基于James的院内邮件管理系统的实现
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
一种锂电池组主动均衡充电保护电路的设计
基于LED联动显示的违停管理系统
海盾压载水管理系统
锂电池里装微型灭火器:再也不担心手机电池起火等
高职高专院校C语言程序设计教学改革探索
充电电池到底该怎么带?——话说锂电池
PLC梯形图程序设计技巧及应用