SMBus: działanie, różnice i jego zastosowania

Wypróbuj Nasz Instrument Do Eliminowania Problemów





SMBus został uruchomiony w 1995 roku przez firmę Intel i jest oparty na protokole magistrali szeregowej I²C firmy Philips. Ta magistrala przenosi dane, CLK i instrukcje, gdzie częstotliwość zegara waha się od 10 kHz do 100 kHz. Główną intencją SMBus jest umożliwienie niedrogiej i wydajnej metody kontrolowania i pobierania danych z urządzeń na płycie głównej. SMBus jest zwykle używany w komputerach PC do kontroli temperatury, inteligentnych baterii i innej komunikacji zarządzania systemem o niskiej przepustowości.


Ta magistrala identyfikuje łącze komunikacyjne między ładowarką, inteligentną baterią i mikrokontrolerem, który komunikuje się z resztą systemu. Jednak SMBus jest również używany do łączenia różnych urządzeń, takich jak czujniki systemowe, urządzenia związane z zasilaniem, urządzenia komunikacyjne, inwentaryzacyjne pamięci EEPROM itp. W tym artykule omówiono omówienie SMBus – praca z aplikacjami.



Co to jest protokół SMBus?

SMBus (magistrala zarządzania systemem) to 2-przewodowy interfejs, często używany między różnymi urządzeniami na płycie głównej w celu powolnej komunikacji zarządzania systemem. Ten rodzaj autobusu został zaprojektowany przez Protokół I2C podwaliny. Tak więc zarówno I2C, jak i SMBus mogą mieć pewne podobieństwa i mogą również współpracować na podobnej magistrali.

Ta magistrala działa na zasadach działania I2C, które zapewniają magistralę kontrolną, szczególnie dla systemu, aby umożliwić przesyłanie komunikatów do lub z urządzeń, zamiast używać oddzielnych linii sterujących w celu zmniejszenia liczby przewodów i pinów systemowych.



Urządzenie wyposażone w magistralę SMBus może dostarczać informacji o produkcji, informować system o numerze części lub modelu, zgłaszać różnego rodzaju błędy, umożliwiać kontrolę parametrów i ponownie sprawdzać swoje położenie.

Specyfikacja SMBus

Specyfikacja SMBus odnosi się po prostu do 3 rodzajów urządzeń host, master i slave.

  • Host jest konkretnym urządzeniem nadrzędnym i zapewnia główny interfejs do procesora systemu.
  • Urządzenie nadrzędne, które wydaje instrukcje, generuje zegary i kończy transfer.
  • Urządzenie slave odbiera w inny sposób reaguje na polecenie.

Jak działa SMBus?

Istnieją 3 rodzaje urządzeń używanych w komunikacji SMBus, takie jak host, urządzenie nadrzędne i urządzenie podrzędne, które pokazano na poniższym schemacie. W tej magistrali urządzenie hosta jest specyficznym głównym interfejsem roboczym do procesora systemu; jednak nie zawsze jest to konieczne. Niektóre systemy, takie jak proste systemy ładowania akumulatorów, mogą być pozbawione hosta.

Urządzenie nadrzędne rozpoczyna komunikację, steruje CLK i zatrzymuje transmisję. Urządzenie może być po prostu nadrzędne lub nadrzędne podrzędne, gdzie może pracować jako urządzenie nadrzędne lub jako urządzenie podrzędne.

  Schemat SMBus
Schemat SMBus

W SMBus istnieje również ponad jeden master, jednak w danym momencie tylko jeden może masterować magistralę. Na przykład, gdy dwa urządzenia jednocześnie przejmują kontrolę nad magistralą, wówczas SMBus zapewnia mechanizm arbitrażu, który po prostu zależy od połączenia przewodowego ORAZ wszystkich interfejsów urządzenia SMBus do SMBus.

Urządzenia Slave reagują na jego adres oraz polecenia i mogą przesyłać i odbierać dane zi do urządzenia nadrzędnego. Urządzenie można wybrać całkowicie jako urządzenie podrzędne, w przeciwnym razie w niektórych przypadkach możliwe jest, aby urządzenie podrzędne pracowało jako urządzenie nadrzędne.

