UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (2024)

UART (Universal Asynchronous Transmitter Receiver), das ist das am häufigsten verwendete Protokoll für die serielle Vollduplex-Kommunikation. Es ist ein einzelner LSI-Chip (Large Scale Integration), der für die asynchrone Kommunikation ausgelegt ist. Dieses Gerät sendet und empfängt Daten von einem System zu einem anderen System.

In diesem Lernprogramm lernen Sie die Grundlagen der UART-Kommunikation und die Funktionsweise des UART.

Was ist UART?

„UART“ steht für Universal Asynchronous Receiver-Transmitter. Es ist eine Hardware-Peripherie, die in einem Mikrocontroller vorhanden ist. Die Funktion von UART ist es, die ein- und ausgehenden Daten in den seriellen Binärstrom zu konvertieren. Die vom Peripheriegerät empfangenen seriellen 8-Bit-Daten werden mit Hilfe der Seriell-Parallel-Wandlung in die parallele Form umgewandelt, und die von der CPU empfangenen parallelen Daten werden mit Hilfe der Seriell-Parallel-Wandlung umgewandelt. Diese Daten liegen in modulierender Form vor und werden mit einer definierten Baudrate übertragen.

Warum wird UART verwendet?

Protokolle wie SPI (Serial Peripheral Interface) und USB (Universal Serial Bus) werden für die schnelle Kommunikation verwendet. Wenn die Hochgeschwindigkeitsdatenübertragung nicht erforderlich ist, wird UART verwendet. Es ist ein preiswertes Kommunikationsgerät mit einem einzelnen Sender/Empfänger. Es benötigt einen einzelnen Draht zum Senden der Daten und einen weiteren Draht zum Empfangen.

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (1)

UART-Schnittstelle

Es kann mit Hilfe eines RS232-TTL-Wandlers oder USB-TTL-Wandlers an einen PC (Personal Computer) angeschlossen werden. Die Gemeinsamkeit zwischen RS232 und UART ist, dass sie beide keinen Takt benötigen, um Daten zu senden und zu empfangen. Der Uart-Rahmen besteht aus 1 Startbit, 1 oder 2 Stoppbits und einem Paritätsbit für die serielle Datenübertragung.

Blockschaltbild

Der UART besteht aus den folgenden Kernkomponenten. Sie sind der Sender und der Empfänger. Der Sender besteht aus dem Transmit-Hold-Register, dem Transmit-Schieberegister und der Steuerlogik. Analog dazu besteht der Empfänger aus einem Empfangs-Halteregister, einem Empfangs-Schieberegister und einer Steuerlogik. Gemeinsam haben Sender und Empfänger einen Baudratengenerator.

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (2)

UART-Blockdiagramm

Der Baudratengenerator erzeugt die Geschwindigkeit, mit der Sender und Empfänger die Daten senden/empfangen müssen. Das Transmit-Hold-Register enthält das zu übertragende Datenbyte. Das Sende-Schieberegister und das Empfangs-Schieberegister schieben die Bits nach links oder rechts, bis ein Datenbyte gesendet/empfangen wird.

Zusätzlich dazu gibt es eine Steuerlogik, die sagt, wann gelesen/geschrieben werden soll. Der Baudratengenerator erzeugt Geschwindigkeiten von 110 bps (Bits pro Sekunde) bis 230400. Meistens kommen Mikrocontroller mit höheren Baudraten wie 115200 und 57600 für eine schnellere Datenübertragung daher. Geräte wie GPS und GSM verwenden langsamere Baudraten in 4800 und 9600.

Wie funktioniert UART?

Um die Funktionsweise von UART zu verstehen, müssen Sie die grundlegende Funktionalität der seriellen Kommunikation verstehen. Kurz gesagt, verwenden Sender und Empfänger Startbit, Stoppbit und Timing-Parameter, um sich miteinander zu synchronisieren. Die Originaldaten liegen in paralleler Form vor. Um beispielsweise 4-Bit-Daten in die serielle Form umzuwandeln, benötigen wir einen Parallel-Seriell-Wandler. Im Allgemeinen werden D-Flip-Flops oder Latches verwendet, um die Konverter zu entwerfen.

Arbeitsweise eines D-Flip-Flops

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (3)

Basisches D-Flip-Flop

D-Flip-Flop, auch bekannt als Daten-Flip-Flop, verschiebt ein Bit von der Eingangsseite zur Ausgangsseite, wenn und nur dann, wenn der Takt den Übergang von einem High-Zustand zu einem Low-Zustand oder von einem Low-Zustand zu einem High-Zustand ändert. Wenn Sie also vier Datenbits übertragen wollen, benötigen Sie 4 Flipflops.

