PMBus - otwarty standard cyfrowego zarządzania zasilaniem

| Technika

Potrzeba cyfrowego sposobu zarządzania zasilaniem na skutek szeregu powiązanych ze sobą czynników w ostatnich latach stała się bardziej dojmująca. Liczni projektanci przerzucili się na architekturę pośrednich magistrali zasilania, stosując na płytkach wiele przetworników DC-DC i liczne linie zasilania o różnych napięciach, wymaganych przez różne układy scalone.

PMBus - otwarty standard cyfrowego zarządzania zasilaniem

Oczywistą tego konsekwencją jest znaczna komplikacja w konfigurowaniu, kontrolowaniu i monitorowaniu tych zasilaczy w czasie projektowania, testowania w produkcji i codziennego z nich korzystania. Proste sterowanie sekwencjami włączania i wyłączania zasilania wymaga specjalizowanych programowalnych układów scalonych i sporej liczby dodatkowych komponentów, nie mówiąc o ich konfigurowaniu i sprzęganiu zwrotnym w czasie rzeczywistym, niezbędnych do giętkiego sterowania i diagnozowania z poziomu systemu.

Większość nowoczesnych przetworników DC-DC nadal jest konfigurowanych i sterowanych za pośrednictwem analogowych sygnałów poprzez zwykłe elementy bierne. Nawet w wyszukanych przetwornikach o wysokiej funkcjonalności i o najnowszych rozwiązaniach przetwarzania, do dobierania czasu rozruchu, punktu pracy, czy częstotliwości przełączania, stosuje się zewnętrzne rezystory i kondensatory regulacyjne. I oczywiście żaden z tych parametrów nie może zostać łatwo zmieniony w locie, co uniemożliwia realizację przystosowawczych, a zatem przewidywalnych, systemów zarządzania zasilaniem.

Za wyjątkiem kilku wyspecjalizowanych przetworników dla mikroprocesorów, większość przetworników „cegiełkowych”, przetworników magistrali pośrednich i przetworników POL jest ciągle sterowanych w domenie analogowej. Najbardziej są potrzebne sterowane cyfrowo nieizolowane przetworniki POL, one bowiem są szeroko używane do dostarczania docelowych napięć na płytce. Ale potrzebne są również i przetworniki izolowane, a projektanci niewątpliwie dorzucą do tego zapotrzebowania także inne rodzaje zasilaczy programowalnych cyfrowo. Powód tego zamieszania jest prosty. Do dziś nie ma w przemyśle zgody, co do sposobu cyfrowego zarządzania zasilaniem. Szereg producentów zasilaczy wypuściło cyfrowo programowalne przetworniki POL, co w pewnym sensie idzie we właściwym kierunku, opierają się one jednak na firmowych architekturach i układach.

Mimo, że w sensie koncepcyjnym systemy cyfrowego sterowania zasilaniem są podobne, różną się szczegółami komunikacji i protokołów i są wzajemnie niekompatybilne. Producenci walczą o rynek i starają się narzucić własne rozwiązanie, często określając go jako „standard”, starają się patentować opracowane technologie i siłują się z konkurencją za pomocą sztabu prawników. W artykule opisujemy jedno z bardziej znaczących na rynku rozwiązań cyfrowego sterowania opracowane przez firmę Artesyn Technologies. Jest ono konkurencyjne do architektury Z-one firmy Power One, rozwiązań firmy Vicor i kilku innych.

Co to naprawdę jest PMBus?

Rys. 1. Protokół PMBus specyfikuje linie zegarową, danych i przerwań, jak w standardzie SMBus, i dodaje dwa sygnały sprzętowe - sygnał sterujący do włączania i wyłączania poszczególnych urządzeń podległych, oraz opcjonalny sygnał ochrony zapisu, zapobiegający zmianom danych przechowywanych w pamięci.

