數字電源控制和管理以及PMBus編程
本文主要討論脈沖寬度調制(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提供了一種管理電壓輸出的簡單途徑。此外,它不要求主控器和從屬器具有很高的復雜性。
pid控制器相關文章:pid控制器原理
評論