Anmerkung: Hier steht,

‚D‘ für Eingangsdaten.

‚CLK‘ für Taktimpulse.

‚Q‘ für Ausgangsdaten. Nun wollen wir einen Parallel-Seriell- und einen Seriell-Parallel-Wandler entwerfen.

Parallel-Seriell-Wandler

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (4)

Parallel-Seriell-Wandler

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (5)

Kaskadenschaltung – Parallel zu Seriell

Schritt#1:

Nehmen Sie 4 Flip-Flops. Die Anzahl der Flipflops entspricht der Anzahl der zu übertragenden Bits. Setzen Sie in ähnlicher Weise Multiplexer vor jedes Flipflop, jedoch ohne das erste. Ein Multiplexer wird platziert, um die Daten zu kombinieren und in serielle Bits zu konvertieren. Er hat zwei Eingänge, ein paralleles Bit Daten und ein weiteres vom vorherigen Flipflop.

Schritt#2:

Nun laden Sie die Daten auf einmal in die D-Flipflops. Es werden die parallelen Daten gezogen und das letzte Bit des letzten Flipflops (vier), dann das dritte Bit, das zweite Bit und schließlich das erste Bit verschoben. Um nun die parallelen Daten wieder in eine serielle Form zu bringen, wird ein Seriell-Parallel-Wandler verwendet.

Seriell-Parallel-Wandlung

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (6)

Seriell-Parallel-Wandlung

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (7)

Kaskadenschaltung – Seriell-Parallel-Wandlung

Schritt#1:

Nehmen Sie 4 Flip-Flops. Die Anzahl der Flip-Flops entspricht der Anzahl der zu übertragenden Bits.

Schritt#2:

Zunächst deaktivieren Sie den parallelen Bus. Aktivieren Sie ihn erst, wenn alle Bits geladen sind. Speichern Sie die Daten am Eingang des ersten Flipflops. Machen Sie nun den Takt hoch, dadurch wird das niederwertigste Bit an den Eingang des zweiten Flipflops und den Ausgang des ersten Flipflops geschoben. In ähnlicher Weise verschieben Sie alle Bits um eins, indem Sie den Takt auf high setzen. Der Wandler befindet sich im Haltezustand, bis alle Bits an den Ausgang übertragen sind.

Schritt#3:

Jetzt enthält jedes Flip-Flop ein Bit der seriellen Daten. Erst wenn alle Bits an den Flipflop-Ausgang übertragen sind, geben Sie den Bus frei. Dadurch kann der Wandler alle Bits auf einmal senden.

Protokollformat

Der UART beginnt die Kommunikation mit einem Startbit ‚0‘. Das Startbit leitet die Übertragung der seriellen Daten ein und das Stopbit beendet die Datentransaktion.

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (8)

Protokollformat

Es ist auch mit einem Paritätsbit (gerade oder ungerade) versehen. Das gerade Paritätsbit wird durch ‚0‘ (gerade Anzahl von 1en) und das ungerade Paritätsbit durch ‚1‘ (ungerade Anzahl von 1en) dargestellt.

Übertragung

Die Übertragung der Daten erfolgt über eine einzelne Übertragungsleitung (TxD). Dabei gilt ‚0‘ als Leerzeichen und ‚1‘ als Markierungszustand.

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (9)

Transmission Frame

Der Sender sendet jeweils ein einzelnes Bit. Nachdem ein Bit gesendet wurde, wird das nächste Bit gesendet. Auf diese Weise werden alle Datenbits mit einer vordefinierten Baudrate an den Empfänger gesendet. Jedes Bit wird mit einer gewissen Verzögerung übertragen. Um z. B. ein Byte Daten mit einer Baudrate von 9600 zu senden, wird jedes Bit mit einer Verzögerung von 108 µs gesendet. Die Daten werden mit einem Paritätsbit addiert. Es werden also 10 Datenbits benötigt, um 7 Datenbits zu senden.

Hinweis: Beim Senden wird immer das LSB (Least Significant Bit) zuerst gesendet.

Empfang

Beim Empfang wird die RxD-Leitung (Receiver) zum Empfangen der Daten verwendet.

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (10)

Empfangsrahmen

Beispiel der UART-Anbindung

Dieses Beispiel demonstriert die Anbindung des ESP8266 UART an den MAX232. Aber bevor ich mich in die Details des Interfacing stürze, lassen Sie mich die Pin-Details des Max232-Treibers erläutern.

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (11)

