1.2.2 PWM发生器
PWM发生器集成在EasyARM1138系统中,利用定时器(Timer)模块的16 bit PWM功能来产生PWM信号。在PWM模式中,TimerA或TimerB配置为16 bit元元元的递减计数器,通过设置适当的装载值(决定PWM周期)和匹配值(决定PWM占空比)来自动产生PWM方波信号,并从相应的CCP管脚输出。
本方法的基本思想是利用EasyARM1138所具有的PWM(CCP)管口,在不改变PWM方波周期的前提下,通过软件的方法调整PWM控制寄存器来调整PWM的占空比,从而控制充电电流。在调整充电电流前,处理器先快速读取充电电流的大小,然后把设定的充电电流与实际读取到的充电电流进行比较。若实际电流偏小,则向增加充电电流的方向调整PWM的占空比;若实际电流偏大,则向减小充电电流的方向调整PWM的占空比。在软件PWM的调整过程中要注意ADC的读数偏差和电源工作电压等引入的纹波干扰,合理采用算术平均法等数字滤波技术。
1.3 采样电路
采样包括对充电电流和充电电池端电压的采样。采样的电压和电流经EasyARM1138中的1个集成的10 bit ADC模块送到LM3S1138控制芯片中,LM3S1138对数据进行处理与保存。ADC模块支持8个输入通道,输出最大误差为±3 mV,±3.3 V电源供电,并含有4个可编程的序列发生器,这些序列发生器可在无需控制器干涉的情况下对多个模拟输入源进行采样。电流与电压采样原理图如图3所示。
(1)电流和电压采样
为了降低成本,设计中对电流采样不外加传感器,通过1个传感电阻R6把流过电池的电流转换成电压后,再进行ADC转换取样。流过电池的电流可能会很大(超过1 A),如果传感电阻取得较大,那么就会产生较大的电压降,根据功率计算公式:P=I2R,消耗的功率太大,就会产生较多的热量,显然这样做是不可取的。本设计中使R6=0.1 Ω,用LM358运算放大器把电压放大到3 V左右,再传送到ADC转换器的ADC1管脚[2]。电压采样直接通过改变滑动电阻R4的大小,使输出电压在0~3 V额定范围,再传送到ADC转换器的ADC0管脚进行数据转换。
(2)保护电路和基准稳压源
如果进入ADC管脚的电压过大,有可能造成芯片损坏,正确的做法是必须要有限压保护措施,典型的用法是利用钳位保护二极管。为了抑制串入ADC输入信号上的干扰,一般还要进行RC低通滤波,如图4所示。
ADC转换器需要一个基准电压为参照,以完成模拟电压信号到数字信号的量化。基准电压直接影响电压和电流采样的结果。EasyARM1138内部集成可编程选择的3.3 V的基准稳压源,可确保ADC基准电压的准确性,不需要采用外部的稳压源,可以节省设计的成本。
2 软件程序设计
电能收集充电器的充电电流、电压都是受限制的,“电池特性”的所有资料都根据标度因子计算得到。这些数据在包含文件里定义,在编译时计算,在程序运行时以常数方式处理。所有从ADC输出的资料都可以直接与这些常数进行比较。也就是说,在程序运行过程中,不需要进行实时计算,从而节省了计算时间和程序空间。锂离子可充电池采用恒流-恒压充电方式,其充电主控制程序流程如图5所示[3-6]。
本电能收集充电器采用了微控制器LM3S1138作为CPU,具有智慧化、节能化等充电性能,电能收集率很理想。故有良好的推广和使用价值。