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ł 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):
DTE (PC) – DTE (PC) – kabel krosowy, DB9F-DB9F, null modem:
DCE (Modem) – DCE (Modem) -kabel krosowy, złącza DB9M-DB9F
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:
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.
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ść.
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.
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:
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.
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 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-232 | RS-422 | RS-485-2wire | |
---|---|---|---|
Schemat komunikacji | Punkt-Punkt (single ended) | Punkt-punkt, 1 do wielu(single ended, multidrop) | 1 do wielu (multidrop) |
Liczba urządzeń | 1 nadawca, 1 odbiorca | 1 nadawca, 10 odbiorców | 32 nadawców, 32 odbiorców |
Typ komunikacji | W 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 transmisji | Około 15 m@115 kbps kbps | Około 1200 m@115 kbps* | Około 1200 m@115 kbps* |
Maks. szybkość transmisji | 1 Mbps | 10 Mbps @15 m* | 10 Mbps @ 15 m* |
Typ transmisji | niesymetryczna | symetryczna | symetryczna |
Stan wysoki | Min. -5 V Max. -15 V | Min. 2 V (B>A), max. 6 V (B>A) | Max. 1,5 V (B>A) |
Stan niski | Min. 5 V Max. 15 V | Min. 2 V (A>B), max. 6 V (A>B) | Max. 1,5 V (A>B) |
Min. poziom napięcia | +/- 3 V | Różnica 0,2 V | Róż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.pd
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
Skontaktuj się ze specjalistą Elmark
Masz pytania? Potrzebujesz porady? Zadzwoń lub napisz do nas!