UART einfach erklärt: Datenübertragung, Parity-Bit und Fehlererkennung

Das ist ein vollwertiger Auszug aus dem Buch Elektronik und Heimautomation DIY.

UART steht für Universal Asynchronous Receiver and Transmitter. Für die Kommunikation werden lediglich zwei Datenleitungen benötigt: TX (Transmit) zum Senden und RX (Receive) zum Empfangen. UART verwendet keine Taktsignale (Clock) wie andere Protokolle, sondern arbeitet mit Start- und Stop-Bits, um die Übertragung zu koordinieren.

Wenn der Empfänger ein Start-Bit (LOW) erkennt, beginnt er mit dem Lesen der folgenden Datenbits, bis das Stop-Bit (HIGH) das Ende des Datenpakets signalisiert. Die Geschwindigkeit der Datenübertragung wird durch die sogenannte Baudrate definiert. Diese gibt an, wie viele Symbole (Bits) pro Sekunde übertragen werden. Sowohl Sender als auch Empfänger müssen auf dieselbe Baudrate eingestellt sein, um eine fehlerfreie Kommunikation zu gewährleisten.

Wie funktioniert UART?

Für die Kommunikation werden lediglich zwei Datenleitungen benötigt: TX (Transmit) zum Senden und RX (Receive) zum Empfangen. Da UART asynchron arbeitet (kein gemeinsamer Takt), nutzen Sender und Empfänger Start- und Stop-Bits, um sich zu synchronisieren.

Das UART-Prinzip

  • TX & RX: Kreuzverbindung (Sender-TX an Empfänger-RX).
  • Baudrate: Synchronisation über die Geschwindigkeit (z.B. 9600 oder 115200 Baud).
  • Start-Bit: Ein LOW-Signal signalisiert den Beginn der Übertragung.
  • Stop-Bit: Ein HIGH-Signal signalisiert das Ende.

Beispiel einer 8-Bit UART Übertragung

UART 8-Bit Datenpaket

Ein typisches Datenpaket besteht aus dem Start-Bit, 7 bis 9 Datenbits, einem optionalen Parity-Bit und einem oder zwei Stop-Bits. In der obigen Grafik sehen wir den Ablauf:

  • Idle-Zustand: Die Leitung liegt auf HIGH.
  • Start-Bit: Kurzer LOW-Impuls löst das Lesen aus.
  • Nutzdaten: In diesem Beispiel 7 Bits (1, 1, 0, 0, 1, 0, 1).
  • Parity-Bit (Even): Da bereits 4 Bits auf HIGH liegen (gerade), wird das Parity auf 0 gesetzt.
  • Stop-Bits: Die Leitung geht für 2 Takte auf HIGH.

Gängige Baudraten

Damit die Kommunikation funktioniert, müssen beide Teilnehmer dieselbe Baudrate verwenden (Toleranz max. 10%). Standardwerte sind:

  • 9600 bps (Standard für viele Sensoren)
  • 115200 bps (Schneller Standard für ESP32/ESP8266)
  • 57600, 19200, 4800 bps
UART Punkt-zu-Punkt Verbindung

LSB-Übertragung und Parity-Prüfung

UART überträgt Daten beginnend mit dem LSB (Least Significant Bit), also dem niedrigstwertigsten Bit (ganz rechts im Bit-Muster). Das Parity-Bit dient der grundlegenden Fehlererkennung. Schlägt die Prüfung fehl, kann der Empfänger das Paket verwerfen und eine Neuanforderung auslösen.

Least Significant Bit (LSB)
Most Significant Bit (MSB)

Unterstütze meine Projekte

Wenn dir dieser Beitrag geholfen hat, freue ich mich über einen kleinen Beitrag für die Kaffeekasse.