Wie funktioniert UART – einfach erklärt!
by Edi · 14/11/2020
UART
UART steht für Universal Asynchronous Receiver and Transmitter. Für die Kommunikation werden nur zwei Datenleitungen benötigt. Eine zum Senden von Daten (TX – Transmit) und die Zweite zum Empfangen von Daten (RX – Receive). UART verwendet keine Clock zum Takten des Signals, sondern benutzt Start und Stop bits. Wenn der Empfänger das Start-Bit erhalten hat, dann fängt er an die Daten zu lesen, bis er das Stop-Bit empfängt. Die Geschwindigkeit, in der die Daten gesendet werden, ist mit der BAUD Rate festgelegt und die darf nur max. 10 % von den beiden Geräten abweichen. Bei einer BAUD rate von z. B. 9600/Sekunde wird jedes bit mit einem Abstand von 104 μs gesendet (1/9600). UART kann nur mit zwei Teilnehmer kommunizieren und das Protokoll für ein 8 bit Packet sieht folgendermassen aus. Das Packet verwendet 1 Start bit (LOW), 8 Daten bits inklusive einem parity-bit zur Fehlerprüfung und 1 oder 2 Stop bits (HIGH).
Das parity-bit gibt an, ob die Anzahl der HIGH bits eine gerade oder ungerade Nummer ergibt. Damit kann zwar nicht sichergestellt werden, dass alle Daten richtig angekommen sind, aber eine grobe Überprüfung kann damit erfolgen. Wenn das parity-bit auf 0 gesetzt ist (odd) für ungerade, dann muss, die Anzahl der HIGH bits ungerade sein. Ist das parity-bit auf 1 gesetzt (even) dann muss die Anzahl der HIGH bits gerade sein. In unserem Beispiel haben wir 4 HIGH bits, also muss das parity-bit auf 1 (gerade) gesetzt werden.
Am Ende der Übertragung werden ein oder zwei Stop-bits gesetzt. In der nachfolgenden Grafik könnt ihr euch ansehen, wie so ein Datensatz aufgebaut ist.
UART sendet das LSB (least signifikant bit) first. Das LSB ist auf der rechten Seite in unserem Datensatz. 1010011
Sollte die Prüfung durch das parity-bit nicht stimmen, dann sendet der Empfänger zum Sender, dass die Daten nicht stimmen und fordert eine erneutes senden vom Datenset an.
►Node-MCU ESP8266 Board:
* https://amzn.to/2U7Urmn – NodeMCU ESP8266 ESP-12F
* https://amzn.to/2J5wLJ3 – 3er Set, ESP8266 ESP-12F
* https://amzn.to/3belvGd – 5er Set, ESP8266 ESP-12F
►ESP32 und ESP32 Node-MCU Boards:
* https://amzn.to/3erQVKq – ESP32 Node-MCU Board
* https://amzn.to/2Om89OW – 3er Set ESP32 Node-MCU Board
* https://amzn.to/3erIkaS – 5er Set ESP32 Node-MCU Board
* https://amzn.to/2Ct9H7c – 4 Stück ESP32 Module
►Netzteile:
* https://amzn.to/3beWY3V – 2er-Pack USB Ladegerät 5V/2A
* https://amzn.to/398WzP9 – Raspberry Pi 4 Netzteil, USB-C, 5.1V, 3A
* https://amzn.to/2wsS8Bh – HomeSpot Netzteil 3A/5V inkl. 1,5M Micro USB Kabel
►Jumper Wire:
* https://amzn.to/2WxKwIl – Female to Female F2F 40 STK. je 20 cm
* https://amzn.to/2xeKb2V – Set 3 x 40 STK. je 20 cm M2M/ F2M / F2F
►Breadboard:
* https://amzn.to/2QQ7JSL – Breadboard Steckbrett mit 830 Kontakten
►USB Kabel:
* https://amzn.to/2y01THN – USB A auf Micro USB Kabel 0.5m
* https://amzn.to/2xkgqgQ – USB auf Mini USB Kabel 0.5m
* https://amzn.to/2QBxCp7 – USB A zu USB B Kabel 0.5m
All links with "*" are Amazon affiliate links. I receive a small portion of the sales when you place an order, at no extra cost to you.