数字电源控制和管理以及PMBus编程
2006-05-10 来源:Electronic Design
本文主要讨论脉冲宽度调制(PWM)、脉冲密度调制(PDM)和脉冲频率调制(PFM)开关稳压器和控制器IC。其中一些集成了控制实际开关的一个或多个晶体管的驱动器,另一些则没有。还有一些甚至集成了开关FET,如果它们提供合适的负荷的话。因此,数字还是模拟的问题取决于稳压器的控制回路如何闭合。
图1显示了两种最常见的PWM开关拓朴布局的变化,降压和升压(buck/boost)转换器。在同步配置中,第二只晶体管将取代二极管。在某种意义上来讲,脉冲宽度调制的采用使得这些转换器“准数字化”,至少可与基于一个串联旁路元件的723型线性稳压器相比。事实上,PWM使得采用数字控制回路成为可能。不过,图1中的转换器缺少控制一个或几个开关占空比的电路,它可在模拟或数字域中实现。
不管采用模拟还是数字技术,都有两种方式实现反馈回路:电压模式和电流模式。为简单起见,首先考虑它在模拟域中如何实现。
图1:没有控制器的开关模式DC-DC电源十分简单。不论用于升压还是降压,其成功与否取决于设计者如何安排一些基本的元器件。 |
在电压模式拓朴中,参考电压减去输出电压样本就可得到一个与振荡器斜坡信号相比较的小误差信号(图2),当电路输出电压变化时,误差电压也产生变化,后者反过来改变比较器的门限值。反过来,这将使输出信号宽度发生变化。这些脉冲控制稳压器开关晶体管的导通时间。随着输出电压升高,脉冲宽度将变小。
电流模式控制的一个优势在于其管理电感电流的能力。一个采用电流模式控制的稳压器具有一个嵌套在一个较慢的电压回路中的电流回路。该内回路感应开关晶体管的峰值电流,并通过一个脉冲一个脉冲地控制各晶体管的导通时间,使电流保持恒定。
图2:电压模式反馈(本例中在模拟域)包含一个控制回路。 |
与此同时,外回路感应直流输出电压,并向内回路提供一个控制电压。在该电路中,电感电流的斜率生成一个与误差信号相比较的斜坡。当输出电压下跌时,控制器就向负载提供更大的电流(图3)。
在这些控制拓朴中,在回路的相移达到360°的任意频率处,控制回路的增益不能超过1。相移包括了将控制信号馈入反馈运放的倒相输入端所产生的固有180°相移、放大器和其它有源元件的附加延迟、以及由电容和电感(特别是输出滤波器的大电容)引入的延迟。
稳定回路要求对一定频率范围内的增益变化和相移进行补偿。传统上,采用模拟PWM来稳定电源通常需要采用经验方法:你在一块与生产型电路板相同布局的实际电路板上,实验各种无源器件的不同组合,并观察在电源电压和负载需求变化时的电路时间域响应。最近,事情已变得很简单。因为现在模拟控制器公司在其自己的型号产品上实现了首先在数字控制器上引入的各种“在寄存器中插入一个值”的功能。
图3:电流模式反馈采用了嵌套反馈回路。与电压模式不同,它需要计入电感上的电流。 |
数字控制回路
大多数电压模式控制的数字实现方案包括了模数转换器(ADC)、实现一些控制算法的微控制器或DSP、以及一个数字脉冲宽度调制器(DPWM),该DPWM拾取控制器输出并产生驱动执行开关动作的一个或几个晶体管所需的信号(图4)。
首先,ADC产生馈入控制器的一系列输出电压的数字表示。控制算法是人们所熟悉的比例积分(PI)或比例积分/差分(PID)算法。
在一个PID控制器(更复杂的实例)中,每个ADC输入都要执行基于一系列系数的算法。比例系数是与灵敏度相关的增益因子。整数系数按照错误出现的时间长短来调节PWM的占空比。诱导系数补偿回路的时间延迟(相位更有效)。综合起来,PID算法的各个系数决定了系统的频率响应。
控制器随后将ADC的输出电压表示转换成维持期望的输出电压所需的脉冲持续时间(占空比)信息。然后,该信息被传送至一个DPWM,它执行与模拟PWM一样的驱动信号产生功能。
注意模拟和数字控制方案管理开关晶体管的不同。模拟控制器在时钟上升沿触发开关晶体管成ON状态,并在电压坡度达到预设的门槛电压时将晶体管触发成OFF状态;PID控制器则计算开关晶体管ON和OFF状态期间所需的持续时间。
理论上,模拟控制可以提供连续精度的输出电压。但ADC精度和采样率的交互作用再加上DPWM开关速率,使情况变得有些复杂。
例如,DPWM必须具有比ADC更高的精度。否则,ADC输出的1LSB变化就可能导致DPWM使输出电压变化大于1LSB。其结果是,输出电压就稳定地在两个数值之间转换,这个状态被称之为“限制性循环”。
图4:电压模式控制的数字实现消除了锯齿产生器。在其他方面,它们与模拟实现紧密对应。 |
不过,避免循环也不是轻而易举的。这是因为要提供DPWM更高的精度就意味着必须提高其脉冲速率(脉冲速率决定了在任一给定时间段能够产生多少比特)。然而,DPWM脉冲速率限制了它对所有来自控制器的比特进行压缩的时间。如果一个DPWM具有1MHz开关速率和10位ADC,那么计算显示,调制器要求超过1 GHz的脉冲速率。
当然,如此的高速度是不切实际的,因此数字控制器的设计者必须找到另一种替代解决方案。一种方案是引入一些DPWM时钟抖动。稳压器输出过滤器对馈入的任一脉冲串进行平均,这使对每个mth输出脉冲的宽度进行相当于1 LSB的调整成为可能。
这将脉冲串的平均值增加或降低了1 LSB精度的1/m倍。如果在控制器输入端的1LSB使输出脉冲串平均变化10 mV,这将使每四个脉冲缩短相应于10 mV的时间,那么通过滤波器的平均输出电压将降低 10 mV/4,即2.5 mV。
当系统具有一个以上的电压轨时,按照正确顺序导通电压轨,并在电源启动和关闭时控制电压的变化速率将变得十分重要。在具有多个电源轨的系统中,采用数字电源管理更易于对不同电压轨的顺序和时序进行编程。
电源转换器或控制器并没必要同时具有数字电源控制和数字电源管理功能。现在,一些DC/DC调节器采用模拟控制方式,但能提供增强型I2C总线上的可编程性能;另一些DC/DC调节器采用数字反馈,但通过将特定引脚直接接地或通过电阻接地,也可以设置操作特性。如今,大量的电源管理和一些电源控制功能是通过电源管理总线(PMBus)来实现的。
图5:基本的PMBus仅要求时钟和数据线,ALERT#、CONTROL和WriteProtect线为可选。 |
PMBus接口和编程
大多数电源管理和控制IC的数据手册将通信接口定义为I2C。但仔细研究后,你会发现真正的接口是系统管理总线(SMBus),通信协议则常为PMBus。
PMBus是系统管理接口论坛所拥有的一个开放标准(图5)。除采用SMBus传输层之外,该规范还增加了用于电源设计的控制语言。PMBus是电源公司和半导体公司互相协作的结果。
PMBus采用SMBus的1.1版本作为基础规范。然而,1.1版本并不是SMBus的当前版本。1.1版本和当前2.0版本的主要区别在于地址总线仲裁功能,该特性对电源产品来说并不是必需的,因为每个电源的地址几乎总是给出了其物理地址和系统功能。
PMBus规范的第一部分定义了常规要求、传输和电气接口以及物理层,第二部分则定义了电源业务控制器或系统主控器与电源器件之间的数据命令语言及其格式。
在PMBus规范中,PMBus IC、电源转换器、电源等都被称为“器件”。但是,单个器件不一定要求支持所有特性、功能和命令。然而,为遵守PMBus规范,器件必须满足:1)满足第一部分中的所有要求;2)支持第二部分中至少一种非制造商专用命令;3)正确执行PMBus命令代码定义的功能;4)接受、认可并执行PMBus命令,或者拒绝;5) 在电源上电时,能在不需要与其它PMBus器件通信的情况下安全启动和操作;6) 采用SMBus进行传输(有例外说明);7) 支持用于向多个PMBus器件发送命令的群组命令协议(Group Command Protocol)( 这些命令在一次传输中被接收,当器件检测到中止命令的STOP条件时,它们开始执行接收到的命令);8) 在硬件线路信号状态发生变化时作出响应(对响应时间没有要求);9) 给出可在产品文档中被设置和报告的输出电压精度和其它参数。
PMBus规范还提供制造商可能实现的一些功能(如果他们需要的话),这些功能包括:支持SMBus PEC协议;临时充当总线主控器,并与主控器通信;将它们想与主控器通信的信息通知给主控器;写保护(WP)信号输入;通过SMBus接口升级固件。
PMBus规范定义了2个必需信号和3个可选信号(图6):必需信号为时钟信号(SCL)和数据信号(SDA),可选信号为SMBALERT#、CONTROL和WP。SCL、SDA和SMBALERT#在被下拉到低电压时有效,CONTROL和WP的电压在大多数情况下与PMBus的逻辑电压相同。
SMBALERT#是一条连线或信号,它由任何需要获得PMBus主控器支持的从属器发起。当SMBALERT#有效时,主控器在PMBus上发送告警(alert)响应地址,然后每个发信号(alerting)的器件将其器件地址放在SDA上。这里有仲裁机制来管理冲突。
一旦器件成功地将其地址加入总线,它就会释放SMBALERT#线。虽然PMBus规范将该信号标为“可选”,但推荐使用这个信号,而且一些OEM要求在他们采用的器件中有这个信号。
一些系统OEM还需要CONTROL信号。CONTROL提供一种关掉支持PMBus电源的输出的快速方法。OEM很少需要用来保护数据和程序信息免遭意外修改的WP信号。
PMBus数据分组协议与SMBus协议相同,除了前者包括被称为群组命令协议(Group-Command Protocol)的扩展协议之外。这个扩展协议允许多个器件通过使用STOP位探测来同步。
在群组命令协议中,PEC字节可能被加到每条命令和数据包的末尾,后跟发送给下一个器件的重复START位和地址、命令以及数据,直至所有器件完成配置。在最后一个器件的配置数据包的末尾,STOP位被发送出去。当探测到STOP位时,所有器件都按发送的命令工作(或者说,利用CONTROL线同步多个器件)。
图6:在PMBus规范的实现中,SMBus提供主计算机或系统管理器与PMBus兼容器件之间的串行通信。 |
PMBus命令语言
PMBus命令语言提供了超过100个基本命令代码和为特定制造商及用户命令保留的代码,另外还支持基本命令的未来扩展。但大多数PMBus器件并不能执行所有PMBus命令。
因为一个器件只须支持一种核心命令以遵守PMBus规范,所以存在一些用来通知PMBus主控器有一种命令没有被支持的规范,包括响应命令代码或带有否定应答(NACK)的后续数据字节,或以ACK响应命令和数据,但随后警示主控器出现问题。这让主控器可以读取命令STATUS_BYTE以确定问题。与NACK相比,它减少了不确定性,因为NACK可以表示为“我没有听到你”、“我不能支持你”或者“我不理解你”。
PMBus规范允许工程数值能以至少两种格式进行编码:文字格式和直接格式。文字格式以伏特、安培、微秒或摄氏度等工程单位交换数据。直接方式则基于从属器的内部单位,它能降低对从器件运算能力的要求,但这是以主控器的复杂性为代价,因为主控器必须具有将主控器单位翻译成从属器单位的信息。文字格式对主控器工作量的要求最低,但它要求将从属器将内部数值转换为工程单位。
除了文字格式和直接格式,可以用被称为VID的更简单的格式来表示输出电压。尽管VID调节无法满足动态处理器电源所要求的时序(因为总线带宽太低),但VID提供了一种管理电压输出的简单途径。此外,它不要求主控器和从属器具有很高的复杂性。
下一篇:提高功放限流精度的分流稳压器
- 祛魅固态电池:一文看懂这项大火的技术