SMBus: Arbeiten, Unterschiede und seine Anwendungen

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





Der SMBus wurde im Jahr 1995 von Intel eingeführt und basiert auf dem seriellen I²C-Bus-Protokoll von Philips. Dieser Bus überträgt Daten, CLK und Befehle, wobei die Taktfrequenz von 10 kHz bis 100 kHz reicht. Die Hauptabsicht von SMBus besteht darin, eine kostengünstige und leistungsstarke Methode zum Steuern und Abrufen von Daten von Geräten auf einem Motherboard zu ermöglichen. SMBus wird normalerweise in PCs für die Temperaturregelung, intelligente Batterien und andere Systemverwaltungskommunikation mit geringer Bandbreite verwendet.


Dieser Bus identifiziert die Kommunikationsverbindung zwischen einem Ladegerät, einer intelligenten Batterie und einem Mikrocontroller, der mit dem Rest des Systems kommuniziert. Aber SMBus wird auch verwendet, um verschiedene Geräte wie Systemsensoren, strombezogene Geräte, Kommunikationsgeräte, Inventar-EEPROMs usw. zu verbinden. Dieser Artikel behandelt einen Überblick über einen SMBus – die Arbeit mit Anwendungen.



Was ist das SMBus-Protokoll?

Der SMBus (System Management Bus) ist eine 2-Draht-Schnittstelle, die häufig zwischen verschiedenen Geräten auf einem Motherboard für die Systemverwaltungskommunikation mit niedriger Geschwindigkeit verwendet wird. Diese Art von Bus wurde von der entworfen I2C-Protokoll Stiftungen. Daher können sowohl der I2C als auch der SMBus einige Ähnlichkeiten aufweisen und sie können auch auf dem ähnlichen Bus zusammenarbeiten.

Dieser Bus arbeitet nach den I2C-Betriebsprinzipien, die einen Steuerbus bereitstellen, insbesondere für das System, um Nachrichten zu oder von den Geräten zuzulassen, anstatt separate Steuerleitungen zu verwenden, um die Anzahl der Systemkabel und Pins zu reduzieren.



Ein Gerät mit einem SMBus kann Herstellerinformationen bereitstellen, das System über seine Teile- oder Modellnummer informieren, verschiedene Arten von Fehlern melden, Steuerparameter zulassen und seine Position erneut besuchen.

SMBus-Spezifikation

Die Spezifikation von SMBus bezieht sich einfach auf 3 Arten von Geräten Host, Master und Slave.

  • Ein Host ist ein bestimmter Master und stellt die Hauptschnittstelle zur CPU des Systems bereit.
  • Ein Master-Gerät, das Anweisungen ausgibt, die Takte generiert und die Übertragung beendet.
  • Ein Slave-Gerät empfängt ansonsten reagiert auf einen Befehl.

Wie funktioniert SMBus?

Es gibt 3 Arten von Geräten, die innerhalb der SMBus-Kommunikation verwendet werden, wie ein Host-, ein Master- und ein Slave-Gerät, die im folgenden Diagramm dargestellt sind. In diesem Bus ist das Host-Gerät eine spezifische master-arbeitsähnliche Schnittstelle zur CPU des Systems; es ist jedoch nicht immer notwendig. Einige Systeme wie einfache Batterieladesysteme können ohne Host sein.

Ein Master-Gerät beginnt die Kommunikation, treibt den CLK und stoppt die Übertragung. Ein Gerät kann einfach als Master oder als Master-Slave ausgewählt werden, wobei es entweder als Master-Gerät oder als Slave-Gerät arbeiten kann.

  SMBus-Diagramm
SMBus-Diagramm

Beim SMBus gibt es auch oben einen Master, jedoch kann immer nur einer den Bus beherrschen. Wenn beispielsweise die beiden Geräte gleichzeitig den Bus beherrschen, stellt SMBus einen Arbitrierungsmechanismus bereit, der einfach von der verdrahteten UND-Verbindung aller Schnittstellen des SMBus-Geräts mit dem SMBus abhängt.

