Unterschied zwischen UART und RS-232?

80

Meistens kommen RS-232 und UART in seriellen Kommunikationstheorien zusammen. Sind sie beide gleich? Aufgrund meiner Messungen kam ich zu dem Schluss, dass UART eine Hardwareform des RS-232-Protokolls ist. Hab ich recht?

tollin jose
quelle
1
Die obigen Antworten haben Einblicke in die Unterschiede gegeben. Zu diesen Antworten möchte ich jedoch einen Link von National Instruments hinzufügen, der dieses Thema ausführlich behandelt. Das Folgende ist die Verbindung: RS-232, RS-422, RS-485 Serielle Kommunikation Allgemeine Konzepte
Devangmotwani

Antworten:

80

Nein, UART und RS-232 sind nicht dasselbe.

UART ist für das Senden und Empfangen einer Bitfolge verantwortlich. Am Ausgang eines UART werden diese Bits normalerweise durch Spannungen mit logischem Pegel dargestellt. Diese Bits können RS-232, RS-422, RS-485 oder möglicherweise eine proprietäre Spezifikation sein.

RS-232 spezifiziert Spannungspegel . Beachten Sie, dass einige dieser Spannungspegel negativ sind und auch ± 15 V erreichen können. Ein größerer Spannungshub erhöht die Störfestigkeit von RS-232 (wenn auch nur in begrenztem Umfang).

Ein Mikrocontroller-UART kann solche Spannungspegel nicht selbst erzeugen. Dies geschieht mit Hilfe einer zusätzlichen Komponente: dem RS-232-Leitungstreiber. Ein klassisches Beispiel für einen RS-232-Leitungstreiber ist MAX232 . Wenn Sie das Datenblatt durchgehen, werden Sie feststellen, dass dieser IC eine Ladungspumpe hat, die ± 10V von + 5V erzeugt.

Bildbeschreibung hier eingeben ( Quelle )

Nick Alexeev
quelle
4
In der von mir gelesenen RS-232-Definition geht es überhaupt nicht um eine Folge von Bits oder Timing. Ich habe nie einen offiziellen Standard gefunden, der das asynchrone NRZ-Start-Stopp-Protokoll beschreibt.
Wouter van Ooijen
1
RS-232 spezifiziert keine Bitfolge.
Slebetman
Anscheinend wurde die Entwicklung des UART-Zeichenformats von der Bell-Telefongesellschaft so dominiert, dass keine Varianten auftauchten. Infolgedessen war das Start / Daten / Parität / Stopp-Bit-Format nie Gegenstand eines unabhängigen Standards. Die branchenweite Verwendung war so einheitlich, dass keine "offizielle" Definition erforderlich war. Dies galt nicht für die physischen Verbindungen und so wurde RS-232 entwickelt.
WhatRoughBeast
3
Die UART-Zeichenformate sind älter als die Modems von Bell, waren in Teletype-Hardware (acht Bit mit Parität) in ASCII und davor in Baudot.
Pfingsten
33

UART (oder USART) - Universeller (synchroner) asynchroner Empfänger / Sender

Dies ist im Wesentlichen eine serielle Kommunikationsschnittstelle. Der "universelle" Teil bedeutet, dass er so konfiguriert werden kann, dass er viele verschiedene spezifische serielle Protokolle unterstützt. Der Begriff ist generisch und stellt keinen bestimmten Standard dar. Zumindest bedeutet dies, dass es eine TXund eine RXLeitung hat, die einen seriellen Datenstrom sendet und einen seriellen Datenstrom empfängt.

RS-232 - Ein Standard, der die Signale zwischen zwei Geräten definiert und die Signalnamen, deren Zweck, Spannungspegel, Anschlüsse und Pinbelegung definiert.

