运用低脚数的微控制器增强交换式电压供应器的特色与功能

本文作者:admin       点击: 2008-02-01 00:00
前言:

运用微控制器可提升许多方面的功能,对电源供应器而言,虽然不是全新技术,但不同以往的是设计人员利用微控制器的功能在传统的电源供应器里增加的各项功能、并针对开机程序与错误回复等复杂程序作业赋予设定的能力。本文说明的设计,显示微控制器电源管理的方式,以及如何能够大幅提升设计的功能、设定、容错、以及可靠度。 

介绍

利用微控制器来管理交换式电源供应器,能大幅提升设计方案的功能,如 : 组态设定、容错能力、以及可靠度 ─ 本文将展现这些功能是如何被达成的。 
运用微控制器可提升许多方面的功能,对电源供应器而言,虽然不是全新技术,但不同以往的是设计人员利用微控制器的功能在传统的电源供应器里增加的各项功能、并针对开机程序与错误回复等复杂程序作业赋予设定的能力。 
虽然这个针对24V~5V电压范围的直流对直流降压稳压器看似一般,但其差别在于电源供应器的标准功能,透过多项可程序化的功能来进行强化,这些可程序化功能从未运用在独立电源控制芯片上。 

运用微控制器创造出的关键性功能与特色,可归纳如下:
● 一个调适性电流限流控制设计(adaptive current limit control),让设计人员能针对电源供应器的不同相位指定不同的电流限制值(针对开机时的电容负荷设定一个上升电流限制;对高温运作状态设定一个较低的电流限制;以及对正常运作设定正常运作电流限制))。
● 一个可设定的输出电压(programmable output voltage),可透过计算机的过程控制来设定,不必由人工调整。而校正功能选项,能借着连结一个参考电压到输出端及利用一个跳线器启动电源以自动设定输出电压。
● 一个输出电压的升压组件(output voltage ramp-up),允许设计人员能指定开启电源时输出电压的上升速度。 
● 一个可设定的电压过低锁定功能(programmable under-voltage lockout),设计人员能设定最低电源电压值而不必进行人工调整。
● 一个输入端触发电压(trigger voltage input),让设计人员能把电源供应器的启动和系统中的其它电源启动同步化。 
● 一个输出过流侦测器(output-over-current detect),不必使用一个上层电流侦测电路(high-side current sense)。 
● 一个自动启动组件(automatic power-up),在系统故障时会重新启动。还可选择装配置一个开机重新启动计数器,限制重新启动的次数。 

设计概述

在定义规格后,下一步就是指定支持的硬件。为了阐明概念,我们把设计分成两部分说明:电源供应端与微控制器 
1.电源供应端
电源供应端采用德州仪器的 UC3847 芯片,因这颗芯片拥有整体的控制能力,并能与内部信号连结。虽然不是新产品,但本身具备许多优点,包括:
a. 连结误差放大器的参考电压(VREF)输入,让微控制器能输入自身的可变式参考电压,取代UC3847的参考电压。 
b. 连结UC3847的参考电压,为微控制器提供一个方便的电源电压,并让微控制器的可变式参考电压和原始参考电压一样稳定 。
c. 一个外部电流限制输入,让微控制器能针对电源供应端设定门坎。 
d. 连结至误差放大器的输出端。量测电压使得微控制器能判断电源供应端的平均输出电流。 
2.微控制器
这个设计采用的微控制器是Microchip Technology的PIC16F684。除了符合设计的要求外,小尺寸(14接脚)、低成本、以及低价位的发展工具,让它成为理想的选择。特点包括:
a. 两个PWM 输出,第一个PWM 使用10位的分辨率,用来输出一参考电压到电源供应端;第二个PWM输出具有6至8位分辨率,用来控制输入到UC3847的电流。 
b. 多重输入的10位模拟数字转换器(ADC),能监控电源供应端的各项变动值。
c. EEPROM 内存用来储存设定参数以及输出电压的设定点。
d. 低电流运作模式,让微控制器能使用UC3847所提供的参考电压作为依据,以调整微控制器的PWM输出驱动器作为可程序化的参考电压输出。 
e. 快闪程序内存,让微控制器进行重新烧录/设定 
在选择主要控制组件后,再用PIC16F684来连结UC3847以及扩充的必要外围组件。UC3847和其电源供应端是根据数据表中的设计范例。PIC16F684的烧录界面是参考 PICkit 1 Flash Starter Kit 的使用者手册。 
下列的注意事项,适用于任何采用支持在线(in-circuit)烧录功能微控制器的设计:

● 微控制器的电源供应端,透过J6跳线来连结,因为微控制器的电源在烧录时必须加以隔离。微控制器电源线路上的旁路电容,必须低于0.5μf才能进行烧录。

● 在微控制器RA3接脚上结合一个隔离二极管以及一个提升电阻,能防止12V的烧录电压,在烧录过程中流进5V的电源。 

● 所有由微控制器趋动的UC3847控制接脚,都透过一个大电阻,切换至休眠状态,让组件保持休眠,直到微控制器在启动后离开重置状态为止。 
仅须透过简单的重新烧录,就能进行变更与升级,是一项重要的优势;但缺点是软件设计较为复杂,必须能处理多个同步作业。 

针对多个同步操作的功能建立多个状态程序(state machines),并在一个无限回路中逐一呼叫,以达到多重处理的效果。这个系统让各个状态程序在回路中执行一个状态,整体呈现的效果,就像所有状态程序同时运作,虽然速度比单独执行要来得慢一些,但这种方式可以让控制的流程条理分明、易于修改与扩充。

和硬件状态程序一样,软件状态程序也使用一个计数器来安排操作的程序。根据计数器的数值或“状态”来执行不同的软件功能。再根据目前状态与外部的输入信息,分析下一个要执行的状态。 

在这个电源供应控制器的设计中,包括4个状态程序:Monitor_sm()、Control_sm()、Crnt_lmt_sm()、以及Out_volt_sm()。
● Monitor_sm() 为系统执行所有模拟到数字的转换功能:监视电源、输出信号、误差放大器、触发电压、以及电源MOSFET的温度。
● Control_sm() 协调其它状态程序的作业,以及设定系统整体运作的“模式”。 
● Crnt_lmt_sm() 控制系统回路的程序,并负责产生限制电流的控制电压。
● Out_volt_sm() 控制电源的输出电压,以及在启动时产生升压作用。
Monitor_sm() 是一个简单的状态程序,持续循环处理各种模拟信号,把每个信号转换成一个10位数值,并储存在measured[] 数组。其程序如下:电源电压、触发电压、晶体管温度、误差放大器、和输出电压,然后循环回到电源电压。程序中惟一的例外是校正模式。在进行校正时,若电源供应端没有启动,Monitor_sm() 会持续转换惟一的输出电压信号。 

Control_sm()透过“mood”这个状态变量来指挥其它状态程序的活动。状态程序的状态对应至系统的六个模式。根据模式状态变量的数值,系统中其它状态程序会变更其状态,以配合Control_sm()的活动。Control_sm()的模式或状态包括:关闭(Shutdown)、启动(Start)、正常(Normal)、最大I/O(Iomax)、错误(Error)、以及校正(Cal)
● 关闭(Shutdown),当电源等待供电与触发电压攀升至指定范围时,就会启动这个模式 
● 启动(Start),当输出电压攀升至预设的输出电压值时,就会启动这个状态。正常(Normal),当所有运作正常时,就会启动这个状态 
● 当发生错误状况时,会启动Iomax 或error 模式, Iomax是发生电流过载,而 Error则是发生了温度过高的现象。
● 校正(Cal)状态是为了响应校正要求。
注意:Cal 是一个单向回路状态,必须关闭电源才能离开Crnt_lmt_sm() 执行3项功能。它能协调每个回路传递的启动时机,在硬件定时器Timer0从FF转至00之后、再启动循环。之后Crnt_lmt_sm()会产生临界电流PWM输出脉冲,再继续执行当前的状态。Crnt_lmt_sm()有4个可能的状态:关闭(Shutdown)、升压(Boost)、正常(Normal)、以及降压(Reduce)。 
● 关闭(Shutdown)状态在zero责任周期中保存限流PWM的输出信号,强制UC3847关闭电源的输出。
● 升压(Boost)状态在输出电压升高时,会提高限流的责任工作周期。
● 正常(Normal)状态会把限流工作周期设定成稳定状态的限流。
● 降压(Reduce)状态会调降限流的工作周期,以因应电源供应端输出晶体管的高温状态。

