作者:Vaibhav Desai Ian Bower

在今天的互联世界中,需要频繁的软件现场更新,以改进精确度、添加功能,甚至修补漏洞。如果你希望自己看不到这些更新,就一定会喜欢这个想法——不需要软件重启或者导致任何细微的电源故障的即时更新。这个概念对于“使用中”(on the fly) 更新相对简单,而挑战在于,在固件转变过程中,保持对电源的控制。换言之,关键就是要实现无缝转换,不丢失任何信息。

TI的UCD3138系列产品使用了控制电源的全新方法。UCD3138 控制器的结构使用了可编程的数字状态机硬件,和集成式通用微控制器一起,执行快速电压/电流回路控制,完成必要的电源管理和系统通讯任务。这些先进的电源外设可以在处理器上自主运行,无需依赖速度更慢的固件决定或者复杂的共享资源时间切片。

 

1UCD3138器件方框图

UCD3138器件的拓扑支持为电压模式或者电流模式控制、半/全桥拓扑(如移相、硬开关或者谐振LLC和单相或者多相升压功率因数校正(PFC))进行了优化。你甚至还可以在峰值电流模式控制配置中操作控制器,以像移相、硬开关全桥转换器一样,保持变压器磁通平衡拓扑结构。要实现可编程斜坡补偿,你可以用同步控制转换率来斜升内部数模转换器 (DAC)。这将消除次谐波振荡,并且改进输入电压前馈性能。

执行运行中更新的主要要求就是让自主外设单独运行控制环路,并且有一个以上的闪存段来下载最新的镜像到冗余段中,以断开带电开关。这个系统中有3款器件支持运行中编程。UCD3138064, UCD3138A64UCD3138128分别包含64K,64K和128K程序闪存。

出于简化设计的考虑,我们将使用UCD3138064来描述运行中的操作。这个数字控制器提供64kB的程序闪存存储器,分为两段,每段32kB,因此能够存储2个固件镜像。固件段A代表用于电源当前(已存)固件代码的空间,而段B可代表代码所需升级版本的空间。

你可以使用这项技术从初级或次级侧来更新固件。

次级侧固件更新:

2:运行中切换固件

可使用如下2个步骤来实现次级侧的运行中升级

  1. 通过PMBus/串行外设接口 (SPI)/通用同步接收器/发射器,用来自主机的全新固件来编辑块2
  2. 从块A到块B断开并执行一个“带电切换”的操作

如需了解更多信息,请观看这个视频

初级侧固件更新:

还可以在初级侧和次级侧上执行带电切换。

3:初级和次级带电固件更新

可使用下方指定的步骤来实现针对初级侧的运行中升级

  1. 将全新的初级镜像由主机下载至次级控制器块B
  2. 来自次级的数字电源控制器将把与更新镜像相关的信息通知初级侧
  3. 初级侧电源控制器准备一个带电切换
  4. 次级控制器将镜像下载至初级电源控制器
  5. 初级控制器级执行切换,并通知次级控制器
  6. 次级将成功切换的消息通知给主机。

应用优势

在服务器应用中,“运行中更新”免除了对于关断的需要,使用“热插拔”,或者由于固件相关问题或任何特性升级需要更换电源,这样做会中断系统运行。这就减少了服务器数据中心的停机时间,而这个问题往往由电源固件的升级而导致。

4:基于UCD3138064的数控离线AC/DC电源

数据清理是一项使用后台任务来定期检查主存储器或内存错误的纠错技术,在发现错误后,这项技术使用具有不同校验和或数据备份形式的冗余数据来校正检测到的错误。数据清理降低了单个可校正错误出现累积情况的可能性,从而降低了不可校正错误出现的风险。UCD3138064器件架构所支持的运行中操作的功能使数据清理的实现变得轻松而简便。  

5UCD3138064上的存储器清理

如需获得全部TI数字电源产品和解决方案,敬请访问ti.com/digitalpower

[1]    数字电源控制器实现了“运行中”固件升级 – 2013年4月 

原文链接:

https://e2e.ti.com/blogs_/b/powerhouse/archive/2015/03/17/don-t-brick-my-supply

Anonymous