新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于STM32和CAN总线的电动车电池管理系统设计

基于STM32和CAN总线的电动车电池管理系统设计

作者:时间:2014-05-15来源:网络收藏

摘要 根据当今电池管理系统的现状,结合目前ARM、单片机、总线技术等的发展,针对一种锂离子动力电池组的监测管理提出了具体方案,设计主控板以F107为核心,子控版以C8051F500单片机为核心,通过网络进行通信管理,实现了电池充放电保护、抑制电池间的不一致性、记录历史数据等功能。系统兼顾成本,稳定性,精确度,实时性,具有良好的发展前景。

本文引用地址:http://www.eepw.com.cn/article/246894.htm

随着电池能源的广泛应用,石油资源的枯竭和环境污染,电动汽车以其节能环保的优势引起越来越多的重视,在电动汽车的研究和发展上,车载电池及其管理系统的研究与制造占据着重要位置。电动汽车动力电池在应用中的主要问题表现在:生产过程中,电池的工艺,技术以及成组技术还不能保证其初始性能具有良好的一致性;使用过程中,对过充电、过放电、过温度、过电流等非常敏感,这类情况的发生会明显缩短电池寿命,甚至会导致电池报废。电池组是几十个甚至上百个单体电池串联,单体电池之间存在不一致性,随着连续的充放电循环,电池间的不一致性加剧,电池组的可用容量受容量最小的单体电池制约。对于这些情况,电池的初始性能必须要依靠企业生产工艺的优化,生产过程关键参数的控制来改善,而使用过程中出现的问题则需要电池管理系统来解决。本设计是以F107为核心的主控制器通过通信网络控制以C8051F500单片机为核心的电池组信息采集和基本控制模块工作及获取数据。主要实现了单体电池的过压放电均衡,过流保护、过温保护、过放电保护以及通过上级控制器汇报并存储整体电池组的工作状态。

1 硬件设计

1.1 系统总体架构

系统所监控管理的电池包组成结构为:先将一定数目的锂离子电池串联,将若干电池串并联成一电池组,最后将若干电池组串联构成整体的电池包,这种串并联复用的组织形式有利于进行单串电池的充放电起停操作,降低使用过程中产生的电池容量不一致性。管理系统的构成如图所示,每个电池串配置一个二级控制器监测管理,采集电流、电压、温度等数据并上传,控制电池串起停与均衡操作,一级控制器为双控制器结构,CAN1控制器与二级控制器组成电池组的CAN网络,CAN2控制器与主控板电池包组成内部一级CAN总线网络,负责向主控板汇报该电池组工作情况及向下属二级控制器传达指令,主控制板的CAN2控制器则接入整车CAN总线。由于各电池组为串联结构,电压的递增关系影响到二级控制器,故而供电时需经DC/DC转换。

 

 

1.2 主控制器、一级控制器架构

主控制器,一级控制器的核心控制由意法半导体的STFM32F107完成,F107是一款高性能、低成本、低功耗的32位RISC微处理器,采用ARMCortex-M3的内核,内部含有256 kB的Flash和64 kB的SRAM,有着充足的编程空间,主频为72 MHz,足以承担对下级控制器的实时管理。所包含外设有:基本的电源电路、复位电路、标准JTAG调试口、双CAN物理层电路、EEPROM存储器,对于本系统设计来说是最佳方案。

1.3 二级控制器架构

由于锂离子电池单体电压较小,一般约为4 V,而整体电池包电压则高达数百伏,单串电池长度也在15个以上,而目前常用的电池测量芯片成本较高且只能监测6节或12节电池电压,综合考虑决定以C8051F500为核心设计二级控制器,这种设计相较于专用电池测量芯片而言,缺点是精度较低,优点是可以对所测量的数据先进行计算处理,不完全依赖上级控制器的指令。

C8051FS00处理器按AEC-Q100测试标准设计,具有宽工作电压、宽工作温度范围、抗干扰能力强并内置CAN及LIN总线控制器,适合汽车电子及工业控制方面的应用。该芯片具有32路I/O口,接口数满足监控电池串工作的需要,具有12 bit的ADC,每个通道的最小建立时间<50μs即巡检一个循环的总时间<1 ms,足以支持对于电池串的实时监控,控制器架构如图2所示。

 

 

其中带隔离驱动的CAN总线物理层电路如图3所示,此外还有DC/DC电源,C2在线调试接口等外部设备。

 

 

2 软件设计

2.1 二级控制器软件流程

(1)系数修正程序。因为电池总数极多,为降低系统的成产成本和占用空间,电压测量采用较为简单的电阻分压,电流测量则采用电阻采样法,为弥补电阻造成的误差,预置了修正系数的程序,每块电路板投入使用前,可先在所有电压测量端口接5 V标准电压,采样电阻两端通10 A标准电流。程序可自动根据所测值修改系数,提高工作精确度。

(2)软件流程。如图4所示,程序开始运行时,首先对C8051FS00内部的系统时钟以及一些变量进行初始化,然后对各I/O口、定时器、中断、ADC工作方式及CAN总线工作方式初始化,接着根据测量电流的两个I/O数据判断电池组目前是充电还是放电,以选取不同的控制方案,继而检测是否有一级控制器发出的指令,若有则执行指令,否则ADC将巡检各I/O的输入电压,程序通过预存的系数将其还原为各电池的端电压,电池串的电流和温度。最后计算各电池的SOC,考虑C8051F500的运算能力,采用精确度和运算复杂度都较为中等的安时积分法,并根据温度,电压,电压-时间梯度等量加以修正。与此同时,实时上报总电压、电流、温度和总SOC共4个参数给一级控制器,充电时如果有单节电池电压过高,则开启相对应的MOS管,以均衡充电。出现过温,过流或达到放电终点时,断开该串电池,并将断开时的所有数据均上报一级控制器,否则主程序继续判断是否有指令,循环上述过程。

 

离子色谱仪相关文章:离子色谱仪原理

上一页 1 2 下一页

关键词: STM32 CAN

评论

技术专区

关闭