Inter-Integrated Circuit

Inter-Integrated Circuit

I²C (für Inter-Integrated Circuit, meistens gesprochen als I-Quadrat-C oder englisch I-squared-C) ist ein von Philips Semiconductors entwickelter serieller Datenbus.

Er wird hauptsächlich geräteintern für die Kommunikation zwischen verschiedenen Schaltungsteilen mit geringer Übertragungsgeschwindigkeit benutzt, z. B. zwischen einem Controller und Peripherie-ICs. Das ursprüngliche System wurde von Philips (jetzt NXP Semiconductors) in den frühen 1980er Jahren entwickelt, um verschiedene Chips in Fernsehgeräten einfach steuern zu können.

Einige Hersteller verwenden die Bezeichnung TWI (Two-Wire Interface), da I²C ein eingetragenes Markenzeichen von Philips Semiconductors ist. Technisch sind beide Systeme identisch.

Inhaltsverzeichnis

Geschichte

1992 wurde die erste Spezifikation 1.0 veröffentlicht. Diese fügte dem ursprünglichen Standard mit 100 kbit/s einen neuen „schnellen“ Modus mit 400 kbit/s hinzu und erweiterte den Adressraum um einen 10 Bit-Modus, sodass statt der ursprünglichen 112 Knoten seitdem bis zu 1136 unterstützt werden. Version 2.0 aus dem Jahr 1998 fügte einen „Hochgeschwindigkeits-Modus“ mit max. 3,4 Mbit/s hinzu, wobei die Strom- und Spannungsanforderungen in diesem Modus gesenkt wurden. Die Version 2.1 von 2000 enthält nur kleinere Aktualisierungen gegenüber 2.0. Aktuell gültig ist die Version 3.0 von 2007, die einen „extra schnellen“ Modus (Fast-mode Plus) mit bis zu 1 Mbit/s einführt, der im Gegensatz zum „Hochgeschwindigkeits-Modus“ dasselbe Protokoll verwendet wie die 100 kbit/s- und 400 kbit/s-Modi.

Definition

I²C ist als Master-Slave-Bus konzipiert. Der Master sendet und ein Slave reagiert darauf. Mehrere Master sind möglich (Multimaster-Mode). Die Buszuteilung (Arbitrierung) ist dabei per Spezifikation geregelt.

Elektrische Definition

I²C-Bus

Zwei Geräte sind im Diagramm rechts eingezeichnet. I²C benötigt zwei Signalleitungen: Takt (engl. serial clock line, SCL) und Datenleitung (engl. serial data line, SDA). Die Leitungen für Versorgungsspannung U0 und Masse liegen im Diagramm oben und unten. Geräte werden mittels einer Wired-AND-Verschaltung an SDA und SCL am Bus angeschlossen. Die Pull-Up-Widerstände RP an der Takt- und Datenleitung passen den High-Pegel an die Höhe der Versorgungsspannung an. Er soll mindestens 0,7U0 betragen. Der Low-Pegel soll im Bereich −0,5 V bis 0,3U0 liegen. Die Serienwiderstände RS an den Eingängen der Geräte sind optional und werden als Schutzwiderstände verwendet.

Takt und Zustände des Busses

Der Bustakt wird immer vom Master ausgegeben. Für die verschiedenen Modi ist jeweils ein maximal erlaubter Bustakt vorgegeben. Es können aber auch beliebig langsamere Taktraten verwendet werden, falls diese vom Master-Interface unterstützt werden. Die folgende Tabelle listet die maximal erlaubten Taktraten auf.

Modus maximale Taktrate
Standard Mode 100 kHz
Fast Mode 400 kHz
Fast Mode Plus 1 MHz
High Speed Mode 3,4 MHz

Wenn der Slave mehr Zeit benötigt, als durch den Takt des Masters vorgegeben, kann er zwischen der Übertragung einzelner Bytes den Clock auf low halten (clock stretching) und so den Master bremsen.

Daten (Einzelbits) sind nur gültig, wenn sich ihr logischer Pegel während einer Clock-High-Phase nicht ändert. Ausnahmen davon sind das Start, Stop und Repeated Start Signal. Das Start Signal ist eine fallende Flanke auf SDA während SCL high ist. Und das Stop Signal ist eine steigende Flanke auf SDA während SCL high ist. Repeated Start sieht genauso aus wie das Start Signal.

