Skip to main content

WIE MAN: Was ist das I2C-Protokoll? - 2021

0x05 Grundlagen I2C (April 2021).

Anonim

I2C wurde in den achtziger Jahren von Philips entwickelt und hat sich zu einem der häufigsten seriellen Kommunikationsprotokolle in der Elektronik entwickelt. I2C ermöglicht die Kommunikation zwischen elektronischen Komponenten oder IC zu IC, unabhängig davon, ob sich die Komponenten auf derselben Leiterplatte befinden oder über ein Kabel verbunden sind. Das Hauptmerkmal von I2C ist die Möglichkeit, eine große Anzahl von Komponenten auf einem einzigen Kommunikationsbus mit nur zwei Drähten zu haben, wodurch I2C ideal für Anwendungen ist, die Einfachheit und niedrige Kosten gegenüber der Geschwindigkeit erfordern.

Das I2C-Protokoll

I2C ist ein serielles Kommunikationsprotokoll, das nur zwei Signalleitungen benötigt. Es wurde für die Kommunikation zwischen Chips auf einer Leiterplatte entwickelt. I2C wurde ursprünglich für eine 100-Kbit / s-Kommunikation entwickelt. Im Laufe der Jahre wurden jedoch schnellere Datenübertragungsmodi entwickelt, um Geschwindigkeiten von bis zu 3,4 Mbit zu erreichen. Das I2C-Protokoll wurde als offizieller Standard etabliert, der eine gute Kompatibilität zwischen I2C-Implementierungen und eine gute Abwärtskompatibilität gewährleistet.

I2C-Signale

Das I2C-Protokoll verwendet nur zwei bidirektionale Signalleitungen, um mit allen Geräten am I2C-Bus zu kommunizieren. Die zwei verwendeten Signale sind:

  • Serielle Datenleitung (SDL)
  • Serieller Datentakt (SDC)

Der Grund, dass I2C nur zwei Signale für die Kommunikation mit einer Reihe von Peripheriegeräten verwenden kann, liegt darin, wie die Kommunikation über den Bus abgewickelt wird. Jede I2C-Kommunikation beginnt mit einer 7-Bit-Adresse (oder 10-Bit-Adresse), die die Adresse des Peripheriegeräts abruft. Der Rest der Kommunikation soll die Kommunikation empfangen. Auf diese Weise können mehrere Geräte am I2C-Bus die Rolle des Master-Geräts übernehmen, wenn dies die Anforderungen des Systems erfordern. Um Kommunikationskollisionen zu vermeiden, umfasst das I2C-Protokoll Arbitrierungs- und Kollisionserkennungsfunktionen, die eine reibungslose Kommunikation entlang des Busses ermöglichen.

Vorteile und Einschränkungen

Als Kommunikationsprotokoll hat I2C viele Vorteile, die für viele Embedded-Design-Anwendungen eine gute Wahl sind. I2C bringt folgende Vorteile:

  • I2C benötigt nur zwei Signalleitungen
  • Flexible Datenübertragungsraten
  • Jedes Gerät am Bus ist unabhängig adressierbar
  • Geräte haben eine einfache Master / Slave-Beziehung
  • Das I2C ist in der Lage, mehrere Master-Kommunikationen abzuwickeln, indem es die Erkennung von Schiedsverfahren und Kommunikationskollisionen ermöglicht
  • Kommunikation über längere Distanzen als SPI

Mit all diesen Vorteilen hat I2C auch einige Einschränkungen, die möglicherweise umgestaltet werden müssen. Zu den wichtigsten I2C-Einschränkungen gehören:

  • Da für die Geräteadressierung nur 7 Bits (oder 10 Bits) zur Verfügung stehen, können sich Geräte am selben Bus dieselbe Adresse teilen. Einige Geräte sind in der Lage, die letzten Bits der Adresse zu konfigurieren. Dies führt jedoch zu einer Einschränkung der Geräte am selben Bus.
  • Es stehen nur wenige eingeschränkte Kommunikationsgeschwindigkeiten zur Verfügung und viele Geräte unterstützen die Übertragung bei höheren Geschwindigkeiten nicht. Eine teilweise Unterstützung für jede Geschwindigkeit des Busses ist erforderlich, um zu verhindern, dass langsamere Geräte Teilübertragungen abfangen, die zu Betriebsstörungen führen.
  • Die Gemeinsamkeit des I2C-Busses kann dazu führen, dass der gesamte Bus hängt, wenn ein einzelnes Gerät am Bus seinen Betrieb einstellt. Durch Umschalten des Busses auf den Bus kann der Bus neu gestartet und der ordnungsgemäße Betrieb wiederhergestellt werden.
  • Da Geräte ihre Kommunikationsgeschwindigkeit einstellen können, können langsamere Betriebsgeräte den Betrieb von Geräten mit höherer Geschwindigkeit verzögern.
  • I2C verbraucht aufgrund der Open-Drain-Topologie der Kommunikationsleitungen mehr Strom als andere serielle Kommunikationsbusse.
  • Die Einschränkungen des I2C-Busses beschränken die Anzahl der Geräte auf einem Bus normalerweise auf ein Dutzend Geräte.

Anwendungen

Der I2C-Bus ist eine großartige Option für Anwendungen, die weniger Kosten und eine einfache Implementierung erfordern als eine hohe Geschwindigkeit. Das Lesen bestimmter Speicher-ICs, der Zugriff auf DACs und ADCs, das Lesen von Sensoren, das Übertragen und Steuern benutzergesteuerter Aktionen, das Lesen von Hardwaresensoren und die Kommunikation mit mehreren Mikrocontrollern sind übliche Anwendungen des I2C-Kommunikationsprotokolls.