Komunikacja szeregowa #1 – Jak działają standardy komunikacyjne RS-232/422/485?

Piotr Gocłowski How to, Serwery portów szeregowych Tagi: , , , ,

Mimo przejmowania coraz większych obszarów komunikacji przemysłowej przez Ethernet, nadal w wielu branżach i aplikacjach znaleźć można standardy szeregowe, i nic nie wskazuje na to jakoby miały zupełnie zniknąć w niedalekiej przyszłości. Ale czym właściwie są standardy szeregowe? Wpis ten jest wstępem, pierwszą częścią cyklu na temat standardów RS-232/422/485 i sposobach na przedłużanie ich dystansu transmisji, oraz konwersji na inne media.

Standard RS-232 i trochę historii

Standard RS-232C (Recommended Standard 232) po raz pierwszy pojawił się w 1962 roku, głównie w branży telekomunikacyjnej. Porządkował on i standaryzował sposób podłączenia sygnałów pomiędzy urządzeniem DTE (Data Terminal Equipment) np. komputer, oraz DCE (Data circuit-terminating equipment), czyli najczęściej modemów dostępowych do sieci telefonicznej, a później do sieci WAN. Standard ten występuje w wersji synchronicznej który wymaga dodatkowego sygnału zegarowego i asynchronicznej która nie posiada takiego sygnału, a każda wysłana ramka jest synchronizowana na podstawie bitów startu i bitów stopu. Obecnie wersja synchroniczna praktycznie nie występuje w urządzeniach. Standard ten definiuje min. poziomy elektryczne, charakterystyki czasowe sygnałów, wtyczki, przewody i nazwy sygnałów. Warto też dodać że RS-232 umożliwia połączenie maks. 2 urządzeń.

Na pewnym etapie interfejs RS-232 był na wyposażeniu niemal każdego komputera PC, i można było za jego pomocą podłączyć wiele urządzeń takich jak myszy komputerowe, klawiatury, drukarki, UPSy, karty pomiarowe i wiele innych. Jednak w 1996 roku pojawił się standard pod wieloma względami lepszy od RS-232, a było to USB. Większa szybkość, możliwość rozgałęzienia na wiele portów, brak potrzeby konfiguracji parametrów transmisji, mniejsze złącze, te wszystkie cechy sprawiły że RS-232 został stopniowo wyparty z większości zastosowań konsumenckich, ostatnią ostoją tego standardu zostały urządzenia specjalistyczne, klasy przemysłowej, a także interfejsy komunikacyjne wbudowane bezpośrednio na płytkach drukowanych.

Jak połączyć RS-232?

Pierwszą domyślną wtyczką dla RS-232 była DB25, a obecnie najbardziej popularną jest DB9F. Obecnie często się też zdarza że producenci używają innych złączy, np. RJ45, albo terminali śrubowych, które nie są zdefiniowane w standardzie. Ponieważ standard ten definiuje 2 typy urządzeń – DTE i DCE, to z tego faktu wynika że istnieją 3 warianty połączeń:

DTE (PC) – DCE (Modem) – kabel prosty DB9M-DB9F (lustrzane odbicie wtyczek):

RS-232 DTE-DCE- kabel prosty połączenie

DTE (PC) – DTE (PC) – kabel krosowy, DB9F-DB9F, null modem:

RS-232 DTE-DTE kabel krosowy null modem połączenie

DCE (Modem) – DCE (Modem) -kabel krosowy, złącza DB9M-DB9F

RS-232 DCE-DCE kabel krosowy null modem połączenie

Czasami w celach diagnostycznych zachodzi potrzeba aby sprawdzić czy dane z portu „wychodzą”, można wtedy użyć poniższego schematu zapętlenia RS-232:

RS-232 zapętlenie (loopback)

Standard RS-232 występuje w kilku wariantach połączeniowych:

  • w najbardziej podstawowej wersji wymagane są tylko 3 sygnały, a konkretnie Tx, Rx i GND.
  • W bardziej złożonej  5 sygnałów, ponieważ dochodzą dodatkowe 2 sygnały do kontroli przepływu (flow control),  sygnały RTS i CTS.
  • Lub również 5 sygnałów z kontrolą przepływu na sygnałach DTR i DSR:

