I²C Bus

I2C_stage

 

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_fuer_implentation_I2C_Bus
Abbildung 1: Beispiel für eine I2C-Implementierung

 

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
Abbildung 2: I2C-Kommunikationsprotokoll

 

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.

 

Totalphase I2C Produkte

 

Total Phase
Produkte
Aardvark Promira I2C-Level 1 Promira I2C-Level 2 Beagle I2C/SPI
Aardvark I2C/SPI Host Adapter  Promira I2C-Level 1 Promira I2C-Level 2 Beagle I2C/SPI 
Artikelnummer TP240141 Promira Serial I2C Platform 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) 1 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 5 V, 30mA verfügbar
Verbindung Full Speed USB High Speed USB, Ethernet High Speed USB, Ethernet High Speed USB
1 Kompatibel mit 5V

Anzeige pro Seite
Sortieren nach

I3C Protokoll Exerciser und Analyzer (Liteversion)

Artikel-Nr.: PGY-I3C-EX-PD-Lite (v1.1)

Der PGY-I3C-EX-PD vereint Host Adapter und Protokoll Analyzer in einem Gerät. Dank der Abwärtskompatibilität ist er für I3C und I2C Anwendungen geeignet.

Produktdatenblatt

Beagle I2C/SPI Protokoll Analyzer

Artikel-Nr.: TP320121

Der Beagle I2C/SPI/MDIO bietet eine leistungsfähige Monitoring Lösung.
Einzigst autorisierte Distributor für Deutschland, Österreich & Schweiz ✔

335,00 *
Produktdatenblatt
Auf Lager

Promira universelle I2C/ SPI/ eSPI Plattform

Artikel-Nr.: TP500110

Promira ist eine universelle Hardware Plattform nutzbar für eine Vielzahl von I2C, SPI und eSPI Anwendungen.

ab 635,00 *
Produktdatenblatt
Auf Lager

Aardvark I2C/SPI Host Adapter

Artikel-Nr.: TP240141

Der I2C/SPI Aardvark ist ein schneller und leistungsfähiger USB Host Adapter.
Einzigst autorisierter Distributor für Deutschland, Österreich & Schweiz.

289,00 *
Produktdatenblatt
Auf Lager

Total Phase I2C Entwicklungskit

Artikel-Nr.: TP120112

Total Phase I2C Development Kit besteht aus einem Aaardvark, einem Beagle, 2 x 10-Pin Split Kabel, 1 x I2C/SPI Activity Board und 2 zwei 1,83 cm USB A auf B cable.

640,00 *
Auf Lager
*

zzgl. Mwst für Endverbraucher und Unternehmen mit Sitz in Deutschland