>
首页 » 技术文章 » 基于AVR微控制器的蓄电池充放电控制器设计

基于AVR微控制器的蓄电池充放电控制器设计

作者:■ 装甲兵工程学院控制工程系 高玉峰 王治国 刘亚龙 郭云鹏  时间:2008-08-29 11:15  来源:电子设计应用

  摘要:本文针对539CH-1型Ni-Cd电池,提出一种基于AVR微控制器的蓄电池充放电控制器。该控制器以Mega16L为核心,根据上位机的命令控制蓄电池的充、放电电流值以及放电电阻的接入时机。该控制器已成功应用于539CH-1型Ni-Cd蓄电池的充放电设备中。

  关键词:蓄电池;AVR微控制器;TLV5638;电源控制

  引言

  蓄电池是飞行器电源系统中重要的组成部分,蓄电池的性能直接影响飞行器的安全。因此,正确维护、保养蓄电池就成为一项十分重要的工作。539CH-1型Ni-Cd蓄电池是碱性蓄电池,为了避免记忆效应影响电池容量,充电前需要对电池进行放电。该电池的放电规范要求测量单体电池电压,并记录单体电池电压下降到1V时的放电时间,然后在单体电池两极间接入放电电阻。该电池的充电规范要求使用分阶段定电流充电法。充电过程中要检测电池的端电压和充电电流,充电后期要测量单体电池的电压,并对电压较低的电池做相应处理。

  本文针对539CH-1型Ni-Cd蓄电池的充放电规范,提出一种充放电控制器的设计方案。

  系统设计

  本设计采用AVR单片机Mega16L作为核心,可同时控制两块539CH-1型蓄电池的充放电过程。Mega16L通过串行总线接收上位机的命令,然后通过SPI总线将数据发送给TLV5638。单片机通过多路模拟开关CD4053将TLV5638的两路D/A转换输出送入信号调整电路,从而完成对充放电电流的控制。放电过程中,Mega16L通过控制8D锁存器74LS573和复合管阵列ULN2081控制放电电阻接入。系统原理框图如图1所示。


图1  系统原理框图

  硬件设计

  硬件系统包括串行通信电路、充电和放电控制电路、继电器驱动电路等模块。

  通信电路

  单片机通过串口与上位机通信。Mega16L端口为TTL电平,而上位机串口为RS-232C标准接口。因此,在上位机与单片机通信时需要进行电平转换。本设计采用MAX232完成TTL电平与RS-232C接口电平之间的转换。

  充电和放电控制电路

  单片机收到上位机的充放电控制命令后,通过SPI口将控制信号发送给TLV5638。TLV5638将收到的数字信号转换成模拟信号,并送入信号调整电路。模拟控制信号经调整后送入充电或放电电源的PI控制器,对充电和放电电流进行控制。单片机通过CD4053选择控制信号的输出通道,使该控制器可同时对两块蓄电池进行充电和放电。该部分电路原理图如图2所示。


图2  D/A转换与通道选择

  D/A转换

  本设计使用双通道l2位电压输出型高速DAC TLV5638完成数模转换。该转换器包含3线串行接口,可与Microwire、SPI、QSPI等接口以及TMS320系列DSP无缝连接。设计中,将Mega16作为主机,通过SPI口直接与TLV5638的串行接口相连。因为Mega16的SPI口为4线串口,所以连接时单片机SPI口的PB6(MISO)悬空。

  串行通信时, TLV5638的CS脚电平出现下降沿时通信开始,数据在SCLK的下降沿逐位移入TLV5638的内部寄存器。最先移入的是数据的最高位。当16位数据全部移入或CS脚电平变高时,TLV5638移位寄存器中的数据被存入相应的锁存器,锁存器的选择由数据中的控制字确定。因此,当Mega16需要向TLV5638发送数据时,PB7先从高电平跳到低电平,然后通过SPI口连续进行两次写操作,写操作完成后,在SCLK的第16个上升沿,相应锁存器的内容自动更新。时序图如图3所示。


