基于LTC6804的电池参数采集系统设计

电源设计应用

419人已加入

描述

摘要:分析目前电池参数采集的方法,提出采用 LTC6804 进行电池参数采集的方法。电池参数采集系统硬件包括 LTC6804 单体电池电压检测、NTC 温度检测、LT3990 供电、dsPIC30F 控制部分、通信隔离等。

1、电池参数采集总体设计

如图1所示,该电池参数采集系统由电池电压采集模块、温度采集模块、控制模块和通信模块等组成。采用LTC6804对电池包内的12节单体电压、总电压和5个温度点进行采集,在采集转换结束后通过SPI总线传输到控制芯片dsPIC30F内,控制芯片通过CAN总线将采集到的数据传输到上位机。上位机根据采集到的数据进行SOC估算,并决定是否进行均衡,是否停止充放电,是否开启安全控制等。每个控制芯片有不同的CAN标识符,因此当有超过12节电池需要进行参数采集时,可以级联多个该系统以实现目的。

电池管理系统

2、电池参数采集硬件设计

该系统的核心器件是Linear公司的LTC6804,可以测量多达12个串联电池的电压,并具有低于1.2mV的总测量误差,测量范围为0~5V。所有12节电池的电压可以在290μs内完成测量,并可以选择较低的数据采集速率以实现高噪声抑制。

LTC6804提供ISOSPI和SPI两种通信模式,最大通信速率为1Mbps。硬件电路如图2所示。

电池管理系统

2.11LTC6804供电

LTC6804通过V+和Vreg两个引脚供电。V+通过一个RC低通滤波器(100Ω/100nF)连接到12电池的最高电位。Vreg引脚提供所需的大部分功率,应施加5±0.5V的电压。可根据图3为Vreg进行供电,该供电模式器件简单,容易实现。LTC6804有休眠、待命、测试等状态,通过不同状态的切换达到完成测量节省功耗的目的。当LTC6804处于休眠状态时,DRIVE引脚无输出,此时Vreg引脚为低电平。由于该系统需要为通信隔离器ADUM1411供电,需要Vreg一直处于供电的状态,因此选用LT3990输出稳定的5V电压供给Vreg和ADUM1411。LT3990供电原理图如图4

电池管理系统
电池管理系统

2.2单体电压检测

如图2所示,将串联的12节单体电池分别接入CIN_0到CIN_12。LTC6804内部AD具有27kHz、14kHz、7kHz、3kHz、2kHz、26Hz6种模式。考虑到ADC的转换速度、分辨率和总测量误差,选用标准7kHz的速率。LTC6804内部的ADC具有一个-0.82V至5.73V的近似范围,复读数被取整至0V,LSB代表100uV。因此,一个0x4000的读数表示1.024V。当AD转换完成后,通过SPI总线将数据传给MCU。LTC6804的SPI接口作为从设备,与MCU之间采用磁耦隔离,减少电池侧对数字电路的影响。

2.3总电压检测

LTC6804的测量内部器件参数(ADSTAT)命令是用于测量电池电压总和、内部芯片温度、模拟电源和数字电源四个参数的命令。在测量电池电压总和时,将C12和C0之间的电压衰减20倍,然后进行采集。

因此:

V实=DATA×20×100μV(1)

式(1)中,V实为实际总电压,DATA为ADC转换后的数值。

2.4温度检测

LTC6804的5个GPIO口可以作为模拟输入口,与C口具有相同的电压范围和ADC分辨率。LTC6804的VREF2引脚专为温度检测所需的电流而设计,标称值为3V。采用NTC进行温度检测,电路图如图5。电池包内的5个NTC在25℃时精度为1%、阻值为10kΩ。偏置电阻的选择根据NTC决定,选用精度为1%的10kΩ的电阻作为偏置电阻。因此,在25℃时GPIO口电压为1.5V。在每个采样点添加一个0.1F的瓷片电容,滤除高频干扰,提高采样精度。


电池管理系统

3、软件设计

该系统软件设计主要完成dsPIC30F通过隔离后的SPI对LTC6804进行数据读写。dsPIC30F计算读取到的数据的数据包错误校验(PEC),并与接收到的PEC进行比较,确定接收到的数据正确。MCU将接收到的数据转换为电压值和温度值,通过CAN总线发送给上位机进行相应的处理。电压与温度检测的程序流程图如图6。

电池管理系统

3.1PI控制

PI控制示意图如图3

电池管理系统

为了避免引起震荡,当频率/占空比误差极小时,不进行PI控制直接输出。

3.2上位机软件设计

上位机软件设计包括两个部分:实时发送数据帧、波形绘制。上位机程序流程图如图4所示。

电池管理系统

上位机程序功能界面如图5,下位机实际输出波形与上位机设置一致,由示波器可见如图6所示。

电池管理系统
电池管理系统

3.2.1实时发送数据帧功能

实时发送不同的数据帧是通过trackBar实现,通过分别滑动两个滚动条改变频率与占空比的数值,一旦鼠标被释放就会触发对应的事件,在该事件内编写串口发送程序,即可实现对下位机实时发送不同的数据帧,以实现对PWM信号的控制。

3.2.2绘制波形功能

为了达到更好的人机交互,上位机程序可实时跟随用户设定进行波形显示,使用户更直观地观察到下位机将输出的波形。显示波形功能是通过绘图控件ZedGraph实现,ZedGraph是一个开源的.NET图表类库,并且全部代码都是用C#开发的。它可以利用任意的数据集合创建2D的线性和柱形图表。

ZedGraph在描画折线图的时候,将所有的坐标点都保存在PointPairList中,PointPairList类是一个包含(X,Y)的坐标类,用户根据自己的需要增加新数据或修改已存在的数据;调用ZedGraphControl.AxisChange()方法更新X和Y轴的范围;调用Form.Invalidate()方法更新图表。由于在本设计中,用户可实时拖动滚动条调整频率和占空比的数值,则需要绘制动态的折线图,实际上,就是不断往PointPairList中添加点坐标(X,Y),然后刷新即可。

4、测试

使用串联的12节三星18650标称3.7V容量2.2Ah锂离子电池组成的电池包测试该系统。将该系统检测到的电压与四位半的万用表检测到的电压进行对比,对比数据如表1所示。将使用NTC检测到的温度与误差为0.2℃的水银温度计测量同一点的温度进行对比,对比数据如表2所示。

电池管理系统

注:表1中数据1为四位半万用表检测的值,数据2为LTC6804检测的值。

5、结束语

本设计提供独立PWM输出,频率范围1Hz~10kHz,占空比范围1%~99%;输出信号经过整理和功率放大,PWM信号实现4V~8V电平适配,输出负载电流可达500mA。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分