PMBus jest protokołem cyfrowego zarządzania zasilaniem otwartej normy (standardu) z językiem w pełni zdefiniowanych poleceń, transportem i fizycznym interfejsem. Protokół ten ułatwia łączność z przetwornikami napięć i innymi układami. Został on opracowany przez koalicję producentów zasilaczy i półprzewodników, którzy doszli do wniosku, że brak odpowiedniej normy uniemożliwia przyjęcie całkowicie cyfrowego systemu zarządzania zasilaniem. Protokół ten obecnie szybko zyskuje w przemyśle akceptację. Wersja 1.0 protokołu została podana do publicznej wiadomości w marcu 2005, a prawa do jego własności przekazano specjalnej grupie interesów (SIG), nazwanej System Management Interface Forum, która jest obecnie odpowiedzialna za dalszy rozwój i promocję tej normy.

Warto tu dodać, że PMBus nie jest normą dla zasilaczy AC/DC ani przetworników DC-DC. Nie specyfikuje ona współczynnika kształtu, ani rozkładu wyprowadzeń, o których lepiej decydują takie stowarzyszenia przemysłowe jak POLA, czy DOSA ani nie kieruje łącznością pomiędzy jednym zasilaczem a drugim – za to odpowiadają producenci zasilaczy i półprzewodników.

Tani sposób sterowania w czasie rzeczywistym

Rys. 2. W znormalizowanej w PMBus sekwencji łączności nadrzędnego urządzenia z podrzędnym, podrzędne przetwarza i wykonuje polecenie natychmiast po otrzymaniu bitu

Warstwa transportowa PMBus została oparta na wersji 1.1 magistrali System Management Bus (SMBus), która jest odporniejszą wersją przemysłowej magistrali szeregowej I2C ze sprawdzaniem błędów pakietu i awizowaniem hosta. Magistrala I2C została początkowo opracowana przez Philipsa do łączności pomiędzy układami scalonymi, a SMBus przez Intela do łączności w zarządzaniu systemowym w komputerach i serwerach.

W SMBus jest trzecia linia, sygnałowa, SMBAlert, która pozwala takim układom podrzędnym jak przetworniki POL, dokonywać przerwań u hosta systemowego układu nadrzędnego. Takie rozwiązanie jest wewnętrznie bardziej elastyczne od systemu, w którym układ nadrzędny nieustannie odpytuje urządzenia podrzędne. Rozwiązanie to znacznie mniej obciąża procesor hosta, co ułatwia projektantom realizowanie układów sterujących z zamkniętą pętlą, wyzwalanych zdarzeniami. Ponadto protokół PMBus wymaga, aby we wszystkich urządzeniach podległych standardowe dane konfiguracyjne albo były przechowywane w nieulotnej pamięci, albo były zaprogramowane wyprowadzeniami, aby rozruch tych urządzeń mógł się odbywać bez żadnej łączności z magistralą. Czasy rozruchu są zatem znacznie krótsze niż w innych rozwiązaniach sterowania cyfrowego, w których główna magistrala konfiguruje wszystkie urządzenia podrzędne w ramach procedury inicjalizacji rozruchu.

Fizyczny adres każdego urządzenia podległego jest definiowany za pomocą specjalnych wyprowadzeń. Producenci układów półprzewodnikowych zapewniają zaoferowanie różnych innowacji, jak wyprowadzenia trójstanowe i programowanie rezystancją rezystorów. W protokole SMBus oprócz linii zegarowej, danych i przerwań, są zdefiniowane dwa sygnały sprzętowe do użytku z przetwornikami zasilania. Jednym jest sygnał sterujący, używany w połączeniu z poleceniami otrzymanymi magistralą, do włączania i wyłączania poszczególnych układów podrzędnych. Drugim jest opcjonalny sygnał ochrony zapisu, używany do zapobiegania jakimkolwiek zmianom danych przechowywanych w pamięci. Często sygnał sterujący jest wysyłany przez kontrolera systemu zasilania. Zamiast tego wyprowadzenia te mogą na stałe otrzymać, zgodnie z potrzebą, stan wysoki lub niski.

