Two Wire Interface

Aus Wikibooks
Zur Navigation springen Zur Suche springen
WTFPL-2
Hinweis: Wenn Du diese Seite bearbeitest, stimmst Du zu, dass Deine Bearbeitungen zusätzlich unter den Bedingungen der WTF Public License veröffentlicht werden.
WTFPL-2


Worum geht's?[Bearbeiten]

Angaben zum TWI Bus in diesem Kapitel beziehen sich auf die Spezifikation [UM10204].

Die Spezifikation teilt die Arbeitsweise in verschiedene Modi ein.

Im Standard Mode können Daten mit einer Geschwindigkeit von bis zu 100 kbit/s übertragen werden. Im Fast Mode können Daten mit einer Geschwindigkeit von bis zu 400 kbit/s übertragen werden. Neben dem Standard Mode gibt es weitere Modi, die höhere Geschwindigkeiten erlauben. Im Folgenden werden sie jedoch keine Beachtung finden.

Für jede Geschwindigkeitsklasse sind obere und unteren Schranken für die elektrischen Eigenschaften festgelegt, die ein Gerät erfüllen muss. Eine Übersicht findet sich am Ende das Abschnitts.

Elektrische Eigenschaften[Bearbeiten]

Der TWI Bus besteht aus einer Datenleitung (SDA) und einer Taktleitung (SCL). Alle Geräte sind mit Open-Collector Ausgang an diese Leitungen angeschlossen. Eine Leitung liegt damit nur dann auf high, wenn kein Gerät die Leitung auf low zieht.

Die Schwelle für low und high liegt bei 30% bzw. 70% der Versorgungsspannung.

Beim Umschalten zwischen low und high müssen die folgenden Anforderungen erfüllt werden.

  • die Anstiegszeit darf maximal tr betragen
  • die Fallzeit darf maxmial tf betragen

Start Condition[Bearbeiten]

Timing: START Condition

Im Ruhezustand liegen beide Leitungen SDA und SCL auf high

Bevor Daten übertragen werden können, muss sich das Gerät, das die Datenübertragung initiieren möchte, mit einem speziellen Signals zum Master machen. Das Signal trägt auch den Namen Start Condition. Um eine Start Condition zu erzeugen muss das Gerät die SDA Leitung von high auf low ziehen, während die SCL Leitung high ist.

Folgendes Timing muss eingehalten werden.

  • nachdem die SDA Leitung auf low gezogen wurde, muss die SCL mindestens für die hold Zeit tHD;STA weiterhin auf high stehen

Folgendes Timing muss bei einer repeated Start Condition zusätzlich eingehalten werden.

  • bevor die SDA Leitung auf low gezogen wird, müssen SCL und SDA mindestens für die set-up Zeit tSU;STA auf high stehen

Stop Condition[Bearbeiten]

Timing: STOP Condition

Um seine Rolle als Master aufzugeben, muss das Gerät erneut ein spezielles Signal erzeugen. Das Signal trägt auch den Namen Stop Condition. Um eine Stop Condition zu erzeugen, muss das Gerät die SDA Leitung von low auf high gehen lassen, während die SCL Leitung high ist.

Folgendes Timing muss eingehalten werden.

  • bevor SDA auf high gesetzt wird, müssen SCL und SDA für die set-up Zeit tSU;STOP auf high bzw. low stehen
  • nachdem SDA auf high gesetzt wurde, muss die Zeit tBUF verstreichen, bevor erneut eine Start Condition erzeugt werden kann

Datenübertragung[Bearbeiten]

Timing: Datentransfer

Bei der Übertragung von Daten darf sich der Zustand der SDA Leitung nur ändern, wenn die SCL auf low ist. Die SDA Leitung ist bei der Datenübertragung immer stabil, während SCL auf high ist.

Start- und Stop Condition können auf diese Weise also nicht mit Signalen verwechselt werden, die für die Datenübertragung verwendet werden.

Daten werden mit einem Takt übertragen, den der Master auf der SCL Leitung erzeugt.

Der Sender legt dabei Wert des zu versendenden Bits auf die SDA Leitung während die SCL Leitung auf low ist. Falls der Sender nicht der Master ist kann er die SCL Leitung dabei so lange auf low halten, bis er fertig ist. Der Master muss in diesem Fall so lange warten, bis der Slave die SCL Leitung wieder los lässt, bevor er die Daten auf der SDA Leitung übernimmt.

Folgendes Timing muss eingehalten werden.

  • SCL muss mindestens für die Zeit tLOW auf low stehen
  • nachdem SCL auf low gezogen wurde, muss SDA für die hold Zeit tHD;DAT stabil bleiben, bevor SDA auf den zu versendenden Wert gesetzt werden kann
  • nachdem der neue Wert auf die SDA Leitung gelegt wurde, muss die set-up Zeit tSU;DAT verstreichen, bevor SCL wieder auf high gesetzt wird
  • SCL muss mindestens für die Zeit tHIGH auf high stehen

ACK / NACK[Bearbeiten]

Im 9-ten Puls lässt der Sender lässt die SDA Leitung los. Der Empfänger kann sie auf low ziehen um ACK zu signalisieren. Sie bleibt dann für die nächste high Phase der SCL Leitung auf low. Wenn der Empfönger die Leitung nicht auf low zieht signalisiert er NACK.

low ACK Daten wurden erfolgreich empfangen, weitere Daten werden gewünscht
high NACK Daten wurden nicht erfolgreich empfangen / keine weiteren Daten gewünscht

Timing[Bearbeiten]

Die Zeiten, die im Standard Mode und im Fast Mode eingehalten werden müssen finden sich in folgender Tabelle.

Symbol Parameter Standard Mode Fast Mode
Min Max Min Max
fSCL SCL Frequenz 0 kHz 100 kHz 0 kHz 400 kHz
tHD;STA hold time für START condition 4.0 µs - 0.6 µs -
tLOW low Periode des SCL Signals 4.7 µs - 1.3 µs -
tHIGH high Periode des SCL Signals 4.0 µs - 0.6 µs -
tSU;STA set-up time für repeated START condition 4.7 µs 0.6 µs -
tHD;DAT hold time für data ?? 0 µs - 0 µs -
tSU;DAT data set-up time 250 ns - 100 ns -
tr rise time für SDA und SCL - 1000 ns 20 ns 300 ns
tf fall time für SDA und SCL - 300 ns 20 x (VDD/5.5V) 300 ns
tSU;STO set-up time für STOP condition 4.0 µs - 0.6 µs -
tBUF free time zwischen STOP und START 4.7 µs - 1.3 µs -
tVD;DAT data valid time - 3.45 µs - 0.9 µs
tVD_ACK data valid acknowledge time - 3.45 µs - 0.9 µs


Fußnoten[Bearbeiten]



< Two Wire Interface | Inhalt | Projekt-1 >

WTFPL-2
Du hast das Recht unter den Bedingungen der WTF Public License mit diesem Dokument anzustellen was zum Teufel auch immer Du willst.