Magistrala zarządzania systemem - System Management Bus

Systemu Zarządzania Bus (w skrócie SMBus lub SMB ) jest single-ended prosty dwuprzewodowej magistrali w celu lekkiego komunikacji. Najczęściej występuje na płytach głównych komputerów do komunikacji ze źródłem zasilania w celu uzyskania instrukcji włączania / wyłączania.

Wywodzi się z I²C do komunikacji z urządzeniami o niskiej przepustowości na płycie głównej , w szczególności z układami scalonymi związanymi z zasilaniem, takimi jak podsystem akumulatorów laptopa (patrz Inteligentny system baterii ). Inne urządzenia mogą obejmować czujniki temperatury, wentylatora lub napięcia, przełączniki pokrywy, generator zegara i oświetlenie RGB. Karty rozszerzeń PCI mogą łączyć się z segmentem SMBus.

Urządzenie może dostarczyć informacje o producencie, wskazać swój model / numer części, zapisać stan na wypadek zawieszenia, zgłaszać różne typy błędów, akceptować parametry kontrolne i status zwrotu. SMBus na ogół nie jest konfigurowalny ani dostępny dla użytkownika. Chociaż urządzenia SMBus zwykle nie mogą zidentyfikować swojej funkcjonalności, nowa koalicja PMBus rozszerzyła SMBus o konwencje pozwalające na to.

SMBus została zdefiniowana przez firmę Intel oraz Duracell w roku 1994. Prowadzi zegar, dane i instrukcje i opiera się na Philipsa ' I²C protokołu magistrali szeregowej. Jego zakres częstotliwości zegara wynosi od 10 kHz do 100 kHz. (PMBus rozszerza to do 400 kHz). Jego poziomy napięcia i czasy są dokładniej zdefiniowane niż te z I²C, ale urządzenia należące do tych dwóch systemów są często z powodzeniem mieszane na tej samej magistrali.

SMBus jest używany jako połączenie międzysieciowe w kilku standardach zarządzania platformami, w tym: ASF , DASH , IPMI .

SMBus służy do uzyskiwania dostępu do informacji o konfiguracji pamięci DRAM w ramach szeregowego wykrywania obecności . SMBus stał się szeroką gamą zastosowań wyliczania systemów innych niż zarządzanie energią.

Współdziałanie SMBus / I²C

Chociaż SMBus wywodzi się z I²C, istnieje kilka głównych różnic między specyfikacjami dwóch szyn w zakresie elektryki, synchronizacji, protokołów i trybów pracy.

Elektryczny

Napięcie wejściowe ( V IL i V IH )

Podczas mieszania urządzeń specyfikacja I²C określa poziomy wejściowe na 30% i 70% napięcia zasilania V DD , które może wynosić 5 V, 3,3 V lub inną wartość. Zamiast odnosić poziomy wejściowe magistrali do V DD , SMBus definiuje je jako ustalone na 0,8 i 2,1 V. SMBus 2.0 obsługuje V DD w zakresie od 3 do 5 V. SMBus 3.0 obsługuje V DD w zakresie od 1,8 do 5 V.

Prąd opadania ( I OL )

SMBus 2.0 definiuje klasę „High Power”, która obejmuje prąd upływu 4 mA, który nie może być zasilany przez chipy I²C, chyba że rezystor podciągający jest dopasowany do poziomów magistrali I²C.

Urządzenia NXP mają zestaw charakterystyk elektrycznych o większej mocy niż SMBus 1.0. Główną różnicą jest aktualna zdolność pochłaniania przy V OL = 0,4 V.

  • Mała moc SMBus = 350 μA
  • Wysoka moc SMBus = 4 mA
  • Magistrala I²C = 3 mA

Urządzenia „dużej mocy” SMBus i urządzenia magistrali I²C będą współpracować, jeśli rezystor podciągający ma wielkość 3 mA.

Częstotliwość ( F MAX i F MIN )

Zegar SMBus jest definiowany w zakresie 10–100 kHz, podczas gdy I²C może wynosić 0–100 kHz, 0–400 kHz, 0–1 MHz i 0–3,4 MHz, w zależności od trybu. Oznacza to, że magistrala I²C działająca z częstotliwością mniejszą niż 10 kHz nie będzie zgodna z SMBus, ponieważ urządzenia SMBus mogą przekroczyć limit czasu. Wiele urządzeń SMBus obsługuje jednak niższe częstotliwości.

SMBus 3.0 dodaje prędkości magistrali 400 kHz i 1 MHz.

wyczucie czasu

  • SMBus definiuje niski limit czasu zegara, TIMEOUT wynoszący 35 ms. I²C nie określa żadnego limitu czasu.
  • SMBus określa T LOW: SEXT jako skumulowany czas wydłużenia niskiego zegara dla urządzenia podrzędnego. I²C nie ma podobnej specyfikacji.
  • SMBus określa T LOW: MEXT jako skumulowany czas wydłużenia niskiego zegara dla urządzenia nadrzędnego. I²C nie ma podobnej specyfikacji.
  • SMBus definiuje zarówno czas narastania, jak i opadania sygnałów magistrali. I²C nie.
  • Specyfikacje limitu czasu SMBus nie wykluczają niezawodnej współpracy urządzeń I²C w SMBus. Do obowiązków projektanta należy zapewnienie, że urządzenia I²C nie będą naruszać tych parametrów czasowych magistrali.

Protokoły

Użycie ACK i NACK

