Serielle Kommunikationsprotokolle - Teil Zwei: UART

Mark Harris
|  Erstellt: April 14, 2021
Serielle Kommunikationsprotokolle - UART

In diesem Artikel werden wir uns das beliebte UART-Gerät ansehen. Es handelt sich dabei nicht um ein Kommunikationsprotokoll, sondern um die physische Schaltung, die in Mikrocontrollern oder eigenständigen ICs verwendet wird, um serielle Daten zu senden und zu empfangen. Es unterstützt die Reihe von Artikeln, die wir produziert haben, um einige der verschiedenen Arten von seriellen Kommunikationsprotokollen zu betrachten.

Serielle Kommunikationen sind der perfekte Mechanismus für die Übertragung von Informationen zwischen Geräten wie Mikrocontrollern, datenproduzierenden Peripheriegeräten und anderen intelligenten Geräten. Wir hoffen, dass Sie diese Ressource beim nächsten Mal, wenn Ihr Design einen seriellen Kommunikationsbus integrieren muss, als unschätzbar wertvoll finden werden. Der UART wird üblicherweise auch als serielle Schnittstelle eines Geräts bezeichnet. Dies kann jedoch oft mit einer anderen Art von serieller Schnittstelle verwechselt werden, die den DB9-Stil-Stecker verwendet und RS-232 als Hardwareprotokoll nutzt. Es ist nicht ungewöhnlich, dass ein UART mit einem RS-232-Transceiver verbunden ist, damit ein UART-Peripheriegerät auf einem Mikrocontroller und ein RS-232-basiertes Gerät miteinander kommunizieren können.

UART steht für Universal Asynchronous Receiver Transmitter. Dieses Kommunikationssystem benötigt zwei Pins, abgesehen von der Masse. Einer ist mit TX beschriftet, der Sender, und der andere mit RX, der Empfänger. Das Auftreten des Wortes asynchron im Namen bedeutet, dass es kein Taktsignal benötigt. Da es keinen Takt hat, müssen die sendende und die empfangende Einheit die gleiche Baudrate verwenden.

Die Baudrate (Bd) ist eine Maßeinheit für die Übertragungsrate. Dieser Parameter bestimmt die Kommunikationsgeschwindigkeit über den Datenkanal des Senders und Empfängers. Die Baudrate kann vereinfacht als Bits pro Sekunde dargestellt werden. Eine Rate von 1000 Bd bedeutet also, dass die Kommunikationsgeschwindigkeit 1000 Bits pro Sekunde beträgt, oder die Dauer eines Bits 1/1000 Sekunde oder 1 Millisekunde ist. Baudraten haben standardmäßige metrische Präfixe wie kBd (Kilobaud), MBd (Megabaud) oder GBd (Gigabaud). Die Baudrate beinhaltet nicht datenbezogene Teile einer Nachricht wie Start- und Stoppbits, was bedeutet, dass die Übertragungsrate nützlicher Informationen, die vom Sender zum Empfänger gesendet werden, etwas geringer sein wird.

Einige der beliebteren vordefinierten UART-Baudraten umfassen:

  • 110 Baud
  • 300 Baud
  • 1200 Baud
  • 4800 Baud
  • 9600 Baud
  • 19200 Baud
  • 38400 Baud
  • 115200 Baud

Manchmal kann die Baudrate beider kommunizierender Geräte angepasst werden, während manchmal eines der Geräte eine feste Baudrate hat, die erfordert, dass das andere sich entsprechend anpasst.

Um also die beiden Geräte über die UARTs zu verbinden, sollte der Sender TX-Pin mit dem Empfänger RX-Pin verbunden werden:

UART

Grundlegende UART-Verdrahtung mit TX, RX und Masse

In einigen Konfigurationen haben Sie RX- und TX-Pins an beiden Geräten, was es Ihnen ermöglicht, Befehle von einem Mikrocontroller an einen dedizierten IC zu senden und Befehle oder Informationen in die andere Richtung zurückzuerhalten. Das wird als Duplex-Verbindung bezeichnet. Es gibt auch Anwendungen, bei denen ein Feedback vom zweiten Gerät nicht erforderlich ist. Daher sind Kommunikationen nur in eine Richtung notwendig; folglich wird nur eine TX-zu-RX-Übertragungsleitung benötigt. Dies wird als Simplex-Verbindung bezeichnet.

UART

Das sendende Gerät muss ein Startbit senden, um die Kommunikation von diesem Gerät zum empfangenden Gerät zu initiieren. Dieses Bit informiert das empfangende Gerät, dass die Kommunikation begonnen hat.

UART

UART-Gerät sendet ein Startbit (Beginn der Kommunikation)