Podobnie jak w przypadku protokołu I2C, każdemu urządzeniu podrzędnemu na tej magistrali przydzielany jest siedmiobitowy adres urządzenia podrzędnego, w którym bit odczytu lub zapisu jest dołączany do tego adresu, aby opisać, czy urządzenie odczytuje lub zapisuje wiadomość przesyłaną na magistrali.

Urządzenia są niezbędne do rozpoznania własnego adresu, dlatego gdy urządzenie zidentyfikuje swój adres, zareaguje na polecenie.

Gdy adres slave tej magistrali jest w konflikcie, obsługuje ona protokół ARP lub Address Resolution Protocol. Gdy host zauważy dwa urządzenia o podobnym adresie slave, procedura protokołu rozwiązywania adresów przypisze dynamicznie nowy unikalny adres do urządzeń slave. Protokół rozpoznawania adresów pozwoli na natychmiastowe wykorzystanie urządzeń bez konieczności ponownego uruchamiania systemu.

Ta magistrala wykorzystuje 2 przewody do komunikacji, takie jak przewód SMBDAT i przewód SMBCLK, gdzie przewód SMBDAT służy do przesyłania danych szeregowych, a przewód SMBCLK działa jak zegar szeregowy. W powyższym SMBus master po prostu steruje SMBCLK w zakresie od 10 do 100 kHz, jednak każda linia może sterować SMBDAT.

Te dwa przewody są dwukierunkowe, co zapewnia opcję włączenia sygnału ostrzegawczego, takiego jak SMBALERT, który umożliwia urządzeniom zwrócenie uwagi hosta.

Pakiet danych tej magistrali zawiera bit startu, bit ACK lub NACK, 8 bitów danych i bit stopu. Transfer danych SMBus wykorzystuje niektóre funkcje, w przeciwnym razie protokoły różnych SMBus podczas wysyłania wiadomości, takich jak Wyślij bajt, Szybkie polecenie, Czytaj słowo, Zapisz bajt, Czytaj bajt, Napisz słowo, Wywołanie procesu, Zapis blokowy, Odczyt blokowy, Odczyt wywołania procesu i Zablokuj blokowanie zapisu.

Ta magistrala obsługuje również PEC (sprawdzanie błędów pakietów), aby poprawić niezawodność komunikacji. Można to zrobić, umieszczając kod błędu pakietu na końcu każdej wiadomości.

Funkcje

Funkcje SMBus nazywane są również protokołami. Tak więc główne protokoły SMBus to szybkie polecenie, wysyłanie bajtów, odbieranie bajtów, zapisywanie bajtów, odczytywanie bajtów, wywołanie procesu, blokowanie zapisu/odczytu bloku zapisu i odczytu bloku wywołanie procesu, protokół powiadamiania hosta SMBus, protokół zapisu-32, odczyt-32 Protokół, zapis 64-protokół i odczyt 64 protokołu.

Format wiadomości SMBUS

Po spełnieniu warunku START, master zlokalizuje 7-bitowy adres urządzenia podrzędnego i musi ono zaadresować się na magistrali. Tak więc długość adresu wynosi 7 bitów, po których następuje 8 bitów oznaczających kierunek przesyłania danych (R/W); JEDEN określa żądanie ODCZYTU (dane) a ZERO określa ZAPIS (transmisja).

  Format wiadomości
Format wiadomości

Transmisja danych kończy się zawsze stanem STOP generowanym przez urządzenie nadrzędne.

Każdy bajt zawiera 8 bitów, a każdy bajt jest przesyłany przez SMBus i powinien być po nim bit potwierdzenia. Bajty są przesyłane najpierw przez MSB (bit najbardziej znaczący).

Typowe urządzenie SMBus zawiera zestaw poleceń, za pomocą których dane mogą być po prostu odczytywane i zapisywane. Długość wszystkich tych poleceń wynosi 1 bajt, podczas gdy ich argumenty, a także wartości zwracane, mogą się zmieniać w ramach długości.

