Table of contents
UART-Kommunikationsprotokoll Baudrate Wie UART funktioniert Startbit Datenbits Paritätsbit (optional) Stoppbit(s) Für und Wider Anwendungen im realen LebenUART-Kommunikationsprotokoll
In der Welt der Geräte sind Kommunikationsprotokolle das, was Sprachen für uns Menschen sind – eine Möglichkeit, miteinander zu kommunizieren. Im Zuge der rasanten technologischen Entwicklung wurden unzählige Kommunikationsprotokolle geschaffen. Zum Glück benötigen Sie für die Arbeit mit Arduinos und Elektronik nur wenige davon. Eines davon ist UART, das wahrscheinlich am einfachsten zu verstehende.
UART ist die Abkürzung für Universal Asynchronous Receiver/Transmitter (universeller asynchroner Empfänger/Sender) . Es definiert Regeln für den seriellen Datenaustausch zwischen zwei Geräten. Wie der Name schon sagt, sendet und empfängt es Daten . UART ist eines der einfachsten Kommunikationsprotokolle. Es benötigt lediglich zwei Leitungen für die Kommunikation zwischen den Geräten. Die Sendeleitung (TX) von Gerät 1 wird mit der Empfangsleitung (RX) von Gerät 2 verbunden. Ebenso wird die Sendeleitung (TX) von Gerät 2 mit der Empfangsleitung (RX) von Gerät 1 verbunden. Die Masseleitung (GND) ist erforderlich, um beide Geräte auf der gleichen Referenzspannung zu halten. Diese Leitung ist bei der Kommunikation zwischen Geräten nahezu immer vorhanden. 
UART kennt drei Kommunikationssysteme: Simplex, Halbduplex und Vollduplex . Im Simplex-Modus werden Daten nur in eine Richtung gesendet. Im Halbduplex-Modus kann jede Seite Daten senden, jedoch immer nur eine gleichzeitig. Im Vollduplex-Modus können beide Seiten gleichzeitig Daten senden. Diese Daten werden in Form von Frames übertragen.
Baudrate
Wie der Buchstabe A in der Abkürzung UART bereits andeutet, ist UART asynchron. Sender und Empfänger verwenden kein gemeinsames Taktsignal. Dies vereinfacht zwar das Protokoll, stellt aber besondere Anforderungen an beide Geräte. Sie müssen vor allem die gleiche Baudrate oder eine vorab festgelegte Geschwindigkeit verwenden, um kommunizieren zu können. Andernfalls wird die Nachricht verfälscht und falsch interpretiert.
Die Baudrate ist, vereinfacht gesagt, die Geschwindigkeit, mit der Informationen in einem Kommunikationskanal übertragen werden . Die gängigsten UART-Baudraten sind heute 4800, 9600, 19200, 57600 und 115200. Je höher die Baudrate, desto empfindlicher reagiert das verwendete Kabel auf die Qualität der Installation. Bei hohen Baudraten empfiehlt es sich, kürzere Kabel zu verwenden.
Was genau bedeutet eine Baudrate von 9600? Sie bedeutet, dass ein Gerät bis zu 9600 Bit (Einsen und Nullen) pro Sekunde senden kann. Bei UART und den meisten anderen seriellen Kommunikationsformen muss die Baudrate auf Sender und Empfänger identisch sein .
Wie UART funktioniert
Die UART-Kommunikation erfolgt in sogenannten Frames. Jeder Frame besteht aus Bits – Informationseinheiten, die nacheinander über eine Leitung übertragen werden. Diese Bits umfassen in der Reihenfolge Startbit, Datenbits, ein optionales Paritätsbit und ein oder zwei Stoppbits. Jedes Bit kann entweder einen hohen Pegel (logisch 1) oder einen niedrigen Pegel (logisch 0) haben. Diese Pegel werden manchmal als „Markierung“ für hohe und „Space“ für niedrige Signale bezeichnet.

Im Ruhezustand (wenn keine Daten gesendet oder empfangen werden) herrscht Hochspannung.
Im Gegensatz zu einigen anderen Kommunikationsprotokollen kennt UART keine Controller und Peripheriegeräte . Es ist die Standardwahl für eine einfache Schnittstelle, wenn nur zwei Geräte miteinander kommunizieren müssen.
Startbit
UART ist, wie der Name schon sagt, asynchron. Das bedeutet, dass es keine gemeinsame Taktleitung wie beim I2C-Kommunikationsprotokoll gibt . Um anzuzeigen, wann die Daten gesendet werden, wird zunächst ein Startbit gesendet. Das bedeutet, dass das Signal vom Ruhezustand (High) auf Low wechselt. Unmittelbar nach dem Startbit folgen die Datenbits.

