Mikrocontroller verfügen über eine Reihe von Standard-Schnittstellen, über die sich Kommunikationswege zu anderen Geräten aufbauen lassen.
Der UART- oder die serielle Schnittstelle ist dabei die bekannteste und am meisten verwendete. Warum der UART und nicht die UART; das ergibt sich das aus Abkürzung.
Die Abkürzung UART bedeutet Universaler-Asynchroner-Receiver-Transmitter, woraus sich im Deutschen ein männlicher Artikel ergibt, aber die weibliche Form, die UART, wird ebenfalls oft verwendet.
Beim UART handelt es sich um eine asynchrone serielle Punkt-zu-Punkt-Verbindung zwischen zwei Geräten. Asynchron deshalb, weil kein Taktsignal übertragen wird. Der Empfänger muss die Übertragungsrate des Senders kennen und sich anhand des Startbits und der empfangenen Datenbits mit dem Sender synchronisieren.
Zum Verbindung zweier Mikrocontroller über den UART werden neben den beiden Signalleitungeb noch eine Masse Leitung benötigt:
Zu beachten ist, dass die RX- und TX-Leitungen gekreuzt verdrahtet werden.
Eine Verbindung über die serielle Schnittstelle kann zusätzlich noch diverse Steuerleitungen umfassen, wie RTS (Ready to Send), CTS (Clear to Send), DTR (Data Terminal Ready) und DTS (Data Set Ready), die wir hier der Einfachheit halber weglassen. Diese Steuerleitungen stammen noch aus Zeiten der Modem-Ära und haben inzwischen an Bedeutung verloren.
Allerdings wird beim Arduino eine Steuerleitung (DTR oder RTS) verwendet, um auf dem Board einen Reset auszulösen, damit der Bootloader angesprungen wird und ein neues Programm hochgeladen werden kann.
Die Übertragungsrate für die serielle Schnittstelle, Bits pro Sekunde (Bit/s), Baud oder Baudrate genannt, kann zwischen 300 und 115200 Baud liegen, manchmal auch darüber. Eine gängige Baudrate ist z.B. 9600 Baud.
Das bedeutet, es können 9600 Bit/Sekunde übertragen werden. Das ist bei den heutigen Technologien wie DSL/VDSL/LAN sehr +++, sehr wenig. VDSL erreicht inzwischen Übertragungsraten von 100 MBit/s und mehr (100*10^6 Bits/s) bei LAN ist 1 Gbit/s (10^9 Bits/s) Standard. Trotzdem reicht diese niedrige Übertragungsrate für kleinere Nachrichten durchaus aus und der Hardware-Aufwand ist natürlich im Gegensatz zu LAN oder DSL minimal.
Die UART-Datenübertragung erfolgt in einem fest vorgegebenen Rahmen. Begonnen wird mit dem Startbit, gefolgt von 7-9 Datenbits (data LSB first, niedrigstes Bit zuerst), einem optionalen Paritätsbit parity für eine Fehlererkennung und schließlich 1-2 Stoppbits stop für das Paketende.
In Kurzform finden sich Bezeichnungen wie +9600,n,8,1+. Das bedeutet 9600 Baud, no parity, 8 data, 1 stop bit. Diese Einstellungen müssen beim Sender und Empfänger übereinstimmen, damit eine erfolgreiche Datenübertragung stattfinden kann.
Auch der Spannungspegel spielt eine wichtige Rolle. War hier früher in der PC-Technik die RS232-Schnittstelle von großer Bedeutung, die mit Pegel von +/-12V arbeitete, so wird heute eher der TTL-Pegel (0 bis 5V) verwendet. Heutige PCs besitzen kaum noch RS232-Schnittstellen, dafür gibt es aber eine Reihe von USB-UART-Seriell-Wandler, die direkt an die UART- Schnittstelle eines Mikrocontrollers angeschlossen werden können.
Der UART dient zum Anschluss serieller Geräte wie GPS-Empfänger oder Bluetooth-Module. Auch für den Anschluss an den PC (über USB-Seriell-Wandler) oder für die Kommunikation zwischen zwei Boards (Arduino und Raspberry Pi) wird die serielle Schnittstelle verwendet.