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

最新更新时间:2014-05-29来源: 互联网关键字:STM32  CAN  电池管理 手机看文章 扫描二维码
随时随地手机看文章

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

  1 硬件设计

  1.1 系统总体架构

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

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

  主控制器,一级控制器的核心控制由意法半导体的STFM32F107完成,STM32F107是一款高性能、低成本、低功耗的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管,以均衡充电。出现过温,过流或达到放电终点时,断开该串电池,并将断开时的所有数据均上报一级控制器,否则主程序继续判断是否有指令,循环上述过程。

  

  2.2 一级控制器软件流程

  (1)接收二级控制器上传的数据,这里主要有两种数据:一是时刻上传的每串电池的电流、电压、温度,剩余电量;二是当某串电池因故停止工作时上传的完整数据和停止原因。

  (2)SOC计算,这里计算的SOC是根据实时上传的电流、电压和温度计算整串电池的剩余电量,因为STM32F107芯片运算能力强于C8051F5 00,所以这里的计算模型采用模糊神经网络法。

  (3)对二级控制器下达指令,这里的指令有两种:一是要求其上传目前工作情况的完整数据,主要是停车前保存历史数据或手动要求查看;二是在其充放电时SOC明显高于/低于其他电池串时,让该电池串暂停工作一段时间,有利于在使用中尽量抹平电池间的不一致性。当上传的SOC和所计算的SOC之间有较大差异时,则上传该情况,方便检查并修正模型系数。

  (4)向主控制器上传数据,这里的数据除了主动或应主控制器要求上传的包括电池包整体电压、电流和SOC,相应电池串乃至相应电池的电压、电流、温度和SOC等一系列工作情况以外,还有各种意外情况的汇报。

  2.3 主控制器软件流程

  主控制器的任务是向整车控制器汇报电池组的工作情况,并根据要求向一级控制器传达指令,与一级控制器相似,但由于各电池包可能会切断某条电池串,造成SOC的突变,所以没有计算各电池包SOC的操作。

  3 结束语

  本文提出了一种以STM32F107为核心控制器,通过CAN总线与以 C8051F500为核心的子控制器互联的电池组监控管理系统,可以高效地管理电池,为驾驶员提供剩余动力信息,延长电池的使用寿命。文章从硬件和软件两个方面详细描述了系统的实现过程和各项功能。本系统在用电压源和电流源进行检测时,所测量的电压误差不超过0.01 V,电流误差不超过0.05 A,对于模拟的过压、过流、过温、放电终止等情况,控制板均能迅速做出反应,验证了系统的测量精度、实时控制和良好畅通的CAN通信网络,在使用锂电池进行充放电实验时,所估算的SOC与实际情况也基本吻合,充电时当有电池接近充满时均衡操作能及时启动,且保护过充的效果也较为理想。

关键字:STM32  CAN  电池管理 编辑:探路者 引用地址:基于STM32和CAN总线的电动车电池管理系统设计

上一篇:一种掉电后备电源的设计方案
下一篇:电子技术解密:简化FPGA电源设计方案

推荐阅读最新更新时间:2023-10-12 22:40