Zezwolenie na polecenie nie istnieje, w przeciwnym razie nie jest obsługiwane, więc może spowodować błąd. Zgodnie ze specyfikacją SMBus najpierw przesyłany jest MSB.

Najpierw wszystkie polecenia ustawiają stan startu przez magistralę, następnie rozpoczynają transmisję poprzez przesłanie danych lub polecenia, czekają na akceptację urządzenia podrzędnego przez całą transmisję danych lub polecenia, a następnie ustawiają stan zatrzymania na magistrali.

Warunki startu i zatrzymania dla protokołu SMBus

Warunek START & STOP komunikatu będzie zdefiniowany przez dwa unikalne warunki magistrali od wysokiego do niskiego i od niskiego do wysokiego.

  Warunki startu i zatrzymania
Warunki startu i zatrzymania

W przejściu linii SMBDAT WYSOKI do NISKI, gdy SMBCLK jest WYSOKI, oznacza to stan START wiadomości.

W przejściu linii LOW do HIGH SMBDAT, gdy SMBCLK jest WYSOKIE, to definiuje warunek STOP wiadomości. Tak więc te dwa warunki są zawsze generowane przez mistrza autobusu. Autobus staje zajęty po warunku START. Autobus ponownie stanie bezczynny po pewnym czasie po wystąpieniu warunku STOP.

Wymagania sprzętowe SMBus

Wymagania sprzętowe SMBus, aby umożliwić wydajną i bezproblemową komunikację między komputerem i jednym z jego najważniejszych urządzeń, to dwa przewody, takie jak SMBDAT i SMBCLK, PSU (zasilacz), zestaw układów scalonych, sterowników i wentylatorów chłodzących . Zasadniczo ten kontroler SMBus pozwala komputerowi skutecznie obsługiwać i wykonywać polecenia, takie jak włączanie zasilacza i sterowanie wentylatorami chłodzącymi.

Transfer danych SMBus wykorzystuje różne protokoły lub funkcje podczas przesyłania wiadomości, takich jak Wyślij bajt, Szybkie polecenie, Zapis bajtu, Odczyt bajtu, Zapis słowa, Odczyt słowa, Odczyt bloku, Wywołanie procesu, Zapis bloku itp. Obsługuje również sprawdzanie błędów PEC lub pakietów zwiększenie niezawodności komunikacji przez proste włączenie kodu błędu pakietu na każdym końcu wiadomości.

Sprzęt SMBus po prostu zapewnia kontrolę taktowania i zmiany biegów używaną do transferów szeregowych. Tak więc sprzęt SMBus wykonuje różne niezależne zadania aplikacyjne, takie jak kontrola czasu, szeregowe przesyłanie danych i rozpoznawanie adresów urządzeń podrzędnych.

SMBus a I2C

The różnica między SMBus a I2C obejmuje następujące elementy.

SMBus

2C

Termin SMBus oznacza „Magistralę zarządzania systemem”. Termin I2C oznacza „obwód zintegrowany”.
SMBus to 2-przewodowa magistrala sterująca używana w zadaniach zarządzania energią i systemem. I2C jest wbudowanym protokołem komunikacyjnym używanym do niskiej przepustowości i krótkich odległości.
System może wykorzystać tę magistralę do kierowania komunikatów od i do urządzeń, zamiast aktywować poszczególne linie sterujące.

I2C jest zwykle używany do łączenia urządzeń peryferyjnych o niskiej prędkości, takich jak mikrokontrolery i czujniki, z procesorami na krótkich dystansach w układzie scalonym.
Maksymalna prędkość CLK to 100 kHz. Maksymalna prędkość CLK to 400 kHz.
Minimalna prędkość CLK to 10 kHz. Brak minimalnej prędkości CLK.
35ms niski limit czasu CLK. Nie ma limitu czasu.
Ma ustalone poziomy logiczne. Jego poziomy logiczne zależą od VDD.
Ma różne typy adresów, takie jak zarezerwowany, dynamiczny itp. Ma różne typy adresów, takie jak ogólny adres podrzędny wywołania, 7-bitowy i 10-bitowy.
Ma różne protokoły magistrali, takie jak wywołania procesów, szybkie polecenia itp. Nie ma protokołów magistrali.

