Różnica między UART a RS-232?


80

Przez większość czasu RS-232 i UART łączą się w teorie komunikacji szeregowej. Czy oba są takie same? Z moich odczytów doszedłem do wniosku, że UART jest sprzętową formą protokołu RS-232. Mam rację?


1
Powyższe odpowiedzi dały wgląd w różnice. Chciałbym jednak dodać do tych odpowiedzi, dodając link z National Instruments, który szczegółowo omawia ten temat.
Oto

Odpowiedzi:


80

Nie, UART i RS-232 nie są takie same.

UART jest odpowiedzialny za wysyłanie i odbieranie sekwencji bitów. Na wyjściu UART te bity są zwykle reprezentowane przez napięcia na poziomie logicznym. Te bity mogą stać się RS-232, RS-422, RS-485 lub być może zastrzeżoną specyfikacją.

RS-232 określa poziomy napięcia . Zauważ, że niektóre z tych poziomów napięcia są ujemne i mogą również osiągnąć ± 15 V. Większe wahania napięcia sprawiają, że RS-232 jest bardziej odporny na zakłócenia (choć tylko do pewnego stopnia).

Mikrokontroler UART nie może sam generować takich poziomów napięć. Odbywa się to za pomocą dodatkowego komponentu: sterownika linii RS-232. Klasycznym przykładem sterownika linii RS-232 jest MAX232 . Jeśli przejrzysz arkusz danych, zauważysz, że ten układ scalony ma pompę ładującą, która wytwarza ± 10 V z + 5 V.

wprowadź opis zdjęcia tutaj ( źródło )


4
Definicja RS-232, którą przeczytałem, w ogóle nie mówi o sekwencji bitów ani taktowaniu. Faktycznie nigdy nie znalazłem oficjalnego standardu opisującego asynchroniczny protokół start-stop NRZ.
Wouter van Ooijen

1
RS-232 nie określa sekwencji bitów.
slebetman

Najwyraźniej rozwój formatu znaków UART był tak zdominowany przez firmę telefoniczną Bell, że nie pojawiły się żadne warianty. W rezultacie format start / dane / parzystość / stop nigdy nie był przedmiotem niezależnego standardu. Ogólne zastosowanie w branży było tak jednolite, że nie była wymagana „oficjalna” definicja. Nie dotyczyło to łączy fizycznych, dlatego opracowano RS-232.
WhatRoughBeast

3
Formaty znaków UART poprzedzają modemy Bella, były w sprzęcie Teletype (osiem bitów z parzystością) w ASCII, a przedtem Baudot.
Whit3rd,

33

UART (lub USART) - Uniwersalny (synchroniczny) asynchroniczny odbiornik / nadajnik

Zasadniczo jest to interfejs komunikacji szeregowej. Część „uniwersalna” oznacza, że ​​można ją skonfigurować do obsługi wielu różnych konkretnych protokołów szeregowych. Termin jest ogólny i nie reprezentuje określonego standardu. Co najmniej oznacza to, że ma linię TXi oraz RXlinię, która wysyła strumień danych szeregowych i odbiera strumień danych szeregowych.

RS-232 - Standard określający sygnały między dwoma urządzeniami, określający nazwy sygnałów, ich przeznaczenie, poziomy napięcia, złącza i wyprowadzenia.

Jest to specyficzny standard interfejsu, który umożliwia interoperacyjność urządzeń. Chociaż dwa elementy sprzętu mogą mieć UART, nie wiesz, że będą się łączyć bez uszkodzeń lub komunikować się poprawnie, chyba że wiesz, że mają takie same standardy wyprowadzeń i napięcia, lub zawierają konwerter lub specjalnie okablowany kabel specyficzny dla połączenia te dwa określone urządzenia. Aby uniknąć potrzeby stosowania specjalnych konwerterów lub kabli, producenci mogą wybrać standard RS-232. Wiesz zatem, że standardowy kabel RS-232 połączy oba.

Jednak ani UART, ani standard RS-232 nie definiują, co jest wysyłane w liniach TXi RX. Zasadniczo, gdy ludzie używają RS-232, używają prostego 8-bitowego kodowania NRZ z jednym bitem początkowym i jednym bitem zatrzymującym. Większość produkowanych obecnie urządzeń wykorzystuje to kodowanie, ale nie ma takiego wymogu. Możesz znaleźć starszy sprzęt, który zawiera bity parzystości lub używa 7 lub 9 bitów. UART może być skonfigurowany do obsługi tych różnych protokołów na jego TXi RXliniach.

UART-y zazwyczaj nie łączą się bezpośrednio z RS-232. Musisz przekonwertować wyjście UART na standard +/- 12V wymagany przez RS-232. Kompletny interfejs RS-232 będzie zazwyczaj obejmował zarówno konwerter poziomu UART, jak i konwerter poziomu RS-232. Ponadto standard RS-232 zawiera definicję kilku innych pinów sygnalizacyjnych oprócz, TXi RXktóre mogą być potrzebne w zależności od sprzętu, z którym chcesz się połączyć. Należy je również przekonwertować, a Twój UART może obsługiwać te sygnały lub nie. Jeśli nie, będziesz musiał kontrolować je bezpośrednio za pomocą oprogramowania / oprogramowania układowego.

Tak więc, chociaż UART może pomóc we wdrożeniu interfejsu RS-232, nie jest to sam interfejs RS-232.


Standardowy kabel RS-232? Nie ma czegoś takiego. W mojej torbie na sprzęt mam około tuzina adapterów do RS-232. RS-232 określa złącze DB-25, ale widziałem DD-9, RJ45, din8 i inne złącza, a poza podłączeniem modemu do komputera nigdy nie byłem w stanie użyć kabla COTS do żadnego projektu rs232. Na szczęście w 90% przypadków wystarczy kilka adapterów lub niestandardowy kabel, są one łatwe do wykonania.
hildred

Dla przypomnienia: myślę, że „S” w USART oznacza „Synchroniczny”, a nie „Szeregowy”. Patrz tutaj . USART to „estensions” w stosunku do starszych układów UART, które umożliwiają także synchroniczne tryby komunikacji.
Lorenzo Donati,

14

Funkcje UART do konwersji danych równoległych z linii magistrali PC na dane szeregowe w celu transmisji przez sterowniki linii do urządzeń RS-232, RS-422 i RS-485 . Pin zegara układu UART jest zasilany przez programowalne źródło zegara. Szybkość zegara zależy od konfiguracji prędkości transmisji, z której będzie korzystać urządzenie. Szybkość zegara wynosi 16 x szybkość transmisji. Umieszczenie sondy oscyloskopowej na pinie zegarowym układu UART i określenie częstotliwości, a następnie podzielenie przez 16 jest jednym ze sposobów określenia nieznanej prędkości transmisji.


5
+1 za „konwersję danych równoległych na dane szeregowe”, żadna inna odpowiedź tutaj nie wspomina o tym.
TisteAndii
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.