Die Datenbits werden dann als ein Acht-Bit-Strom gesendet, der die eigentlichen Daten repräsentiert, wobei das signifikanteste Bit (MSB) als D7 und das am wenigsten signifikante Bit (LSB) als D0 gekennzeichnet ist.

UART

Das erste Gerät in der UART-Kommunikation sendet Datenbits nach dem ersten Startbit.

Und am Ende dieser Datenbits sendet der Sender dann ein Stoppbit, das anzeigt, dass dies das Ende der Nachricht ist, und versetzt den UART-Bus in seinen Leerlaufmodus.

UART

UART

Das erste Gerät in der UART-Kommunikation sendet ein Stoppbit nach den Datenbits.

Wir können in diesem Fall sehen; die komplette UART-Nachricht besteht aus 10 Bits. Im Leerlaufmodus wird der UART-Bus hochgezogen, er sendet ein Startbit, das niedrig ist, und danach kommen 8 Datenbits, gefolgt von dem Stoppbit. Das Stoppbit ist nicht nur auf ein Bit beschränkt; es kann in verschiedenen Konfigurationen vorkommen, abhängig davon, wie schnell die Kommunikationsrate ist. Diese Konfiguration bedeutet, dass das gesamte Nachrichten-Bit-Set das Bus-Signalspannungsniveau ständig von niedrig auf hoch mindestens einmal ändert:

Sampling Points

Beispiel für ein UART-Serienkommunikationspaket

Das signifikanteste Bit D7 kann auch als Paritätsbit verwendet werden. Dieses Bit bietet einen rudimentären Fehlerprüfmechanismus, der in den kleinsten Blöcken der Kommunikation erscheint. Das Paritätsbit kann verwendet werden, um sicherzustellen, dass die Gesamtzahl der hohen Bits oder Einsen entweder ungerade oder gerade ist, abhängig von der Kodierung. Bei einer geraden Paritätsprüfung, wenn die Datenbits D0 bis D6 gesetzt sind und sie eine gerade Anzahl von hohen Bits enthalten, dann wird das Paritätsbit auf 0 (niedrig) gesetzt. Umgekehrt, wenn diese Gruppe von Bits eine ungerade Anzahl von hohen Bits hat, dann wird das Paritätsbit auf 1 (hoch) gesetzt. Dies stellt sicher, dass die Gesamtzahl der hohen Bits in der Nachricht gerade ist. Im Falle einer ungeraden Paritätsprüfung, wenn die Datenbits D0 bis D6 so gesetzt sind, dass sie eine gerade Anzahl von hohen Bits enthalten, wird das Paritätsbit auf 1 (hoch) gesetzt. Umgekehrt, wenn diese Gruppe von Bits eine ungerade Anzahl von hohen Bits hat, dann wird das Paritätsbit auf 0 (niedrig) gesetzt. Dies stellt sicher, dass die Gesamtzahl der hohen Bits in der Nachricht ungerade ist.

Also, indem der Paritätsbit verwendet wird, können Fehler erkannt werden, indem die gesetzten Bits überprüft werden. Angenommen, die Gesamtzahl der Bits, einschließlich des Paritätsbits, die auf hoch gesetzt sind, ist falsch. In diesem Fall hat der Paritätsbit es dem Empfänger ermöglicht, einen Fehler während der Übertragung zu erkennen. Diese Art des Fehlerschutzes kann den Fehler jedoch nicht korrigieren, sondern nur feststellen, dass ein Fehler aufgetreten ist, da es keine Möglichkeit gibt zu bestimmen, welches Bit im gesamten Bitset falsch ist. Es kann nur erkennen, ob ein Bit in einem falschen Zustand ist; Fehler, die mehrere Bits betreffen, werden möglicherweise nicht erkannt, wenn die Gesamtparität korrekt ist.

Wenn der Paritätsfehler erkannt wird, muss die gesamte Nachricht verworfen und von Grund auf neu übertragen werden. Bei hohen Störungs- oder Geräuschpegeln könnte es eine erhebliche Zeit dauern, eine erfolgreiche Übertragung zu erreichen; es hilft jedoch, Nachrichtenfehler zu verhindern.

Zusätzlich dazu müssen die empfangende und die sendende Seite der UART-Kommunikation genau die gleiche Baudrate und Zeichenlänge, Paritätsmechanismus und Stopbit-Konfiguration verwenden, um eine erfolgreiche Kommunikation zu gewährleisten.

Es gibt auch eine Variante des UART, die als USART bezeichnet wird. Dies ist ein universeller synchroner/asynchroner Empfänger-Sender. Er kann sowohl als asynchroner Kanal (genau wie der UART) als auch als synchroner Kanal fungieren, wenn die Daten getaktet sind. Der Takt kann aus den Daten selbst gewonnen oder als separates externes Signal gesendet werden.