SMBus a Pmbus

Różnice pomiędzy SMBus i Pmbus są następujące.

SMBus

Pmbus

SMBus to dwużyłowa magistrala typu single-ended używana do lekkiej komunikacji. Rozszerzeniem SMBus jest Pmbus i jest to tani protokół używany głównie do komunikacji pomiędzy urządzeniami zarządzania energią.
Tryb slave tej magistrali umożliwia takie wartości szybkości transmisji danych jak 10kbps, 50 kbps, 100 kbps i 400 kbps. Tryb slave tej magistrali pozwala po prostu na wartości szybkości transmisji danych, takie jak 100 kb/s i 400 kb/s.
Ten typ magistrali współpracuje ze sprzętem I2C, jednak zawiera oprogramowanie drugiego poziomu, umożliwiając wymianę urządzeń na gorąco bez ponownego uruchamiania systemu. Ta magistrala rozszerza SMBus poprzez proste zdefiniowanie zestawu poleceń urządzenia i jest szczególnie zaprojektowana do obsługi konwerterów mocy, eksponując atrybuty urządzenia, takie jak mierzony prąd, napięcie, temperatura itp.
SMBus to nadzbiór I2C PMBus to nadzbiór SMBus
Ta magistrala zawiera zarówno warstwy sieci, jak i łącza danych. Ta magistrala zawiera warstwę transportową i zestaw poleceń.

Schemat czasowy

The Schemat taktowania SMBus pokazano poniżej.

  Schemat czasowy SMBus
Schemat czasowy SMBus

TLOW.SEXT jest urządzeniem podrzędnym, które wydłuża cykle CLK w pojedynczym komunikacie od START do STOP. Jest więc możliwe, że urządzenie nadrzędne lub inne urządzenie podrzędne również przedłuży cykl CLK, aby niski wydłużony czas połączonego CLK był wyższy niż TLOW.SEXT. Tak więc ten parametr jest po prostu mierzony przez urządzenie podrzędne, jak pojedynczy cel urządzenia nadrzędnego o pełnej prędkości.

TLOW.MEXT jest urządzeniem nadrzędnym, które wydłuża cykle CLK w każdym bajcie wiadomości. Jest więc możliwe, że inne urządzenie nadrzędne lub podrzędne również rozszerzy CLK, aby spowodować, że niski czas połączonego CLK będzie wyższy w porównaniu z TLOW.MEXT na określonym bajcie. W ten sposób parametry są po prostu mierzone przez urządzenie podrzędne o pełnej prędkości, takie jak pojedynczy cel urządzenia nadrzędnego.

Aplikacje

The zastosowania SMBus obejmują następujące elementy.

  • SMBus jest używany jako chip komponentu systemu używany do komunikacji w systemie. W szczególności umożliwia on komunikowanie się baterii z innymi komponentami systemu, takimi jak komponenty związane z zasilaniem i procesor.
  • Służy do lekkiej komunikacji.
  • Ta magistrala służy do monitorowania krytycznych parametrów w systemy wbudowane i na płytach głównych PC.
  • Jest to najczęstszy rodzaj komunikacji dla zaawansowanych wskaźników paliwa firmy Texas Instruments.
  • Jest to wykorzystywane w komunikacji zarządzania systemem opartej na mniejszej przepustowości.

Tak więc o to chodzi przegląd SMBus – praca z aplikacjami. Jest to prosta dwuprzewodowa magistrala typu single-ended używana do lekkiej komunikacji. Magistrala ta jest używana w płytach głównych komputerów do komunikacji ze źródłem zasilania dla instrukcji włączania lub wyłączania. Oto pytanie do Ciebie, jaki jest protokół I2C?