zum Directory-modus

I2C-Bus

Datenübertragung zwischen Master und Slave

Hat der Master mit Startbedingung, Adressierung und R/W-Bit erst einmal einen Slave angesprochen, so kann in diesem Modus prinzipiell eine beliebige Zahl von Bytes vom Master zum Slave (R/W=0) oder vom Slave zum Master (R/W=1) übertragen werden. Diese Übertragung erfolgt in Byte, wobei der Empfänger (Slave oder Master) den Empfang mit einem LOW-Pegel auf der SDA-Leitung im neunten SCL-Puls bestätigt. Wechselt der R/W-Modus so sind vom Master erneut die Startbedingungen wiederherzustellen und der entsprechende Baustein ist neu zu adressieren. Erst dann kann die Datenkommunikation auf der SDA-Leitung wieder aufgenommen werden.Grundsätzlich sind folgende Fälle der Kommunikation des I2C-Buses zu unterscheiden:

  • Datenübertragung vom Master zum Slave
  • Datenübertragung vom Slave zum Master
  • Kombinierte Datenübertragung zwischen Master und Slave

Als Beispiel für eine Kommunikation soll nun der Fall der kombinierten Datenübertragung zwischen Master und Slave näher betrachtet werden (Abb. 1) .

Bei diesem Fall der Datenübertragung stellt initial der Master zunächst die Startbedingungen her und wählt den Slave-Baustein mit 7 Adressbit an. Im achten Bit teilt der Master dem Slave mit, dass dieser nun Daten zu empfangen hat (R/W=0). Der Slave quittiert mit einem LOW-Pegel auf der SDA-Leitung den Empfang des Bytes, worauf hin der Master nach dem bekannten Muster (Master sendet 8 Bit, Slave quittiert mit LOW-Pegel auf der SDA-Leitung im neunten Taktimpuls auf der SCL-Leitung) weitere Daten an den Slave übermittelt. Soll nun die Datenübertragungsrichtung umgekehrt werden, so muss der Master nach dem letzten ACKNOWLEDGE des Slaves erneut die Starbedingungen erzeugen. Er muß also Start Recall (SR), die sieben Adressbits und das R/W-Bit (R/W=1, Read) senden. Der Slave quittiert nun mit SDA-Pegel LOW den Empfang des Bytes und sendet in den nächsten acht SCL-Takten die Daten zum Master. Im neunten Taktimpuls auf der SCL-Leitung signalisiert der Master dem Slave, dass er die Daten ordnungsgemäß empfangen hat. Daraufhin stellt der Slave weitere Datenbytes bitweise seriell auf der SDA-Leitung bereit, die jeweils durch ein ACKNOWLEDGE (SDA=LOW) im neunten Taktimpuls auf der SCL-Leitung bestätigt werden. Beendet wird der Datentransfer durch die Verweigerung des Masters mit ACKNOWLEDGE (SDA=HIGH) und die Herstellung der STOPPBEDINGUNG ebenfalls durch den Master.

Abb.1
Darstellung der kombinierten Datenübertragung Master/Slave
Abb.2
Seite 5 von 6