Typowa realizacja PMBusa jest pokazana na rys. 1. W PMBus używa się realizowanych sumacyjnie (AND) połączeń wszystkich urządzeń w magistrali, aby uzyskać arbitraż na wypadek sprzeczności w magistrali, elektrycznie podobnie jak magistrali I2C.

Wyraźną zaletą PMBus jest to, że urządzenie nadrzędne nie jest oparte na firmowych rozwiązaniach układów scalonych i nie działa jak translator. Cała łączność pomiędzy hostem i zasilaczami dokonuje się całkowicie przez magistralę. Oszczędza to kosztów realizacji i zapewnia znacznie elastyczniejszy sposób sterowania. Hostem może być istniejący procesor systemu, tani uniwersalny mikrokontroler, a nawet trochę bramek w FPGA. Oczywiście w różnych stadiach opracowywania systemu hosty mogą być różne. Na przykład w fazie projektowania płytki drukowanej jako host może być użyty laptop, następnie w czasie testów produkcyjnych rolę tę może przejąć automatyczne urządzenie testujące, wyczerpująco sprawdzające właściwości płytki, a w razie potrzeby dynamicznie zmieniające parametry pracy poszczególnych przetworników napięcia, aby je dostosować do potrzeb układów scalonych na płytce. Końcowe parametry, wybrane w czasie testów, są zapisywane w nielotnej pamięci układu podrzędnego.

Prosty język poleceń

Rys. 3. Do ustalenie napięcia wyjściowego przetwornika POL jest potrzebna seria poleceń PMBus.

Łączność w magistrali PMBus opiera się na prostych poleceniach. Każdy pakiet zawiera bajt adresu, bajt polecenia, zero, jeden lub kilka bajtów danych i opcjonalny kod błędu pakietu (PEC). Na rys. 2 pokazano typowy przekaz informacji hosta do układu podrzędnego. Układ nadrzędny używa pojedynczych stanów „start” i „stop”, do oznaczenia początku i końca procedury, a adresowany układ podrzędny używa pojedynczego bitu do potwierdzenia odbioru każdego bajta. Dla skrócenia czasu odpowiedzi i narzutu procesora, układ podrzędny wykonuje polecenie natychmiast po otrzymaniu bita „stop”, nie czekając, jak w protokołach innych magistrali, na oddzielne polecenie „wykonaj”.

Chociaż jednobajtowy kod poleceń protokołu sugeruje możliwość stosowania aż 256 poleceń, to urządzenia PMBus nie muszą używać ich tylu, i w praktyce często osiąga się zamierzony cel używając tylko małego ich podzbioru,. Dużą uwagę przywiązywano do „przyszłego sprawdzania się” normy. Zarezerwowano dwa przedłużenia polecenia, pozwalające na użycie poleceń praktycznie dwubajtowych. Jedno z nich jest zarezerwowane na użytek własny producenta układu, a drugie pozostawiono dla późniejszych wersji protokołu.

PMBus charakteryzuje się znaczną elastycznością. W niniejszym krótkim artykule nie ma miejsca na wyliczenie ponad 100 poleceń udostępnionych opracowującym przetworniki napięcia i systemy zasilające. Istnieje szereg poleceń do ustalania napięć wyjściowych, a także poleceń ustalających poziomy ostrzegawcze i poziomy błędów napięć wejściowych i wyjściowych, prądów wejściowych i wyjściowych, temperatury i innych parametrów. Oprócz tego mogą zostać zaprogramowane sposoby, w jakie układ odpowiada na poszczególne stany błędne, na przykład natychmiastowe wyłączenie lub tryb drobnej usterki.

Istnieją także polecenia wywoływania bitów statusu, czy odczytu takich danych jak napięcie wyjściowe lub temperatura układu. Są również polecenia ustalania przeplotu dla przetworników równoległych, zapewniania programowej blokady przypadkowych zmian danych, konfigurowania sposobu odpowiadania układów na polecenia włączenia i wyłączenia, otrzymywane z portu SMBus i końcówki Control oraz kolejności otwierania i zamykania. Istnieją także polecenia do zapisywania i odczytu informacji inwentaryzacyjnych, jak identyfikator producenta, numer modelu, numer seryjny i kod daty.

