引 言
电池管理系统BMS(Battery Management System)是电动汽车的一项关键技术。高性能、高可靠性的电池管理系统能使电池在各种工作条件下获得的性能。电池管理系统可实时监测电池状态,如电池电压、充放电电流、使用温度等;预测电池荷电状态(State of charge),防止电池过充过放,从而达到提升电池使用性能和寿命,提高混合动力汽车的可靠性和安全性的目的。本没计以DSP和CPLD为主体,构建电池管理系统的硬件平台,并在DSP内部嵌入μC/OS-II实时操作系统,可大大提高系统的稳定性和实时响应能力,增强系统的可扩展性和可移植性。
1 硬件系统设计
1.1 集中式电池管理系统结构
混合动力电动汽车HEV(Hybrid Electric Vehicle)要求的车载动力电池总电压一般比较高,电池节数较多。本设计所涉及的镍氢动力电池组是由270个电池单体组成的,每个单体可提供1.2V左右电压。其中每10个单体元组成一个模块,共有27个电池模块,总额定电压为324V。
采用集中式电池管理系统结构是将电池信息测量与采样模块和主控模块集中在一起,通过设计多路控制选择开关分时完成数据采集。这种设计方法具有电路简单、成本低、体积小的特点。设计的电池管理系统基本结构示意图如图1所示。
1.2 电池管理系统的硬件方案
图2为系统硬件平台。选用TI公司的TMS240LF2407(简称为“LF2407”)作为系统的CPU。其采用哈佛结构,具有专门的硬件乘法器;广泛采用流水线操作,可用来实现快速的数字信号处理算法,有助于提高计算电池SoC值的速度和;同时,片上集成了丰富的外设(如A/D转换器、SCI模块和CAN网络控制器等),可以充分发挥其资源优势。
单体电压、总电压和总电流的采集,均以CPLD为,通过一定的逻辑控制,控制光电开关固态继电器阵列分时导通,将采样信号经过隔离放大滤波后送入DSP的A/D转换模块中。CPLD接收由DSP发出的逻辑控制时序,控制相应的固态继电器执行导通和关断动作,分时地将各个模拟量导入A/D转换模块中。考虑到电池组总电压比较高,同时母线电流的波动幅值比较大,波动频率较快,分别选用了较高、响应较快的霍尔电压和电流传感器,以适应采集要求。
电池组温度的采集采用单总线的方式,传感器选用DSl8820,共设置8个温度的采集点。单总线是目前扩展方便的总线之一,具有节省I/O口线资源、结构简单、成本低廉,便于总线扩展和维护等诸多优点。由于DS18820直接提供测量温度的数字信号,故可以直接通过DSP上的通用I/O与其通信。
在DSP的通用I/O上扩展了非易失性存储器NVRAM空间,目的是保存重要的电池历史数据,为计算和修正电池的SoC以及分析电池充放电状态提供可靠的依据。
LF2407提供的CAN通信模块符合CAN2.0的规格要求,选用飞利浦公司的CAN通信收发器PCA82C250作为DSP的CAN控制器和物理总线间接口,以实现电池管理系统与整车之间的通信;同时,扩展DSP片上的SCI模块,实现与上位PC间的通信功能。
1.3 硬件抗干扰措施
电池管理系统作为整车的一部分,经常受到各种电磁干扰。其实际的工作环境是比较恶劣的,有必要在硬件设计上采取一定的抗干扰措施。
①抑制干扰源。混合动力电动汽车上电机设备中的IGBT和功率二极管工作时,会产生很强的电磁干扰,尤其是共模干扰较为严重。因此有必要在电池组与整车之间连接高频旁路电容。
②隔离供电。由于众多的外部有源和无源信号会对系统电源产生严重干扰,因此在电池管理系统的设计中采用DC/DC变换模块,提供稳定的隔离电源,对不同子系统分别供电,可以有效地消除电源干扰和共地产生的干扰。
③光电隔离。在电池管理系统的设计中,采用光电耦合器6N137将外部通信接口(CAN通信、RS232通信)与内部CPU电路隔离开来,可以阻止电路性耦合产生的电磁干扰。
2 软件系统设计
软件系统设计包括系统软件设计和应用软件设计。系统软件设计的主要任务是实现μC/OS-II在LF2407上的移植;应用软件设计的主要任务是系统功能的实现。
2.1 系统软件设计
2.1.1 μC/OS-II简介
μC/OS-II是由美国人Jean Labrosse编写的一个嵌入式实时操作系统内核。它是一个基于优先级的、可移植、可固化、可裁剪、占先式实时操作系统,其绝大部分源码是用ANSI C编写的。μC/OS-II支持56个用户任务,支持信号量、消息邮箱、消息队列等多种常用的进程间通信机制,现已成功应用到众多商业嵌入式系统中,其稳定性与可靠性已经得到检验。
2.1.2 μC/OS-II在TMS320LF2407上的移植
LF2407满足μC/OS-II移植的条件。TI公司提供的编译软件CCS也支持C语言与汇编语言混合编程。要完成移植的工作需要进行以下4个内容:
◇在OS_CPU.H中定义与处理器相关的常量、宏及数据类型。
◇调整和修改头文件OS_CFG.H,以裁减或修改μC/OS-II的系统服务,减少资源损耗。
◇编写C语言文件OS_CPU.C。
◇编写汇编语言文件OS_CPU.ASM。
上述工作完成后,μC/OS-II就可以运行了。
2.2 应用软件设计
2.2.1 系统多任务功能和优先级设计
根据电池管理系统的功能要求,将系统分为电压电流采集处理模块、温度采集模块、通信模块、系统监视模块和SoC计算模块等共8个任务和5个中断来实现。每个任务根据其实时性的要求并参照单调执行率调度法RMS分配一定的优先级。任务及中断的定义分别如表l、表2所列。
根据整车控制策略,CAN上电池状态数据每帧的刷新周期为20ms,故设置操作系统时钟节拍为20ms;相应地设置ADProsTask()、CANTXDTask()、SOCTask()和MoniTask()的执行周期均为20 ms;考虑到电池组的温度变化相对较慢,同时温度传感器DS18820的温度转换时间相对较长,设置TempTask()的执行周期为100ms;CANRXDTask()和SCIRXDTask()的执行采用中断触发方式;SCITXDTask()由上位机的启动和停止信号控制执行,执行周期为40 ms。
应用软件设计的难点在于,可靠地设计固态继电器阵列(TLP296)的时序逻辑。由于TLP296存在4ms的打开和关断时间,因此必须设计死区时间,以确保在采集电池模块电压时,电池不会发生短路;同时还要保证在A/D转换之前,采样通道(即相应的TLP296)完全打开。所以利用了DSP的Timerl下溢中断配合系统时钟周期来有效地控制CPLD的时序。整体工作的时序逻辑如图3所示。
2.2.2 任务间的通信与同步
μC/OS-II提供了5种用于数据共享和任务通信的方法:信号量、邮箱、消息队列、事件标志及互斥型信号量。为了减少操作系统的开支,在电池管理系统应用软件设计中只利用了其中的邮箱作为任务间的通信手段,如图4所示。
电池管理系统的是以数据采集为基础的,所以ADProsTask()是其他任务的前提。通过ADC中断向邮箱1发消息就绪ADProsTask(),待其执行完后相应的数据保存和处理后向邮箱2发消息就绪其他等待数据的任务,其他任务按照优先级依次执行;温度采集和处理的任务独立进行;CAN接收任务和SCI任务是在相应的邮箱中得到消息后执行,消息也是由相应的中断服务程序发出。
结语
电池管理系统采用了DSP+CPLD的结构,加之相应的抗干扰措施,具有性能高、可靠性强的特点。由于内嵌μC/OS-II,使程序的开发周期大大缩短,增强了系统的可维护性和扩展性,在实际的应用中取得了良好的效果。
[1]. TMS320LF2407 datasheet https://www.dzsc.com/datasheet/TMS320LF2407_309787.html.
[2]. EMP7128 datasheet https://www.dzsc.com/datasheet/EMP7128_1134354.html.
[3]. CPLD datasheet https://www.dzsc.com/datasheet/CPLD_1136600.html.
[4]. PCA82C250 datasheet https://www.dzsc.com/datasheet/PCA82C250_542618.html.
[5]. 6N137 datasheet https://www.dzsc.com/datasheet/6N137_91364.html.
[6]. RS232 datasheet https://www.dzsc.com/datasheet/RS232_585128.html.
[7]. ASM datasheet https://www.dzsc.com/datasheet/ASM_1231013.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。