【導讀】在今天的互聯(lián)世界中,需要頻繁的軟件現(xiàn)場更新,以改進精確度、添加功能,甚至修補漏洞。更新相對簡單,而挑戰(zhàn)在于,在固件轉(zhuǎn)變過程中,保持對電源的控制。換言之,關鍵就是要實現(xiàn)無縫轉(zhuǎn)換,不丟失任何信息。
在今天的互聯(lián)世界中,需要頻繁的軟件現(xiàn)場更新,以改進精確度、添加功能,甚至修補漏洞。如果你希望自己看不到這些更新,就一定會喜歡這個想法——不需要軟件重啟或者導致任何細微的電源故障的即時更新。這個概念對于“使用中”(on the fly) 更新相對簡單,而挑戰(zhàn)在于,在固件轉(zhuǎn)變過程中,保持對電源的控制。換言之,關鍵就是要實現(xiàn)無縫轉(zhuǎn)換,不丟失任何信息。
TI的UCD3138系列產(chǎn)品使用了控制電源的全新方法。UCD3138 控制器的結構使用了可編程的數(shù)字狀態(tài)機硬件,和集成式通用微控制器一起,執(zhí)行快速電壓/電流回路控制,完成必要的電源管理和系統(tǒng)通訊任務。這些先進的電源外設可以在處理器上自主運行,無需依賴速度更慢的固件決定或者復雜的共享資源時間切片。
圖1:UCD3138器件方框圖
UCD3138器件的拓撲支持為電壓模式或者電流模式控制、半/全橋拓撲(如移相、硬開關或者諧振LLC和單相或者多相升壓功率因數(shù)校正 (PFC))進行了優(yōu)化。你甚至還可以在峰值電流模式控制配置中操作控制器,以像移相、硬開關全橋轉(zhuǎn)換器一樣,保持變壓器磁通平衡拓撲結構。要實現(xiàn)可編程斜坡補償,你可以用同步控制轉(zhuǎn)換率來斜升內(nèi)部數(shù)模轉(zhuǎn)換器 (DAC)。這將消除次諧波振蕩,并且改進輸入電壓前饋性能。
執(zhí)行運行中更新的主要要求就是讓自主外設單獨運行控制環(huán)路,并且有一個以上的閃存段來下載最新的鏡像到冗余段中,以斷開帶電開關。這個系統(tǒng)中有3款器件支持運行中編程。UCD3138064, UCD3138A64和UCD3138128分別包含64K,64K和128K程序閃存。
出于簡化設計的考慮,我們將使用UCD3138064來描述運行中的操作。這個數(shù)字控制器提供64kB的程序閃存存儲器,分為兩段,每段32kB,因此能夠存儲2個固件鏡像。固件段A代表用于電源當前(已存)固件代碼的空間,而段B可代表代碼所需升級版本的空間。
你可以使用這項技術從初級或次級側(cè)來更新固件。
次級側(cè)固件更新:
圖2:運行中切換固件
可使用如下2個步驟來實現(xiàn)次級側(cè)的運行中升級
通過PMBus/串行外設接口 (SPI)/通用同步接收器/發(fā)射器,用來自主機的全新固件來編輯塊2
從塊A到塊B斷開并執(zhí)行一個“帶電切換”的操作
如需了解更多信息,請觀看這個視頻。
初級側(cè)固件更新:
還可以在初級側(cè)和次級側(cè)上執(zhí)行帶電切換。
圖3:初級和次級帶電固件更新
可使用下方指定的步驟來實現(xiàn)針對初級側(cè)的運行中升級
1.將全新的初級鏡像由主機下載至次級控制器塊B
2.來自次級的數(shù)字電源控制器將把與更新鏡像相關的信息通知初級側(cè)
3.初級側(cè)電源控制器準備一個帶電切換
4.次級控制器將鏡像下載至初級電源控制器
5.初級控制器級執(zhí)行切換,并通知次級控制器
6.次級將成功切換的消息通知給主機。
應用優(yōu)勢
在服務器應用中,“運行中更新”免除了對于關斷的需要,使用“熱插拔”,或者由于固件相關問題或任何特性升級需要更換電源,這樣做會中斷系統(tǒng)運行。這就減少了服務器數(shù)據(jù)中心的停機時間,而這個問題往往由電源固件的升級而導致。
圖4:基于UCD3138064的數(shù)控離線AC/DC電源
數(shù)據(jù)清理是一項使用后臺任務來定期檢查主存儲器或內(nèi)存錯誤的糾錯技術,在發(fā)現(xiàn)錯誤后,這項技術使用具有不同校驗和或數(shù)據(jù)備份形式的冗余數(shù)據(jù)來校正檢測到的錯誤。數(shù)據(jù)清理降低了單個可校正錯誤出現(xiàn)累積情況的可能性,從而降低了不可校正錯誤出現(xiàn)的風險。UCD3138064器件架構所支持的運行中操作的功能使數(shù)據(jù)清理的實現(xiàn)變得輕松而簡便。
圖5:UCD3138064上的存儲器清理