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

分享到:

作者:高玉峰 王治国 刘亚龙 郭云鹏

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

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

引言

  蓄电池是飞行器电源系统中重要的组成部分,蓄电池的性能直接影响飞行器的安全。因此,正确维护、保养蓄电池就成为一项十分重要的工作。539CH-1型Ni-Cd蓄电池是法国SAFT公司生产的碱性蓄电池,该电池包含20个单体电池,额定电压24V,额定容量53Ah。波音737客机即采用该型蓄电池。

  充电和放电是该电池维护、保养中的主要工作。由于该电池为Ni-Cd蓄电池,为了避免记忆效应影响电池容量,充电前需要对电池进行放电。该电池的放电规范要求测量单体电池电压,并记录单体电池电压下降到1V时的放电时间,然后在单体电池两极间接入放电电阻。该电池的充电规范要求使用分阶段定电流充电法。充电过程中要检测电池的端电压和充电电流,充电后期要测量单体电池的电压,并对电压较低的电池做相应处理。

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


图1  系统原理框图

硬件设计

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

通信电路

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

充电和放电控制电路

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

D/A变换

  本设计使用双通道l2位电压输出型高速DA转换器TLV5638完成数模转换。设计中,将Mega16作为主机,通过SPI口直接与TLV5638的串行接口相连。因为Mega16的SPI口为4线串口,所以连接时单片机SPI口的PB6(MISO)悬空。

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

  应用中,TLV5638工作于慢速正常模式,采用2.048V内部参考电压。更新TLV5638某一路DAC数据时,必须保证另外一路数据不变。

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


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

信号通道选择

  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驱动继电器工作,将放电电阻并联在单格电池两端,从而完成单格电池剩余容量放电。继电器驱动电路原理图如图3所示。图中只包含1片74LS573,其它4片控制方法类似。


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

软件设计

  软件采用主从结构。单片机收到上位机指令后,根据通信协议提取出命令字和数据,然后根据命令字完成相应的控制。软件基于模块化设计思想,主要包括:主程序模块,通信程序模块,D/A转换与通道选择模块,继电器组控制模块等。

主程序模块

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


图4程序流程图

通信程序模块

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

  上位机向单片机发送的命令符合以下格式:命令以帧为单位,每帧包含7个字节。每帧包含的命令字规定了单片机的控制方式。每帧中的数据字则以ASCII码的形式确定了充、放电电流的大小和继电器的代号。通信模块流程图如图4(b)所示。

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

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

结语

  本文提出了一种基于Mega16L的蓄电池充放电控制器。该控制器利用串口RS232接受上位机发送的控制指令,然后根据控制指令完成对蓄电池充电电流、放电电流以及放电电阻接入的控制。该控制器部分实现了电池充、放电电源的数字化控制。该系统已应用于539CH-1型Ni-Cd电池的充放电设备中,性能良好。

参考资料:
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.  沈文、Eagle lee、詹前卫,AVR单片机C语言开发入门指导,清华大学出版社,2003.2-3
5.  张军,AVR单片机应用系统开发典型实例,中国电力出版社,2005.8

继续阅读
51单片机、AVR单片机和PIC单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一个小经验,让你的AVR单片机功耗超低

休眠电流要最小:掉电模式必须的,然后能关闭的功能全部关闭,关闭BOD检测,关闭看门狗,电压越低越好,1.8V,频率越低越好。

51、AVR与PIC,三种单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

14个官方视频教程,助您学习AVR系列单片机

AVR® Insights — 第1集 — AVR存储器 AVR® Insights — 第2集 — 边写边读存储器 AVR® Insights — 第3集 — 端口 AVR® Insights — 第4集 — 休眠模式 AVR® Insights — 第5集 &mdash

关于AVR单片机,你了解多少?

什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机?

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss