設(shè)計(jì)數(shù)字電源:如何編寫固件
我以德州儀器 (TI) 的UCD3138為例介紹了如何設(shè)計(jì)數(shù)字電源 ,并重點(diǎn)介紹了硬件設(shè)計(jì)。在本期中,我將解釋如何編寫固件以使其工作。
固件
與模擬電源轉(zhuǎn)換器設(shè)計(jì)通過硬件控制一切不同,固件是數(shù)字控制的“靈魂”;幾乎所有主要功能都是通過代碼實(shí)現(xiàn)的。由于代碼受到實(shí)時(shí)限制,中央處理器 (CPU) 帶寬有限,因此具有組織良好的固件結(jié)構(gòu)非常重要。
我們可以將 CPU 處理的任務(wù)分為兩類:時(shí)間關(guān)鍵型和非時(shí)間關(guān)鍵型。時(shí)間關(guān)鍵任務(wù)包括 ADC 測(cè)量、環(huán)路控制、系統(tǒng)保護(hù)和狀態(tài)機(jī)。非時(shí)間關(guān)鍵任務(wù)通常包括 PMBus/通用異步接收器/發(fā)送器 (UART) 通信、故障記錄等。
基于這兩類,固件分為兩個(gè)主要部分:中斷循環(huán),處理時(shí)間關(guān)鍵的任務(wù);以及處理非時(shí)間關(guān)鍵任務(wù)的后臺(tái)循環(huán)。圖 1 說明了固件結(jié)構(gòu):
圖 1:固件結(jié)構(gòu)
后臺(tái)循環(huán)的框圖很簡(jiǎn)單:系統(tǒng)初始化后,CPU進(jìn)入無限循環(huán)。所有非時(shí)間關(guān)鍵的任務(wù)都在這個(gè)循環(huán)中執(zhí)行。同時(shí),定時(shí)器會(huì)產(chǎn)生固定頻率的中斷。如果任何時(shí)候有中斷,CPU 會(huì)停止它正在做的事情,存儲(chǔ)所有相關(guān)數(shù)據(jù)并跳轉(zhuǎn)到中斷程序。一旦中斷例程完成,CPU 就會(huì)回到后臺(tái)循環(huán)并從它停止的地方繼續(xù)。
中斷循環(huán)更復(fù)雜。它測(cè)量 ADC 輸入、控制轉(zhuǎn)換器并負(fù)責(zé)系統(tǒng)保護(hù)。中斷循環(huán)的關(guān)鍵部分是狀態(tài)機(jī),它指示轉(zhuǎn)換器的當(dāng)前狀態(tài),轉(zhuǎn)換器在這個(gè)狀態(tài)下需要做什么,轉(zhuǎn)換器接下來應(yīng)該做什么。圖 2 是一個(gè)簡(jiǎn)單的狀態(tài)機(jī)示例:
圖 2:狀態(tài)機(jī)圖
CPU 繼續(xù)監(jiān)視輸入電壓。一旦輸入電壓超過預(yù)定義閾值,轉(zhuǎn)換器就會(huì)開啟并開始執(zhí)行軟啟動(dòng),而輸出電壓會(huì)線性增加,直到達(dá)到設(shè)定點(diǎn)。一旦輸出電壓達(dá)到該設(shè)定點(diǎn),轉(zhuǎn)換器就會(huì)進(jìn)入調(diào)節(jié)模式,它將一直停留到發(fā)生故障或被命令關(guān)閉。如果在任何時(shí)候發(fā)生故障,轉(zhuǎn)換器將關(guān)閉并鎖定,除非被命令重新啟動(dòng)。
使用圖形用戶界面
TI 的 Fusion Digital Power Designer 圖形用戶界面 (GUI) 簡(jiǎn)化了由UCD3138控制的電源轉(zhuǎn)換器設(shè)計(jì)。通過 PMBus 與 GUI 對(duì)話,我們可以實(shí)時(shí)監(jiān)控電源運(yùn)行狀態(tài)、配置運(yùn)行參數(shù)和調(diào)整控制回路。
GUI 支持最流行的拓?fù)浣Y(jié)構(gòu),包括 PFC、LLC 和相移全橋。不同的拓?fù)鋵⒂胁煌?GUI 界面。固件中的設(shè)置 ID 告訴 GUI 拓?fù)涫鞘裁矗员闼蜷_一個(gè)接口來適應(yīng)該拓?fù)?。圖 3 顯示了 PFC 轉(zhuǎn)換器的 GUI:
Figure 3: UCD3138 GUI
溝通
數(shù)字控制器可以監(jiān)控轉(zhuǎn)換器并與主機(jī)通信;反過來,主機(jī)可以向轉(zhuǎn)換器發(fā)送命令,以執(zhí)行諸如輸出電壓調(diào)整、上電排序、遠(yuǎn)程開/關(guān)控制等任務(wù)。在隔離式 AC/DC 應(yīng)用中,PFC 后跟隔離式 DC /DC轉(zhuǎn)換器,UART用于PFC與DC/DC之間的通信,PMBus用于DC/DC與負(fù)載/主機(jī)之間的通信,如圖4所示。
圖 4:隔離 AC/DC 系統(tǒng)中的通信
對(duì)于PFC和DC/DC之間的UART通信,目前還沒有行業(yè)標(biāo)準(zhǔn)協(xié)議;但是,UCD3138團(tuán)隊(duì)已經(jīng)開發(fā)了一個(gè)完整的主/次通信協(xié)議示例,可供使用。
希望現(xiàn)在我們對(duì)如何設(shè)計(jì)數(shù)字控制電源有了大致的了解。盡管我在本系列中給出的設(shè)計(jì)示例基于升壓轉(zhuǎn)換器,但同樣的設(shè)計(jì)原則也適用于其他拓?fù)?。功率?jí)與模擬解決方案相同,但控制實(shí)現(xiàn)不同:一個(gè)是通過代碼實(shí)現(xiàn),可以動(dòng)態(tài)改變,另一個(gè)是硬件實(shí)現(xiàn),是固定的。固件開發(fā)在數(shù)字轉(zhuǎn)換器設(shè)計(jì)中需要大量工作。編寫代碼對(duì)模擬工程師來說可能是一個(gè)挑戰(zhàn),但是一旦你習(xí)慣了它,你就會(huì)享受到數(shù)字電源的優(yōu)勢(shì)。