基于AVR微控制器的蓄电池充放电控制器
放电电阻并联在单格电池两端,从而完成单格电池剩余容量放电。继电器驱动电路原理图如图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
- 基于AVR单片机PWM功能的数控恒流源研制(07-24)
- 容纳两个DC/DC升压转换器的微控制器(08-06)
- Atmel的picoPower技术延长电池寿命(09-17)
- 基于AVR与DDS技术的超声波电源研制(11-14)
- UPS不间断电源功能简介(09-09)
- 基于双闭环模糊PID控制器的开关电源控制(06-09)