Slave-Geräte antworten sowohl auf seine Adresse als auch auf Befehle und können Daten von und zu einem Master-Gerät senden und empfangen. Ein Gerät kann vollständig als Slave ausgewählt werden, ansonsten ist es möglich, dass der Slave in bestimmten Beispielen wie ein Master arbeitet.

Ähnlich wie beim I2C-Protokoll wird jedem Slave auf diesem Bus einfach eine Sieben-Bit-Slave-Adresse zugewiesen, wobei das Lese- oder Schreibbit an diese Adresse angehängt wird, um zu beschreiben, ob das Gerät die auf dem Bus übertragene Nachricht liest oder schreibt.

Geräte müssen ihre eigene Adresse erkennen, sobald also ein Gerät seine Adresse identifiziert, reagiert es auf den Befehl.

Wenn die Slave-Adresse dieses Busses in Konflikt gerät, unterstützt er ARP oder Address Resolution Protocol. Sobald der Host zwei Geräte mit einer ähnlichen Slave-Adresse bemerkt, weist das Verfahren des Adressauflösungsprotokolls den Slaves dynamisch eine neue eindeutige Adresse zu. Das Adressauflösungsprotokoll ermöglicht die sofortige Verwendung der Geräte, ohne dass das System neu gestartet werden muss.

Dieser Bus verwendet 2 Drähte für die Kommunikation wie den SMBDAT-Draht und den SMBCLK-Draht, wobei der SMBDAT-Draht zur Übertragung serieller Daten verwendet wird und der SMBCLK-Draht wie die serielle Uhr funktioniert. Im obigen SMBus treibt der Master einfach den SMBCLK, der von 10 bis 100 kHz reicht, jedoch kann jede Leitung den SMBDAT treiben.

Diese beiden Drähte sind bidirektional, was eine Option zum Einfügen eines Warnsignals wie SMBALERT bietet, mit dem Geräte die Aufmerksamkeit des Hosts anfordern können.

Das Datenpaket dieses Busses enthält ein Startbit, ein ACK- oder NACK-Bit, 8 Datenbits und ein Stoppbit. Die Datenübertragung von SMBus verwendet einige der Funktionen, die sonst Protokolle verschiedener SMBus beim Senden von Nachrichten wie Send Byte, Quick Command, Read Word, Write Byte, Read Byte, Write Word, Process Call, Block Write, Block Read, Read Process Call & Schreibblock blockieren.

Dieser Bus unterstützt auch PEC (Packet Error Checking), um die Zuverlässigkeit der Kommunikation zu verbessern. Dies kann also durch Einschließen eines Paketfehlercodes am Ende jeder Nachricht durchgeführt werden.

Funktionen

SMBus-Funktionen werden auch Protokolle genannt. Die Hauptprotokolle von SMBus sind also Quick Command, Send Byte, Receive Byte, Write Byte, Read Byte, Process Call, Block Write/Read Block Write-Block Read Process Call, SMBus Host Notify Protocol, Write-32 Protocol, Read-32 Protokoll, 64-Protokoll schreiben und 64-Protokoll lesen.

SMBUS-Nachrichtenformat

Nach der START-Bedingung findet der Master die 7-Bit-Adresse des Slave-Geräts und muss es auf dem Bus adressieren. Die Länge der Adresse ist also 7 Bit lang, gefolgt von 8 Bit, die die Datenübertragungsrichtung (R/W) angeben; eine EINS spezifiziert eine Anforderung für LESEN (Daten) und eine NULL spezifiziert ein SCHREIBEN (Übertragung).

  Nachrichtenformat
Nachrichtenformat

Die Datenübertragung wird immer durch eine vom Master generierte STOP-Bedingung beendet.

Jedes Byte umfasst 8 Bits und jedes Byte wird auf dem SMBus übertragen und sollte durch ein Bestätigungsbit gefolgt werden. Bytes werden zuerst durch das MSB (höchstwertiges Bit) übertragen.

Ein typisches SMBus-Gerät enthält eine Reihe von Befehlen, mit denen Daten einfach gelesen und geschrieben werden können. Die Länge all dieser Befehle beträgt 1 Byte, wobei sich ihre Argumente sowie Rückgabewerte innerhalb der Länge ändern können.

