I2CBus

 

I²C (für Inter-Integrated Circuit, meistens gesprochen als I-Quadrat-C oder englisch I-squared-C) ist ein von Philips Semiconductors (heute NXP 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 in den frühen 1980er Jahren entwickelt, um verschiedene Chips in Fernsehgeräten einfach steuern zu können. I²C wird seit Mitte der 1990er Jahre auch von einigen Wettbewerbern zur Bezeichnung von Philips-kompatiblen I²C-Systemen verwendet, darunter Siemens AG (später Infineon Technologies AG), NEC, STMicroelectronics, Motorola (später Freescale), Intersil etc.

Einige Hersteller verwenden die Bezeichnung TWI (Two-Wire Interface), obwohl I²C kein eingetragenes Markenzeichen von NXP Semiconductors ist. Markenschutz besteht lediglich für das Logo. Technisch sind TWI und I²C identisch.

Seit 1. Oktober 2006 fallen für die Implementierung von I²C in eigenen elektronischen Schaltungen keine Lizenzkosten mehr an, da das ursprüngliche Patent ausgelaufen ist.

Geschichte

1992 wurde die erste Spezifikation 1.0 veröffentlicht. Diese ergänzte den ursprünglichen Standard mit 100 kbit/s um einen neuen „schnellen“ Modus mit 400 kbit/s und erweiterte den Adressraum um einen 10 Bit-Modus, so dass statt der ursprünglichen 112 Knoten seitdem bis zu 1136 unterstützt werden. Mit Version 2.0 aus dem Jahr 1998 kam ein „Hochgeschwindigkeits-Modus“ mit max. 3,4 Mbit/s dazu, wobei die Strom- und Spannungsanforderungen in diesem Modus gesenkt wurden. Version 2.1 von 2000 enthält nur kleinere Aktualisierungen gegenüber 2.0. Aktuell gültig ist 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

I2C_1
I²C-Bus mit einem Master und drei Slaves

Im Diagramm rechts sind drei Geräte eingezeichnet. I²C benötigt zwei Signalleitungen: Takt (engl. serial clock line, SCL) und Datenleitung (engl. serial data line, SDA). Beide liegen mit den Pull-Up-Widerständen RP an der Versorgungsspannung Udd. Sämtliche daran angeschlossenen Geräte haben Open-Collector-Ausgänge, was zusammen mit den Pull-Up-Widerständen eine Wired-AND-Schaltung ergibt. Der High-Pegel soll mindestens 0,7 Volt betragen, der Low-Pegel im Bereich −0,5 bis 0,3 Volt liegen. Die im Bild nicht eingezeichneten 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 in der Regel 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, 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 durch einen Low-Pegel während der neunten Takt-High-Phase und als NAK (für engl. Not Acknowledge) durch einen High-Pegel definiert.

I2C-datatransfer
Zeitverhalten am I²C-Bus: Zwischen dem Start-Signal (S) und dem Stopp-Signal (P) werden die Datenbits B1 bis BN übertragen.

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 dabei „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 Eigenschaft von I²C ist die Tatsache, dass ein Mikrocontroller ein ganzes Netzwerk an integrierten Schaltungen mit nur zwei I/O-Pins und einfacher Software kontrollieren kann. Busse dieses Typs wurden realisiert, da ein Teil der Kosten einer integrierten Schaltung und der verwendeten Leiterplatte von der Größe des Gehäuses und der Anzahl der Pins abhängt. 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.

Obwohl langsamer als die meisten anderen Bus-Systeme, ist I²C ideal für Peripherie-Geräte, die nicht schnell sein müssen. Er wird häufig für die Übertragung von Steuer- und Konfigurationsdaten verwendet. Beispiele sind Lautstärkeregler, Analog-Digital- oder Digital-Analog-Wandler mit niedriger Abtastrate, Echtzeituhren, kleine nichtflüchtige Speicher oder bidirektionale Schalter und Multiplexer. 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 wird 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 einfaches 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.
Dieser Artikel basiert auf dem Artikel I²C aus der freien Enzyklopädie Wikipedia und steht unter der Doppellizenz GNU-Lizenz für freie Dokumentation und Creative Commons CC-BY-SA 3.0 Unported (Kurzfassung). In der Wikipedia ist eine Liste der Autoren verfügbar.

Zu warm ist zu teuer

Was passiert, wenn es im Sommer in der Wohnung 24 Grad hat? Viele stöhnen über die warme Wohnung, weil das Einschlafen nicht gelingen will. Was passiert, wenn die kalte Jahreszeit kommt? Richtig! Viele heizen, bis es in der Wohnung eine Temperatur von 24 Grad hat...

Genau dieser Widerspruch kostet enorme Summen, denn die Heizkosten werden aufgrund der diversen Energieengpässe nicht billiger werden, im Gegenteil. Grund genug, sich Gedanken über Möglichkeiten zu machen, wie man die Heizkosten im Eigenheim senken kann. Es gibt einige Überlegungen, die durchaus lohnen können.

Ein Grad weniger ist sechs Prozent weniger

Wer bisher seine Wohnung auf 24 Grad "hochgeheizt" hat, kann bereits bis zu sechs Prozent der Heizkosten sparen, wenn stattdessen auf 23 Grad geheizt wird und dafür ein wärmeres Gewand (ein Pullover, dicke Socken) angezogen werden. Wobei die empfohlene Zimmertemperatur bei 21 Grad liegen sollte. Für viele Menschen ist das aber zu kühl.

Intelligent heizen

Räume, die selten bis nie benutzt werden, sollten überhaupt nicht beheizt werden, weil das eine reine Energieverschwendung darstellt. In der Nacht sollte die Heiztemperatur ebenfalls reduziert werden, denn die Räume sind dann ohnehin nicht in Verwendung. Moderne Heizungen bieten hier Einstellungsmöglichkeiten, die zeitgesteuert die Temperatur regeln können.

Es ist zwar unangenehm, wenn es in der Früh etwas kühler ist, aber andererseits lässt sich dies durch einen heissen Tee oder Kaffee bzw. eine heisse Dusche leicht kompensieren. Denn danach sind die Eltern in der Arbeit und die Kinder in der Schule und die Räume werden erst recht nicht benötigt - wozu also mit Vollgas heizen? Das kann man am Nachmittag immer noch nachholen.

Richtig lüften

Nein, es bringt nichts, eine halbe Stunde zu lüften, um für Frischluft zu sorgen. Das heisst, es bringt schon etwas, ist aber heiztechnisch falsch. Besser ist es, stoßweise zu lüften. Das heisst, dass man vier- bis fünfmal am Tag für etwa fünf Minuten das Fenster ganz aufmacht und die kalte Luft hereinlässt. Dadurch kommt es zu einem kompletten Luftaustausch und die erneuerte Luft lässt sich schneller beheizen bzw. erwärmen.

Danach sollten die Fenster wieder geschlossen werden, damit die Raumtemperatur nicht zu weit abkühlt. Auf diese Weise lassen sich die Heizkosten merkbar reduzieren.

Kontrolle der Heizkörper

Die regelmässige Wartung der Heizkörper bzw. der Heizungsanlage ist ebenfalls ein entscheidender Punkt auf dem Weg zur Kostenersparnis. Wenn beispielsweise Luftblasen im Heizkörper entstehen und keine Entlüftung durchgeführt wird, verbraucht der Heizkörper unnötig viel Energie, die man mit der richtigen Wartung einsparen könnte.

Kontrolle der Fenster

Die modernste Heizanlage bringt nichts, wenn die Fenster undicht sind. Dann wird die Heizperiode immer teurer, obwohl es in den Räumen nicht wärmer wird. Eine Überprüfung der Fenster auf undichte Stellen und eine Erneuerung der Isolierung helfen mit, die Heizkosten zu reduzieren.

Ein zusätzlicher Tipp für Menschen mit hohen Räumen: die erwärmte Luft steigt sofort nach oben und deshalb bedarf es einigen Aufwandes, um die Temperatur am Boden auf das gewünschte Mass zu erwärmen. Mit einem Deckenventilator kann man dem vor allem bei hohen Räumen Abhilfe schaffen, denn der Ventilator verteilt die warme Luft im gesamten Raum besser und hilft so ebenfalls beim Sparen der Heizkosten.

Quelle: http://www.wissenswertes.at/index.php?id=heizkosten-sparen