I²C
Abkürzung für Inter-Integrated Circuit, ein Standard für die Kommunikation integrierter Schaltkreise über zwei Leitungen.
I²C: Zweidraht-Protokoll für die Kommunikation mit Chips auf der Platine
I²C (Inter-Integrated Circuit) ist ein synchroner serieller Bus, der integrierten Schaltungen ermöglicht, über nur zwei Leitungen miteinander zu kommunizieren: eine Taktleitung (SCL) und eine Datenleitung (SDA). Beide Leitungen sind Open-Drain-Ausgänge, werden durch Widerstände nach oben gezogen, und Geräte ziehen sie nach unten, um zu senden. Diese Zweidraht-Beschränkung macht I²C kostengünstig umzusetzen auf Leiterplatten und ermöglicht es, mehrere Geräte (Slaves) von einem einzelnen Master-Controller anzusteuern.
Das Protokoll nutzt 7-Bit- oder 10-Bit-Adressierung, Daten werden in 8-Bit-Rahmen übertragen, ein Bit pro Taktzyklus. Der Standard-Modus läuft mit 100 kHz, Fast-Modus mit 400 kHz und Fast Plus mit 1 MHz; höhere Geschwindigkeiten sind möglich, erfordern aber kürzere Leiterbahnen. Der angesteuerte Slave bestätigt den Empfang jedes Bytes, indem er SDA während des neunten Taktzyklus nach unten zieht. Die Kommunikation ist Halbduplex: Ein Gerät sendet, während die anderen zuhören.
I²C ist überall in der Industrie- und Unterhaltungselektronik anzutreffen. Temperatursensoren, EEPROM-Speicherbausteine, Echtzeituhr-Chips, IO-Expander und Display-Treiber nutzen üblicherweise I²C. Ein einzelner Master (oft ein Mikrocontroller) kann mit Dutzenden Slaves über das gleiche Leitungspaar kommunizieren, was es ideal für verteilte Sensor- und Steueranwendungen macht, bei denen die Minimierung der Verdrahtung wertvoll ist.
Häufige Fehlermodi und Design-Fallen
Die Wahl der Pull-up-Widerstände ist entscheidend: Zu schwach und die Flanken sind langsam, zu stark und der Stromverbrauch steigt. Typische Werte liegen zwischen 4,7 kΩ und 10 kΩ für Standard-Modus, geringer für schnellere Geschwindigkeiten. Lange Leitungen (über 1 Meter) leiden unter Kapazitätsaufbau, der die Anstiegszeit verlangsamt und Bitfehler verursacht. Pufferung hinzufügen, Zwischenpullups einbauen oder zu CAN wechseln (das Differenzsignalisierung nutzt) löst dies auf längeren Bussen. Adresse-Kollisionen entstehen, wenn zwei Geräte die gleiche werkseitig programmierte Adresse haben; manche Bauteile bieten sprungbar wählbare Adressbits an, um dies zu vermeiden.
I²C bleibt in der Industriesteuerung dominant, weil es einfach zu debuggen ist, keine speziellen Stecker erfordert und die meisten Mikrocontroller-Hersteller Hardware-I²C-Controller bereitstellen. Software-gesteuert (Bit-Banging) I²C ist in älteren Systemen verbreitet und funktioniert, ist aber weniger zuverlässig. Für Systeme, die höhere Geschwindigkeit oder größere Reichweite erfordern, werden SPI oder CAN bevorzugt, aber keines kann mehrere Slaves so kostengünstig vom Verdrahtungsstandpunkt aus adressieren.