MAX232 Pinout

Das MAX232 IC wird mit einer 5V-Versorgung betrieben, die einen kapazitiven Spannungsgenerator enthält, um 232 Pegelspannungen zu erzeugen. Es kommt mit zwei Sendern, die auch Treiber (TIN, TOUT) und Empfänger (RIN und ROUT) genannt werden.

Hier habe ich ESP8266 (32-Bit-Mikrocontroller) verwendet, der einen eingebauten UART hat. Die Kommunikation mit dem ESP8266 kann mit AT-Befehlen über einen RS232-zu-TTL-Pegelwandler (MAX232) erfolgen. Die folgende Abbildung zeigt die Verbindung des ESP8266 mit dem PC (Personal Computer).

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (12)

ESP8266 interfacing with UART

Bei der Abfrage von gültigen AT-Befehlen durch den PC antwortet der Wi-Fi-Chip mit einer Rückmeldung. Ich möchte hier nicht in die Tiefe gehen und werde das Thema ESP8266 in den zukünftigen Tutorials erklären.

Hier sind die Schritte zur Implementierung der seriellen Kommunikation mit dem PC.

  1. Verbinden Sie den Sender (TX) des ESP8266 mit dem Empfänger (TX) des RS232 zu TTL Pegelwandlers (MAX232) und dem RX des PCs.
  2. Verbinden Sie den Empfänger (RX) des ESP8266 mit dem TX des PCs und dem RX des TTL-Wandlers.

ESP8266-Befehle

AT-Befehl (gesendet vom PC)ESP8266-Antwort (empfangen vom PC)
AT<CR><LF>OK<CR><LF>
AT+CIPMUX=1OK<CR><LF>
AT+CIPSERVER=1,23<CR><LF>OK<CR><LF>

Der folgende Screenshot zeigt die Antwort des ESP8266-Moduls.

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (13)

ESP8266 Befehle – Docklight Programm

UART vs USART

USART ist die Grundform von UART. Technisch gesehen sind sie nicht das Gleiche. Aber die Definition ist für beide gleich. Es handelt sich um Mikrocontroller-Peripheriegeräte, die parallele Daten in serielle Bits umwandeln und umgekehrt.

Der Hauptunterschied zwischen UART und USART ist, dass UART nur asynchrone Kommunikation unterstützt, während USART sowohl synchrone als auch asynchrone Kommunikation unterstützt. Zum besseren Verständnis hier der Vergleich zwischen USART und UART.

UARTUSART
Der Takt wird intern vom Mikrocontroller erzeugt.Der Takt wird vom sendenden Gerät generiert.
Die Datenrate ist langsam.Die Datenrate ist durch den externen Takt höher.
Standalone ProtokollUnterstützt mehrere Protokolle wie LIN, RS-485, IrDA, Smart Card etc.
Die Baudrate sollte vor der Übertragung bekannt sein.Die Baudrate muss nicht vorher bekannt sein.
Geeignet für Kommunikation mit niedriger GeschwindigkeitGeeignet für Kommunikation mit hoher Geschwindigkeit.
Reduzierter Energiebedarf.Handhabt serielle Kommunikation bei hohem Energieverbrauch

RS232 und UART

Die Spannungspegel stellen die Betriebsspannungspegel dar, die ein Gerät aushalten kann, um in einer sicheren Zone zu arbeiten. Hier sind die Spannungspegel für RS232 und TTL.

RS232 Logik:

RS232 Spannungspegel

LogikpegelSpannungsbereich
Logikausgang High oder OFF-5V bis -.15V
Logik Low oder EIN-Ausgang+5V bis +15V
Logik High oder AUS-Eingang-3V bis -15V
Logic Low oder EIN-Eingang+3V bis +15V

In den meisten Fällen reichen die RS232-Pegel von -12V bis +12V. Zum Beispiel ist ein ASCII-Wert für ein Zeichen ‚A‘ in RS232 65 und 41 in Hexadezimal. In einem 8-Bit-Binärformat ist es also 0100 0001. Hier die Darstellung der RS232 Logikpegel für ASCII ‚A‘.

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (14)

RS232 Signal für ASCII Buchstabe A

TTL/CMOS Logik:

Der UART arbeitet auf TTL Logik.

UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (15)

