Synchron vs. Asynchron Kommunikation mit Logic Analyser betrachten

Bei serieller Kommunikation werden Daten Bit für Bit über eine Leitung übertragen – im Gegensatz zu parallel, wo mehrere Bits gleichzeitig über mehrere Leitungen gehen.
Das ist praktisch, weil man weniger Kabel braucht und Signale auch über größere Strecken stabil bleiben.
Doch wie weiß der Empfänger, wann er ein Bit lesen soll?
Genau hier kommt der Unterschied zwischen synchron und asynchron ins Spiel.

In diesem kleinen Projekt begegnen uns zwei grundlegend unterschiedliche Arten der Datenübertragung: synchron (I2C) und asynchron (UART über den TX-Port). Beide haben ihre eigenen Regeln und Einsatzgebiete – und lassen sich wunderbar mit einem Logic Analyser sichtbar machen.

MerkmalSynchronAsynchron
TaktsignalGemeinsamer Takt (z.B. CLK)Kein gemeinsamer Takt
SynchronisationKontinuierlich durch TaktJedes Zeichen durch Start-/Stoppbit
ÜbertragungBlockweiseZeichenweise
BeispieleSPI, I2CUART, serielle PC-Schnittstelle

Synchron = mit Takt, schneller, weniger Overhead.
Asynchron = ohne Takt, flexibler, mehr Overhead durch Start-/Stoppbits.

Synchrone Kommunikation – Beispiel: I2C

In dem Youtube Video wird die Kommunikation zwischen zwei Microkontroller Boards per I2C gezeigt.
Mit einem Logic Analyser wird grafisch dargestellt und gezeigt, wie dieses On-Board-Kommunikationsprotokoll funktioniert und damit auch bei Störungen analysiert werden kann.

Der I2C Bus benötigt zwei Leitungen und deshalb auch Two-Wire-Interface (englisch für Zweidraht-Schnittstelle) genannt.
Bei der I2C-Kommunikation teilen sich alle Teilnehmer eine gemeinsame Taktleitung (SCL). Diese sorgt dafür, dass Sender und Empfänger genau wissen, wann ein Bit gültig ist.
Die Datenleitung (SDA) überträgt die eigentlichen Informationen, aber nur im Rhythmus des Taktsignals.

Merkmale:

  • Gemeinsamer Takt (SCL)
  • Alle Teilnehmer sind zeitlich synchronisiert
  • Ideal für kurze Strecken und mehrere Geräte

Visualisierung im Logic Analyser:
Du siehst zwei parallele Signale – SCL und SDA – wobei die Daten immer im Takt von SCL übertragen werden.

Weitere Details und Informationsquelle: https://de.wikipedia.org/wiki/I²C

Hardwareumgebung:
2x Arduino Uno oder ähnliche
AZDelivery LogicAnalyser
Steckbrett

Software:
Signal Analysis Software Suite oder
Logic2 von Saleae

Verdrahtung:

Video:


Nicht im Video zu sehen:

Während im oberen Teil die I2C Kommunikation betrachtet wurde, wurde zeitgleich per USB Kabel für den Seriellen Monitor Zeichen übertragen. Auch diese kann mit dem Logic Analyser betrachtet werden.

Asynchrone Kommunikation – Beispiel: UART (TX-Port)

Beim seriellen TX-Port handelt es sich um eine asynchrone Übertragung. Hier gibt es keine Taktleitung. Stattdessen wird jedes Datenpaket mit einem Startbit eingeleitet und mit einem Stopbit abgeschlossen. Der Empfänger muss die Daten mit einem vorher vereinbarten Timing interpretieren.

Merkmale:

  • Kein gemeinsamer Takt
  • Timing wird durch Start-/Stopbits geregelt
  • Häufig bei seriellen Schnittstellen wie USB oder RS232

Visualisierung im Logic Analyser:

Um diese Kommunikation mitzuschneiden, muss am Arduino Pin 1 (TX-Port) mit dem Logic Analyser Cannel 2 verbunden werden.
Einstellungen in der AnalyseSoftware:

Die Signal Analyse im Cannel 2 zeigt deutlich den gesendeten Text „x is 194“ am seriellen TX-Port:

Du erkennst einzelne Datenpakete, die durch Start und Stop Bits eingerahmt sind. Die Abstände zwischen den Bits sind konstant, aber nicht durch ein externes Taktsignal gesteuert.



, , ,
Datenschutz-Übersicht

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzerkomfort bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst und hilft uns zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.