Universal Asynchronous Receiver Transmitter

Universal Asynchronous Receiver Transmitter, kurz UART (Aussprache: serieller Schnittstellen dient. Dabei kann es sich sowohl um ein eigenständiges elektronisches Bauelement (ein UART-Chip bzw. -Baustein) oder um einen Funktionsblock eines höherintegrierten Bauteils (z. B. eines Mikrocontrollers) handeln.
oder ), ist eine elektronische Schaltung, die zur Realisierung digitalerEine UART-Schnittstelle dient zum Senden und Empfangen von Daten über eine Datenleitung und bildet den Standard der seriellen Schnittstellen an PCs und Mikrocontrollern. Auch im industriellen Bereich ist die Schnittstelle mit verschiedenen Interfaces (z. B. RS-232 oder EIA-485) sehr verbreitet.
Die Daten werden als serieller digitaler Datenstrom mit einem fixen Rahmen übertragen, der aus einem Start-Bit, fünf bis maximal neun Datenbits, einem optionalen Parity-Bit zur Erkennung von Übertragungsfehlern und einem Stopp-Bit besteht. Um dem Empfänger eine Synchronisationszeit auf den Takt der empfangenen Daten einzuräumen, kann das Stopp-Bit auf das 1,5- oder 2-Fache der normalen Übertragungszeit eines Bits verlängert werden. Das wird als 1,5 bzw. 2 Stopp-Bits bezeichnet.
Funktion