Eine Dateneinheit besteht aus 8 Daten/Adress Bits (1 Byte) und einem ACK Bit. Dieses Bestätigungsbit wird als ACK definiert durch einen Low Pegel während der neunten Takt-High-Phase und als NAK (für engl. Not Acknowledge) durch einen High-Pegel.

Adressierung

Eine Standard-I²C-Adresse ist das Erste vom Master gesendete Byte, wobei die ersten sieben Bit die eigentliche Adresse darstellen und das achte Bit (R/W-Bit) die Lese- oder Schreibrichtung festlegt. I²C nutzt daher einen Adressraum von 7 Bit, was bis zu 112 Knoten auf einem Bus erlaubt (16 der 128 möglichen Adressen sind für Sonderzwecke reserviert).

Jedes I²C-fähige IC hat eine festgelegte Adresse, von der in der Regel die untersten drei Bits (Subadresse genannt) über drei Steuerpins festgelegt werden. Es können also bis zu acht gleichartige ICs an einem I²C-Bus betrieben werden.

Wegen Adressknappheit wurde später eine 10 Bit-Adressierung eingeführt. Sie ist abwärtskompatibel zum 7 bit-Standard durch Nutzung von 4 der 16 reservierten Adressen. Beide Adressierungsarten sind gleichzeitig verwendbar, was bis zu 1136 Knoten auf einem Bus erlaubt.

Übertragungsprotokoll

Der Beginn einer Übertragung wird mit dem Start Signal vom Master angezeigt, dann folgt die Adresse. Diese wird durch das ACK-Bit vom entsprechenden Slave bestätigt. Abhängig vom R/W-Bit werden nun Daten Byte-weise geschrieben (Daten an Slave) oder gelesen (Daten vom Slave). Das ACK beim Schreiben wird vom Slave gesendet und beim Lesen vom Master. Das letzte Byte eines Lesezugriffs wird vom Master mit einem NAK quittiert, um das Ende der Übertragung anzuzeigen. Eine Übertragung wird durch das Stop-Signal beendet. Oder es wird ein Repeated Start am Beginn einer erneuten Übertragung gesendet, ohne die vorhergehende Übertragung mit einem Stop-Signal zu beenden.

Alle Bytes werden hierbei „Most Significant Bit First“ übertragen.

Für den High Speed Mode wird zuerst im Fast oder Standard Mode ein Master Code geschickt, bevor auf die erhöhte Frequenz umgeschaltet wird.

Der I²C-Bus ist von der Definition her recht einfach, aber auch störanfällig. Diese Tatsache schränkt die Verwendung auf störungsarme Anwendungsbereiche ein, wo weder mit Übersprechen, Rauschen, EMV-Problemen, noch mit Kontaktproblemen (Stecker, Buchsen) zu rechnen ist.

Verwendung

Eine besondere Stärke von I²C ist die Tatsache, dass ein Mikrocontroller ein ganzes Netzwerk von Chips mit nur zwei I/O-Pins und einfacher Software kontrollieren kann.

Busse dieses Typs kamen auf, als die Ingenieure bemerkten, dass ein Großteil der Kosten einer integrierten Schaltung und der verwendeten Leiterplatte von der Größe des Gehäuses und der Anzahl der Pins abhingen. Ein großes Gehäuse hat mehr Pins, braucht mehr Platz auf der Leiterplatte, wiegt mehr und hat mehr Verbindungen, die versagen können. All das steigert die Entwicklungs-, Produktions- und Testkosten und später auch die Betriebskosten, oder verringert den Komfort – Gewicht ist ein sehr wichtiger Faktor für mobile Geräte.

Obwohl langsamer als die meisten anderen Bus-Systeme, ist I²C durch seine niedrigen Kosten geradezu ideal für Peripherie-Geräte, die zwar unbedingt notwendig sind, aber nicht schnell sein müssen. Er wird häufig für Lautstärkeregler, Analog-Digital- oder Digital-Analog-Wandler, Echtzeituhren, kleine nichtflüchtige Speicher oder bidirektionale Schalter und Multiplexer eingesetzt. Auch elektronische Sensoren haben oft einen Analog-Digital-Wandler mit I²C-Schnittstelle integriert.

Während des Betriebes können Chips zum Bus hinzugefügt oder entfernt werden (Hot-Plugging).

