UART verstehen

Grundlagen von Oszilloskopen und Tastköpfen

UART verstehen

Was versteht man unter UART?

UART steht für Universal Asynchronous Receiver / Transmitter und definiert ein Protokoll bzw. eine Menge von Regeln für den Austausch von seriellen Daten zwischen zwei Geräten. UART ist sehr einfach und nutzt lediglich zwei Drähte zwischen Sender und Empfänger, um in beiden Richtungen zu senden und zu empfangen. An beiden Enden befindet sich eine Masseverbindung. Die Kommunikation kann bei UART im Simplex-Betrieb (die Daten werden nur in eine Richtung gesendet), im Halbduplex-Betrieb (jede Seite sendet, aber nicht zur selben Zeit) oder im Vollduplex-Betrieb (beide Seiten können gleichzeitig senden) erfolgen. Daten werden bei UART in Form von Rahmen gesendet. Das Format und der Inhalt dieser Rahmen wird im Folgenden kurz beschrieben und erläutert.

Daten werden bei UART in Form von Rahmen gesendet

In welchen Bereichen kommt UART zum Einsatz?

UART ist eines der ersten seriellen Protokolle. Die einst allgegenwärtigen seriellen Ports sind meistens auf UART-Basis und Geräte mit RS-232-Schnittstellen, externe Modems etc. sind gängige Beispiele für die Verwendung von UART.
In den letzten Jahren sank die Popularität von UART: Protokolle wie SPI und I2C haben UART als Bindeglied zwischen Chips und Komponenten ersetzt. Anstelle der Kommunikation über einen seriellen Port nutzen die meisten modernen Computer und Peripheriegeräte Technologien wie Ethernet und USB. Allerdings wird UART immer noch für Anwendungen mit niedriger Geschwindigkeit und niedrigem Durchsatz verwendet, da es sehr einfach, kostengünstig und leicht zu implementieren ist.

Zeitverhalten und Synchronisation von UART-Protokollen

Ein großer Vorteil von UART ist, dass es asynchron arbeitet – Sender und Empfänger teilen sich kein gemeinsames Taktsignal. Obgleich das Protokoll dadurch stark vereinfacht wird, ergeben sich daraus bestimmte Anforderungen für den Sender und den Empfänger. Da sie kein gemeinsames Taktsignal nutzen, müssen beide Endgeräte mit derselben, voreingestellten Geschwindigkeit übertragen, um dasselbe Bit-Zeitverhalten sicherzustellen. Zu den aktuell gängigsten UART-Baudraten zählen 4800, 9600, 19.2K, 57.6K und 115.2K. Zusätzlich zur selben Baudrate müssen beide Seiten einer UART-Verbindung dieselbe Rahmenstruktur und dieselben Parameter nutzen. Am besten sieht man sich dazu einen UART-Rahmen genauer an.

UART-Rahmenformat

UART-Rahmen enthalten Start- und Stoppbits, Datenbits und ein optionales Paritätsbit, das im weiteren Verlauf erklärt wird.

Wie bei den meisten digitalen Systemen entspricht ein „hoher“ Spannungspegel einer logischen „1“ und ein „niedriger“ Spannungspegel einer logischen „0“. Da das UART-Protokoll keine spezifischen Spannungen oder Spannungsbereiche für diese Pegel angibt, wird High bisweilen als „Mark“ bzw. Low als „Space“ bezeichnet. Beachten Sie, dass die Leitung im Ruhezustand (es werden keine Daten übertragen) einen High-Pegel aufweist. Dies ermöglicht eine einfache Erkennung, falls eine Leitung oder ein Sender beschädigt ist.

Start- und Stoppbits

Da UART asynchron arbeitet, muss der Sender signalisieren, dass Datenbits folgen. Dies geschieht mithilfe des Startbits. Das Startbit ist ein Übergang vom Ruhezustand High in den Low-Zustand. Danach folgen unmittelbar die Nutzdatenbits.
Nach den Datenbits kennzeichnet das Stoppbit das Ende der Nutzdaten. Das Stoppbit ist entweder ein Übergang zurück in den High- oder Ruhezustand oder es verbleibt für eine zusätzliche Bitzeit im High-Zustand. Es lässt sich ein zweites (optionales) Stoppbit konfigurieren, normalerweise um dem Empfänger Zeit für den nächsten Rahmen zu gewähren. In der Praxis ist dies aber unüblich.

