一种基于CAN总线的电动车电池管理系统
2014-12-18张正扬
张正扬,刘 方
(南京航空航天大学电子信息工程学院,江苏南京 210016)
随着电池能源的广泛应用,石油资源的枯竭和环境污染,电动汽车以其节能环保的优势引起越来越多的重视,在电动汽车的研究和发展上,车载电池及其管理系统的研究与制造占据着重要位置[1]。电动汽车动力电池在应用中的主要问题表现在:生产过程中,电池的工艺,技术以及成组技术还不能保证其初始性能具有良好的一致性;使用过程中,对过充电、过放电、过温度、过电流等非常敏感,这类情况的发生会明显缩短电池寿命,甚至会导致电池报废。电池组是几十个甚至上百个单体电池串联,单体电池之间存在不一致性,随着连续的充放电循环,电池间的不一致性加剧,电池组的可用容量受容量最小的单体电池制约。对于这些情况,电池的初始性能必须要依靠企业生产工艺的优化,生产过程关键参数的控制来改善,而使用过程中出现的问题则需要电池管理系统来解决。本设计是以STM32F107为核心的主控制器通过CAN通信网络控制以C8051F500单片机为核心的电池组信息采集和基本控制模块工作及获取数据[9]。主要实现了单体电池的过压放电均衡,过流保护、过温保护、过放电保护以及通过上级控制器汇报并存储整体电池组的工作状态。
1 硬件设计
1.1 系统总体架构
系统所监控管理的电池包组成结构为:先将一定数目的锂离子电池串联,将若干电池串并联成一电池组,最后将若干电池组串联构成整体的电池包,这种串并联复用的组织形式有利于进行单串电池的充放电起停操作,降低使用过程中产生的电池容量不一致性。管理系统的构成如图所示,每个电池串配置一个二级控制器监测管理,采集电流、电压、温度等数据并上传,控制电池串起停与均衡操作,一级控制器为双CAN控制器结构,CAN1控制器与二级控制器组成电池组的CAN网络,CAN2控制器与主控板电池包组成内部一级CAN总线网络,负责向主控板汇报该电池组工作情况及向下属二级控制器传达指令,主控制板的CAN2控制器则接入整车CAN总线。由于各电池组为串联结构,电压的递增关系影响到二级控制器,故而供电时需经DC/DC转换。
图1 电池管理系统系统总体架构
1.2 主控制器、一级控制器架构
主控制器,一级控制器的核心控制由意法半导体的STM32F107完成,STM32F107是一款高性能、低成本、低功耗的32位RISC微处理器[6],采用ARMCortex-M3的内核,内部含有256 kB的Flash和64 kB的SRAM,有着充足的编程空间,主频为72 MHz,足以承担对下级控制器的实时管理。所包含外设有:基本的电源电路、复位电路、标准 JTAG调试口、双 CAN物理层电路、EEPROM存储器,对于本系统设计来说是最佳方案。
1.3 二级控制器架构
由于锂离子电池单体电压较小,一般约为4 V,而整体电池包电压则高达数百伏,单串电池长度也在15个以上,而目前常用的电池测量芯片成本较高且只能监测6节或12节电池电压,综合考虑决定以C8051F500为核心设计二级控制器,这种设计相较于专用电池测量芯片而言,缺点是精度较低,优点是可以对所测量的数据先进行计算处理,不完全依赖上级控制器的指令。
C8051F500处理器按 AEC-Q100测试标准设计[7],具有宽工作电压、宽工作温度范围、抗干扰能力强并内置CAN及LIN总线控制器,适合汽车电子及工业控制方面的应用。该芯片具有32路I/O口,接口数满足监控电池串工作的需要,具有12 bit的ADC,每个通道的最小建立时间<50μs,即巡检一个循环的总时间<1 ms,足以支持对于电池串的实时监控,控制器架构如图2所示。
图2 二级控制器主要架构
其中带隔离驱动的CAN总线物理层电路如图3所示[8],此外还有DC/DC电源,C2在线调试接口等外部设备。
图3 隔离CAN物理层电路
2 软件设计
2.1 二级控制器软件流程
(1)系数修正程序。因为电池总数极多,为降低系统的成产成本和占用空间,电压测量采用较为简单的电阻分压[2],电流测量则采用电阻采样法,为弥补电阻造成的误差,预置了修正系数的程序,每块电路板投入使用前,可先在所有电压测量端口接5 V标准电压,采样电阻两端通10 A标准电流。程序可自动根据所测值修改系数,提高工作精确度。
(2)软件流程。如图4所示,程序开始运行时,首先对C8051F500内部的系统时钟以及一些变量进行初始化,然后对各I/O口、定时器、中断、ADC工作方式及CAN总线工作方式初始化,接着根据测量电流的两个I/O数据判断电池组目前是充电还是放电,以选取不同的控制方案,继而检测是否有一级控制器发出的指令,若有则执行指令,否则ADC将巡检各I/O的输入电压[4],程序通过预存的系数将其还原为各电池的端电压,电池串的电流和温度。最后计算各电池的SOC,考虑C8051F500的运算能力,采用精确度和运算复杂度都较为中等的安时积分法[3],并根据温度,电压,电压—时间梯度等量加以修正。与此同时,实时上报总电压、电流、温度和总SOC共4个参数给一级控制器,充电时如果有单节电池电压过高,则开启相对应的MOS管,以均衡充电[10]。出现过温,过流或达到放电终点时,断开该串电池,并将断开时的所有数据均上报一级控制器,否则主程序继续判断是否有指令,循环上述过程。
2.2 一级控制器软件流程
(1)接收二级控制器上传的数据,这里主要有两种数据:一是时刻上传的每串电池的电流、电压、温度,剩余电量;二是当某串电池因故停止工作时上传的完整数据和停止原因。
(2)SOC计算,这里计算的SOC是根据实时上传的电流、电压和温度计算整串电池的剩余电量,因为STM32F107芯片运算能力强于C8051F500,所以这里的计算模型采用模糊神经网络法。
(3)对二级控制器下达指令,这里的指令有两种:一是要求其上传目前工作情况的完整数据,主要是停车前保存历史数据或手动要求查看;二是在其充放电时SOC明显高于/低于其他电池串时,让该电池串暂停工作一段时间,有利于在使用中尽量抹平电池间的不一致性。当上传的SOC和所计算的SOC之间有较大差异时,则上传该情况,方便检查并修正模型系数。
(4)向主控制器上传数据,这里的数据除了主动或应主控制器要求上传的包括电池包整体电压、电流和SOC,相应电池串乃至相应电池的电压、电流、温度和SOC等一系列工作情况以外,还有各种意外情况的汇报。
2.3 主控制器软件流程
主控制器的任务是向整车控制器汇报电池组的工作情况,并根据要求向一级控制器传达指令[5],与一级控制器相似,但由于各电池包可能会切断某条电池串,造成SOC的突变,所以没有计算各电池包SOC的操作。
图4 二级控制器流程图
图8 不加噪声定时同步前星座图和后星座图
[1]OERDER M,MYER H.Digital filter and square timing pecovery[J].IEEE Transactions on Communications,1988,36(5):605-612.
[2]GOULVEN E,CHRISTOPHE L.Non data aided timing recovery algorithm for digital underwater communications[EB/OL].(2007-09-20)[2013-02-14]www.ieee xplore.com.
[3]胡晓娇,杨志专,胡修林.全数字接收机平方定时恢复环路[J].现代有线传输,2005(6):84-87.
[4]蒋科,胡爱群,姚冰心,等.一种符号定时算法的研究与仿真[J].电子工程师,2006(3):43-46.
[5]田耘,徐文波,张延伟,等.无线通信FPGA设计[M].北京:电子工业出版社,2008.
[6]WU Yikchung.Demodulation and symbol timing recovery in software radio[D].Hongkong:The HKUScholars Hub,2000.
[7]郝建华,许斌,卿超.接收机位定时恢复设计[J].国外电子测量技术,2007,6(12):16 -18,54.
[8]顾奕.平方律定时恢复接收机设计[J].北京信息科技大学学报,2012,27(3):6 -9.
[9]MUELLER K,BELL LAB,HOLMDEL N J,et al.Timing recovery in digital synchronous data receivers [J].IEEE Transactions on Communication,1976,24(5):516 -530.
[10]FLOYD M G.Interpolation in digital modems partⅠ:fundamentals[J].IEEE Transactions on Communication,1993,41(6):501-507.