I²C, oder Inter-Integrated Circuit, ist ein synchroner serieller Kommunikationsbus. Er wurde 1982 von Philips Semiconductor (heute das niederländische Unternehmen NXP Semiconductors) entwickelt. Er wird häufig zur Verbindung von Peripherie-ICs mit geringerer Geschwindigkeit mit Prozessoren und Mikrocontrollern für die Kommunikation über kurze Entfernungen verwendet, insbesondere innerhalb einer Platine. Alternativ wird I²C manchmal auch als I2C (I-two-C) oder IIC geschrieben.
In der Computerarchitektur ist ein Bus (kurz für lateinisch omnibus) ein Kommunikationssystem, das Daten zwischen Komponenten innerhalb eines Computers oder zwischen Computern überträgt. Der Begriff umfasst alle zugehörigen Hardwarekomponenten – zum Beispiel ein Kabel oder ein Glasfaserkabel – und die Software einschließlich der Protokolle.
Bei den frühen Computerbussen handelte es sich um parallele elektrische Leitungen mit mehreren Hardwareanschlüssen, aber der Begriff wird heute für jede physische Schaltung verwendet, die dieselbe logische Funktion wie ein paralleler elektrischer Bus erfüllt. Moderne Computerbusse können sowohl parallele als auch serielle Verbindungen verwenden und können in einer Multidrop- (bei der alle Komponenten in einem Stromkreis verbunden sind) oder Daisy-Chain-Topologie verdrahtet oder über geschaltete Hubs verbunden sein, wie im Fall von USB.
Busse früher und heute
Frühe Computer enthielten einen eingebetteten Prozessor mit Röhren, eine Magnettrommel als Hauptspeicher sowie ein Lochband und einen Drucker zum Lesen und Schreiben von Daten. Moderne Systeme haben in der Regel einen Multi-Core-Prozessor, DDR4-SDRAM-Speicher, eine Festplatte für die sekundäre Datenspeicherung, eine Grafikkarte und einen LCD-Bildschirm und schließlich eine Maus und eine Tastatur für die Interaktion und WiFi-Konnektivität. In beiden Beispielen übertragen Computerbusse in der einen oder anderen Form Daten zwischen all diesen Geräten.
In den meisten herkömmlichen Computerarchitekturen sind der Prozessor und der Hauptspeicher eng miteinander verbunden. Der Mikroprozessor ist in der Regel ein einziger Chip, der an seinen Pins eine Reihe von elektrischen Verbindungen hat, mit denen eine “Adresse” im Hauptspeicher ausgewählt werden kann, und eine weitere Reihe von Pins, um die dort gespeicherten Daten zu lesen und zu schreiben. In den meisten Fällen haben die CPU und der Speicher gemeinsame Signalisierungsmerkmale und arbeiten synchron. Der Bus, der die CPU und den Speicher verbindet, ist eines der bestimmenden Merkmale des Systems und wird oft einfach als Systembus bezeichnet.
Der in den frühen 1980er Jahren entwickelte I2C-Standard zeichnete sich durch eine Übertragungsgeschwindigkeit von 100 kbps und einen 7-Bit-Adressraum aus. Schauen wir uns das mal genauer an.
I2C – Einleitung
Mehrere Wettbewerber wie Siemens (später ausgegliedert aus Infineon Technologies, heute Intels Forschungsabteilung für mobile Kommunikation), NEC, Texas Instruments, STMicroelectronics (früher SGS-Thomson), Motorola (später Freescale, heute mit NXP fusioniert), Nordic Semiconductor und Intersil haben seit Mitte der 90er Jahre kompatible I2C-Produkte auf den Markt gebracht. Im Gegensatz dazu ist der System Management Bus (SMBus), der 1995 von Intel definiert wurde, eine Untergruppe von I2C mit einer strengeren Anwendung. Moderne I2C-Systeme enthalten einige SMBus-Regeln und -Prinzipien und unterstützen manchmal sowohl I2C als auch SMBus, wobei nur eine minimale Rekonfiguration durch die Ausgabe von Befehlen oder die richtige Verwendung von Ausgangspins erforderlich ist.
Interface Design I2C
Das I2C-Referenzdesign hat einen 7-Bit-Adressraum mit einer selten verwendeten 10-Bit-Erweiterung. Typische I2C-Busgeschwindigkeiten sind 100 kbit/s im Standardmodus und 400 kbit/s im Fastmodus. Es gibt auch einen Low-Speed-Modus von 10 kbit/s, aber auch beliebig niedrige Taktfrequenzen sind zulässig. Neuere I2C-Versionen unterstützen mehr Knoten und arbeiten mit höheren Geschwindigkeiten (400 kbit/s Fast Mode, 1 Mbit/s Fast Plus Mode, 3,4 Mbit/s High Speed Mode und 5 Mbit/s Ultra Fast Mode). Diese Geschwindigkeiten werden eher in eingebetteten Systemen als in PCs verwendet. Typische Spannungen sind 5 V oder 3,3 V, aber auch Systeme mit anderen Spannungen sind akzeptabel.
Die tatsächliche Nutzdatenrate ist niedriger, als die Spitzenbitrate allein vermuten lässt. Wenn beispielsweise bei jeder Interaktion mit einem Slave ineffizienterweise nur 1 Byte an Daten übertragen werden kann, beträgt die Datenrate weniger als die Hälfte der Spitzenbitrate.
Die Anzahl der Knoten, die an einem bestimmten I2C-Bus vorhanden sein können, ist durch den Adressraum und auch durch die Gesamtkapazität des Busses von 400 pF begrenzt, was die praktische Kommunikationsentfernung auf einige Meter beschränkt. Die relativ hohe Impedanz und die geringe Störfestigkeit erfordern ein gemeinsames Massepotential, was wiederum die praktische Anwendung auf die Kommunikation innerhalb derselben Leiterplatine oder eines kleinen Platinensystems beschränkt.
Wie hilfreich war dieser Beitrag?
Klicke auf die Sterne um zu bewerten!
Durchschnittliche Bewertung 5 / 5. Stimmenzahl: 1
Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.