Parametry RS-232

Obecnie już bardzo rzadko spotkać można urządzenia z sygnałami kontroli przepływu, najczęściej dostępne są w urządzeniach tylko 3 sygnały (Tx, Rx, GND). W przypadku urządzeń firmy Moxa, w razie błędnego podłączenia pinów Tx,Rx zazwyczaj objawi się to poprzez świecącą diodę światłem ciągłym (bez transmisji danych). Więcej na temat typowych problemów w konfiguracji Nportów w innym wpisie:

Poziomy napięć RS-232 są zdefiniowane w standardzie i muszą mieścić się w zakresie -3 do -25 V dla stanu wysokiego („1”), lub od 3 do 25 V dla stanu niskiego („0”). Zazwyczaj poziomy napięć mieszczą się w mniejszym zakresie, który zależy od napięcia którym są zasilane. Najprostsze implementacje RS-232 (najczęściej w mikrokontrolerach) posiadają poziomy napięć zgodne z techniką TTL.

RS-232 - oscylogram ramki

Kolejnym aspektem RS-232 są parametry transmisji które nie są negocjowane przez uczestników transmisji a ustawiane ręcznie przez użytkowników. Najważniejszym parametrem jest Baudrate czyli szybkość transmisji, i odpowiada on szybkości w bitach na sekundę. Baudrate mieści się w zakresie od 50 bps, do 921600 bps.

Kolejne parametry wynikają już z budowy ramki RS-232, a są to

bity danych: 5,6,7,8

Parzystość: brak, parzysta, nieparzysta, stan wysoki, stan niski

Bity stopu: 1 lub 2

Zalety RS-232:

  • Bardzo prosta budowa standardu, dzięki czemu jest on prosty i tani w zaimplementowaniu, nawet w najprostszych mikrokontrolerach

Wady RS-232

  • Niesymetryczność transmisji standardu, sprawia że jest on silnie podatny na zakłócenia E-M
  • Stosunkowo mały maks. dystans transmisji wynoszący około 15m (odległość ta zależy od wielu czynników)
  • Możliwość komunikacji punkt-punkt, czyli tylko dla 2 urządzeń.
  • Problematyczność podłączenia ze względu na to że wielu producentów nie zachowuje zgodności złącza z typem DTE/DCE.
  • Funkcjonują różne wersje RS232, zawierające kontrolę przepływu lub nie, co utrudnia ustanowienie połączenia
  • Ręczna konfiguracja interfejsu szeregowego utrudnia pierwsze podłączenie urządzenia
  • Wspólna masa sygnałowa sprawia że istnieje większe ryzyko uszkodzenia portu, w skutek różnicy potencjału mas.
  • Brak możliwości zasilania urządzeń

Jak widać RS-232 posiada szereg wad, dlatego dzisiaj jest już używany w wąskiej dziedzinie zastosowań, ale dzięki swojej prostocie jest często używany jako interfejs monitorujący, konfiguracyjny itp. w wielu różnych urządzeniach. Z RS-232 powiązanych jest więcej standardów szeregowych, w których zostały poprawione niektóre wady, w dalszej części wpisu opiszę kolejny popularny którym jest…

RS-485

A właściwie TIA-485 (od Telecommunications Industry Association), to standard szeregowy który wyewoluował z RS-232, i poprawia jego wiele wad, zachowując jednocześnie podobieństwa. RS-485 opisuje charakterystykę elektryczną nadajnika, odbiornika i magistrali, czyli tak naprawdę tylko warstwę elektryczną. Podobnie jak RS-232 nie definiuje on protokołu komunikacyjnego, dlatego jest on używany przez wiele protokołów, takich jak Modbus RTU, Profibus DP (nieco zmieniona forma), DNP3, BACnet i wiele innych. Jeśli chodzi warstwę fizyczną to RS-485 używa transmisji przez skrętkę (najlepiej ekranowaną), w której sygnał jest różnicowy, dzięki czemu jest mało podatny na zakłócenia E-M. Sygnał różnicowy jest przesyłany w taki sposób że:

  • A – stan niski dla logicznej 1, i wysoki dla logicznego 0
  • B – stan wysoki dla logicznej 1, i niski dla logicznego 0