TTL-CMOS-Signal für ASCI-Buchstabe A

  • Zunächst befindet sich die serielle Leitung im Ruhezustand, der allgemein als Mark-Zustand (logisch 1) bezeichnet wird. Nun beginnt die Datenübertragung mit einem Startbit (logisch 0).
  • Weiterhin werden acht Datenbits über die serielle Leitung gesendet, eines nach dem anderen, mit dem LSB (Least Significant Bit) zuerst.
  • Nachdem die gesamte Übertragung vorbei ist, wird ein Stopbit (logisch 1) angetroffen.

Vorteile

Der Vorteil von UART ist, dass es Vollduplex-Kommunikation mit zwei Drähten unterstützt. Außerdem benötigt er keinen externen Takt für die Datenkommunikation. Er unterstützt die Fehlerprüfung mit einem Paritätsbit und die Länge der Daten kann leicht geändert werden.

Nachteile

Der größte Nachteil von UART ist, dass er keine Multi-Slave- oder Multi-Master-Konfiguration unterstützt. Und, die Größe des Datenpakets ist auf 9 Bit begrenzt. Der UART ist nicht geeignet für schwere serielle Kommunikation bei hohem Energieverbrauch.

Anwendungen

  1. Der serielle Debug-Port verwendet den UART-Treiber, um die von der Außenwelt kommenden Daten auszugeben.
  2. Wir können es verwenden, um Befehle an und von den eingebetteten Geräten zu senden und zu empfangen.
  3. Die Kommunikation in GPS, GSM/GPRS-Modem, Wi-Fi-Chips, etc. arbeitet mit UART.
  4. Verwendet in Mainframe-Zugang zu verschiedenen Computern zu verbinden.
UART-Kommunikationsprotokoll - Wie funktioniert es? - Codrey Electronics (2024)

FAQs

What are some ways UART could have communication error? ›

Sometimes, UART errors may be caused by unexpected events or conditions that interrupt or affect the normal flow of data. For example, you may encounter buffer overflow, framing error, parity error, or timeout error. To handle these errors and exceptions, you need to write some code to detect and respond to them.

How does UART work without a clock? ›

Instead of a clock signal, the transmitting UART adds start and stop bits to the data packet being transferred. These bits define the beginning and end of the data packet so the receiving UART knows when to start reading the bits.

What is the main drawback of UART? ›

However, UART also has some disadvantages, such as the lower data rates, typically up to a few hundred kilohertz. It also requires a common baud rate and data format between the devices, which can limit the compatibility and flexibility of the system.

What is the advantage of UART communication? ›

One of the big advantages of UART is that it is asynchronous – the transmitter and receiver do not share a common clock signal. Although this greatly simplifies the protocol, it does place certain requirements on the transmitter and receiver.

What causes UART framing errors? ›

Frame error means, the UART did not recognize the last character. This happens in your case when you connect the wires in the middle of a character "frame". Some flags are cleared with reading the RX registers, others not.

Does UART have error detection? ›

During a data transfer, UARTs don't send or receive just data bits. Instead, the data bits are grouped along with some synchronization and error-detection bits to form a single data frame or character.

How to communicate over UART? ›

The transmitting UART is connected to a controlling data bus that sends data in a parallel form. From this, the data will now be transmitted on the transmission line (wire) serially, bit by bit, to the receiving UART. This, in turn, will convert the serial data into parallel for the receiving device.

What is a real time example of UART? ›

A practical example of UART communication involves connecting a microcontroller to a computer. Consider a scenario where a temperature sensor is connected to a microcontroller, and the microcontroller sends the temperature readings to a computer for display.

How many devices can be connected to UART simultaneously? ›

ProtocolUARTSPI
ComplexitySimpleComplex as device increases
SpeedSlowestFastest
Number of devicesUp to 2 devicesMany, but gets complex
Number of wires14
2 more rows
Sep 25, 2019

How do I know if my UART is working? ›

Troubleshooting Transmitter Operation:
  1. After configuring and enabling the USART or UART, a write to SBUF or DATA will initiate a transmission. ...
  2. Place an oscilloscope probe on the I/O pin.
  3. Write a 0x55 to SBUF or DATA in software.
  4. You should see an alternating high-low-high-low... ...
  5. Measure the low/high times.

How many wires does UART use? ›

UART in simple terms

As the name suggests, it both sends and receives data. UART is one of the simplest communication protocols there is. It requires only two wires for the devices to communicate with each other. The transmitter (TX) wire on device 1 is connected to the receiver (RX) wire of device 2.

What is the main purpose of UART? ›

A UART is usually an individual (or part of an) integrated circuit (IC) used for serial communications over a computer or peripheral device serial port. One or more UART peripherals are commonly integrated in microcontroller chips. Specialised UARTs are used for automobiles, smart cards and SIMs.

