Data Buses Flashcards
I^2C: Wie verändert sich die Anzahl der ACKs und NACKs in der I²C-Kommunikation, wenn anstelle von einem Byte zwei Byte gesendet werden?
Die Anzahl der ACKs erhöht sich um eins, da für jedes empfangene Byte ein ACK gesendet wird. Die Anzahl der NACKs bleibt gleich, da ein NACK nur bei einem Übertragungsfehler oder zur Beendigung der Kommunikation gesendet wird.
Wie viele Leitungen verwendet der I²C-Bus und wofür sind sie da?
Der I²C-Bus verwendet zwei Leitungen:
- SDA (Serial Data Line): Überträgt die Daten.
- SCL (Serial Clock Line): Gibt den Takt für die Kommunikation vor
Was bedeutet es, dass der I²C-Bus nach dem Master-Slave-Prinzip arbeitet?
Im Master-Slave-Prinzip steuert der Master die Kommunikation, indem er den Takt bereitstellt und Daten initiiert.
Slaves warten auf Anweisungen des Masters, um Daten zu senden oder zu empfangen.
Wie funktioniert die Adressierung der Geräte im I²C-Bus?
Jedes Gerät im I²C-Bus hat eine eindeutige 7-Bit-Adresse. Der Master verwendet diese Adresse, um ein spezifisches Slave-Gerät anzusprechen.
Was passiert, wenn zwei Master gleichzeitig auf den I²C-Bus zugreifen wollen?
In einem Multi-Master-System verwendet der I²C-Bus eine Methode, bei der das Gerät mit der höchsten Priorität (basierend auf dem ersten gesendeten „0“-Bit) den Zugriff auf den Bus erhält
Wie erkennt der I²C-Bus, dass ein Byte erfolgreich übertragen wurde?
Nach jeder Byte-Übertragung sendet der Empfänger ein ACK-Bit (Acknowledgement), um zu bestätigen, dass das Byte korrekt empfangen wurde. Wenn der Empfänger kein ACK sendet, bedeutet dies, dass das Byte nicht korrekt empfangen wurde (NACK)
Was versteht man unter Clock Stretching im I²C-Bus?
Beim Clock Stretching kann ein Slave den SCL (Clock) anhalten, indem er die Leitung auf LOW hält, um mehr Zeit zur Verarbeitung der empfangenen Daten zu gewinnen, bevor die Übertragung fortgesetzt wird
Wie werden Datenrahmen im I²C-Bus strukturiert?
Ein Datenrahmen im I²C-Bus besteht aus:
- Start-Bit
- Adresse des Empfängers
- Lese-/Schreib-Bit
- Datenbyte
- ACK/NACK
- Stop-Bit
Welche Probleme können bei I^2C Bus auftreten, wenn zwei Master gleichzeitig senden?
In einem Multi-Master-System können Situationen entstehen, in denen zwei oder mehr Master gleichzeitig versuchen, eine Übertragung zu starten.
Ohne ein Mechanismus zur Konfliktvermeidung würde dies zu Kollisionen führen, bei denen mehrere Geräte gleichzeitig Signale auf den Bus schreiben, was die Datenübertragung stören würde.
Was ist die Lösung für die Konflinkte zwischen Mastern?
Kurz: Das System verwendet ein Arbitration-Verfahren, um Konflikte zu lösen, wenn mehrere Master gleichzeitig senden wollen. Der Master mit der höchsten Priorität gewinnt, während der andere seine Übertragung unterbricht. Dies sorgt für eine fehlerfreie Datenübertragung und eine stabile Synchronisation zwischen den Mastern und dem Bus.
Arbitration:
- Das Arbitration-Verfahren funktioniert auf der Basis des CSMA/CR (Carrier Sense Multiple Access / Collision Resolution)-Protokolls. Die Master „hören“ den Bus, während sie Daten senden. Der Master, der zuerst eine dominante „0“ sendet, gewinnt die Arbitration.
- Wired-AND-Logik: Auf dem I²C-Bus ist die „0“ dominant, d.h., wenn zwei Master unterschiedliche Bits senden (z.B. einer sendet 1, der andere 0), wird die 0 auf dem Bus durchgesetzt.
- Der Master, der den Bus verliert (weil er versucht hat, eine 1 zu senden, aber eine 0 auf dem Bus gefunden hat), stoppt sofort seine Übertragung. Der andere Master darf die Kommunikation fortsetzen.
Welche Topologien gibt es?
- Bus Topology: Alle Teilnehmer sind an einer gemeinsamen Leitung (Bus) angeschlossen.
- Stern Topology: Jeder Teilnehmer hat eine direkte Verbindung zur zentralen Station.
- Ring Topology: Die Teilnehmer sind kreisförmig miteinander verbunden, und die Daten werden in eine Richtung gesendet.
Was ist Clock Stretching (I^2C Bus)?
Clock Stretching ist ein Mechanismus im I²C-Bus, der es dem Slave ermöglicht, den SCL (Clock) anzuhalten, indem er die Clock-Leitung auf einem niedrigen Pegel (Low) hält. Dadurch kann der Slave mehr Zeit zur Verarbeitung der empfangenen Daten erhalten oder für die Vorbereitung auf das Senden einer Antwort. Sobald der Slave bereit ist, lässt er die Clock-Leitung wieder los, sodass die Kommunikation weitergehen kann.
Vor- und Nachteile: Bus Topologie
Vorteile:
- Günstig und einfach umzusetzen.
Nachteile:
- Nur ein Teilnehmer kann zu einem bestimmten Zeitpunkt senden.
- Ein einziger Fehler (z.B. bei einem Busabschluss) kann das gesamte Netzwerk beeinträchtigen.
Vor- und Nachteile: Stern Topologie
Vorteile:
- Mehrere Teilnehmer können gleichzeitig senden, da die zentrale Station als Knotenpunkt dient.
- Kein Kollisionserkennungsmechanismus notwendig.
Nachteile:
- Teurer, da mehr Verkabelung und eine zentrale Einheit erforderlich sind.
- Die zentrale Station ist ein Single Point of Failure: Wenn sie ausfällt, ist das gesamte Netzwerk betroffen.
Vor- und Nachteile: Ring Topologie
Vorteile:
- Hohe Qualität des Dienstes, da jeder Teilnehmer nur auf Daten aus dem Nachbarknoten antwortet.
- Mehrere Teilnehmer können gleichzeitig senden, solange sie nicht den gleichen Abschnitt des Rings verwenden.
Nachteile:
- Komplex und teuer.
- Wie in der Stern-Topologie gibt es auch hier potenziell einen Single Point of Failure, wenn ein Knoten ausfällt.
Vor- und Nachteile: Return-to-Zero
- Der Pegel kehrt zwischen den Impulsen in einen neutralen Zustand zurück.
- Es sind drei Zustände erforderlich: positiv, negativ und neutral.
- Selbst-synchronisierend, was bedeutet, dass der Empfänger die Synchronisation mit dem Signal ohne zusätzliche Signalinformationen aufrechterhalten kann.
- Halbe Datenrate, da mehr Übergänge für Synchronisationszwecke verwendet werden müssen.
Vor- und Nachteile: Non-Return-To-Zero
- Keine Rückkehr in den neutralen Zustand zwischen den Impulsen.
- Benötigt eine externe Synchronisation, da lange Folgen von Nullen oder Einsen zu Synchronisationsproblemen führen können.
- Kapazitive Probleme können auftreten, da lange konstante Pegel auf dem Übertragungsmedium gespeichert werden können.
- Bietet eine volle Datenrate, da der Pegelwechsel nur für die Datenübertragung verwendet wird.