Dies ist ein spezifischer Schnittstellenstandard, der die Interoperabilität der Geräte ermöglicht. Während zwei Hardware-Teile UARTs haben können, wissen Sie nicht, dass sie ohne Beschädigung verbunden werden oder ordnungsgemäß kommunizieren, es sei denn, Sie wissen, dass sie die gleichen Pinbelegungs- und Spannungsstandards haben oder einen Konverter oder ein speziell verdrahtetes Kabel für die Verbindung von enthalten diese beiden spezifischen Geräte. Um die Notwendigkeit spezieller Konverter oder Kabel zu vermeiden, können sich die Hersteller für den RS-232-Standard entscheiden. Sie wissen also, dass ein Standard-RS-232-Kabel die beiden verbindet.

Weder der UART- noch der RS-232-Standard definieren jedoch, was auf den Leitungen TXund gesendet RXwird. Wenn Menschen RS-232 verwenden, verwenden sie im Allgemeinen eine einfache 8-Bit-NRZ-Codierung mit einem Startbit und einem Stoppbit. Die meisten Geräte, die heutzutage hergestellt werden, verwenden diese Kodierung, aber es gibt keine Notwendigkeit, dies zu tun. Sie können ältere Geräte finden, die Paritätsbits enthalten oder 7 oder 9 Bits verwenden. Der UART kann so konfiguriert werden, dass er diese verschiedenen Protokolle auf seinen TXund RXLeitungen unterstützt.

UARTs sind normalerweise nicht direkt mit RS-232 verbunden. Sie müssen den Ausgang des UART auf den für RS-232 erforderlichen +/- 12-V-Standard konvertieren. Eine vollständige RS-232-Schnittstelle umfasst in der Regel sowohl einen UART- als auch einen RS-232-Pegelwandler. Darüber hinaus enthält der RS-232-Standard die Definition mehrerer anderer Signalisierungsstifte neben TXund RX, die Sie je nach dem Gerät, an das Sie anschließen müssen, möglicherweise verwenden müssen. Diese müssen ebenfalls pegelkonvertiert werden, und Ihr UART unterstützt diese Signale möglicherweise oder auch nicht. Wenn dies nicht der Fall ist, müssen Sie sie direkt mit Ihrer Software / Firmware steuern.

Ein UART kann Ihnen zwar bei der Implementierung einer RS-232-Schnittstelle helfen, ist jedoch selbst keine RS-232-Schnittstelle.

Adam Davis
quelle
Standard RS-232 Kabel? Es gibt so etwas nicht. In meiner Ausrüstungstasche habe ich ungefähr ein Dutzend Adapter für RS-232. RS-232 spezifiziert einen DB-25-Anschluss, aber ich habe DD-9-, RJ45-, Din8- und andere Anschlüsse gesehen und außer dem Anschließen eines Modems an einen PC war es mir noch nie möglich, ein COTS-Kabel für ein RS232-Projekt zu verwenden. Glücklicherweise ist es in 90% der Fälle einfach, ein paar Adapter oder ein benutzerdefiniertes Kabel herzustellen.
Hildred
Nur zur Veranschaulichung: Ich denke, das 'S' in USART steht für "Synchronous", nicht für "Serial". Sehen Sie hier . USARTs sind "estensions" gegenüber den älteren UARTs-Chips, die auch synchrone Kommunikationsmodi ermöglichen.
Lorenzo Donati
14

Der UART konvertiert parallele Daten von PC-Busleitungen in serielle Daten zur Übertragung über Leitungstreiber an RS-232-, RS-422- und RS-485- Geräte. Der Clock-Pin des UART-Chips wird von einer programmierbaren Clock-Quelle gespeist. Die Taktrate wird durch die Konfiguration der Baudrate bestimmt, die das Gerät verwenden wird. Die Taktrate beträgt das 16-fache der Baudrate. Das Platzieren eines Oszilloskop-Tastkopfs auf dem Taktstift eines UART-Chips und das Bestimmen der Frequenz sowie das Teilen durch 16 ist eine Möglichkeit, eine unbekannte Baudrate zu bestimmen.

Don Slade
quelle
5
+1 für "Konvertieren von parallelen Daten in serielle Daten", keine andere Antwort erwähnt dies hier.
TisteAndii