Is UART good for long distance? ›

UART communication is asynchronous, meaning the devices involved do not share a synchronized clock signal; they operate independently. UART is suitable for long-distance communication.

What is the maximum communication distance for UART? ›

UART has a max communication distance of 15 meters. UART leverages shift registers to convert serial communication to parallel communication. UART is commonly used as a “serial port” on computers or in microcontrollers.

Which one is the common communication error? ›

Everyone makes communication mistakes from time to time. However, you'll protect your reputation if you avoid the most common errors. These include not editing your work, accidentally violating people's privacy when forwarding emails, and not being assertive.

What is the error tolerance for UART? ›

For RS232, or UART, these transmissions are usually ten bits long - one start bit, 8 bits of data, and a stop bit. In this case, the error can be a maximum of 1/2 bit in 10 bits, or 5%. This is total error, however. If both devices have an error of more than 2.5%, the total error can be over 5% and cause a failure.

Which error occurs in serial communication system? ›

The different types of errors in serial communication are: Single-bit error: In a single-bit error, only one bit is altered, which results in an incorrect or corrupted data unit. Multiple-bit error: In a multiple-bit error, more than one bit is altered during transmission.

What is overrun error in UART? ›

An overrun error will be generated if a third character, in its entirety, is received before the FIFO is accessed. When this happens the OERR bit of the RC1STA register is set. The characters already in the FIFO buffer can be read but no additional characters will be received until the error is cleared.

References

Top Articles
Every Movie Releasing In Theaters In August 2023
White Castle Chicken Sliders Air Fryer
Pet For Sale Craigslist
123 Movies Black Adam
Login Page
Skamania Lodge Groupon
Monthly Forecast Accuweather
St Petersburg Craigslist Pets
Es.cvs.com/Otchs/Devoted
1movierulzhd.fun Reviews | scam, legit or safe check | Scamadviser
Evita Role Wsj Crossword Clue
Olivia Ponton On Pride, Her Collection With AE & Accidentally Coming Out On TikTok
W303 Tarkov
World History Kazwire
Bowlero (BOWL) Earnings Date and Reports 2024
Available Training - Acadis® Portal
Fool’s Paradise movie review (2023) | Roger Ebert
Michael Shaara Books In Order - Books In Order
Hellraiser III [1996] [R] - 5.8.6 | Parents' Guide & Review | Kids-In-Mind.com
Imagetrend Inc, 20855 Kensington Blvd, Lakeville, MN 55044, US - MapQuest
Golden Abyss - Chapter 5 - Lunar_Angel
Stardew Expanded Wiki
Eine Band wie ein Baum
Craigslist Prescott Az Free Stuff
Routing Number For Radiant Credit Union
Rogue Lineage Uber Titles
Craigslist Hunting Land For Lease In Ga
Panolian Batesville Ms Obituaries 2022
Spectrum Outage in Queens, New York
Ordensfrau: Der Tod ist die Geburt in ein Leben bei Gott
Free Tiktok Likes Compara Smm
Mega Millions Lottery - Winning Numbers & Results
Selfservice Bright Lending
oklahoma city community "puppies" - craigslist
Hisense Ht5021Kp Manual
Ishow Speed Dick Leak
The Vélodrome d'Hiver (Vél d'Hiv) Roundup
7543460065
Urban Blight Crossword Clue
Gt500 Forums
Andrew Lee Torres
Differential Diagnosis
Kenner And Stevens Funeral Home
Blow Dry Bar Boynton Beach
Nimbleaf Evolution
Jimmy John's Near Me Open
Bridgeport Police Blotter Today
Legs Gifs
Santa Ana Immigration Court Webex
Craigslist Cars For Sale By Owner Memphis Tn
786 Area Code -Get a Local Phone Number For Miami, Florida
32 Easy Recipes That Start with Frozen Berries
Latest Posts
Article information

Author: Pres. Lawanda Wiegand

Last Updated:

Views: 6159

Rating: 4 / 5 (71 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Pres. Lawanda Wiegand

Birthday: 1993-01-10

Address: Suite 391 6963 Ullrich Shore, Bellefort, WI 01350-7893

Phone: +6806610432415

Job: Dynamic Manufacturing Assistant

Hobby: amateur radio, Taekwondo, Wood carving, Parkour, Skateboarding, Running, Rafting

Introduction: My name is Pres. Lawanda Wiegand, I am a inquisitive, helpful, glamorous, cheerful, open, clever, innocent person who loves writing and wants to share my knowledge and understanding with you.