Najlepsza odpowiedź
UART to protokół do szeregowego przesyłania danych z jednego węzła do drugiego. Protokół to nic innego jak zbiór reguł rządzonych przez wszystkie strony biorące udział w komunikacji w celu osiągnięcia bezbłędnej komunikacji.
Protokół jest konieczny zwłaszcza w komunikacji szeregowej. w komunikacji równoległej w pojedynczym impulsie wszystkie bity są przesyłane do innego węzła, ale w komunikacji szeregowej bity są przesyłane jeden po drugim, więc wymagają wielu impulsów. w związku z tym musimy poinformować system, kiedy zaczniesz przesyłać dane, ile będzie tam bitów i jak zakończy się przesyłanie danych. Powinieneś także zintegrować jakąś technikę sprawdzania błędów. wszystkie te zasady są zawarte w protokole. UART jest protokołem TTL, który jest obsługiwany przez większość mikrokontrolerów.
Ale kiedy chcemy wyświetlić nasze dane na hiperterminalnym ekranie komputera (komputera), musimy przenieść je do komputera PC przez dostępny port COM na tylnym panelu. tu pojawia się koncepcja standardów, które są niczym innym jak warstwą fizyczną do przesyłania danych.
Komputer PC ma port COM PORT zgodny ze standardem RS 232, który akceptuje dane. Schemat pinów DB9 jest bardzo znany i łatwo dostępny w Internecie. Ale poziomy logiczne tego PORTu zostały ustalone dużo wcześniej, kiedy TTL nie było tylko na obrazie.
Zgodnie ze standardem RS 232: logika 1 oznacza -3V do -25V
a logika 0 oznacza + 3 V do + 25 V
gdzie nasz protokół UART generuje dane zgodnie z logiką TTL.
gdzie logika 1 oznacza 2,4 V do 5 V
logika 0 oznacza 0 do 0,4 V
dlatego dane z protokołu UART nie mogą być przesyłane bezpośrednio przez port RS 232. może to źle zinterpretować. stąd sterownik linii o nazwie MAX232 jest używany do konwersji poziomów TTL na poziomy RS 232.
W ten sam sposób mamy również inne standardy, które są również doskonale kompatybilne z protokołem UART. Standard RS 485 i standard RS 422 (oba są odpowiednie dla topologii magistrali)
Odpowiedź
Nie . RS-232 to standard określający, jakie rodzaje sygnałów występują w typie połączenia szeregowego dla urządzeń takich jak modemy. Pierwotnie został zaprojektowany specjalnie dla modemów i pomiędzy Data Terminal Equipment (komputery DTE i modemy) a Data Communications Equipment (DCE – modemy). Był używany również w wielu innych urządzeniach.
Chociaż RS-232 definiuje, który sygnał jest na którym pinie, używane poziomy napięcia i takie rzeczy, * nie * definiuje rzeczywistej zawartości te sygnały.
Tak więc urządzenie synchroniczne podłączone do modemu umieszcza w sieci bardzo różne ramki danych niż urządzenie asynchroniczne. Typowy port szeregowy w komputerze PC (a przynajmniej to, co było typowe, porty szeregowe są obecnie dość rzadkie) to port asynchroniczny. Większe systemy często używały protokołów synchronicznych, a bisync, SDLC i HDLC były powszechnymi nazwami. Największą różnicą między protokołami aysnc i sync jest to, że ramka protokołu async obejmuje pojedynczy znak, a odbiornik nie synchronizuje się z przechodzącymi bitami danych. Ramką dla protokołów synchronicznych jest cała ramka danych (podobnie jak współczesne protokoły sieciowe), a odbiornik wyodrębnia informacje o taktowaniu z sygnału, aby dostosować jego taktowanie, aby pozostać zsynchronizowanym w ciągu tysięcy bitów. Pierwsza z nich jest znacznie łatwiejsza do zaimplementowania, ale jest mniej wydajna (zwykle prowadzi do około 25\% dodatkowego narzutu dla bitów stopu i początku związanych z każdym znakiem) i często ogranicza się do niższych szybkości transmisji danych.
W każdym razie , początkowe urządzenia zaimplementowane w tych protokołach były zbudowane z komponentów dyskretnych i SSI, z różnymi obwodami asynchronicznymi i synchronizacyjnymi, a także różnymi typami protokołów synchronizacji. Wraz z powiększaniem się układów scalonych ludzie zaczęli się integrować. Na początku mogłeś mieć odbiornik z jednym chipem i nadajnik z jednym chipem, ale często nadal posiadałeś dodatkowe chipy do taktowania i sterowania, i tak dalej. Ale to była duża poprawa.
W miarę jak sprawy się poprawiały, większość funkcji została zintegrowana w jednym chipie. Tak więc UART jest uniwersalnym asynchronicznym odbiornikiem / nadajnikiem, zintegrowanym zasadniczo ze wszystkimi funkcjami potrzebnymi dla jednej strony połączenia szeregowego przez łącze RS-232 – logika sterowania to odbiornik i nadajnik tramwajowy. USART zaimplementował obsługę (zwykle) zarówno dla protokołów aysnc, jak i sync. Zwróć uwagę, że faktyczne sterowniki linii są często oddzielne.
Więc port szeregowy w komputerze * ma * UART, to jest to, co przekazuje sygnał do połączenia RS-232, gdzie urządzenie na drugi koniec ma UART, który odbiera wysłany sygnał, a te zapewniają również tę samą usługę w innym kierunku. UART to sprzęt, który widzi programista piszący sterownik urządzenia. Istnieje wiele różnych UART z różnymi interfejsami programowania, ale ogólnie wszystkie mogą się komunikować (zakładając, że mogą być ustawione na te same parametry), pomimo konieczności innego programowania.
Więc RS-232 definiuje to, co fizycznie jest na przewodach, asynchronizacja lub synchronizacja definiuje sposób ramkowania danych, a UART (lub USART) jest zwykle implementacją logiki potrzebnej do sterowania tym portem w urządzeniu na każdym końcu kabla.
Biorąc to pod uwagę, synchroniczne porty szeregowe są rzadkie w komputerach PC, a cztery terminy (port RS-232, port asynchroniczny, port szeregowy i UART) są często używane zamiennie. Nie jest to do końca poprawne, ale znowu nie-asynchroniczne porty szeregowe są rzadkie.