iic00b.png
Edit v1.032 from 2002-07-25 to 2009-10-20 by HSc

Inter-IC-Bus

Der Inter-IC-Bus, auch I2C-Bus genannt, war von Philips für den Einsatz auf Platinen konzipiert. Damit sollte eine platzsparenden Bus-Verbindung von Microprozessoren und anderen IC's erreicht werden. Inzwischen wird er auch bei Autos (Messen, Steuern, Regeln) und bei der Steuerung von Musik-Mischpulten verwendet.

Applikationen der IC's
  • 8 Bit−I/O−Schnittstelle mit dem PCF8574P.
  • EEProm als der Datenspeicher für 16kBit mit dem 24C16.
  • Digital−Analog−Wandlung mit dem IC MAX538".
BUS-Hardware mit BUS-Software mit
  • Protokoll mit den Übertragungs-Sequnezen für Start, Adresse, Daten, Quittung und Ende.

Applikationen mit den IC's

IC PCF8574P

Der PCF8574P ist eine I/O-Baustein, welcher auf Lesen oder Schreiben der 8 Datenleitungen eingestellt werden kann. Die 7−Bit Adressemaske des Bausteins ist 010 0???B und reicht damit von 20H bis 27H.

IC 24C16

IC MAX538

Der IC ist ein 12Bit−D/A−Wandler im DIL08;minus;Gehäuse.

BUS

Hardware

Ein Kabel mit der Kategorie Cat. 3 genügen, wie es bei seriellen Datenleitungen (COM-Port), ISDN- und Telefon-Leitungen eingesetzt wird.

Aufbau

Die platzsparenden Bus-Verbindung wurde durch die Reduzierung der Leitungsanzahl erreicht. Der Inter-IC-Bus benötigt nur maximal 5 Leitungen. Diese wären
  1. GND = Ground, d.h. die Masseleitung;
  2. SCL = Serial Clock, d.h. die serielle Taktleitung;
  3. SDA = Serial Data, d.h. die serielle Datenleitung und
  4. INT = Interrupt, d.h. die Unterbrechungsleitung, falls man die Möglichkeit des Interrupt nutzen möchte.
  5. +Ub = positive Betriebsspannung von 5V, für den Fall das keine Spannungsversorgung vor Ort existiert;
Reduzieren kann man die Leitungsanzahl weiter bis auf 3 Ardern für GND, SCL und SDA.

Belegung

Da die Belegung von Steckern und Buchsen nicht standardisiert sind, hier die Pin-Belegung von einige bekannte Einsatzbeispielen.

Signal: GND SCL SDA INT Ub=5V
Stecker/Buchse


Fußzelle 1 Fußzelle 2 Fußzelle 3 Fußzelle 4 Fußzelle 5 Fußzelle 6
Sub-D 9polig/2reihig
nach ELV
1, 2, 3 7 8 9 4, 5, 6


Software

Protokoll

In der Abb. 2a ist ein möglicher Signalverlauf auf den Leitungen dargestellt. Er wurde als als Bild von einem Visual Basic-Programm erzeugt.
iic02a.png Abb 2a: Möglicher Signalverlauf auf den Leitungen beim Datenspeicher
Hier sind gut die einzelen Sequenzen der Kommunikation zu erkennen.
  1. Laut Protokoll beginnt die Kommunikation mit einer Startsequenz.
  2. Nach dem Start wird per Adresse festgelegt, mit Wem (Schaltkreis bzw. IC) man Daten austauschen möchte. Aber auch die Richtung wird festgelegt.
  3. Nach dem klar ist mit Wem erfolgt nur das Was in Form einer Datensequenz. Diese wird vom Empfänger per Acknowledge bestätigt, wenn sie korrekt angekommen ist.
  4. Nach der Datensequenz folgt die Stopsequenz. Die Möglichkeit das nach der Datensequenz weiter folgen ist gegeben.
Sequenzen

Das Aussehen der einzelnen Sequenzen und das Zusammenspiel von Takt- und Datenleitung wird im folgenden analysiert.

In der Regel ändert die Datenleitung ihren Pegel nur in des Low-Pegels vom Takt. Da mit steigender (LH) und mit fallender (HL) Flanke des Takt, der Zustand der Datenleitung abgefragt wird. Ist der Wert High oder Low in beiden Fällen gleich, ist der Wert des Datenbits gültig. Ist er nicht gleich, dann war dies keine Daten sondern eine Steuerinformation, wie Start- oder Stop-Signal.

  1. Die Startsequenz startet aus der Inaktivität.
    iic02b.png
    Abb. 2b: Startsequenz
    Hier haben das Signal auf der Taktleitung und das auf der Datenleitung statisch den High-Pegel. Ändert während des High-Pegels des Taktes die Datenleitung ihren High-Pegel auf Low-Pegel und folgt der Taktpegel diesem nicht eher als 365µs nach, bedeutet dies den Start einer Übertragung. Diese Signalfolge wird dadurch Startsequenz genannt.

  2. Nach der Startsequenz folgt generell die Adresse des Kommunikationspartner.
    iic02c0.png
    Abb. 2c: Adress-Sequenz
    Das Adress-Sequment besteht aus der Adresse (7 Bit) selbst und dem Richtungsbit. Diese Adresse wird vom Partner festgelegt und besteht aus 2 Teilen.
    1. Teil, bestehend aus den höherweitigen 4 Bit und ist hardwaremässig im IC festgelegt.
    2. Teil, besteht oftmals aus einer 3 stelligen Bitkombination, welche in der Nähe des IC's mit Jumpern gesetzt wird.
    Neben dem Wem wird auch im Bit 0 die Richtung der Übertragung mit dem Bit Read/Write festgelegt. Ist diese Bit High dann wird von der Adresse gelesen, ansonsten zu ihr geschieben.

  3. Ein Datensequenz besteht mindestens aus einem Datenbyte mit 8 Datenbits und
    iic02d0.png
    Abb. 2d: Datensequenz
    der Quitung-Bestätigung vom Empfänger an den Absender. Bei den Datenbits wird zuerst das Bit 7 und zuletzt das Bit 0 übertragen.

  4. Die Stop-Sequenz wird durch den aktiven Kommunikationspartner eingeleitet.
    iic02e.png
    Abb. 2e: Stop-Sequenz
    Dazu wird bei High auf der Taktleitung, die Datenleitung nicht eher als 105µs und nicht später als 155µs auch auf High gezogen.