CARBUSSYSTEMS.COM


I2C (Inter IC Bus)

Beschreibung

Der I2C-Bus ist von Philips entwickelt worden und wurde in der ersten Zeit speziell für die Steuerung von Video-und Audio-IC’s verwendet. Seitdem wurde aber auch der

I2C-Bus für Module in der Industrie entdeckt, da er nur 2 IO-Pins am µC benötigt. Der I2C-Bus arbeitet mit den Leitungen SCL (Clock) und SDA (Daten). Beide Leitungen werden über je eine Stromquelle mit Ii2cmax=3mA – die in der Regel aus einem Widerstand besteht –  auf den 1 Pegel gesetzt, wenn weder Master noch Slave aktiv sind. Daher arbeitet weder der Master, noch der Slave im Push-Pull-Betrieb, sondern setzt den Ausgang auf den 0-Pegel oder wird hochohmig. Da der 1-Pegel daher rezessiv ist, ist ein Multimasterbetrieb einfach zu realisieren, indem im Adressenfeld des Telegramms die niederwertigste Adresse bei gleichzeitigem Senden die 1-Pegel überlagert und so eine einfache Arbitrierung ermöglicht.

Abb. 91 : I2C Aufbau

Gestartet wird eine Übertragung mit einer Startbedingung in dem bei SCL=1, die Leitung SDA auf 0 gesetzt wird. Beendet wird die Übertragung indem bei gesetztem SCL die SDA-Leitung wieder auf 1 gesetzt wird. Die Übertragung eines Bits erfolgt, indem zuerst das Datenbit gesetzt wird, um anschließend nach einer Setupzeit die SCL-Leitung auf 1 und dann wieder zurückzusetzen. Erst nach einer weiteren Setupzeit darf dann die Datenleitung wieder zurückgesetzt werden.

Abb. 92 : I2C Übertragungsformat

Ein komplettes Telegramm zum Senden von Daten an einen Slave besteht aus der Startbedingung, der Adresse, dem RW-Bit, einem Acknowlegde-Bit und weiteren Datenbytes mit je einem Acknowledge-Bit im Anschluss. Ein Acknowledge-Bit bestätigt den Empfang von Daten, indem der Empfänger gültige Daten durch das Setzen der SDA-Leitung auf 0 bestätigt. Wenn der Master Daten anfordert, so sendet er eine gültige Adresse mit dem RW-Bit  auf 1-Pegel gesetzt und erwartet ein Ack-Bit vom Slave. Anschließend sendet der Slave mit jedem SCL-Takt seinen Daten auf die SDA-Leitung und der Master muss jedes Byte mit einem Ack-Bit bestätigen. Das letzte Ack-Bit kann vom Empfänger nicht bestätigt werden, um anzuzeigen, dass keine weiteren Daten empfangen werden sollen.

Abb. 93 : I2C Übertragungsformat

Positive Eigenschaften

Der I2C-Bus ist billig als Master in einem Mikrocontroller zu implementieren. Zudem benötigt er nur 2 IO-Pins an einem Mikrocontroller. Die Flankensteilheit lässt sich zumindest bei den positiven Flanken gut kontrollieren.

Negative Eigenschaften

Der I2C-Bus ist nicht gegen Fehler gesichert ist und ist relativ langsam. Die Implementation eines Slaves per Software erfordert erhöhte Fähigkeiten, was die Start- und Stopbedingung betrifft, da diese Zeitkritisch sind. Allerdings besteht immer noch die Freiheit die Vorgaben von Philips in eigenen Implementationen einzuschränken.

PDF-Version des Textes

Tabelle der wichtigsten Merkmale (pdf)

 


Home Prev Next