Chociaż następujące dalej przykłady będą dotyczyły przetworników POL, to trzeba zwrócić uwagę na uniwersalność PMBus, który może być używany do wszystkich rodzajów zasilaczy i przetworników DC-DC. Szeroki wachlarz poleceń pozwala konfigurować, sterować i monitorować uniwersalne przetworniki miejsc obciążenia (POL), zasilane przez mikroprocesor VRM, standardowe izolowane przetworniki DC-DC, przetworniki magistrali i zasilacze AC-DC. Elastyczność PMBus pozwala nawet używać go do prostowników w akumulatorniach telefonicznych.

Rys. 4. Sekwencja podniesienia i obniżenia napięcia wyjściowego wymaga tylko czterech poleceń PMBus.

Procedura ustalania napięcia wyjściowego zaczyna się od trzech podstawowych poleceń: Vout_Command, Vout_Margin_High i Vout_Margin_Low. Każde z tych poleceń ustala wartość, która zostaje zapisana w rejestrze pamięci urządzenia PMBus. Jedna z tych trzech wartości jest wybierana poleceniem Operation i przekazywana do ostatecznego przetworzenia w polecenie napięcia wyjściowego. Następnym krokiem jest dodanie do wyjścia multipleksera koncepcyjnego wartości z rejestru Vout_Trim.

Wartość ta jest uzupełnieniem dwójkowym, które może być dodawane do lub odejmowane od wartości z multipleksera koncepcyjnego. Wartość z rejestru Vout_Trim zazwyczaj jest używana przez użytkownika do dobierania napięcia wyjściowego, gdy przetwornik POL zostanie wmontowany do systemu użytkownika. Może być użyta, na przykład, do dobrania napięcia na doprowadzeniach układu scalonego krytycznego układu scalonego w celu optymalizacji jego właściwości.

Następnie zostaje dodana wartość z rejestru Vout_Cal. Jest ona także uzupełnieniem dwójkowym, i może zostać dodana do lub odjęta od wartości polecenia napięcia. Wartość z rejestru Vout_Cal jest zwykle używana przez producenta przetwornika POL do regulacji jego napięcia w wytwórni.

Jeżeli napięcie wyjściowe przetwornika POL ma charakterystykę opadającą, efekt ten uwzględnia się teraz. Współczynniki Vout_Droop są zawsze większe od lub równe zeru, a spadek napięcia jest uwzględniany tylko wtedy, gdy prąd wyjściowy jest większy od zera. Wartość współczynnika Vout_Droop i natężenie prądu wyjściowego są mnożone przez siebie, a wynik odejmowany od polecenia napięcia. Vout_Droop może jedynie zmniejszyć napięcie wyjściowe, a nigdy zwiększyć.

Rys. 5. Testowanie marginesu napięcia jest sterowane tylko jednym poleceniem PMBus.

Następnym krokiem jest porównanie nakazanego napięcia z maksymalnym dopuszczalnym napięciem wyjściowym, podanym poleceniem Vout_Max. Jeżeli napięcie obliczone okaże się większe od Vout_Max, to przetwornik POL ograniczy napięcie do Vout_Max i wyśle sygnał alarmu.

Ten sam współczynnik skalowania, który dzielnikiem rezystorowym został zastosowany do zewnętrznego napięcia wyjściowego, jest teraz stosowany do polecenia obliczenia napięcia. Dokonuje się tego przez pomnożenie napięcia obliczonego przez Vout_Scale_Loop. W tym punkcie przetwornik ma napięcie obliczone, które zostaje użyte jako odpowiednik napięcia wzorcowego w standardowym stabilizatorze analogowym. Jest to napięcie, z którym sygnał z dzielnika rezystywnego z wyjścia jest porównywany w celu dobrania współczynnika wypełnienia PWM w POL.

