Übersicht und Vorteile des I2C-Busses

click fraud protection

Entwickelt von Philips in den 1980er Jahren, I2C (alternativ I2C geschrieben) hat sich zu einem der am häufigsten verwendeten seriellen Kommunikationsprotokolle in der Elektronik entwickelt. I2C erleichtert die Kommunikation zwischen elektronischen Komponenten oder integriert Schaltungen, ob die Komponenten gleich sind PCB oder mit einem Kabel verbunden.

Phase zwei des I2C-Protokolls
Mwnuk / CC BY 2.0 / Wikimedia Commons

Was ist 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 (PCB) entwickelt. I2C wurde ursprünglich für 100. entwickelt Kbps Kommunikation. Im Laufe der Jahre wurden jedoch schnellere Datenübertragungsmodi entwickelt, um Geschwindigkeiten von bis zu 3,4 Mbit zu erreichen.

Das Hauptmerkmal von I2C ist die Möglichkeit, viele Komponenten auf einem einzigen zu haben Kommunikationsbus mit nur zwei Drähten, was I2C perfekt für einfache Anwendungen macht. Das I2C-Protokoll wurde als offizieller Standard etabliert und ermöglicht die Abwärtskompatibilität zwischen I2C-Implementierungen.

I2C-Signale

Das I2C-Protokoll verwendet zwei bidirektionale Signalleitungen, um mit den Geräten auf dem Kommunikationsbus zu kommunizieren. Die beiden verwendeten Signale sind:

  • Serielle Datenleitung (SDL)
  • Serielle Datenuhr (SDC)

Der Grund dafür, dass I2C nur zwei Signale verwenden kann, um mit mehreren Peripheriegeräten zu kommunizieren, liegt darin, wie die Kommunikation über den Bus gehandhabt wird. Jede I2C-Kommunikation beginnt mit einer 7-Bit (oder 10-Bit-)Adresse, die die Adresse des Peripheriegeräts aufruft.

Auf diese Weise können mehrere Geräte am I2C-Bus die Rolle des primären Geräts übernehmen, je nach den Anforderungen des Systems. Um Kommunikationskollisionen zu vermeiden, enthält das I2C-Protokoll Arbitrierungs- und Kollisionserkennungsfunktionen, die eine reibungslose Kommunikation entlang des Busses ermöglichen.

Vorteile von I2C

Als Kommunikationsprotokoll bietet I2C folgende Vorteile:

  • Flexible Datenübertragungsraten.
  • Kommunikation über größere Entfernungen als SPI.
  • Jedes Gerät am Bus ist unabhängig adressierbar.
  • Geräte haben eine einfache primäre/sekundäre Beziehung.
  • Es benötigt nur zwei Signalleitungen.
  • Es ist in der Lage, mehrere primäre Kommunikationen zu handhaben, indem es eine Arbitrierung und eine Kommunikationskollisionserkennung bereitstellt.

Einschränkungen von I2C

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

  • Da für die Geräteadressierung nur 7 Bit (oder 10 Bit) zur Verfügung stehen, können sich Geräte am selben Bus dieselbe Adresse teilen. Einige Geräte können die letzten paar Bits der Adresse konfigurieren, aber dies führt zu einer Beschränkung der Geräte auf demselben Bus.
  • Es stehen nur wenige eingeschränkte Kommunikationsgeschwindigkeiten zur Verfügung, und viele Geräte unterstützen die Übertragung mit höheren Geschwindigkeiten nicht. Teilweise Unterstützung für jede Geschwindigkeit auf dem Bus ist erforderlich, um zu verhindern, dass langsamere Geräte Teilübertragungen abfangen, die zu Betriebsstörungen führen können.
  • Die gemeinsame Natur des I2C-Busses kann dazu führen, dass der gesamte Bus hängen bleibt, wenn ein einzelnes Gerät im Bus den Betrieb einstellt. Das Ein- und Ausschalten der Stromversorgung zum Bus kann den ordnungsgemäßen Betrieb wiederherstellen.
  • Da Geräte ihre eigene Kommunikationsgeschwindigkeit festlegen, können langsamere Geräte den Betrieb schnellerer Geräte verzögern.
  • I2C verbraucht aufgrund der Open-Drain-Topologie der Kommunikationsleitungen mehr Strom als andere serielle Kommunikationsbusse.
  • Die Einschränkungen des I2C-Busses begrenzen normalerweise die Anzahl der Geräte auf einem Bus auf etwa ein Dutzend.

I2C-Anwendungen

I2C ist eine großartige Option für Anwendungen, die eher niedrige Kosten und eine einfache Implementierung als eine hohe Geschwindigkeit erfordern. Häufige Anwendungen des I2C-Kommunikationsprotokolls sind beispielsweise:

  • Lesen bestimmter Speicher-ICs.
  • Zugriff auf DACs und ADCs.
  • Übertragung und Kontrolle von benutzergesteuerten Aktionen.
  • Auslesen von Hardwaresensoren.
  • Kommunikation mit mehreren Mikrocontrollern.