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.
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-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 | ||||
---|---|---|---|---|
Artikelnummer | TP240141 | TP500110 | TP500110 | TP320121 |
Unterstützte Protokolle | I2C | I2C | I2C | I2C, MDIO, SPI-Single I/O |
Funktion | Master/Slave Host Adapter | Master/Slave Host Adapter | Master/Slave Host Adapter | Real-time Bus Monitor |
Master Clock Geschwindigkeit | 800 kHz | 1 MHz | 3.4 MHz | 24 MHz |
Slave Clock Geschwindigkeit | 800 kHz | 1 MHz | 3.4 MHz | 24 MHz |
Chip/Slave Select | 1 | N/A | N/A | Monitor 1 slave select |
Slave Fähigkeit> | <= 6 | Advanced | Ultra | N/A |
Spannungspegel (V) | 3.3-5V | 0.9-3.45 V, 5 V | 0.9-3.45 V, 5 V | 3.3-5V |
Zielleistung | 5 V, 30mA verfügbar | 2 Independent, 1 Programmable, (0.9-3.45 V), 1 Switchable (3.3-5V) 200mA verfügbar | 2 Independent, 1 Programmable, (0.9-3.45 V), 1 Switchable (3.3-5V) 200mA verfügbar | 5 V, 30mA verfügbar |
Verbindung | Full Speed USB | High Speed USB, Ethernet | High Speed USB, Ethernet | High Speed USB |