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ę?
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ę?
Odpowiedzi:
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.
( źródło )
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ę TX
i oraz RX
linię, 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 TX
i 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 TX
i RX
liniach.
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, TX
i RX
któ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.
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.