Istnieją następujące różnice w wykorzystaniu sygnalizacji magistrali NACK: W I²C odbiornik slave może nie potwierdzić adresu slave, jeśli na przykład nie może odbierać, ponieważ wykonuje jakieś zadanie w czasie rzeczywistym. SMBus wymaga, aby urządzenia zawsze potwierdzały swój własny adres, jako mechanizm wykrywania obecności urządzenia wymiennego na magistrali (akumulator, stacja dokująca itp.)

I²C określa, że ​​urządzenie slave, chociaż może potwierdzać swój własny adres, może po pewnym czasie podczas przesyłania zdecydować, że nie może odbierać więcej bajtów danych. I²C określa, że ​​urządzenie może to wskazać, generując komunikat braku potwierdzenia w pierwszym kolejnym bajcie.

Oprócz wskazania stanu zajętości urządzenia podrzędnego, SMBus wykorzystuje również mechanizm NACK do wskazania odbioru nieprawidłowego polecenia lub danych. Ponieważ taki stan może wystąpić na ostatnim bajcie transferu, wymagane jest, aby urządzenia SMBus miały możliwość generowania braku potwierdzenia po przesłaniu każdego bajtu i przed zakończeniem transakcji. Jest to ważne, ponieważ SMBus nie zapewnia żadnej innej sygnalizacji ponownego wysłania. Ta różnica w stosowaniu sygnalizacji NACK ma wpływ na konkretną implementację portu SMBus, zwłaszcza w urządzeniach obsługujących krytyczne dane systemowe, takich jak host SMBus i komponenty SBS.

Protokoły SMBus

Każda transakcja wiadomości w SMBus jest zgodna z formatem jednego ze zdefiniowanych protokołów SMBus. Protokoły SMBus stanowią podzbiór formatów przesyłania danych zdefiniowanych w specyfikacjach I²C. Urządzenia I²C, do których można uzyskać dostęp za pośrednictwem jednego z protokołów SMBus, są zgodne ze specyfikacjami SMBus. Urządzenia I²C, które nie stosują się do tych protokołów, nie mogą być dostępne za pomocą standardowych metod określonych w specyfikacjach SMBus oraz Advanced Configuration and Power Interface (ACPI).

Protokół rozwiązywania adresów

SMBus wykorzystuje sprzęt I²C i adresowanie sprzętowe I²C, ale dodaje oprogramowanie drugiego poziomu do budowy specjalnych systemów. W szczególności jego specyfikacje obejmują protokół rozpoznawania adresów, który umożliwia dynamiczne przydzielanie adresów. Dynamiczna rekonfiguracja sprzętu i oprogramowania pozwala na podłączenie urządzeń magistrali „na gorąco” i natychmiastowe ich użycie, bez ponownego uruchamiania systemu. Urządzenia są rozpoznawane automatycznie i otrzymują unikalne adresy. Ta zaleta skutkuje interfejsem użytkownika typu plug-and-play. W obu tych protokołach istnieje bardzo przydatne rozróżnienie między hostem systemowym a wszystkimi innymi urządzeniami w systemie, które mogą mieć nazwy i funkcje urządzeń nadrzędnych lub podrzędnych.

Funkcja limitu czasu

SMBus ma funkcję limitu czasu, która resetuje urządzenia, jeśli komunikacja trwa zbyt długo. To wyjaśnia minimalną częstotliwość taktowania 10 kHz, aby zapobiec blokowaniu magistrali. I²C może być magistralą „DC”, co oznacza, że ​​urządzenie slave rozciąga zegar nadrzędny podczas wykonywania jakiejś procedury, podczas gdy master ma do niego dostęp. To powiadomi mastera, że ​​slave jest zajęty, ale nie chce stracić komunikacji. Urządzenie slave pozwoli na kontynuację po zakończeniu zadania. W protokole I²C-bus nie ma ograniczeń co do długości tego opóźnienia, podczas gdy dla systemu SMBus byłoby ono ograniczone do 35 ms. Protokół SMBus po prostu zakłada, że ​​jeśli coś trwa zbyt długo, to oznacza, że ​​jest problem na magistrali i wszystkie urządzenia muszą się zresetować, aby wyczyścić ten tryb. Urządzenia podrzędne nie mogą wtedy zbyt długo utrzymywać zegara NISKIEGO.

Sprawdzanie błędów pakietów

SMBus 1.1 i nowsze definiują opcjonalne sprawdzanie błędów pakietów ( PEC ). W tym trybie bajt PEC (kod błędu pakietu) jest dołączany na końcu każdej transakcji. Bajt jest obliczany jako suma kontrolna CRC-8 , obliczana na podstawie całej wiadomości, w tym adresu i bitu odczytu / zapisu. Użyty wielomian to x 8 + x 2 + x + 1 ( algorytm CRC-8- ATM HEC , zainicjowany na zero).

SMBALERT #

SMBus ma dodatkowy opcjonalny współdzielony sygnał przerwania o nazwie SMBALERT #, który może być używany przez niewolników do informowania hosta, aby zapytał swoich niewolników o interesujące zdarzenia. SMBus definiuje również mniej powszechny „Host Notify Protocol”, który zapewnia podobne powiadomienia, ale przekazuje więcej danych i opiera się na trybie multi-master I²C.

Wsparcie

Urządzenia SMBus są obsługiwane przez FreeBSD , OpenBSD , NetBSD , DragonFly BSD , Linux , Windows 2000 i nowsze oraz Windows CE .

Zobacz też

Bibliografia

Zewnętrzne linki

Ten artykuł jest oparty na materiałach zaczerpniętych z Free On-line Dictionary of Computing przed 1 listopada 2008 i włączonych na warunkach „ponownego licencjonowania” GFDL , wersja 1.3 lub nowsza.