Das Zulassen eines Befehls ist nicht vorhanden, da er sonst nicht unterstützt wird und daher eine Fehlerbedingung verursachen kann. Gemäß der SMBus-Spezifikation wird zuerst das MSB übertragen.

Zuerst setzen alle Befehle eine Startbedingung über den Bus, starten danach die Übertragung durch Übertragen der Daten oder des Befehls, warten auf eine Annahme von der Slave-Vorrichtung während der gesamten Daten- oder Befehlsübertragung und setzen dann eine Stoppbedingung auf dem Bus.

Start- und Stoppbedingungen für das SMBus-Protokoll

Die START- und STOP-Bedingungen einer Nachricht werden durch zwei eindeutige Busbedingungen definiert: hoch zu niedrig und niedrig zu hoch.

  Start- und Stoppbedingungen
Start- und Stoppbedingungen

Bei einem Übergang der SMBDAT-Leitung von HIGH auf LOW zeigt SMBCLK, wenn es HIGH ist, einen START-Zustand einer Nachricht an.

Bei einem LOW-zu-HIGH-SMBDAT-Leitungsübergang, wenn SMBCLK HIGH ist, dann definiert es eine STOP-Bedingung einer Nachricht. Diese beiden Zustände werden also immer vom Master des Busses generiert. Der Bus wird nach der Bedingung eines STARTs besetzt. Nach einer STOP-Bedingung wird der Bus nach einer gewissen Zeit wieder frei.

SMBus-Hardwareanforderungen

Die Hardwareanforderungen von SMBus zur Ermöglichung einer effizienten sowie nahtlosen Kommunikation zwischen einem PC und einiger seiner wichtigsten Hardware sind zwei Drähte wie SMBDAT und SMBCLK, PSU (Power Supply Unit), ein Satz von ICs, Treibern und seine Lüfter . Grundsätzlich ermöglicht dieser SMBus-Controller einem Computer, Befehle erfolgreich zu verarbeiten und auszuführen, wie z. B. das Einschalten des Netzteils und das Steuern seiner Lüfter.

Die SMBus-Datenübertragung verwendet verschiedene Protokolle oder Funktionen beim Übertragen von Nachrichten wie Send Byte, Quick Command, Write Byte, Read Byte, Write Word, Read Word, Block Read, Process Call, Block Write usw. Es unterstützt auch PEC oder Paketfehlerprüfung für Verbesserung der Kommunikationszuverlässigkeit durch einfaches Einschließen eines Paketfehlercodes an jedem Nachrichtenende.

Die SMBus-Hardware bietet einfach Zeit- und Schaltsteuerung, die für die seriellen Übertragungen verwendet wird. Die Hardware von SMBus führt also die verschiedenen unabhängigen Anwendungsaufgaben wie Zeitsteuerung, serielle Datenübertragung und Erkennung von Slave-Adressen durch.

SMBus gegen I2C

Das Unterschied zwischen SMBus und I2C umfasst Folgendes.

SMBus

2C

Der Begriff SMBus steht für „System Management Bus“. Der Begriff I2C steht für „Inter-Integrated Circuit“.
Der SMBus ist ein 2-Draht-Steuerbus, der für Energie- und Systemmanagementaufgaben verwendet wird. I2C ist ein integriertes Kommunikationsprotokoll, das für niedrige Bandbreiten und kurze Entfernungen verwendet wird.
Ein System kann diesen Bus verwenden, um Nachrichten von und zu Geräten zu leiten, anstatt einzelne Steuerleitungen zu aktivieren.

I2C wird normalerweise verwendet, um langsame Peripheriegeräte wie Mikrocontroller und Sensoren über kurze Entfernungen in einem IC mit Prozessoren zu verbinden.
Die maximale CLK-Geschwindigkeit beträgt 100 kHz. Die maximale CLK-Geschwindigkeit beträgt 400 kHz.
Die minimale CLK-Geschwindigkeit beträgt 10 kHz. Keine minimale CLK-Geschwindigkeit.
35 ms niedriges CLK-Timeout. Es gibt keine Zeitüberschreitung.
Es hat feste Logikpegel. Seine Logikpegel hängen von VDD ab.
Es hat verschiedene Adresstypen wie reserviert, dynamisch usw. Es hat verschiedene Adresstypen wie allgemeine Call-Slave-Adresse, 7-Bit und 10-Bit.
Es verfügt über verschiedene Busprotokolle wie Prozessaufrufe, Schnellbefehle usw. Es hat keine Busprotokolle.