Bitrate | Bitdauer |
---|---|
50 bit/s | 20,0 ms |
110 bit/s | 9,09 ms |
150 bit/s | 6,67 ms |
300 bit/s | 3,33 ms |
1.200 bit/s | 833 µs |
2.400 bit/s | 417 µs |
4.800 bit/s | 208 µs |
9.600 bit/s | 104 µs |
19.200 bit/s | 52,1 µs |
38.400 bit/s | 26,0 µs |
57.600 bit/s | 17,4 µs |
115.200 bit/s | 8,68 µs |
230.400 bit/s | 4,34 µs |
460.800 bit/s | 2,17 µs |
500.000 bit/s | 2,00 µs |
Die Besonderheit besteht darin, dass bei der asynchronen Betriebsweise kein eigenes Taktsignal auf einer Übertragungsleitung verwendet wird. Stattdessen synchronisiert sich der Empfänger über die Länge des Rahmens, vermittelt durch die Schaltflanke von Start- und Stopp-Bit, sowie die eingestellte Baudrate (welche in diesem Fall der Bitrate entspricht). Da der Beginn einer Übertragung mit dem Start-Bit zu beliebigen Zeitpunkten erfolgen kann, wird diese serielle Schnittstelle als asynchron bezeichnet. Um eine Synchronisation gewährleisten zu können, ist die Anzahl der übertragbaren Bits eingeschränkt. Bei einem längeren Datenstrom könnte die Synchronisation verloren gehen, was zu Fehlinterpretationen des Datenstromes und somit zu einer fehlerhaften Übertragung führen kann. Serielle Schnittstellen in synchroner Betriebsweise benötigen keinen Rahmen aus Start-/Stopp-Bits, sie stellen die Synchronität der Teilnehmer auf andere Weise sicher. Zum Beispiel, indem eine zusätzliche Taktleitung verwendet wird oder der Takt sich aus dem Leitungscode zurückgewinnen lässt.
Die asynchrone Übertragung findet in der Datenkommunikation bei der RS-232-Schnittstelle Verwendung. Diese Schnittstelle weist eine vergleichsweise große Verbreitung auf. Ein UART erzeugt die auf der RS-232-Schnittstelle zu übertragenden Datenbits und den dazu notwendigen Datenrahmen. Die eigentliche RS-232-Schnittstelle besteht zusätzlich noch aus Pegelumsetzern und weiteren Bauelementen wie Steckern, welche nicht mehr Teil eines UART sind.
Realisiert wird ein UART meist als Kommunikationsbaustein in Mikrocontrollern oder Computern, als eigenständige integrierte Schaltung, als Teilfunktion in Chipsätzen, in Form von Hardwarebeschreibungssprachen für die Integration in Field Programmable Gate Arrays (FPGAs) oder als sogenanntes „Software-UART“, das nur durch eine Programmabfolge vorliegt und bestimmte Ein-/Ausgabepins direkt ansteuert (Bit-Banging). Die zu übertragenden bzw. die empfangenen Daten werden an das UART meist in paralleler Form, beispielsweise über einen CPU-externen Bus, geliefert.
Die Geschichte des UART ist eng verbunden mit der Standardisierung der Datenkommunikation der RS-232. Waren die ersten UARTs für Datenübertragungsraten weniger hundert Bit/s und den Anschluss an Teletypes mit Stromschnittstelle oder Modems vorgesehen, so erreichten sie in späteren Jahren als eigenständige Chips mehrere Megabit pro Sekunde.
Ein UART-Baustein, der über viele Jahre in handelsüblichen PCs als eigenständiger Baustein verwendet wurde, ist das von National Semiconductor entwickelte UART 8250 und seine kompatiblen Nachfolger 16450 und 16550. Der 16550 umfasst neben dem Empfangs- bzw. Sendeteil als Erweiterung auch einen FIFO-Pufferspeicher, der das Überlaufen des Empfangspuffers bei hohen Bitraten minimiert. Zudem wird damit der steuernde Prozessor weniger oft von Interrupts unterbrochen, was die Effizienz des Programmablaufes erhöht. Seit Mitte der 1990er Jahre werden UART-Controller in PCs kaum noch als eigenständige integrierte Schaltungen eingesetzt, da die seriellen Schnittstellen im Chipsatz (Southbridge) des Mainboards untergebracht sind.
Varianten
Neben dem eigentlichen UART existieren weitere, auf dem UART basierende, Schnittstellenbausteine. Übliche Bezeichnungen sind DUART, die Abkürzung steht für Dual Universal Asynchronous Receiver Transmitter, der zwei UARTs in einem einzelnen Mikrochip kombiniert. USART (Aussprache: oder ) steht für Universal Synchronous/Asynchronous Receiver Transmitter und bietet zusätzlich die Möglichkeit einer synchronen Datenübertragung.
In einfachen Mikrocontroller-Systemen werden Daten häufig über UART-Schnittstellen ausgetauscht, die ohne Handshake, nur über Rx und Tx, und ohne die für RS-232 notwendigen Pegelumsetzer verwirklicht sind. Da mit den Pegelumsetzern auch eine Invertierung wegfällt, findet die Kommunikation über nichtinvertierte TTL-Pegel bzw. CMOS-Pegel statt. Diese für kurze Entfernungen geeignete, auch CMOS-UART bzw. TTL-UART genannte Implementierung wird von praktisch allen Mikrocontrollern unterstützt und kann bei entsprechend geringen Übertragungsraten auch über Software realisiert werden (Bit-Banging).
Auch im kommerziellen Bereich üblich ist die Anbindung von GPS-Empfängern über CMOS-UART.
Damit UART-Baugruppen kommunizieren können, müssen RX der einen und TX der anderen Baugruppe am Stecker gegenüberstehen. Damit sind stets zwei Steckerbelegungstypen (Master und Slave) erforderlich, auch wenn die Geräte vollkommen gleichberechtigt kommunizieren. Sollen Master mit Master oder Slave mit Slave kommunizieren können, sind Kreuzverbinder (analog dem Null-Modem-Kabel der seriellen Schnittstelle oder dem Cross-Over-Kabel des Ethernet) erforderlich.
Eine Modifikation, die Single-Wire UART (SWART) vermeidet dieses Verpolungsproblem. Werden RX und TX zusammen auf einem Pin vereint, ist zwar nur eine Simplex-Übertragung möglich, dafür aber können dann beliebige Module miteinander kommunizieren. Es können sogar mehrere UART-Module auf einem Draht kommunizieren (SWART-Bus). Die SWART ist insbesondere für kurze Entfernungen und für Datenraten bis 115.200 Baud geeignet.
Literatur
- A. P. Godse, D. A. Godse: Microprocessors and Microcontrollers. Technical Publishing Pune, 2007, ISBN 978-81-8431-297-3.
- Hans-Peter Messmer, Klaus Dembowski: PC-Hardwarebuch. 7. Auflage. Addison-Wesley Verlag, München 2003, ISBN 3-8273-2014-3.
- Jerry D. Gibson (Hrsg.): Mobile Communications Handbook. 3. Auflage. Taylor & Francis Group, Boca Raton 2013, ISBN 978-1-4398-1723-0.
- Hans Liebig, Thomas Flik: Rechnerorganisation. Prinzipien - Strukturen - Algorithmen, 2. Auflage, Springer Verlag, Berlin/ Heidelberg 1993, ISBN 3-540-54632-4.
- Friedrich Wittgruber: Digitale Schnittstellen und Bussysteme. Einführung für das technische Studium. Friedrich Vieweg & Sohn Verlag, 1999, ISBN 3-528-07436-1.
Weblinks
- Die serielle Schnittstelle – Grundlagen
- Datenblatt des 16550D UART (engl.)
- CMOS-UART und RS-232 in modernen Mikrocontrollern
- 16550 UART core – Quelloffene und unter GPL stehende Implementierung eines 16550 in Verilog zur Integration in FPGAs.
Quelle
- ↑ Datenblatt PC16450C/NS16450, PC8250A/INS8250A (PDF; 677 kB)