I²C wurde auch als Basis für ACCESS.bus und VESAs Monitordaten-Interface (Display Data Channel, kurz DDC) benutzt. Der vom Prozessorhersteller Intel für die Kommunikation von Mainboard-Komponenten definierte SMBus ist dem I²C-Bus sehr ähnlich, die meisten ICs erlauben einen Betrieb an beiden Bussen.

Große Bedeutung hatte das I²C-Protokoll in der Vergangenheit im Chipkartenbereich. Die in Deutschland verwendete Krankenversichertenkarte ist eine I²C-Karte, d. h. unter den goldenen Kontaktflächen der Chipkarte befindet sich ein einfacher I²C-EEPROM, der vom Kartenleser über das I²C-Protokoll ausgelesen und beschrieben werden kann.

Ungeeignet ist der I²C-Bus zur Überbrückung größerer Entfernungen, wie es beispielsweise für Feldbusse typisch ist. Für Übertragungen zwischen verschiedenen Geräten mit getrennten Gehäusen ist der Bus nicht störsicher genug. Störungen sowohl des SDA- als auch des SCL-Signals resultieren in fehlerhaft übertragenen Daten, die vor allem bei Störungen auf SDA nicht einmal erkannt werden können.

Siehe auch

  • SMBus: Technisch sehr ähnlicher Bus, die Bauteile sind oftmals auch kompatibel zum I²C-Bus.
  • Serial Peripheral Interface: Ein weiterer serieller Bus, der aber CS-Leitungen für den Zugriff auf individuelle ICs benutzt, Totem-Pole-Ausgänge und getrennte Sende- und Empfangsleitungen aufweist.
  • 1-Wire: Eine serielle Schnittstelle, die mit einer Datenader auskommt, die sowohl als Stromversorgung als auch als Sende- und Empfangsleitung genutzt wird.
  • Display Data Channel (DDC): serieller Bus zur Kommunikation zwischen PC und Bildschirm, basierend auf dem I²C-Bus.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Inter Integrated Circuit Bus — I²C I²C (pour Inter Integrated Circuit Bus) est le nom du bus historique, développé par Philips pour les applications de domotique et d’électronique domestique au début des années 1980, notamment pour permettre de relier facilement à un… …   Wikipédia en Français

  • Integrated circuit — Silicon chip redirects here. For the electronics magazine, see Silicon Chip. Integrated circuit from an EPROM memory microchip showing the memory blocks, the supporting circuitry and the fine silver wires which connect the integrated circuit die… …   Wikipedia

  • Integrated circuit layout design protection — Layout designs (topographies) of integrated circuits are a field in the protection of intellectual property. Like most of the other forms of intellectual property, IC layout designs are creations of the human mind. They are usually the result of… …   Wikipedia

  • Integrated Circuit Card — Carte à puce Une carte à puce est une carte en matière plastique, voire en papier ou en carton, de quelques centimètres de côté et moins d un millimètre d épaisseur[1], portant au moins un circuit intégré capable de contenir de l information. Le… …   Wikipédia en Français

  • Three-dimensional integrated circuit — In electronics, a three dimensional integrated circuit (3D IC, 3D IC, or 3 D IC) is a chip in which two or more layers of active electronic components are integrated both vertically and horizontally into a single circuit. The semiconductor… …   Wikipedia

  • Circuit extraction — The electric circuit extraction or simply circuit extraction, also netlist extraction, is the translation of an integrated circuit layout back into the electrical circuit (netlist) it is intended to represent. This extracted circuit is needed for …   Wikipedia

  • Integrated Services Digital Network — ISDN redirects here. For other uses, see ISDN (disambiguation). Integrated Services Digital Network (ISDN) is a set of communications standards for simultaneous digital transmission of voice, video, data, and other network services over the… …   Wikipedia

  • I2C — INTER INTEGRATED CIRCUIT (Academic & Science » Electronics) Inter Integrated Circuit (Computing » Drivers) …   Abbreviations dictionary

  • Abkürzungen/Computer — Dies ist eine Liste technischer Abkürzungen, die im IT Bereich verwendet werden. A [nach oben] AA Antialiasing AAA authentication, authorization and accounting, siehe Triple A System AAC Advanced Audio Coding AACS …   Deutsch Wikipedia

  • Liste der Abkürzungen (Computer) — Dies ist eine Liste technischer Abkürzungen, die im IT Bereich verwendet werden. A [nach oben] AA Antialiasing AAA authentication, authorization and accounting, siehe Triple A System AAC Advanced Audio Coding AACS …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”