SMBus gegen PmBus

Der Unterschied zwischen SMBus und Pmbus umfasst Folgendes.

SMBus

Pmbus

Der SMBus ist ein zweiadriger Single-Ended-Bus, der für leichte Kommunikation verwendet wird. Die Erweiterung von SMBus ist Pmbus und es ist ein kostengünstiges Protokoll, das hauptsächlich für die Kommunikation zwischen Power-Management-Geräten verwendet wird.
Der Slave-Modus dieses Busses erlaubt Datenratenwerte wie 10 kbps, 50 kbps, 100 kbps und 400 kbps. Der Slave-Modus dieses Busses erlaubt einfach Datenratenwerte wie 100 kbps & 400 kbps.
Dieser Bustyp funktioniert mit I2C-Hardware, enthält jedoch Second-Level-Software, indem Geräte im laufenden Betrieb ausgetauscht werden können, ohne das System neu zu starten. Dieser Bus erweitert SMBus, indem er einfach eine Reihe von Befehlen des Geräts definiert, und er ist speziell für die Handhabung von Leistungswandlern ausgelegt, um Geräteattribute wie gemessenen Strom, Spannung, Temperatur usw.
SMBus ist eine Obermenge von I2C PMBus ist eine Obermenge von SMBus
Dieser Bus enthält sowohl die Netzwerk- als auch die Sicherungsschicht. Dieser Bus enthält die Transportschicht und eine Reihe von Befehlen.

Zeitdiagramm

Das SMBus-Zeitdiagramm ist unten gezeigt.

  Timing-Diagramm von SMBus
Timing-Diagramm von SMBus

Das TLOW.SEXT ist das Slave-Gerät, das die CLK-Zyklen innerhalb einer einzigen Nachricht von START bis STOP verlängert. Es ist also möglich, dass der Master oder ein anderes Slave-Gerät den CLK-Zyklus ebenfalls verlängert, um zu bewirken, dass die niedrige verlängerte Zeit des kombinierten CLK höher als TLOW.SEXT ist. Somit wird dieser Parameter einfach durch das Slave-Gerät gemessen, wie das einzelne Ziel eines Full-Speed-Masters.

TLOW.MEXT ist das Master-Gerät, das die CLK-Zyklen in jedem Byte einer Nachricht erweitert. Es ist also möglich, dass ein anderes Master- oder ein Slave-Gerät den CLK ebenfalls verlängert, um zu bewirken, dass die Low-Zeit des kombinierten CLK im Vergleich zu TLOW.MEXT auf einem bestimmten Byte höher ist. Somit werden die Parameter einfach durch ein Vollgeschwindigkeits-Slave-Gerät wie das einzelne Ziel des Masters gemessen.

Anwendungen

Das Anwendungen von SMBus füge folgendes hinzu.

  • SMBus wird als Systemkomponenten-Chip verwendet, der zur Kommunikation innerhalb eines Systems verwendet wird. Insbesondere ermöglicht es Batterien für die Kommunikation mit anderen Komponenten des Systems, wie z. B. leistungsbezogenen Komponenten und der CPU.
  • Dies wird für leichte Kommunikation verwendet.
  • Dieser Bus dient zur Überwachung kritischer Parameter in eingebettete Systeme & auf Motherboards von PCs.
  • Dies ist die häufigste Art der Kommunikation für fortschrittliche Kraftstoffanzeigen von Texas Instruments.
  • Dies wird bei einer weniger bandbreitenbasierten Systemverwaltungskommunikation verwendet.

Es geht also um alles eine Übersicht über einen SMBus – Arbeiten mit Anwendungen. Dies ist ein einfacher und einseitiger Zweidrahtbus, der für die leichte Kommunikation verwendet wird. Dieser Bus wird in Hauptplatinen von Computern zur Kommunikation mit der Stromquelle für EIN- oder AUS-Befehle verwendet. Hier ist eine Frage an Sie: Was ist das I2C-Protokoll?