I2C-Protocol-header

I²C (Inter-Integrated Circuit) Bus

In den frühen 80er Jahren hat Philips den I2C seriellen Daten Bus entwickelt um verschiedene Chips in einem Fernseh Gerät einfach steuern zu können. I2C ist als Master-Slave Bus konzipiert. Ein Datentransfer wird immer durch einen Master initiert, der über eine Adresse angesprochene Slave reagiert darauf. Aufgrund des einfachen Konzeptes und der erfolgreichen Umsetzung ist I2C zum Standard geworden. Mehr als 1.000 verschiedene ICs von über 50 Herstellern nutzen heutzutage die I2C Technologie.

Beispiel_fuer_implentation_I2C_Bus

Funktionsweise des I2C Bus

Das I²C-Kommunikationsprotokoll verwendet nur zwei bidirektionale Open-Collector- oder Open-Drain-Leitungen, Serial Data Line (SDA) und Serial Clock Line (SCL), die mit Widerständen hochgezogen werden. Traditionell verwendete typische Spannungen waren +5 V oder +3,3 V; In letzter Zeit sind jedoch +2,5 V, +1,8 V und +1,2 V häufiger geworden.

Beispiel für eine I2C-Implementierung

Unabhängig davon, wie viele Slave-Einheiten an den I2C-Bus angeschlossen sind, sind nur zwei Signale an alle angeschlossen. Folglich entsteht ein zusätzlicher Overhead, da ein Adressierungsmechanismus erforderlich ist, damit das Master-Gerät mit einem bestimmten Slave-Gerät kommunizieren kann.

Da die gesamte Kommunikation nur über zwei Drähte erfolgt, müssen alle Geräte eine eindeutige Adresse haben, um sie auf dem Bus zu identifizieren. Slave-Geräte haben eine vordefinierte Adresse, aber die unteren Bits der Adresse können zugewiesen werden, um ein Vielfaches derselben Geräte auf dem Bus zu ermöglichen.

Das Aufkommen des Internet der Dinge ("IOT") in Verbindung mit der geringen Pin-Anzahl der seriellen I2C-Kommunikation hat zu einer Wiederbelebung der I2C-Nutzung geführt. Übliche Anwendungen sind die serielle Datenverwaltung, einschließlich der seriellen Datenübertragung zu / von Sensoren, der Programmierung von EEPROMs und des Abrufs von Abruf- / Empfangssensordaten.

Theorie der Arbeitsweise

I2C hat ein Master / Slave-Protokoll. Der Master initiiert die Kommunikation. Die Reihenfolge der Ereignisse ist:

Das Master-Gerät gibt eine Startbedingung aus. Diese Bedingung weist alle Slave-Geräte an, auf der seriellen Datenleitung nach Anweisungen zu suchen.
Das Master-Gerät sendet die Adresse des Ziel-Slave-Geräts und ein Lese- / Schreibflag.
Das Slave-Gerät mit der passenden Adresse antwortet mit einem Bestätigungssignal.
Die Kommunikation zwischen dem Master und dem Slave auf dem Datenbus wird fortgesetzt. Sowohl der Master als auch der Slave können Daten empfangen oder senden, je nachdem, ob es sich um eine Lese- oder eine Schreibkommunikation handelt. Der Sender sendet 8-Bit-Daten an den Empfänger, der mit einer 1-Bit-Bestätigung antwortet.
Wenn die Kommunikation abgeschlossen ist, gibt der Master eine Stoppbedingung aus, die angibt, dass alles erledigt ist.

i2c-protocol

I2C-Kommunikationsprotokoll

Da es nur zwei Drähte gibt, beinhaltet dieses Protokoll den zusätzlichen Overhead eines Adressierungsmechanismus und eines Bestätigungsmechanismus

Eigenschaften

I2C hat viele wichtige Funktionen, die es wert sind, erwähnt zu werden. Es unterstützt mehrere Datengeschwindigkeiten: Standardmodus (100 kbps), Fast-Modus (400 kbps), Fast-Modus plus, Hochgeschwindigkeitsmodus (3,4 Mbit / s) und Ultra-Fast-Modus (5,0 Mbit / s) I2C-Kommunikation.

Weitere Funktionen sind:

  • Eingebaute Kollisionserkennung
  • 10-Bit-Adressierung
  • Multi-Master-Unterstützung
  • Datenübertragung (allgemeiner Anruf).
     

Vorteile und Nachteile

Da nur zwei Drähte erforderlich sind, eignet sich I2C gut für Karten mit vielen am Bus angeschlossenen Geräten. Dies hilft, die Kosten und die Komplexität der Schaltung zu reduzieren, wenn dem System zusätzliche Geräte hinzugefügt werden.

Aufgrund des Vorhandenseins von nur zwei Drähten ist die Handhabung des Adressierungs- und Bestätigungsaufwands zusätzlich komplex. Dies kann in einfachen Konfigurationen ineffizient sein, und eine Direktverbindungsschnittstelle wie SPI kann bevorzugt sein.

Übersicht der I2C Entwicklungstools

I2C Modellvergleich

Aardvark-I2C-Host-adapter-small
Aardvark I2C/SPI Adapter

Promira I2C/SPI/eSPI Plattform
Promira I2C-Level 1

Promira I2C/SPI/eSPI Plattform
Promira I2C-Level 2

beagle i2c/spi protocol analyzer small
Beagle I2C/SPI Protokoll Analyzer

ArtikelnummerTP240141TP500110TP500110TP320121
Unterstützte ProtokolleI2CI2CI2CI2C, MDIO,
SPI-Single I/O
FunktionMaster/Slave Host AdapterMaster/Slave Host AdapterMaster/Slave Host AdapterReal-time Bus Monitor
Master Clock Geschwindigkeit800 kHz1 MHz3.4 MHz24 MHz
Slave Clock Geschwindigkeit800 kHz1 MHz3.4 MHz24 MHz
Chip/Slave Select1N/AN/AMonitor 1 slave select
Slave Fähigkeit><= 6AdvancedUltraN/A
Spannungspegel (V)3.3-5V0.9-3.45 V, 5 V0.9-3.45 V, 5 V3.3-5V
Zielleistung5 V, 30mA verfügbar2 Independent, 1 Programmable, (0.9-3.45 V), 1 Switchable (3.3-5V) 200mA verfügbar2 Independent, 1 Programmable, (0.9-3.45 V), 1 Switchable (3.3-5V) 200mA verfügbar5 V, 30mA verfügbar
VerbindungFull Speed USBHigh Speed USB, EthernetHigh Speed USB, EthernetHigh Speed USB