Cnrt_lmt_sm()状态程序随着系统的变化,按照状态变量的模式进行变更。 
Out_volt_sm() 的运作模式类似Crnt_lmt_sm(),仅有少数例外:不包括计时监控或脉冲产生部份,且只使用3个状态而不是4个。Out_volt_sm()的3个状态包括关闭(Shutdown)、升压(Ramp)、以及正常(Normal)。关闭(Shutdown)与正常(Normal)的运作模式类似Crnt_lmt_sm()中的关闭(Shutdown)与正常(Normal)状态,把PWM的输出电压调至零予以关闭,在正常运作时把电压调至默认值。新的状态是升压(Ramp),Out_volt_sm()把输出电压逐渐提高,并使用设计人员设定的递增与延迟数值。 
当输出电源完成升压后,Control_sm()会收到通知,系统与状态程序的模式就会切换至Normal 正常。 

4个状态程序建构单一管理系统,能监视与控制电源的运作;并根据储存在微控制器EEPROM内存中的参数值,针对内部与外部的事件进行反应。 

系统可靠度

就电源供应器的设计而言,可靠度是一项关键要素。在加入一个管理微控制器时,微控制器的硬件与软件设计,必须有额外的机制来处理各种错误状况。硬件可靠性和两项问题习习相关─微控制器在启动/关闭时的运转状态,以及电磁干扰(EMI)/射频(RFI)干扰的反应。软件方面唯一的考虑就是因数据损毁和/或程序内存而引发的侦测与校正错误状况。 

为了管理微控制器在启动与关闭状况时的运转状态,微控制器硬件内建两个系统─开机重置(POR)电路以及停电重置(BOR)电路。 

开机重置(POR)电路的目的是在电源开启时让微控制器保持在正确的重置状态,直到微控制器的电源电压达到最低安全工作电压,且主振荡器稳定为止。停电重置(BOR)电路在掉电时运作,当微控制器电源电压下降至使用者设定的最低电压值以下时,就会执行产生与保留重置的作业。结合这些系统,每当电源无法让微控制器稳定地运作时,就会切换至重置状态。 

管理微控制器响应电磁干扰(EMI)与射频干扰(RFI)的方法,就是组件的静态保护、妥善选择旁路电容、以及适当的PCB线路配置。良好的软件设计也很重要,因为电磁干扰与射频干扰事件会毁损数据与程序内存。尽管有这么多保护措施,但仍不能忽略掉硬件保护。 

以下的软件保护措施已纳入设计,可防范无法预测的突发状态: 
a. 看门狗定时器 (WDT),设定溢时计数时间比程序内主回路在执行最糟状况时的时间还稍微长一点。WDT的指令仅存在于主要软件回路。这种设计能保护系统不会出现软件的死锁状态,借着建立一个软件恢复正常的机制,即使这类状况严重到足以破坏微控制器的程序计数器,仍能回复到正常模式下。 
b. 状态程序所有状态译码作业,都含有一个预设状态。每当状态变量没有被译码成有效的状态时,系统就会呼叫预设状态。在预设状态中有一个例行程序,能重置所有关键的状态程序数据变量,包括状态计数器的变量。 
硬件与软件系统能协助微控制器从无法预测的行为中恢复正常,任何运用微控制器来管理电源系统的设计,都应审慎地运用。 

结论

本文说明的设计,显示微控制器电源管理的方式,以及如何能够大幅提升设计的功能、设定、容错、以及可靠度。