FPGA的动力电池检测系统研究
2012-10-13张洪涛彭潇丽
张洪涛,周 航,彭潇丽,吴 芬
(湖北工业大学电气与电子工程学院,湖北 武汉430068)
动力电池作为电动汽车的动力源,要求具有高使用效率和高使用寿命,因此,电池检测系统的好坏是动力电池能否得到广泛应用的关键.电池检测系统的功能是能够检测电池的单体和整组的荷电状态,在保障电池安全和使用寿命的前提下,充分发挥电池的性能.并且能够防止电池出现过充电、过放电以及过热等问题[1].
目前的电池检测系统有的使用专用电池管理芯片,但专用芯片功能简单、运算能力差,不能满足系统需要.本文针对一个三路的动力电池组,设计了一个基于FPGA的动力电池检测系统.该系统灵活性强,运行稳定,数据可以实时准确显示.
1 系统总体结构
本系统大致分为四个部分:电池各项数据的采集、数据处理、数据显示、温度保护.电池各项数据的采集包括电压采集电路、电流采集电路、温度采集电路.通过这三个电路采集电池特性,将数据传输到处理器,通过处理器将数据进行处理并显示.设置报警温度与采集温度进行对比,如果温度超出报警温度,则启动温度保护模块.系统框图见图1.
2 系统硬件设计
2.1 系统硬件平台
本系统硬件电路设计的开发平台是基于Altera公司的DE2开发板,开发板的主控芯片是CycloneⅡ系列EP2C35F672C6.该开发平台的硬件功能较为强大:有各种常用的存储器,包括8 M 字节SDRA M、512 K字节SRA M、4 M 字节闪存、可扩展SD卡;有各种常用的I/O接口,包括一个三线的RS232串行接口和PS/2接口、VGA接口、以太网接口、一个USB2.0接口、视频输入接口、音频输入输出接口及2个GPIO口;有多种显示控制元器件,包括7个数码管,一个1602液晶显示屏,18个红色的发光二极管,9个绿色的发光二极管,4个按键,18个波段开关及两个晶振时钟(27 MHz和50 MHz)[2].在已有的两个晶振时钟不能满足系统需求的情况下,还可以从外部接入所需要的晶振时钟.因此DE2可以胜任该系统的开发任务.
图1 系统结构图
2.2 时钟分频电路的设计
该模块使用系统自带的50 MHz的时钟主频率,采用Verilog HDL对其进行分频.得到5 MHz(cl k_5 M)、500 k Hz(cl k_500 K)和1 MHz(cl k_1 M)的时钟频率分别供给电流检测模块、电压检测模块、温度检测模块.时钟分频电路的Veril og HDL硬件描述语言如下所示.
2.3 电压检测电路的设计
该模块针对三路电池组的电压进行检测,通过对开关的控制,可以对电池组的单节电池电压进行检测,也可以对电池组的总体电压进行检测.由于三路电池组的电压高于10 V,而该模块所采用的AD转换芯片是ADC0809.其工作电压为5 V,参考电压也为5 V,所以采用电阻分压法,在电池组两端串联三个阻值相同的电阻.而ADC0809只对其中一个电阻两端的电压进行检测.因此,测得的电压为实际电压的1/3,电路图见图2.
图2 电压检测电路
该电路的开关采用可控制的光电藕合器件TLP521-1.本电路采用6个 TLP521-1,由处理器控制(图2),S0和S1导通则所测的是电池V1的电压,S2和S4导通则测的电池V2的电压,S3和S5导通则测的电池V3的电压,S0和S3导通则测的是电池组的总体电压.
2.4 电流检测电路的设计
对于电流的数据采集是否准确直接影响着电池管理系统整体性能是否良好,由于电池组在实际充放电过程中电流的变化有很大的不确定性,因此电流的采集需要单独进行,并具有尽可能高的采样频率.电流检测电路见图3.
图3 电流检测电路
在电池组与负载之间加上一个50 mΩ的测流电阻R4来检测负载电流,负载电流经过电流检测放大器MAX4172的RS+端到RS-端,在MAX4172的内部放大50倍后由OUT引脚输出,再经过对地电阻R5
[3].AD转换芯片TLC2543采集电阻R5两端的电压.测得
其中:Gm为MAX4172的跨导,其值为10 mA/V.为了满足采集电流的采样频率,本文选用TLC2543作为AD转换芯片.该芯片是一款12位分辨率的AD转换器,在温度范围内转换时间为10μs,既可满足采样频率,又可满足精度要求[4].
2.5 温度检测电路的设计
温度采集电路在硬件电路设计上比较简单(图4),主要采用数字温度传感器DS18B20来实现温度信号向电信号的转换,只需将其三个管脚按图4所示连接,并且多片DS18B20可以直接并联在这三根线上,主要通过程序实现温度的转换和读取.
图4 温度检测电路
2.6 电池温度保护模块
电池组的工作温度范围在-20~60℃之间,影响电池组安全性的主要原因是热失控.为了保证电池组的性能良好,温度保护模块非常重要.上节提到的温度检测电路可以实时采集电池组的工作温度,本文用程序设定一个报警温度,当所采集的温度达到报警温度时,电池组与负载之间断开,使电池停止工作.并且在电池组处安装一个小风扇,当温度达到报警温度时,处理器控制风扇转动,加快电池散热.
3 系统软件设计
FPGA的软件设计是在Nios II IDE集成开发环境下进行的,Nios II IDE是Nios系列软核处理器中使用最普遍的开发工具,可以在该开发环境中完成所有的软件开发任务,比如对程序进行编辑、编译、下载、调试等等.NiosⅡ系列32位RISC嵌入式处理器具有超过200DMIP的性能,灵活性高,可以在多种系统设置组合中进行选择,而且成本低,开发周期短,适应性强.一台电脑、一块开发板和一条JTAG下载线就可以实现对系统的软件开发和调试[5].
本系统的软件流程如图5所示,分为电压检测控制、电流检测控制、温度检测控制、温度保护控制4个部分.其中电流检测、电压检测、温度检测同时进行,可根据采集的温度数据和报警温度进行比较,控制电池组的断开和风扇的开启.
图5 系统软件流程图
4 仿真分析与实验结果
本 文 在 软 件 Quartus II中 对 ADC0809,TLC2543进行了时序仿真.图6是ADC0809的时序仿真图形.由图6所示,clk_500k是ADC0809的时钟脉冲,d是经过ADC0809转换后输入给处理器的数字量,q是处理器经过处理后显示的数字量,第一个周期由于输出使能端oe在eoc为高电平的时候没有置高,所以数据不能传输到处理器.第二和第三个周期可以看到数据正常的传输到处理器并显示.
图7是TLC2543的时序仿真图形,iccl k是TLC2543所需的时钟脉冲,icout是处理器的控制字输入端,icin是经过TLC2543转换后的数字量,data是处理器处理后显示的数字量.因为TLC2543是在处理器输入控制字的同时,将上一次转换的数据传输到处理器,所以第一个周期的数据为0,第二个周期的数据则是第一个周期是icin的输入数据.
表1是系统所采集的电压与实际电池组的电压的对比,可以看出该系统在时序和数据显示的准确度上都可以满足设计要求.
表1 电池组测试数据
5 结束语
本设计旨在建立一个基于FPGA控制的小型电池检测系统,以Altera公司的Cyclone II系列的FPGA芯片EP2C35F672C6为主控芯片,实现了对电池组的电压、电流、温度三种数据的实时采集、处理、监控和显示,并且防止电池组在工作时温度过高.在软件方面,系统以NiosⅡIDE作为软件开发平台,由于NiosⅡIDE可以提供工程模板形式的代码实例,使得工作系统建立的速度快速提升.利用FPGA系统开发周期短、高效灵活、扩展容易的特点,可以不断升级电池检测系统,增加更多功能.
[1]刘晓康,詹琼华,何葵,等.电动汽车用电池管理系统的研究[J].华中科技大学学报,2007,35(8):83-84.
[2]张志刚.FPGA与SOPC设计教程:DE2实践[M].西安:西安电子科技大学出版社,2007:30-31.
[3]王 晨,李延军,张玉兴.基于 MAX4172的电流检测电路设计与实现[A]∥2010通信理论与技术新发展——第十五届全国青年通信学术会议论文集(下册)[M].北京:国防工业出版社,2011:238-240.
[4]杜开初.串行12位 A/D TLC2543及其应用[J].世界电子元器件,2000(10):37-38.
[5]ALTERA 公司[EB/OL].(2010-06)[2010-07-15]http://www.altera.com/literature/lit-nio2.jsp.