电池管理系统的低功耗、多路温度测量
Abstract
锂离子电池包需要一个良好的电池管理系统,用于监测电池电压和电池温度。如果没有这个监控功能,系统可能发生温度失控,导致电池爆炸。本文介绍了一个低功耗电路,可以测量多达12个热敏电阻的温度。它对复用器供电并进行配置,没有温度测量的情况下,复用器进入关断模式以节省功耗。
类似文章于2011年10月6日发表在Electronic Design。
高压、多节电池串联组成的电池包主要用于电动汽车、混合动力车、电动自行车、电动工具等设备。由于它们的高能量密度,锂离子电池得到了广泛应用。这些高能量电池组需要一个良好的电池管理系统,用于检测多节电池的电压以及电池温度。如果没有这个监控功能,系统可能发生温度失控,导致电池爆炸。
电池包的数据采集IC用于测量多节电池的电压(通常为12节),但它们最多扫描、测量两个温度点。本文介绍了一种低功耗电路,可测量最多达12个热敏电阻的温度。它对复用器供电并进行配置,没有温度测量的情况下,复用器进入关断模式以节省功耗。
图1所示低功耗电路对电池包内部的每节电池进行扫描和测量,两片MAX382复用器将12个热敏电阻切换到数据采集芯片的输入端(如MAX11068或MAX17830),每次采集2个热敏电阻的数值,共6组。数据采集IC提供热敏电阻偏压,并对复用器供电且控制它们的开关和使能/禁止。
热敏电阻的偏压由数据采集IC的‘热电源’输出(THRM)提供,这种配置有助于节省功耗,因为禁止辅助输入终止扫描时,内部开关禁止THRM。注意,无需测量外部温度传感器时,应该禁用/关断(不扫描)外部输入。将THRM连接到复用器的使能输入,无需温度测量时,将复用器置于关断模式以节省功耗。不对辅助输入扫描时,两个复用器仅从VAA消耗0.56µA电流。THRM仅在辅助输入扫描时在非常短的时间内使能复用器(即当需要温度测量时)。数据采集芯片的GPIO (通用输入/输出)口在12个热敏电阻间切换辅助输入。
THRM、AUXIN1和AUXIN2波形图(图2)给出了只有THRM使能条件下的最大采集时间(大约700µs),最大时间仅用于说明。实际采集的建立时间由软件编程设定,应使AUXIN_端的电容有足够的建立时间。
利用图1电路和伪码(表2),读取不同温度下的ADC输出。表1给出了数据采集IC在带有/不带复用器时的输出对比,并列示了百分比误差。
误差(%) = [(带有复用器时的ADC输出) - (不带复用器时的ADC输出)]/4096 × 100 (其中4096是十进制满量程ADC值)。复用器导通电阻引入误差,为保持最小的导通电阻,一般使用阻值相对较高(高温下)的热敏电阻(村田热敏电阻100kΩ,NXFT15WF104FA2B050)。
Temperature | Data-Acquisition IC Output with Multiplexer (HEX) | Data-Acquisition IC Output Without Multiplexer (HEX) | Error (%) |
-30 | F27 | F27 | 0 |
-20 | EA1 | E9E | 0.07 |
0 | C65 | C70 | -0.27 |
10 | AD0 | AD5 | -0.12 |
25 | 7F6 | 7F4 | 0.05 |
40 | 560 | 55A | 0.15 |
60 | 2EB | 2E3 | 0.19 |
80 | 18C | 18D | -0.02 |
100 | 0D6 | 0D0 | 0.15 |
125 | 06A | 065 | 0.122 |
Command | Purpose | Read/Write |
HELLOALL | Initialization. This command sets the device address of the first part in the chain. All other parts in the chain are then assigned an automatically incremented address. | Write |
ROLLCALL | Initialization. Used to determine the number of devices in the stack. | Read |
SETLASTADDRESS | Initialization. This command tells each MAX11068 in an SMBUS ladder which device address is the last one. | Write |
Set AIN1EN & AIN2EN in ADCCFG register | Enables AIN1 and AIN2 channels for scanning. | Write |
Set AINCFG_ bits in ACQCFG register | Sets the acquisition settling time (from 5.3µs to 339.2µs) for the auxiliary analog channels. | Write |
Set GPIO as output, and set the GPIO output values by writing to GPIO register | The GPIO output values decide which thermistor is selected for scanning, as the GPIO is tied to the select pins of the multiplexer. | Write |
Set the SCAN bit in the SCANCTRL register (0x0D) | This command starts the conversion process of the inputs. | Write |
Read AIN1 (0x40) and AIN2 (0x41) registers | Used to read conversion results from the temperature-sensing device selected by GPIO. | Read |