I²C

I2C
Quelle: Wikimedia Commons

 

Ein I²C Bus braucht 2 Signaleitungen, wovon eine Leitung mit SDA die Daten seriell überträgt und eine andere mit SCL die Taktimpulse sendet. Jeder der I2C-Bausteine kann einzeln über ein 7-bit großes Adressbyte angesteuert werden und erkannt werden. Im 8. Bit wird festgelegt, ob das jeweilige Teil lesen oder schreiben kann. Es gibt einen Master und mehrere Slaves (es gibt auch Multi-Master-Modi, jedoch wird darauf nicht weiter eingegangen). Sobald ein Start-Condition vom Master gesendet wurde, überprüft jeder der Slaves, ob ihr Adressbyte mit dem angeforderten übereinstimmt. Ist dies der Fall findet ein Datenaustausch statt. Um dies zu beenden sendet der Master eine Stop-Condition, sodass der ganze Vorgang von Vorne gestartet werden kann. In der oberen Abbildung ist der grobe Aufbau dieses Busses dargestellt. Bei einer Start-Condition wird das SDA-Signal auf LOW gesetzt, während das SCL-Signal nicht verändert wird. Die Stop-Condition ist gerade herumgedreht, das SDA-Signal wird auf HIGH gesetzt, währenddessen sich das SCL-Signal nicht verändert (siehe Abbildung unten).

 

Stop-Condition
Quelle: Wikimedia Commons

Es gibt mehrere Modes in denen der Bus laufen kann. Die Übertragungsrate im Standard Mode beläuft sich auf bis zu 100 kbit/s, der Fast Mode auf bis zu 400 kbit/s  und im High-Speed Mode auf bis zu 3,4 MBit/s. Früher wurden hauptsächlich nur Statusinformationen über diesen Bus übermittelt, aber mit der Zeit sollten auch Texte und größere Daten übertragen werden, was zur Folge hatte, dass ein Fast Mode entwickelt wurde mit den dementsprechend höheren Übertragungsraten. Für spezielle RAM-Komponenten wurden sogar noch höhere Übertragungsraten entwickelt.