2 主要电路设计及器件选型
2.1 PIC16F877A
单片机是控制器的核心,系统工作时需要采集太阳能电池和蓄电池的电压。太阳能电池的输出电压受温度和太阳辐射强度等外界因素影响较大,这就要求系统的实时性比较高,即要求系统的响应速度快。故设计中选用了内部含有A/D模块、具有14位指令宽度的中档PIC单片机16F877A,属PIC中级产品,在保持低价格的前提下具有很高的性能。
本文设计的控制器主要用到PIC16F877A的如下一些资源:
(1)16 KB的系统内可编程Flash,1 KB片内SRAM,10 000次擦写寿命。程序存储空间足够大,不需要额外扩展存储器;10 000次的擦写寿命方便进行程序调试;
(2) 2个具有独立预分频器和比较器功能的8位定时器/计数器。用于按键去抖和计时;
(3) 1个具有预分频器、比较功能和捕捉功能的16位定时器/计数器。用作调节PWM控制信号的占空比,控制充电开关;
(4) 8路10位ADC。使用其中的2路ADC通道分别对太阳能电池工作电压、蓄电池工作电压采样;
(5) 使用2个中断源,外部中断和定时器中断,分别用于计时和按键;
(6) 可编程I/O口。部分I/O口使用其第二功能,其他用于控制器系统功能扩展。
2.2 电压采样电路
控制器需要采集2路电压信号,分别是太阳能电池输出电压和蓄电池端电压,这两路信号均为变化的直流模拟信号,采样信号应能如实地反映检测量。设计中利用精度为0.1%的精密电阻组成简单的分压电阻网络来实现,并在分压电阻网络的输出端并联漏电流很小的精密电容和电感进行 滤波,以减小电流泄漏对测量精度的影响[4]。采样电路如图2所示。
2.3 控制开关驱动电路
控制器的主要控制对象是3个控制开关C1~C3。分别是蓄电池的充电开关、蓄电池放电(供电)开关和市电供电开关。开关的状态由单片机根据系统的工作状态进行控制:白天太阳能电池向蓄电池充电,开关C1闭合,太阳能电池将太阳能转换为电能,储存在蓄电池中,当蓄电池电压出现过充时,控制器断开充电开关C1;晚上主要由蓄电池向负载供电,开关C2闭合,当蓄电池电压不足(欠压)时,蓄电池供电开关C2断开,控制器自动切换为市电给负载供电(C3闭合)。图3、图4和图5分别为蓄电池充电、放电和市电供电时开关的驱动电路。