Datenbits

Die Datenbits sind die Nutzdaten oder „nützlichen“ Bits und folgen unmittelbar nach dem Startbit. Zwischen 5 und 9 Nutzdatenbits sind möglich, obgleich meistens 7 oder 8 Bits verwendet werden. Diese Daten werden normalerweise mit dem niedrigstwertigen Bit (Least Significant Bit, LSB) zuerst übertragen.

Beispiel:
Wenn wir den Großbuchstaben „S“ in 7-bit-ASCII senden wollen, lautet die Bitfolge 1 0 1 0 0 1 1. Zuerst invertieren wir die Bitreihenfolge vor dem Senden, um die LSB-Reihenfolge einzuhalten. Damit ergibt sich die Bitfolge 1 1 0 0 1 0 1. Nachdem das letzte Datenbit gesendet wurde, wird das Ende des Rahmens mit dem Stoppbit eingeleitet und die Leitung nimmt wieder den Ruhezustand ein.

  • „S“ (0x52) in 7-bit ASCII = 1 0 1 0 0 1 1
  • LSB-Reihenfolge = 1 1 0 0 1 0 1

Start- und Stoppbits

Datenbits

Paritätsbit

Ein UART-Rahmen kann auch ein optionales Paritätsbit enthalten, das sich für die Fehlererkennung verwenden lässt. Dieses Bit wird zwischen dem Ende der Datenbits und dem Stoppbit eingefügt. Der Wert des Paritätsbits hängt vom Typ der verwendeten Parität ab (gerade oder ungerade):

  • Bei gerader Parität wird das Bit so gesetzt, dass die Gesamtanzahl der Einsen im Rahmen gerade ist.
  • Bei ungerader Parität wird das Bit so gesetzt, dass die Gesamtanzahl der Einsen im Rahmen ungerade ist.

Beispiel:
Der Großbuchstabe „S“ (1 0 1 0 0 1 1) enthält insgesamt drei Nullen und vier Einsen. Bei gerader Parität ist das Paritätsbit Null, weil die Anzahl der Einsen bereits gerade ist. Bei ungerader Parität muss das Paritätsbit Eins sein, damit der Rahmen über eine ungerade Anzahl an Einsen verfügt.
Das Paritätsbit kann lediglich ein einziges gekipptes Bit erkennen. Falls mehr als ein Bit gekippt ist, kann man diese nicht zuverlässig mit einem einzigen Paritätsbit erkennen.

Beispiel für ein Paritätsbit

UART verstehen

Sehen Sie sich unser Video „UART verstehen“ an, um mehr zu erfahren

In diesem Video wird eine technische Übersicht zum seriellen Protokoll UART (Universal Asynchronous Receiver/Transmitter) einschließlich einer Beschreibung der Rahmenstruktur und der Bedeutung eines jeden Bits im Rahmen vermittelt.

Fazit

  • UART steht für Universal Asynchronous Receiver / Transmitter und ist ein einfaches Zweidraht-Protokoll für den seriellen Datenaustausch.
  • Asynchron bedeutet, dass kein gemeinsames Taktsignal zur Verfügung steht. Aus diesem Grund muss bei UART dieselbe Bit- oder Baudrate an beiden Seiten der Verbindung konfiguriert werden.
  • Start- und Stoppbits werden zur Kennzeichnung von Beginn und Ende der Nutzerdaten verwendet bzw. um die Daten „einzurahmen“.
  • Mit dem optionalen Paritätsbit lassen sich Einzelbitfehler erkennen.
  • UART ist immer noch ein weit verbreitetes, serielles Datenprotokoll, wurde aber in der letzten Zeit in einigen Applikationen durch Technologien wie SPI, I2C, USB und Ethernet ersetzt.

Sie haben Fragen zu UART oder anderen seriellen Protokollen? Unsere Experten helfen Ihnen.