Datenbits
Die Datenbits sind diejenigen, die die eigentliche Nachricht transportieren. Es können zwischen 5 und 9 Datenbits sein, am häufigsten werden jedoch 7 oder 8 verwendet. Sie werden über die Leitung gesendet, wobei das niederwertigste Bit (LSB) zuerst kommt .
Angenommen, wir möchten den ersten Buchstaben unseres Namens, das große S, über UART senden. Die 7-Bit-ASCII-Sequenz für dieses Zeichen lautet 1010011. Da wir die Bits in aufsteigender Reihenfolge senden möchten, kehren wir die 7-Bit-Sequenz um. Sie lautet dann 1100101.
Betrachtet man diese Sequenz, so wären die ersten beiden Bits hoch, gefolgt von zwei niedrig gesetzten Bits. Danach folgen wieder ein hohes, dann ein niedriges und dann wieder ein hohes Bit, um die ASCII-Sequenz des Großbuchstabens S abzuschließen.
Paritätsbit (optional)
Um zu prüfen, ob eine Sequenz Fehler enthält oder die Daten verändert wurden, verwendet die UART ein optionales Paritätsbit . Die Datenbits können auf verschiedene Weise verändert werden, beispielsweise durch unterschiedliche Baudraten oder Datenübertragungen über große Entfernungen. Das Paritätsbit befindet sich zwischen dem letzten Datenbit und dem Stoppbit. Sein Wert hängt von der Art der verwendeten Parität ab (gerade oder ungerade).
Sowohl bei gerader als auch bei ungerader Parität wird die Anzahl der Einsen in einem Frame betrachtet . Bei gerader Parität wird das Paritätsbit so gesetzt, dass die Gesamtzahl der Datenbits, einschließlich des Paritätsbits, gerade ist. Bei ungerader Parität sollte diese Zahl entsprechend ungerade sein.

Kehren wir zu unserem Beispiel der Übertragung des Großbuchstabens S über UART zurück. Die ASCII-Sequenz besteht aus drei Nullen und vier Einsen. Bei gerader Parität ist das Paritätsbit 0, da bereits eine gerade Anzahl von Einsen im Frame vorhanden ist. Bei ungerader Parität hingegen muss das Paritätsbit 1 sein, damit die Gesamtzahl der Einsen ungerade ist.
Wenn beide Geräte eine gerade Parität bestätigen, sollte der Empfänger eine gerade Anzahl von Einsen empfangen, einschließlich des Paritätsbits. Empfängt der Empfänger eine ungerade Anzahl von Einsen, sind die Daten beschädigt und werden verworfen . Der Empfänger wartet dann auf den Empfang eines neuen Datenpakets.
Falls Sie das im Moment verwirrt, merken Sie sich einfach: Gerade Parität bedeutet eine gerade Anzahl von Einsen, wenn man sowohl die Datenbits als auch das Paritätsbit betrachtet, und ungerade Parität bedeutet eine ungerade Anzahl .
Beim Paritätsbit sind zwei Dinge zu beachten. Erstens kann es nur ein einzelnes invertiertes Bit erkennen. Sind mehrere Bits invertiert, lassen sich diese Änderungen nicht zuverlässig erkennen . Zweitens ist das Paritätsbit in UART optional und wird nicht immer verwendet.
Stoppbit(s)
Sobald die Datenbits und das optionale Paritätsbit übertragen wurden, folgt das Stoppbit, das den Frame beendet. Anders als beim Startbit, bei dem das Signal von High auf Low wechselt, wechselt es beim Stoppbit von Low auf High . War das Signal vor dem Erreichen des Stoppbits auf High, bleibt es auch danach auf High .
Mindestens ein Stoppbit pro Frame ist erforderlich. Ein zweites, optionales Stoppbit kann konfiguriert werden. Dadurch erhält der Empfänger mehr Zeit, sich auf den nächsten Frame vorzubereiten. Dies ist jedoch unüblich und wird selten angewendet.
Für und Wider
Im Vergleich zu anderen Kommunikationsprotokollen ist UART sehr einfach. Daher eignet es sich besonders für kleinere Projekte. Dies zeigt sich vor allem, wenn nur zwei Geräte miteinander kommunizieren. Bei Projekten mit drei oder mehr Geräten empfiehlt es sich jedoch, andere Protokolle zu verwenden.
Vorteile:
- Benötigt nur zwei Drähte
- Ein Taktsignal ist nicht erforderlich
- Das Paritätsbit ermöglicht die Fehlerprüfung.
- Kostengünstiger und kleiner als parallele Kommunikation
- Unterstützt eine Distanz von etwa 15 Metern.
Nachteile:
- Datenrahmen auf maximal 9 Bit beschränkt
- Unterstützt keine Kommunikation zwischen mehreren Controllern und Peripheriegeräten
- Nicht geeignet für Anwendungen, die höhere Datenübertragungsraten erfordern.
- Die Datenübertragungsgeschwindigkeit ist geringer als bei paralleler Kommunikation.
Anwendungen im realen Leben
Protokolle wie I2C und SPI ersetzen UART in Chips und Komponenten zunehmend. Die meisten modernen Computer und Peripheriegeräte werden stattdessen USB- und Ethernet-Technologien nutzen.
Das bedeutet nicht, dass UART veraltet ist. Geräte mit RS-232-Schnittstellen, wie beispielsweise externe Modems, sind ein gutes Beispiel für die anhaltende Verwendung von UART. Mikrocontroller und mikrocontrollerbasierte Geräte verfügen üblicherweise über mindestens eine integrierte UART-Schnittstelle. Spezielle UARTs finden sich in Autos, SIM-Karten und Smartcards. Aufgrund seiner Einfachheit, der geringen Kosten und der leichten Implementierung wird UART für Anwendungen mit niedrigeren Geschwindigkeiten und geringerem Datendurchsatz eingesetzt. Es dient hauptsächlich der Kommunikation zwischen Geräten.