Wenn ein USART in seinem synchronen Modus verwendet wird, sind keine Start- und Stoppbits erforderlich. Dies ermöglicht eine höhere Datenrate bei synchroner Übertragung, da die Bit-Timings den Takt als Referenz haben. Daher können mehr Bits für Daten verwendet werden, anstatt für die Start-/Stoppbits verwendet zu werden.

 

UART

Beispiel für USART-Kommunikation

UART

USART

Der UART benötigt nur ein Datensignal

Der synchrone Modus des USART erfordert sowohl Daten als auch einen Takt.

Beim UART müssen die Daten nicht mit einer festen Rate übertragen werden.

Im synchronen Modus des USART werden die Daten mit einer festen Rate übertragen.

Beim UART werden Daten üblicherweise byteweise übertragen.

Beim USART werden synchrone Daten typischerweise in Form von Datenblöcken übertragen.

In der UART wird die Datenübertragungsgeschwindigkeit auf spezifische Werte wie 4800, 9600, 38400 bps usw. festgelegt.

Im USART ermöglicht der synchrone Modus eine höhere DTR (Datenübertragungsrate) als der asynchrone Modus, wenn alle anderen Faktoren konstant gehalten werden.

Die UART-Geschwindigkeit ist auf etwa 115200 bps begrenzt.

USART kann Geschwindigkeiten erreichen, die schneller als 115 kbps sind.

Voll-Duplex-Kommunikation: Daten können gleichzeitig in beide Richtungen gesendet werden.

Halb-Duplex-Kommunikation: Daten können jeweils nur in eine Richtung gesendet werden.

Der Hauptzweck der UART und USART besteht darin, die parallelen Daten auf PC-Busleitungen in serielle Daten umzuwandeln, die mit Leitungstreibern über einen Bus übertragen werden können, der einem Standardprotokoll für serielle Kommunikation wie RS-232 oder RS-485 entspricht. Ein Konverter wird benötigt, um die Schnittstelle zwischen der UART/USART und dem externen Bus herzustellen. Dies ermöglicht dann, dass die Daten von einem ähnlichen Gerät gelesen werden können, ohne dass die beiden genau dasselbe serielle Datenformat verwenden müssen. Solange die Übertragung zwischen den beiden einem gemeinsam unterstützten Standardprotokoll entspricht, kann die Implementierung der seriellen Kommunikation in jedem Gerät spezifisch für dieses Gerät sein.

Während UART im Computermarkt weitgehend von USB abgelöst wurde, werden sie immer noch häufig für serielle Kommunikation in kostengünstigen Geräten verwendet.

Zusammenfassung

Dieser Artikel hat einige der beliebten UART-Gerätefunktionen betrachtet und einige seiner Vorteile sowie Implementierungsdetails diskutiert. Im nächsten Artikel, Serielle Kommunikationsprotokolle - Teil Drei: RS-232, werden wir einige der verfügbaren seriellen Kommunikationsprotokolle betrachten. Haben Sie etwas verpasst? Schauen Sie sich die Einführung in Serielle Kommunikationsprotokolle

an. Die Designwerkzeuge in Altium Designer® enthalten alles, was Sie benötigen, um mit neuer Technologie Schritt zu halten. Sprechen Sie noch heute mit uns und erfahren Sie, wie wir Ihr nächstes PCB-Design verbessern können.

Über den Autor / über die Autorin

Über den Autor / über die Autorin

Mark Harris ist Ingenieur mit mehr als 12 Jahren vielfältiger Erfahrung in der Elektronikindustrie, die von Aufträgen für die Luft- und Raumfahrt und Verteidigung bis hin zu kleinen Produktanläufen, Hobbys und allem dazwischen reicht. Bevor er nach Großbritannien zog, war Mark Harris bei einer der größten Forschungsorganisationen Kanadas angestellt; jeder Tag brachte ein anderes Projekt oder eine andere Herausforderung mit sich, bei der es um Elektronik, Mechanik und Software ging. Er veröffentlicht außerdem die umfangreichste Open-Source-Datenbank-Bibliothek von Komponenten für Altium Designer, die so genannte Celestial Database Library. Mark hat eine Affinität zu Open-Source-Hardware und -Software und den innovativen Problemlösungen, die für die täglichen Herausforderungen dieser Projekte, erforderlich sind. Elektronik ist Leidenschaft; zu beobachten, wie ein Produkt von einer Idee zur Realität wird und mit der Welt interagiert, ist eine nie endende Quelle der Freude.

Sie können Mark direkt kontaktieren unter: mark@originalcircuit.com

Ähnliche Resourcen

Zur Startseite
Thank you, you are now subscribed to updates.