Do dobierania napięcia wyjściowego i związanych z nim poleceń, jak poziom błędu nadnapięciowego, PMBus dopuszcza rozdzielczość 16 bitów. Dla innych danych, jak odczytanie napięcia wejściowego, lub natężenia prądu wyjściowego, specyfikacja PMBus dopuszcza rozdzielczość 10 bitów. Wartość ta odpowiada ±0,05%, co jest w większości przypadków więcej niż wystarczające.

Rys. 3 pojęciowo przedstawia sposób, w jaki polecenia te są używane. Praktyczna ich realizacja jest pozostawiana producentowi przetworników POL, ale ogólne zachowanie urządzenia musi być takie, jak przedstawiono.

Łatwość realizacji

Bogaty zestaw poleceń protokołu PMBus pozwala projektantom pisać krótkie i wydajne programy do zarządzania zasilaniem oraz łatwo i szybko realizować układy. Sekwencjonowanie napięcia przetworników POL dostarcza idealnego przykładu. Do dziś wielu projektantów wybierało użycie jednego z kilku doskonałych specjalnych scalonych kontrolerów przeznaczonych, do tego celu, godząc się z koniecznością opracowywania programów z użyciem oprogramowania dostarczanego przez producentów układów scalonych i przyznawaniem tym układom cennej powierzchni płytki. Przetworniki, które mogą być sterowane bezpośrednio przez PMBus, potencjalnie oferują rozwiązanie tańsze i bardziej elastyczne, umożliwiające zmienianie szerokiego zakresu parametrów pracy w dowolnym punkcie w całym cyklu życia produktu, dostosowując je do zmian technicznych.

Do sterowania sekwencji rozruchu przetwornika POL są potrzebne tylko dwa polecenia PMBus, jak pokazuje rys. 4. Ton_Delay programuje czas, przez który po otrzymaniu sygnału sterującego przetwornik wstrzymuje się z rozpoczęciem dostarczania napięcia wyjściowego, a Ton_Rise programuje czas, przez który napięcie wyjściowe narasta od zera do końcowej, zaprogramowanej, wartości. Użytkownik po prostu programuje dla każdego przetwornika indywidualnie czas opóźnienia i czas narastania. Analogicznie, tylko dwa polecenia są potrzebne do sekwencji wyłączania (Toff_Delay, Toff_Fall).

Sprawdzanie marginesu napięciowego (Voltage Margining) jest innym obszarem, na którym cyfrowo programowalne przetworniki ułatwią życie projektantom i personelowi testującemu produkcję. Wielu producentów płytek używa dziś tej techniki do oceny wpływu niewielkich zmian napięcia zasilającego układy scalone na ich właściwości. Każdy niemieszczący się w marginesie i niespełniający wszystkich kryteriów układ może zostać wtedy wymieniony w ramach normalnego procesu testowania produkcyjnego, zanim mógłby przyczynić się do powstania trudnej do usunięcia awarii już w działaniu.

Do chwili obecnej testowanie marginesów było procedurą w dużym stopniu iteracyjną i czasochłonną, obejmującą wymianę rezystorów w przetwornikach DC-DC na inne, w celu zmiany ich napięcia wyjściowego o kilka procent w jedną lub drugą stronę od nominalnego. Przetworniki POL zgodne z PMBus upraszczają ten proces dwoma poleceniami: Vout_Margin_High i Vout_Margin_Low. Na rys. 5 pokazano, jak każdy przetwornik może otrzymać polecenie dostarczenia ściśle kontrolowanego napięcia testującego, czego skutki w płytce są monitorowane. Może to znacznie skrócić czas testowania produkcyjnego, pomóc w eliminowaniu niejednoznaczności i dostarczyć jasno udokumentowanych wyników testu.

Czasy T1 i T2 są określane z użyciem polecenia Vout_Transition_Rate, szybkości zmiany zdefiniowanej w mV/s. Zatem:

Nadając Vout_Transition_Rate wartość FFFFh uzyskuje się możliwie największą szybkość zmiany.

Więcej informacji o warstwie transportowej protokołu cyfrowego zarządzania zasilaniem otwartego standardu PMBus można znaleźć w witrynie forum System Management Interface www.powerSIG.com. (KKP)