图3  TLV5638时序图

  送入TLV5638的16位数据字包括控制段和数据段两部分。其中,R0和R1为寄存器选择位。

  12位数据段的内容受寄存器选择的影响。当数据写入DAC寄存器或缓冲器时,数据段各位均用于表示数据值;当数据写入控制寄存器时,D0和D1用于确定参考电压,参考电压如表1所示。

  实际应用中,TLV5638工作于慢速正常模式,采用2.048V内部参考电压。更新TLV5638某一路DAC数据时,必须保证另外一路数据不变。因此,除初始化过程以外,TLV5638寄存器选择位只有R0=0、R1=0和R0=0、R1=1两种状态。

  Mega16的SPI口可采用4种不同的数据传输格式工作,传输格式由SPI控制寄存器中的CPOL位和CPHA位控制。应用中,考虑到TLV5638的使用要求,令CPHA=0,CPOL=1,即传输开始时采样SCK下降沿,结束时采样SCK上升沿。

  信号通道选择

  Mega16通过PD4和PD5以及外围逻辑电路控制信号的输出通道。逻辑电路包括1片7404和2片CD4053。以TLV5638的OUTA输出信号为例。模拟控制信号从TLV5638输出,经滤波后送入CD4053的X通道和Y通道。单片机PD4一方面直接与CD4053控制端A相连,另外还通过反相器7404与CD4053控制端B相连。这样就保证A端和B端的控制信号反相,使任意时刻X、Y通道中只有一个可以输出有效控制信号,保证该路充电和放电不发生冲突。应用中没有使用CD4053的Z通道,将其与控制端C及使能端一起接地。

  继电器驱动电路

  放电后期,需要将电池中的剩余容量完全放出,最终使单体电池电压下降到0V。设计时,利用继电器将放电电阻并联于单体电池两极,从而释放电池剩余容量。继电器由8D锁存器74LS573和达林顿管阵列ULN2801驱动。单片机PA0~PA7输出控制信号,PD2、3、7和PC6、7输出5片74LS573所需的锁存使能信号。控制信号由74LS573锁存,然后通过ULN2801驱动继电器工作,将放电电阻并联在单格电池两端,从而完成单格电池剩余容量放电。继电器驱动电路原理图如图4所示。图中只包含1片74LS573,其它4片的控制方法类似。


图4  继电器驱动电路原理图

  软件设计

  软件采用主从结构,基于模块化设计思想,主要包括主程序模块、通信程序模块、D/A转换与通道选择模块、继电器组控制模块等。

  主程序模块完成单片机初始化,等待并处理中断等工作,流程图如图5(a)所示。


图5  程序流程图

  通信程序模块中,单片机与上位机间采用RS-232C串口通信。单片机采用中断方式接收上位机发出的命令,并根据接收到的数据内容向上位机发送应答信息。当命令的起始标志和结束标志都正确时,单片机向上位机发送ASCII字符‘Y’表示接收成功,然后处理收到的命令;否则,向上位机发送ASCII字符‘N’,表示发送不成功,要求上位机重新发送命令。通信模块流程图如图5(b)所示。

  DA转换与通道选择模块中,当上位机需要控制充、放电电流时,单片机采用查询方式,通过SPI口向TLV5638发送命令和数据,然后通过控制CD4053确定模拟控制信号输出通道。因为Mega16L的SPI口字宽为8位,必须连续进行两次写操作才能完成对TLV5638的编程。

  继电器组控制模块中,单片机收到上位机命令后,先将数据写到PA口,然后向相应锁存使能位写‘0’,将数据锁存入74LS573中,完成对继电器的控制。

  结语

  本文提出了一种基于Mega16L的蓄电池充放电控制器。该控制器利用串口RS-232C接收上位机发送的控制指令,然后根据控制指令完成对蓄电池充电电流、放电电流以及放电电阻接入的控制。该控制器部分实现了电池充、放电电源的数字化控制。

  参考文献

  1. Nickel-Cadmium Aircraft batteries operating and maintenance manual. SAFT. 2002.08

  2. Datasheet of Atmega16, Atmel, 2003.12

  3. TLV5638 2.7-V to 5.5-V low-power dual 12-bit digital-to-analog converter with internal reference and power down, Texas Instruments Incorporated, 2000

  4. AVR单片机应用系统开发典型实例[M],张军,中国电力出版社,2005.8

相关推荐

储能电池市场潜力评估 几年内达到2000亿

储能电池  蓄电池  2013-12-19

传感器和电源控制成为电路保护之外的增长点

传感器  电源控制  2013-10-17

锂电池市场严峻 未来只会有6-8家电池企业幸存下来

蓄电池  汽车制造  锂电  2012-11-01

铬盐、多晶硅等行业即将接受环保洗礼

多晶硅  蓄电池  2011-09-06

铅酸蓄电池达不到设计使用寿命的原因

蓄电池  汽车  2011-06-28

基于ARM9与LEM传感器的蓄电池在线监测硬件平台

蓄电池  在线监测  2011-05-10
在线研讨会
焦点