STM32安全固件更新的安全挑战
固件更新是我们软件生命周期中必须面临的问题。软件生命周期中有多种原因让我们需要固件更新,而固件更新也会带来安全问题,如使用固件更新来攻击电子钱包。 STM32 已经提供了很多的安全技术来应对固件更新的安全挑战。在这里和大家一起探讨,如何利用 STM32 安全技术,软件以及硬件安全技术,进行安全的升级固件。 讲座内容既包括了固件更新的一般原理,以及安全固件更新的额外设计。 安全固件更新离不开安全启动。STM32 安全启动为 STM32 安全固件更新提供了安全的运行环境。 什么是安全固件更新? 固件更新是指部分或者完全替换设备上的软件的操作,包括添加新应用,修改已有功能,或者去修复软件里的问题。安全固件更新,则是以安全的方
[单片机]
NXP电池管理解决方案让大众汽车MEB电动汽车跑得更远
在NXP Connects在线峰会的开幕主题演讲中,恩智浦首席执行官Kurt Sievers宣布与大众汽车围绕电动汽车(EV)的电子器件展开合作。大众汽车已将恩智浦电池管理系统(BMS)用于其创新MEB平台,以帮助优化续航里程、延长使用寿命并提高安全性。恩智浦BMS提供出色的灵活性和可扩展性,满足当今电动汽车客户的各类需求,可用于打造紧凑级轿车(例如突破性电动车ID.3,或者一辆插电混动汽车),以及豪华级电动车(如ID.4, 奥迪e-Tron或保时捷Taycan)。 大众汽车汽车能源供应和高压系统开发主管Holger Manz博士指出:“ 作为大众汽车第一波电池电动汽车计划的一部分,在 2029年前,我们将向市场推出多达75种
[汽车电子]
STM32教你如何编译出LIB文件
这个是生成LIB的技巧.也许大家在网上看到某些程序会发现,他们用这个方式来包含STM32的库文件: 而不是像DX32的例程那样一堆C: 那么,本技巧篇例程就是教大家怎么生成那个.LIB 的文件的. 首先打开本程序,大家看到的整个工程就只有库文件: 因为这是把STM32的函数库编译成库的形式,所以你只需要包含函数库就行. 然后注意一点,stm32f10x_conf.h 文件中,所有的include都要开放 #include stm32f10x_adc.h #include stm32f10x_bkp.h #include stm32f10x_can.h #include stm32f10x_crc.h #i
[单片机]
<font color='red'>STM32</font>教你如何编译出LIB文件
STM32驱动ADC0809详解
开发环境与工具 Keil 5主芯片为 STM32F103RET6下载工具为 JLINKXCOM V2.0 串口助手PC 为 Win10 准备工作 购买 ADC0809 芯片 习惯购买元器件多买一个,方便替换验证。 因为做过一次验证之后,这个板子就没有用了,所以购买 DIP-28 宽体底座,让底座焊板子上,芯片插底座上,方便芯片的二次使用,节约成本。 PCB 打板 下图这种模块: STM32 要想驱动 ADC0809 这个芯片需要很多个引脚(不考虑复用的话,需要 16 个引脚),如果这些引脚都用杜邦线连接的话会很乱,如果哪个杜邦线再接触不好,那么对于程序的调试很不方便,所以我就采用核心板+底板的形式来实现,避
[单片机]
STM32寄存器操作简单介绍
STM32单片机可以使用库函数进行操作,再加上现在越来越强大的MDK ARM编译环境,使用库函数开发简直是不二的选择,但是工具越来越强大的同时意味着对编程人员降低了要求,在很大程度上降低了准入门槛,我们因此高兴吗?我倒是觉得这很像温水煮青蛙,所以库函数固然好用却也不应该抛弃最初的做法——寄存器操作。 先从启动文件开始介绍:这里介绍比较常见的一种启动方式(从内部的的FLASH启动,至于另外两个是否常用本人不甚了解),在启动代码了首先对栈和堆的大小进行定义,并在代码的起始处建立中断向量表,其第一个表项是栈顶(__initial_sp )地址,第二个表项是复位中断服务( Reset_Handler )入口地址。然后在复位中断服务程序中跳
[单片机]
STM32 硬件I2C 到底是不是个坑?
/** ****************************************************************************** * @author Maoxiao Hu * @version V1.0.0 * @date May-2015 ****************************************************************************** * COPYRIGHT 2015 ISE of SHANDONG UNIVERSITY **************************************************
[单片机]
STM32 UART4,UART5配置方式
昨天偶然用到STM32 UART4,UART5两个串口,我开始觉得配置很简单,就简单的配置了,但是怎么都调试部通,我试了1,2串口都没有问题,但是就是4,5不行,我查了一些资料,我相信自己的配置没有错,就是一直调试不通,只能用示波器看了,一看才知道是硬件引脚连错了,电路图上画的就是错的,芯片引脚写的都是错的,我无语了,以后仔细看芯片手册................ 配置如下: /* * 函数名:UART4_Config * 描述 :UART4 GPIO 配置,工作模式配置。115200 8-N-1 * 输入 :无 * 输出 : 无 * 调用 :外部调用 */ void UART4_Config(void)
[单片机]
设计一个基于STM32和RFID Reader读取RFID卡的系统
在本教程中,我们将设计一个使用 STM32 和 RFID Reader读取 RFID 卡的系统。RFID代表射频识别,它通过使用无线电频率读取信息。RFID 用于许多身份验证系统,如电梯停车系统、自动收费、在医院维护患者信息、自动数据收集等。 所需组件 STM32F103C8(蓝色药丸板) EM-18 RFID阅读器模块 射频识别卡 16x2 液晶显示模块 面包板 连接电线 在将 RFID 与 STM32 连接之前,首先我们将了解 RFID 标签和 RFID 阅读器。 射频识别标签 RFID标签由带有线圈天线的微芯片组成,可以与附近的阅读器进行无线通信。市场上有各种不同形状和尺寸的 RFID 标签。他们中很少有人使用不同的频率
[单片机]
设计一个基于<font color='red'>STM32</font>和RFID Reader读取RFID卡的系统
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved