Das I²C-Protokoll


Das I²C-Protokoll (Inter-Integrated Circuit) ist ein serielles Protokoll zur Ansteuerung von Sensoren und Aktoren, das in den 80er Jahren von Philips entwickelt wurde. 1992 erschien die erste Spezifikation; inzwischen hat sich das Protokoll als de-facto-Standard für die Ansteuerung von Sensoren durchgesetzt [1, 2]. Das Protokoll arbeitet mit einer Takt- und einer Datenleitung mit 3,3V- oder 5V-Logik. Die Übertragungsrate beträgt mindestens 100 kbit/s (standard mode); die meisten Sensoren unterstützen jedoch inzwischen den fast mode (400 kbit/s), einzelne noch höhere Geschwindigkeiten (1 Mbit/s, 3,4 Mbit/s oder sogar 5 Mbit/s).

Das Protokoll ist für die Praxis vor allem deshalb so interessant, weil es ein so genanntes Bus-Protokoll ist, d. h. über die Verbindungsleitungen können mehrere Sensoren angesprochen werden. Der Bus-Master spricht jeden Slave (Sensor oder Aktor) mit einer eindeutigen 7-bit-Adresse an; somit können theoretisch ca. 120 Sensoren oder Aktoren an demsleben Bus betrieben werden. Diese Zahl kann durch Muliplexer und Signalverstärker sogar noch erheblich vergrößert werden. Das Protokoll hat sehr wenig "Verwaltungs-Overhead" und kann daher vor allem große Datenmengen schnell übertragen. Schreib- und Lesekommandos werden am niederstwertigen Bit des Adressfelds unterschieden. Große Datenübertragungen (burst) reservieren den Bus und übertragen die Daten in einem Zug.

Auch die fischertechnik-Controller (TX, TXT) unterstützen das Protokoll am EXT-Ausgang (zu den ROBO Pro-Treibern).

[1] NXP: I²C-bus specification and user manual UM10204, Rev. 4 vom 13.02.2012.
[2] Dirk Fox: I²C mit TX und Robo Pro - Teil 1: Grundlagen. ft:pedia 3/2012, S. 32-37.