Dlatego gdy pojawią się zakłócenia E-M na linii przesyłowej, to pojawią się one na obu żyłach w tym samym czasie, a odbiornik RS-485 po operacji odejmowania, jeśli różnica napięcia Va-Vb > 200 mV to wtedy odbiornik interpretuje to jako logiczna 1. Jeśli natomiast napięcie na przewodzie B będzie bardziej pozytywne to wtedy odbiornik uzna że odebrał 0 logiczne: Vb-Va >200 mV. Warto wspomnieć że producenci urządzeń z RS-485 korzystają z różnych oznaczeń, poniżej najczęściej używane oznaczenia:

Sygnał odwrócony = A = (-) = D- = TxD-/RxD-

Sygnał nie odwrócony = B = (+) = D+ = TxD+/TxD-

Jednak niektórzy producenci stosują odwrotne oznaczanie, czyli że A = D-, B=D+, na szczęście jest to mniejszość.

RS-485 - oscylogram ramki

Standard RS-485 występuje głównie w 2 wariantach, w wersji 2 przewodowej i 4 przewodowej. Najbardziej popularna jest wersja 2 przewodowa w której komunikacja jest typu „half duplex”, czyli dane w określonym czasie mogą być przesyłane tylko w jedną stronę. Z kolei wersja 4 przewodowa to tak naprawdę połączenie 2 magistrali 2 przewodowych, komunikacja jest typu „full duplex” czyli dane mogą przepływać w obie strony w tym samym czasie.

Połączenie RS-485-2W - 2 przewodowy
Połączenie RS-485- 4W - 4 przewodowy

Standard RS-485 może teoretycznie pracować w topologii punkt-punkt, magistrali, gwiazdy czy pierścienia. Jednak ze względy na odbicia sygnału najbardziej zalecane są połączenia typu punkt-punkt i magistrala. Z użyciem repeaterów, które rozbijają takie sieci na segmenty można również budować topologie gwiazdy i pierścienia. Przykładowy model takiego repeatera to TCC-120 firmy Moxa. Zakłada się że w praktyce da się osiągnąć maks. dystans transmisji na poziomie 1200 m przy prędkości 115200 bps, poniżej wykres zasięg vs baudrate:

RS-485 - szybkość vs odległość

Maksymalna liczba urządzeń na magistrali RS-485 to 32, a ograniczeniem jest tu wydajność prądowa nadajników. Ze względu na transmisję half duplex (RS-485-2W) możliwa ilość przesyłanych danych jest nieco ograniczona. W przypadku protokołu Modbus RTU, jeśli ilość danych odczytywanych z pojedynczego urządzenia jest duża, np. 50 rejestrów, to w praktyce maks. liczba podłączonych slave, będzie mniejsza.

W porównaniu do RS-232 interfejs ten ma następujące cechy:

Zalety:

  • Duży maks. dystans transmisji
  • Wysoka odporność na zakłócenia E-M dzięki transmisji różnicowej
  • Niski koszt okablowania
  • Prostota

Wady:

  • Dosyć niska przepustowość szczególnie w przypadku dużej liczby urządzeń na magistrali i wymienianych rejestrów

RS-422

Znany również jako TIA/EIA-422, to standard komunikacji szeregowej, który opisuje charakterystykę elektryczną transmisji. Standard ten bazuje tak samo jak RS-485 na transmisji różnicowej, maksymalna teoretyczna prędkość to 10Mbps (do 12 metrów), a maks. długość przewodów to 1200 m.

RS-422 definiuje tak naprawdę tylko poziomy sygnałów, inne właściwości takie jak złącza, czy numeracja sygnałów są opisywane w innych standardach. Złącza tego standardu najczęściej można spotkać w postaci DB9, lub terminali śrubowych.

RS-422 VS RS-485

Różnicami pomiędzy tymi standardami to kierunek transmisji oraz ilości nadajników i odbiorników na magistrali. Początkowo RS-422 miał transmisje typu „simplex multidrop” – co to właściwie oznacza? Na magistrali mógł być tylko jeden nadajnik (driver) i do 10 odbiorników, czyli komunikacja była jednostronna.

