Meistens kommen RS-232 und UART in seriellen Kommunikationstheorien zusammen. Sind beide gleich? Aus meinen Messwerten folgerte ich, dass UART eine Hardwareform des RS-232-Protokolls ist. Hab ich recht?
Nein, UART und RS-232 sind nicht dasselbe.
UART ist für das Senden und Empfangen einer Folge von Bits verantwortlich. Am Ausgang eines UART werden diese Bits normalerweise durch Logikpegelspannungen dargestellt. Diese Bits können RS-232, RS-422, RS-485 oder vielleicht eine proprietäre Spezifikation werden.
RS-232 spezifiziert Spannungspegel . Beachten Sie, dass einige dieser Spannungspegel negativ sind und auch ±15 V erreichen können. Ein größerer Spannungshub macht RS-232 widerstandsfähiger gegen Störungen (wenn auch nur bis zu einem gewissen Grad).
Ein Mikrocontroller-UART kann solche Spannungspegel nicht selbst erzeugen. Dies geschieht mit Hilfe einer zusätzlichen Komponente: 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 aus +5V ±10V erzeugt.
( Quelle )
UART (oder USART) - Universaler (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. Es bedeutet mindestens, dass es eine TX
und eine RX
Leitung 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, ihren Zweck, Spannungspegel, Anschlüsse und Pinbelegungen definiert.
Dies ist ein spezifischer Schnittstellenstandard, der die Interoperabilität von Geräten ermöglicht. Während zwei Hardwareteile UARTs haben können, wissen Sie nicht, dass sie sich ohne Beschädigung verbinden oder richtig kommunizieren, es sei denn, Sie wissen, dass sie die gleiche Pinbelegung und die gleichen Spannungsstandards haben oder einen Konverter oder ein speziell verdrahtetes Kabel enthalten, das für die Verbindung von spezifisch ist diese beiden spezifischen Geräte. Um den Bedarf an speziellen Konvertern oder Kabeln zu vermeiden, können sich die Hersteller dafür entscheiden, dem RS-232-Standard zu folgen. Sie wissen also, dass ein standardmäßiges RS-232-Kabel die beiden verbindet.
Weder der UART- noch der RS-232-Standard definieren jedoch, was auf den Leitungen TX
und gesendet wird. RX
Wenn Menschen RS-232 verwenden, verwenden sie im Allgemeinen eine einfache 8-Bit-NRZ-Codierung mit einem Startbit und einem Stoppbit. Die meisten heute hergestellten Geräte verwenden diese Codierung, aber es gibt keine Notwendigkeit dazu. 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 TX
und RX
Leitungen unterstützt.
UARTs haben normalerweise keine direkte Schnittstelle mit RS-232. Sie müssen den Ausgang des UART in den für RS-232 erforderlichen +/-12-V-Standard konvertieren. Eine vollständige RS-232-Schnittstelle umfasst typischerweise sowohl einen UART- als auch einen RS-232-Pegelwandler. Darüber hinaus enthält der RS-232-Standard die Definition mehrerer anderer Signalisierungspins neben TX
und RX
, die Sie je nach Gerät, zu dem Sie eine Verbindung herstellen müssen, möglicherweise verwenden müssen. Diese müssen ebenfalls pegelkonvertiert werden, und Ihr UART kann diese Signale unterstützen oder 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 aber selbst keine RS-232-Schnittstelle.
Der UART dient dazu, parallele Daten von PC-Busleitungen in serielle Daten zur Übertragung über Leitungstreiber an RS-232-, RS-422- und RS-485- Geräte umzuwandeln. Der Taktstift des UART-Chips wird von einer programmierbaren Taktquelle gespeist. Die Taktrate wird durch die Baudratenkonfiguration bestimmt, die das Gerät verwenden wird. Die Taktrate beträgt das 16-fache der Baudrate. Das Anbringen einer Oszilloskopsonde am Taktstift eines UART-Chips und das Bestimmen der Frequenz und das anschließende Teilen durch 16 ist eine Möglichkeit, eine unbekannte Baudrate zu bestimmen.
RS-232 ist nur eine Spezifikation. Es definiert die Signalisierungsanforderungen für die serielle Kommunikation, indem es Regeln und Richtlinien festlegt in Bezug auf:
RS-232 deckt nichts ab, was mit der digitalen elektronischen Hardware zu tun hat, die Sie verwenden, um diese Spezifikationen zu implementieren und einzuhalten, und vor allem deckt es keine Datenrahmen oder Fehlerkorrektur oder irgendwelche Aspekte vom Typ "Datenverbindungsschicht" ab. Mit anderen Worten, RS-232 kommt einer „Physical Layer“-Spezifikation im OSI-Modell am nächsten .
Sie hören manchmal den Begriff "RS-232-Protokoll", aber es ist kein Protokoll, sondern ein Signalisierungsstandard.
Die tatsächliche Hardware, die Sie verwenden, um eine RS-232-konforme Kommunikation zu implementieren , lässt sich grob in zwei Kategorien einteilen, von denen keine Teil der RS-232-Spezifikation ist (außer in dem Sinne, dass Sie es nicht rechtmäßig tun können, wenn sie etwas tun, das RS-232 verletzt nennen Sie Ihr System "RS-232"):
Line-Transceiver . Dies sind die Geräte, die zwischen den RS-232-konformen Signalen, die robust, bipolar sind (Spannungen gehen sowohl negativ als auch positiv in Bezug auf Masse), und den empfindlichen digitalen Logikschaltkreisen innerhalb des Kommunikationsgeräts, das normalerweise ein UART - Betriebmit standardmäßigen 3,3-V- oder 5-V-Logikpegeln. Leitungs-Transceiver fallen ebenfalls unter die "physikalische Schicht" des OSI-Modells.
UART . Dies ist eine komplexe digitale Logik, die normalerweise mit standardmäßigen 5-V- oder 3,3-V-Logikpegeln arbeitet und für die Codierung und Decodierung paralleler Daten in und aus serieller Form verantwortlich ist. Es kümmert sich um Framing (Start- und Stoppbits), Fehlerkorrektur (Paritätsbits), Datenrate (Baudrate), Flusskontrolle (Steuerung von Signalen wie DCD, CTS, RTS usw.) und viele andere Aspekte. Als solches könnte es als Teil der "Datenverbindungsschicht" im OSI-Modell angesehen werden.
RS-232 ist vor UART.
UART ist ein Gerät, das ein logisches Protokoll für die Kommunikation definieren kann, während RS-232 ein Gerät ist, das als physisches Medium für die Kommunikation dient.
Wenn wir sagen UART + RS232
, bedeutet a communication protocol runs on some media
das eigentlich, bei Chips wie MAX232 die Spannungen anzupassen.
Wir können auch verwenden (bearbeiten) Wir können auch Chips auf USB-Basis verwenden, um einige virtuelle UART-Funktionen bereitzustellen (bearbeiten), mit den Chips von Prolific Technology, FTDI, Microchip usw., wo wir die einfachen RS-232-Medien durch mehr ersetzen komplexe/aktuelle USB-Medien. UART + USB
Wir brauchen nicht einmal den Hardware-UART, da er über USB rein softwaremäßig implementiert werden kann.
Siehe Bild unten. Beachten Sie, dass auf der rechten Seite kein Hardware-UART, sondern nur Hardware-USB (Bearbeiten) vorhanden ist. Der Hardware-UART ist in solche Chips integriert und auf der eingebetteten Seite wird ein neuer USB-UART-Treiber verwendet (Bearbeiten). Und mit einigen zusätzlichen Fahrern.
Bild ist von hier .
devangmotwani
David C.