jak działa RS232 : RS232 definiuje protokół określa to sposób, w jaki strumień bitów danych jest kolejno przesyłany na przewód, tj. strumień bitów. Kolejność i znaczenie każdego bitu jest określone przez protokół. Proste wyjaśnienie poniżej wystarczy, aby zrozumieć RS232 – nie trzeba czytać dużej instrukcji!,
RS232 jest standardem protokołu transmisji informacji szeregowej, który definiuje zarówno protokół (metodę transmisji danych), jak i fizyczny sprzęt do tego celu. Ten dokument opisuje, jak to działa na poziomie fizycznym, dzięki czemu będziesz wiedział, jakie sygnały możesz spodziewać się na pinach mikrokontrolera.
Co to jest RS232?,
zasadniczo jest to metoda przesyłania danych przez pojedynczy przewód (potrzebujesz dwóch przewodów, aby odzyskać dane, ponieważ każdy przewód przesyła dane w jednym kierunku):
jest to metoda (lub protokół – uzgodniony standard), która określa, w jaki sposób przesyłać dane między dwoma urządzeniami za pomocą kilku przewodów. Wykorzystuje metodę serialtransmisji, wktórej bajty danych są wyprowadzane jeden bit naraz na pojedynczy przewód.
dane są przesyłane tylko w jednym kierunku dla każdego przewodu, więc dla komunikacji dwukierunkowej (dwa kierunki) potrzebne są dwa przewody., Nie jest to więc wielodrożny system komunikacji lan, taki jak RS485, ale protokół point-to-point.
te dwa wraz z uziemieniem odniesienia (w sumie: trzy przewody) tworzą konfigurację, z którą można się wywinąć.
Uwaga: w celu bardziej niezawodnej komunikacji na duże odległości może być konieczne użycie innych połączeń zdefiniowanych w standardzie RS232standard, takich jak DTR DCT itd. sygnały uścisku dłoni itp.
zasadniczo może przesyłać pojedynczy bajt danych przez kabel szeregowy mający od 3 do 22 sygnałów i działający z prędkością od 100 do 20K baud. Powszechnie stosowane stawki Baud to 2,4 k, 9,6 k, 19,2 k, długość kabla może wynosić do 50 stóp. Stosuje się wyższe prędkości transmisji, ale nie są one objęte standardem, który nadal działa, np. 38400,57600 Baud (bity / s).
aby przesłać blok danych, poszczególne bajty są przesyłane jeden po drugim.,
w tym dziale opisano jak RS232 działa ogólnie bez opisywania metod-opisany jest tylko najprostszy system – to jest najbardziej użyteczny i najbardziej prawdopodobny!.
sygnały Handshake wymagają dodatkowego sprzętu do translacji poziomów (RS232chip z większą liczbą I/O) i chociaż proste nie są zwykle wymagane do pracy z płytami deweloperskimi. Mogą być potrzebne do systemów, które kontrolują wiele urządzeń, w których może być konieczne tymczasowe zatrzymanie danych z jednostki. W dalszej części tego dokumentu znajduje się sekcja dotycząca sygnałów uścisku dłoni.,
dane są przesyłane seryjnie w jednym kierunku przez parę przewodów. Wyjście danych jest oznaczone jako Tx (wskazujące na transmisję), podczas gdy dane napływające są oznaczone jako Rx (wskazujące na odbiór). Do stworzenia systemu komunikacji dwukierunkowej potrzebne są minimum trzech przewodów Tx, Rx i GND (uziemienie). Przejście przez Tx& Rx pomiędzy dwoma systemami pozwala każdej jednostce mówić do przeciwnego.
każdy bajt może być transmitowany w dowolnym momencie(o ile poprzedni bajt był transmitowany). Transmitowany bajt nie jest zsynchronizowany z odbiornikiem -jest to protokół asynchroniczny, tzn. nie ma sygnału zegara. Z tego powodu oprogramowanie na każdym końcu łącza komunikacyjnego musi być ustawione dokładnie tak samo, aby każdy układ dekodera szeregowego mógł dekodować szeregowy strumień danych.
Uwaga: inwersja poziomu sygnału (logika 1IS-12V i logika 0 to +12v).,
Szybkość Transmisji
jak działa RS232 w relacji między szybkością transmisji a częstotliwością sygnałową.
szybkość transmisji to po prostu prędkość transmisji mierzona w bitach na second.It określa częstotliwość każdego okresu bitowego.
dla szybkości transmisji 2400 (2400 bps) częstotliwość wynosi 2400Hz, a bitperiod wynosi 1/2400 lub 416.6 us. Jest to informacja, że odbiornik używa dookrywania bitów ze strumienia danych.,
jak działa RS232 – Voltagelevels
aby działał na długich kablach wysokie napięcia są wysyłane z każdego transmitera, ponieważ ze względu na rezystancję kabla napięcie zmniejsza się wraz z dalszą podróżą sygnału. Specyfikacja napięcia wyjściowego wynosi od +5V do +25V (przesyłanie zera logicznego) i-5V do-25V (przesyłanie zera logicznego).
Uwaga: wszystkie sygnały w kablu muszą generować takie same poziomy napięcia, np. DTR, DSR, RTS, CTS. Więc potrzebujesz dużo chipów level translator dla fullinterface, ale na bardzo krótkich dystansach potrzebujesz tylko TX i RX i ground.,
maksymalne napięcie ±25V nie musi być używane, a wspólne napięcie w użyciu wynosi ±12V (wyjście przez układ nadawczo-odbiorczy MAX232).
znak (logiczny) jest wysyłany jako-12V, a spacja (logiczne zero) jest wysyłana jako+12V, tzn. sens logiczny jest odwrócony.
Uwaga: fakt występowania wysokich napięć na porcie szeregowym pozwala na zasilanie urządzeń, których normalnie nie spodziewałbyś się na nim znaleźć. Ale muszą pobierać bardzo mało prądu.
poziomy napięcia odbiornika
na wejściu odbiornika minimalne poziomy napięcia są zdefiniowane jako ±3V tj., aby otrzymać zero logiczne, napięcie musi być większe niż 3V, a aby otrzymać zero logiczne, napięcie musi być mniejsze niż-3V. pozwala to na straty, gdy sygnał przemieszcza się w dół kabla i zapewnia odporność na hałas, tzn. każdy fałszywy szum do poziomu ±3V może być tolerowany bez wpływu na odbiornik.
jak działa RS232 – bit startowy TheRS232
protokół jest opisany jako asynchroniczny, ponieważ nie ma Zegara transmitowanego we wszystkich. Zamiast tego stosuje się inną metodę odzyskiwania zegara.,
na początku każdej transmisji transmitowany jest bit początkowy wskazujący odbiornikowi, że ma nastąpić bajt danych. Ponieważ stan bezczynności linii RS232 jest niski (- 12v), aby sygnalizować stan początkowy, linia jest ustawiana jako wysoka(+12V) na okres 1 bitowy. Oznacza to, że przejście na linii jest zawsze generowane tak, że odbiornik wie, kiedy pojawia się pierwsza krawędź danych.
bit startowy umożliwia synchronizację odbiornika z bitami danych, ponieważ może on odbierać rosnącą krawędź sygnału na linii., Oznacza to, że w środku każdego bitu można utworzyć własny zegar próbkowania – aby zdecydować, czy bit jest rzeczywiście zerem danych czy zerem danych.
Po znalezieniu bitu początkowego odbiornik wie, gdzie będą znajdować się następujące bity, ponieważ otrzymuje okres próbny (pochodzący z szybkości transmisji) w ramach procesu inicjalizacji. Dlatego musisz ustawić te same ustawienia w odbiorniku i sprzęcie nadajnika, tj. szybkość transmisji, liczbę bitów stopu, liczbę bitów danych i bit parzystości (włączony lub wyłączony)., Jeśli tego nie zrobisz to zazwyczaj nic się nie stanie – albo zobaczysz na odbiorniku
jak działa RS232 – bity danych
podążają za bitem startowym. Zazwyczaj jest siedem lub osiem databitów, z których LSB jest transmitowane jako pierwsze. Powodem, dla którego można wybierać pomiędzy siedmioma lub siedmioma bitami jest to, że ASCII składa się z alfabetu w ciągu pierwszych siedmiu bitów (podobnie jak znaki sterujące). Ósmy bit rozszerza zestaw znaków dla symboli graficznych.
Jeśli chcesz przesyłać tylko tekst, potrzebujesz tylko 7 bitów., To oszczędza abit i zwiększa prędkość transmisji podczas przesyłania dużych bloków danych.Inne wielkości bitów danych to 5, 6, 8 i 9 bitów. Jednak Długość bitów jest zwykle ustawiona na 8 bitów – jest to bardzo często używane.
Uwaga: Jeśli używasz RS232 do przesyłania nieprzetworzonych danych (danych binarnych), otrzymasz 8 bitów danych.,
jak działa RS232 – Bit parzystości
bit parzystości RS232 jest prymitywnym mechanizmem wykrywania błędów.Możesz użyć parzystości nieparzystej lub parzystości parzystej lub żadnego w ogóle (w diagramie znajduje się bit parzystości (pomiędzy ostatnim bitem danych a bitem stopu-tutaj parzystość jest oznaczana jako „1”, co oznacza, że istnieje Nieparzysta liczba bitów. Więc parzystość w użyciu jest nieparzysty-parzystość. Poniższy schemat (powszechnie stosowany w pracy mikrokontrolera) nie używa bitu parzystości.,
Po prostu oblicza wszystkie bity danych i dla parzystości nieparzystej zwraca logicznąjeśli istnieje Nieparzysta liczba bitów danych, które są ustawione. Dla parzystego parzystości równa liczba bitów danych, które są ustawione, ustawia bit parzystości.
w odbiorniku bit parzystości jest używany do stwierdzenia, czy wystąpił błąd podczas transmisji. Można tego użyć w oprogramowaniu odbiornika, odczytując flagę w module UART.
problem z wykrywaniem błędów przy użyciu bitu parzystości polega na tym, że jeśli dwa bity są w błędzie, sprawdzanie parzystości nie powiedzie się., Dzieje się tak dlatego, że każdy błąd anuluje efekt drugiego (pod względem obliczenia parzystości). Każda parzysta liczba błędów powoduje błąd w wykrywaniu błędów.
nie będzie to problemem w systemie opartym o bench top (który nie ma krytycznych danych). Przez krótki kabel np. 6ft prawdopodobnie nie zobaczysz żadnych błędów. Normalnie nie używam parzystości i nie ma żadnego problemu.
dla systemów pracujących na dużych odległościach lub w hałaśliwym otoczeniu należy zastosować lepszy system, np. dodając cykliczną kontrolę nadmiarowości do strumienia danych przed i po ich wysłaniu przez RS232., CRCs pozwala sprawdzić i poprawićwygląd kilku błędów bez ponownego przesyłania danych.
jak działa RS232 – bit stopu
bit stopu RS232 podaje jedynie okres czasu, zanim bit startowy zostanie przesłany. Jest to sens przeciwny do bitu startowego, dzięki czemu pozwala na zobaczenie bitu startowego, tj. bit stop, po którym następuje bit startowy, zawsze daje sygnał rosnącej krawędzi do wykrycia przez odbiornik.
Jeśli nie było bitu Stopu, to ostatnim bitem w strumieniu danych byłby bit parity (lub bit danych, jeśli parzystość nie jest aktywna)., Zmieniłoby się to w zależności od przesłanych danych, więc gdyby miało to taki sam sens jak bit startowy, nie można było zobaczyć startbita!
bit stopu można ustawić wybierając okresy 1, 1,5 lub 2 bitowe.
przy bardzo wysokich prędkościach transmisji okres od bitu stop do bitu startowego(zakładając, że dane są przesyłane w sposób ciągły) będzie bardzo mały, np. dla szybkości transmisji 115200 baud czas do jednego bitu wynosi 1/115200 = 8.26 us, więc używając okresów 2 bitowych zwiększysz czas do 16.5 us., Może to umożliwić odbiornikowi łatwiejsze wykrycie bitu startu, ponieważ jeśli na linii jest pojemność, przebiegi będą wykazywały czas spadku wzrostu CR. Wydłużenie czasu pozwala na większe obciążenie pojemnościowe. Jednak italso zależy od używanego sprzętu odbiornika.
typowe ustawienia
typowe ustawienia do użytku na pulpicie, np. pomiędzy mikrokontrolerem a emulatorem aterminal, np. „Tera Term”:
Baud | 9600 |
Data bits | 8 |
Parity | None |
Stop bits | 1 |
Flow Control | None |
This can also be compactly written as:
9600 8N1
Hardware Connections 3 (Rx,Tx,GND) – Rx and Tx crossed over.,
„Flow control” w powyższej liście odnosi się do sprzętowej metody sygnalizacji sterowania przepływem, która wykorzystuje sygnały DTR/DSR i RTS/CTS. Więcej na ten temat znajdziesz tutaj.
jak działa RS232 – poziomy sygnału
w pewnym momencie możesz chcieć stworzyć program UART, być może w celu zapisania przestrzeni kodowej w bieżącym projekcie (może nie potrzebujesz części odbierającej – ponieważ tylko wyprowadzasz zmienne) lub użyć zapasowego kodu pin.
uwaga: kod usartowy receive and transmitsoftware można znaleźć na stronach Tutorialpages 12F675.,
aby go utworzyć, potrzebujesz rzeczywistych diagramów sygnałowych, które widzisz na pinu microcontroller (o dziwo są one trudne do znalezienia w sieci).
poniższy schemat pokazuje timed 0V i 5V bitowy strumień na styku wyjściowym mikrokontrolera. Dolny diagram pokazuje przełożone poziomy sygnału przy sterownikach wyjściowych RS232, które są przesyłane przez kabel szeregowy.
te wyższe poziomy są generowane przez wysłanie poziomów logicznych 0-5V do układu atransceiver np., MAX232, który ma wbudowany konwerter Diody / kondensatora, który zwiększa poziom sygnału do wymaganego napięcia RS232 ±12 V. Zauważ, że poziom-12V odpowiada logicznemu „1”, a poziom +12V odpowiada logicznemu „0”.
dolny kształt fali na powyższym diagramie bove pokazuje znak RS232, który można widziałby użycie oscyloskopu na napędzie wyjściowym układu tłumaczącego, takiego jak MAX232. Zauważ, że napięcie idlevoltage RS232 wynosi -12V,
Zegar RS232
powyższy diagram pokazuje również timingdiagram RS232, gdzie każdy okres bitowy wynosi 1/Częstotliwość, więc dla szybkości abaud 9600 bps (bitów na sekundę) okres każdego bitu wynosi 1/9600 or104.,166us jest to efektywnie okres zegara RS232 wymagany dla określonej szybkościaud w użyciu.
kształt fali RS232
na powyższym diagramie dolny kształt fali pokazuje napięcie RS232, które można spodziewać się na wyjściu pinu RS232 TX(również te same poziomy na pinu RX) w oscyloskopie. W niektórych układach maksymalny poziom sygnału może nie wynosić ±12V-napięcie max i min może się zmniejszać (ponieważ nie będzie dużego spadku napięcia na krótkich dystansach)., W przypadku długich odległości powinny one wynosić ±12V-na końcu długiego kabla napięcie spadnie na rezystancję kabla, ale musi być większe niż ±3V na drugim końcu.
pojemność kabla spowalnia również rosnące i opadające krawędzie – zaokrąglając je.
jak działa RS232 – sygnały Handshake
sygnały Handshake są po prostu metodą zatrzymywania przepływu danych. Jeśli jakaś część systemu jest zajęta, może nie być w stanie zaakceptować większej ilości danych, a zamiast jej utraty sygnały są używane na każdym końcu łącza, aby zatrzymać transmisję danych., Istnieją dwa typy używane w RS232: hardware handshake i software handshake.
Hardware handshake
- DTR – Data Terminal Ready.
- DSR-zestaw danych gotowy.
- RTS-Prośba o wysłanie.
- CTS-Clear to Send.
Jeśli używasz tych sygnałów, to wszystkie muszą być przesyłane na poziomie theRS232, tj. ±25V (lub jakiekolwiek napięcie jest generowane przez układ translatorowy, np. ±12V, tj. takie samo jak wyjście TX, więc potrzebujesz układu RS232 z większą liczbą tłumaczy poziomów, aby zarówno nadawać, jak i odbierać sygnały.,
pamiętaj, że protokół bazował na modemie (sprzęt DCE lub DataCommunication) siedzącym na biurku i dołączonym (przez RS232)do komputera (DTE lub Data Terminal Equipment) – sterowniku. Istnieje również wskaźnik pierścieniowy (ri), który sygnalizuje, gdy telefon dzwoni, podłączony bezpośrednio do linii telefonicznej, co pozwoliłoby na Automatyczne wykrywanie przychodzącego strumienia danych przez modem.
każdy sygnał nie jest ortogonalny, co oznacza, że nie ma równoważnego sygnału cofającego się w drugą stronę., Ta część protokołu rosła w nadgodzinach, więc są różne zastosowania tych sygnałów, ale ogólnie używa się następstwa:
aby zatrzymać dane pochodzące z komputera, tzn. aby zatrzymać przytłaczanie modemu danymi:
- RTS (PC) do modemu.
- CTS (modem) na PC.
komputer twierdzi, że RTS wskazuje, że chce przesyłać dane do modemu.
modem zapewnia, że CTS odbiera dane z komputera.
aby zatrzymać dane pochodzące z modemu tj. aby zatrzymać przytłaczanie komputera danymi:
- DTR (PC) do modemu.
- DSR (modem) na PC.,
modem twierdzi, że DSR wskazuje, że chce przesyłać dane do komputera.
komputer zapewnia DTR do odbioru danych z modemu.
Software Handshake
If you see the terms Xon and XOFF this is a software flow controlmethod where the receiver transmitts a special character (in the ASCIIset) to say to the transmitter stop send data. Gdy odbiornik zostanie zamknięty (bufor się opróżnia), może on przesłać sygnał XON do nadajnika, aby ponownie rozpocząć transmisję.