RS-422 – Komunikacja w schemacie simplex multidrop, obecnie już praktycznie nie stosowana ( https://www.analog.com/media/en/technical-documentation/application-notes/AN-960.pdf?doc=an-1177.pdf)

Jednak obecnie niemal każdy driver RS-422 wspiera 2 kierunkową transmisję danych z użyciem 2 par skrętki (tak samo jak RS-485 4 przewodowy), ale z ograniczeniem do 10 urządzeń na magistrali, układ połączeń również jest taki sam.

W ofercie firmy Moxa każde urządzenie z RS-422 posiada komunikacje 4 przewodową, więc jest to uniwersalne rozwiązanie ponieważ można podłączyć zarówno urządzenia które są w stanie tylko odbierać dane (1 para przewodów, simplex) jak i urządzenia z odbiorem i nadawaniem (2 pary, full duplex). Na przykład Nport 5150.

Co do łączenia i sygnałów i ich nazewnictwa to jest ono identyczne jak przypadku RS-485 4 przewodowego.

Podsumowanie

W przemyśle i nie tylko spośród opisanych standardów szeregowych najczęściej używany jest RS-485, ze względu na swoje zalety, pozostałe również znajdziemy w wielu prostych i bardziej skomplikowanych urządzeniach. Poniżej tabelka z porównaniem najważniejszych parametrów opisywanych standardów:

RS-232RS-422RS-485-2wire
Schemat komunikacjiPunkt-Punkt (single ended)Punkt-punkt, 1 do wielu(single ended, multidrop)1 do wielu (multidrop)
Liczba urządzeń1 nadawca, 1 odbiorca1 nadawca, 10 odbiorców 32 nadawców32 odbiorców
Typ komunikacjiW obie strony w tym samym czasie (Full duplex)Tylko w jedną stronę, w obie strony w tym samym czasie(Simplex, full duplex)W jedną stronę w tym samym czasie (half duplex)
Maks. dystans transmisjiOkoło 15 m@115 kbps kbpsOkoło 1200 m@115 kbps*Około 1200 m@115 kbps*
Maks. szybkość transmisji1 Mbps10 Mbps @15 m*10 Mbps @ 15 m*
Typ transmisjiniesymetrycznasymetrycznasymetryczna
Stan wysokiMin. -5 V Max. -15 VMin. 2 V (B>A), max. 6 V (B>A)Max. 1,5 V (B>A)
Stan niskiMin. 5 V Max. 15 VMin. 2 V (A>B), max. 6 V (A>B)Max. 1,5 V (A>B)
Min. poziom napięcia+/- 3 VRóżnica 0,2 VRóżnica 0,2 V

* Maksymalny dystans oraz szybkość transmisji zależą od wielu czynników. Obecnie dostępne są transreceivery które obciążają w bardzo małym stopniu magistralę (nawet 1/8 standardowego obciążenia), dzięki czemu umożliwiają transmisję z większą szybkością i na dalszą odległość.

Jest to pierwsza część i wstęp do cyklu „Komunikacja Szeregowa”, zapraszam do lektury kolejnych części w których opiszę jak można integrować urządzenia z interfejsami szeregowymi z sieciami Ethernet, a także jak radzić sobie z ich ograniczeniami i rozwiązywać typowe problemy, zapraszam do lektury.

Źródła:

RS-232

https://en.wikipedia.org/wiki/RS-232

RS-422

https://en.wikipedia.org/wiki/RS-422

TTL

https://pl.wikipedia.org/wiki/Transistor-transistor_logic

Nota aplikacyjna Dallas Semiconductor:

http://ecee.colorado.edu/~mcclurel/dan83.pdf

RS-485/RS-422 Circuit Implementation Guide:

https://www.analog.com/media/en/technical-documentation/application-notes/AN-960.pdf?doc=an-1177.pdf

How Far and How Fast Can You Go with RS-485?

https://www.maximintegrated.com/en/app-notes/index.mvp/id/3884

Serwery portów szeregowych:

https://www.elmark.com.pl/producenci/sklep/moxa-serwery-portow-szeregowych

Konwertery RS – USB:

https://www.elmark.com.pl/producenci/sklep/moxa-konwertery-usb-na-rs232-rs422-rs485

Karty PCI, PCI Express portów szeregowych:
https://www.elmark.com.pl/producenci/sklep/moxa-karty-wieloportowe

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *