RS232 vs. EIA232. Wprowadzenie do standardu

We wczesnych latach 60. instytucja znana dziś pod nazwą Electronic Industries Association opracowała wspólną specyfikację standardu interfejsu szeregowego dla urządzeń przesyłających dane. W tamtych latach jako „przesyłanie danych” rozumiano przede wszystkim komunikację pomiędzy głównym komputerem mainframe i dołączonymi doń terminalami lub też pomiędzy terminalami, bez angażowania komputera centralnego. Ci przodkowie współczesnego komputera PC byli połączeni ze sobą przeważnie za pomocą linii telefonicznej i modemu. Jakkolwiek jest to bardzo prosta koncepcja, to jednak zamiana sygnału cyfrowego na analogowy, przesłanie go przez linię telefoniczną, a następnie ponowna konwersja do postaci cyfrowej, wiąże się z możliwością powstania licznych błędów transmisji.

Standard przesyłania danych był więc konieczny po to, aby po pierwsze eliminować błędy, a po drugie doprowadzić do sytuacji, w której wyroby różnych producentów mogły być ze sobą łączone. Tak powstał  interfejs RS232 ze specyfikacją szybkości transmisji, czasów trwania sygnałów i ściśle określonym protokołem transmisji. Trwa on w niezmiennej prawie postaci od ponad 40 lat, chociaż 1991 EIA wydała dokument zawierający pewne modyfikacje. Wprowadzono nową nazwę dla interfejsu zmieniając ją z RS232 na EIA232, zmieniono również nazwę niektórych linii sygnałowych oraz dodano nowe sygnały i ich specyfikacje, między innymi ekran kabla transmisyjnego.
30 lat to w dzisiejszych czasach oznacza niewiarygodnie duży postęp w rozwoju techniki. Często interfejs szeregowy używany jest w urządzeniach, których powstanie w momencie, gdy tworzony był standard, leżało w sferze fantastyki naukowej. W dzisiejszych czasach prawie wszystkie z oferowanych urządzeń posiadają interfejs zgodny z nową specyfikacją EIA232. Mam tu na myśli protokół komunikacyjny, poziomy napięć logicznych, wyprowadzenia złącza transmisyjnego. Interfejs służy nie tylko do podłączenia modemu ale także szeregu innych urządzeń, toteż podłączając na przykład do komputera PC starsze urządzenia z interfejsem szeregowym RS232 możemy napotkać pewne trudności związane z kontrolą transmisji (sposobem funkcjonowania oraz sekwencją pojawiania się sygnałów sprzętowego handshaking’u), niewłaściwą fazą sygnałów danych i kontroli czy wreszcie innym rozmieszczeniem wyprowadzeń. Nowa specyfikacja EIA232 jest jednak na tyle dobrą, że do dwukierunkowego przesyłania danych wystarczające jest użycie tylko dwóch linii transmisyjnych: RxD oraz TxD. Tak więc w sytuacji jak opisywana, wystarczy pozostawienie tylko dwóch linii przesyłowych i odcięcie niewłaściwie funkcjonujących, aby współczesny komputer PC mógł odczytać dane. Gorzej z ich wysłaniem...

Opis wyprowadzeń

Implementacja pełnego standardu interfejsu EIA232 wymaga użycia 25-wyprowadzeniowego złącza DSUB, chociaż standard dopuszcza również stosowanie złącz 9-wyprowadzeniowych. Urządzenie kontrolne wysyłające lub odbierające dane nosi nazwę DTE (Data Terminal Equipment, zazwyczaj jest to komputer) i posiada złącze „męskie” (DB25/M) wykorzystując 22 z 25 wyprowadzeń dla sygnałów oraz masy. Kabel doprowadzony jest do urządzenia kontrolowanego, które również może odbierać lub wysyłać dane (jak dla przykładu modem). Nosi ono nazwę DCE (Data Circuit-terminating Equipment) i posiada złącze 25-wyprowadzeniowe „żeńskie”, identycznie jak DTE używając również 22 z 25 wyprowadzeń.
Kabel łączący DTE i DCE powinien mieć przewody poprowadzone na wprost (1 z 1, 2 z 2 itd.), bez żadnych przeplotów. Tak więc wszystkie urządzenia stosujące ten rodzaj interfejsu używają dokładnie tego samego rodzaju kabla, połączonego w sposób „jeden do jednego” i dzięki temu możliwość pomyłki jest zredukowana do minimum. W przypadku kłopotów z połączeniem wystarczy zwykły omomierz do przetestowania poprawności połączeń.
Na rysunkach 1 i 2 umieszczono opis wyprowadzeń złącz DSUB25 i DSUB9 wg standardu EIA232. Opisy pogrubione oznaczają sygnały najczęściej używane do transmisji.

Rysunek 1.Opis złącza urządzenia Data Terminal Equipment wg standardu EIA232

Rysunek 2.Opis złącza urządzenia Data Circuit-terminating Equipment wg standardu EIA232

Wiele z wymienionych sygnałów interfejsu znajduje zastosowanie tylko wówczas, gdy podłączone urządzenie DCE jest modemem oraz są one uwzględniane przez zaimplementowany protokół komunikacyjny. Jednak dla bardzo wielu urządzeń innego typu, niezbędne są co najwyżej dwie linie interfejsu - RxD i TxD – reszta nie znajduje zastosowania.
Niektóre z sygnałów interfejsu są zduplikowane. Jest to drugi kanał transmisji z sygnałami służącymi do kontroli przepływu danych. Umożliwia on zmianę szybkości transmisji w czasie jej trwania, żąda powtórnej transmisji, jeśli został wykryty błąd parzystości oraz uzyskanie innych funkcji kontrolnych. Drugi kanał, gdy używany, typowo przeprowadza transmisję z niewielką prędkością w porównaniu z pierwszorzędnym. W ten sposób dane używane do kontroli zawierać mogą minimalną liczbę błędów transmisji, co zapewnia wolno zmieniający się sygnał. Dodatkowo kanał ten może pracować w trybie simplex, half-duplex lub duplex w zależności od możliwości urządzenia DCE. Sygnały Receiver Timing Signal i Transmitter Timing Signal (wyprowadzenia 15, 17 i 24) są używane wyłącznie w trybie transmisji przeprowadzanej synchronicznie. Dla typowo stosowanej transmisji asynchronicznej wyprowadzenia te są zbędne.
Dodatkowo należy wyjaśnić tutaj jedno zagadnienie. Nazwy sygnałów są właściwe dla urządzenia DTE (można by powiedzieć głównego) i są przenoszone w odpowiedni sposób na DCE. Jeśli łączone ze sobą urządzenia są ścisłym odwzorowaniem standardu EIA232, wówczas kabel połączeniowy prowadzony jest wprost i wyprowadzeniom od strony DTE odpowiadają wyprowadzenia od strony DCE. Niestety, nie jest to praktyka zbyt wielu wytwórców. Większość z nich stosuje w swoich urządzeniach złącze o rozmieszczeniu wyprowadzeń właściwym dla urządzeń DTE mimo, iż jest to typowe urządzenie DCE. W związku z tym konieczna staje się zamiana pewnych linii sygnałowych interfejsu i tak na przykład sygnał RxD od strony DTE musi trafiać na TxD po stronie DCE. Wymaga to wykonania połączenia innego niż na wprost. Ilustruje to rysunek 3.

Rysunek 3.Połączenia pomiędzy urządzeniami DTE i DCE.

Na koniec, przy okazji opisu wyprowadzeń, jedna ważna uwaga. Specyfikacja standardu EIA232 niestety została opracowana wyłączenie z myślą o modemach. W związku z tym szereg producentów różnych innych urządzeń takich, jak: plotery, drukarki, terminale oraz innych wykorzystujących interfejs szeregowy, do dziś dnia stosuje własne złącza i własne rozmieszczenie wyprowadzeń. Niestety – w tych sytuacjach musisz posiłkować się schematem danego urządzenia, wskazówkami producenta lub jego instrukcją obsługi.

Sygnały interfejsu EIA232

Funkcjonalnie sygnały interfejsu EIA232 można podzielić na 6 kategorii:
1.
Sygnał masy oraz ekranu, czasami zwarte ze sobą, czasami rozłączne.
2.
Sygnały pierwszorzędnego kanału komunikacyjnego służące do wymiany danych oraz kontroli ich przepływu.
3.
Sygnały drugorzędnego kanału komunikacyjnego służącego do kontroli modemu, przekazania żądania sygnału retransmisji w przypadku wystąpienia błędu.
4.
Sygnały kontroli i statusu modemu umożliwiające określenie stanu w jakim znajduje się modem oraz nawiązanie połączenia telefonicznego.
5.
Sygnały sterujące transmisją w trybie synchronicznym.
6.
Sygnały służące do testowania kanałów transmisji oraz wyboru maksymalnej szybkości dla przesyłanych danych.
Funkcje poszczególnych sygnałów opisano w tabeli 1.

Skrócona charakterystyka elektryczna

Interfejs EIA232 używa zanegowanych sygnałów logicznych. Oznacza to, że logiczna „1” reprezentowana jest przez napięcie niższe niż logiczne „0”. Prawdopodobnie cecha ta została przeniesiona z protoplasty interfejsu RS232 używanego w maszynach teletekstowych. Specyfikacja interfejsu określa, że:
-
poziom logiczny „0” reprezentowany jest przez napięcie z zakresu 3...25 V,
- poziom logiczny „1” reprezentowany jest przez napięcie z zakresu –3...–25 V,
- poziomy pomiędzy 3...–3V są zabronione.
Napięcie jest mierzone w stosunku do przewodu masy (wyprowadzenie 7), który czasami zwierany jest z wyprowadzeniem 1 i ekranem kabla połączeniowego. Rezystancje wyjściowe nadajników linii powinny być tak dobrane, aby maksymalny prąd płynący przez pojedynczą żyłę kabla połączeniowego nie przekroczył 500 mA.
Długość kabla nie jest określana przez specyfikację standardu. Z doświadczenia jednak wiem, że dla typowych układów transmisyjnych najlepiej jest, jeśli nie przekracza ona 15 m. Mimo tego, jak w przypadku wszystkich połączeń elektrycznych, należy stosować jak najkrótsze kable i jak najmniejszą odległość pomiędzy urządzeniami DCE i DTE. Specyfikacja standardu nie przewiduje optoizolacji urządzeń, co nie oznacza, że nie można jej stosować. Jest ona wskazana szczególnie wtedy, gdy urządzenia różnią się pomiędzy sobą potencjałem przewodu masy na przykład przez wzgląd na zasilanie z różnych faz energetycznych.

Rysunek 4. Poziomy napięć interfejsu EIA232.

Standard EIA232 określa maksymalną prędkość przesyłanych danych jako 20.000 bitów na sekundę (zazwyczaj spotykany górny limit jeszcze mieszczący się w standardzie do 19.200 bps). Niezmienne prędkości danych nie są specyfikowane w standardzie, jakkolwiek do najczęściej spotykanych należą: 110 (stare maszyny teletekstowe), 300, 600, 1200, 2400, 4800, 9600 i 19200 bps. Praktyka jednak pokazuje, że zawarte w specyfikacji EIA232 prędkości transmisji są zbyt niskie dla współczesnych modemów. Typowo osiągają one bowiem prędkości od 52 do 128 kbps.

Jacek Bogusz
j.bogusz@easy-soft.net.pl

 

Tabela 1. Funkcje sygnałów interfejsu EIA232
Nazwa i nr wyprowadzenia Opis
Sygnał masy oraz ekran
GND
(1, 7 i obudowa złącza)
Do tej kategorii należą wyprowadzenia 1, 7 oraz obudowa złącza stanowiąca połączenie dla ekranu kabla. Kabel połączeniowy zapewnia odrębne przewody dla każdego z tych wyprowadzeń, mimo iż bardzo często wyprowadzenia te zwarte są wewnątrz obudowy urządzenia – zwłaszcza wyprowadzenie 1 i ekran. Wszystkie sygnały przesyłane przez interfejs odnoszone są do poziomu napięcia masy obecnego na wyprowadzeniu 7 złącza. Wyprowadzenie to nie powinno być zwierane z wewnętrznym tzw. zerem ochronnym urządzenia DCE. Linia masy odróżnia interfejs EIA232 od innych, w których sygnał przesyłany jest różnicowo (np. RS485).
Sygnały pierwszorzędnego kanału komunikacyjnego
TxD
(2)
Wyjście danych. Wyprowadzenie to jest aktywne, gdy dane przesyłane są z urządzenia DTE do DCE. Gdy transmisja nie jest przeprowadzana, wyprowadzenie znajduje się w logicznym stanie wysokim, co dla standardu EIA232 oznacza poziom napięć pomiędzy -3...25 V.

RxD
(3)

Wejście danych. Sygnał jest aktywny, gdy urządzenie DTE odbiera dane od DCE. Gdy nie jest przeprowadzana transmisja, wyprowadzenie znajduje się w stanie logicznym „1” wymuszanym przez DCE.
RTS
(4)
Sygnał wyjściowy. To wyprowadzenie przyjmuje stan niski (3..25V) aby przygotować DCE na odbiór danych wysyłanych przez DTE. Takie przygotowanie może dla przykładu obejmować załączenie i przygotowanie układów bufora odbioru czy też wyjście mikrokontrolera ze stanu uśpienia. Urządzenie DCE potwierdza gotowość przy pomocy sygnału CTS – przyjmuje on stan logiczny niski.
CTS
(5)
Sygnał wejściowy. Funkcja sygnału ściśle związana z wyprowadzeniem RTS. Sygnał używany jest do zgłoszenia potwierdzenia gotowości urządzenia do odbioru danych. Sygnały RTS i CTS wspólnie używane są do kontroli przepływu danych do / z urządzenia DCE.
Sygnały drugorzędnego kanału komunikacyjnego
STxD
(14)
Wyjście danych – funkcja identyczna z funkcją pierwszorzędnego wyprowadzenia TxD
SRxD
(16)
Wejście danych – funkcja identyczna z funkcją pierwszorzędnego wyprowadzenia RxD
SRTS
(19)
Sygnał wyjściowy – funkcja identyczna z funkcją pierwszorzędnego wyprowadzenia RTS
SCTS
(13)
Sygnał wejściowy – funkcja identyczna z funkcją pierwszorzędnego wyprowadzenia CTS
Sygnały kontroli i statusu modemu
DCE Ready
lub DSR
(6)

Sygnał wejściowy, przesyłany przez urządzenie DCE. Na wejściu tym pojawia się stan logiczny niski, gdy spełnione są poniższe 3 warunki:
1. Modem jest podłączony do sprawnej linii telefonicznej, która nie jest zajęta przez inne urządzenie telekomunikacyjne,
2. Modem jest w trybie transmisji danych, nie w trybie połączenia głosowego czy wybierania numeru,
3. Modem zakończył wybieranie numeru lub nastawy i generuje sygnał odpowiedzi.

DTE Ready
lub DTR
(20)
Sygnał wyjściowy, który przyjmuje stan niski w momencie gdy urządzenie DTE chce otworzyć kanał transmisji danych. Jeśli urządzenie DCE to modem, to odbiór sygnału DTR przygotowuje go do połączenia. Gdy sygnał jest w stanie wysokim, modem przechodzi w stan, w którym aktywne połączenie jest rozłączane.
Received Line Signal Detect
lub CD
(8)
Sygnał wejściowy mający bardzo duże znaczenie, gdy urządzenie DCE jest modemem. Sygnał ten nazywany jest również Carrier Detect, ponieważ przyjmuje on stan niski w momencie odebrania sygnału nośnej od innego modemu przy próbie nawiązania połączenia w celu przesłania danych. Sygnał jest w stanie wysokim, gdy brak jest sygnału nośnej lub jakość odbieranego sygnału nośnej jest niewystarczająca do nawiązania połączenia (np. na skutek zakłóceń na linii).
SCD
(12)
Sygnał ten jest odpowiednikiem CD lecz dla drugorzędnego kanału transmisji.
Ring Indicator
(22)
Sygnał wejściowy bardzo ważny, gdy podłączone urządzenie DCE to modem. Sygnał przyjmuje stan niski, gdy z linii telefonicznej jest odbierany sygnał dzwonka.
Data Signal
Rate Select

(23)
Sygnał wejściowy, który może pochodzić bądź to z urządzenia DTE, bądź to z DCE ale nigdy z obu tych urządzeń jednocześnie. Sygnał ten może wybierać jedną z dwóch wcześniej zdefiniowanych prędkości transmisji przy czym stan niski oznacza wybór wyższej z nich.
Sygnały kontroli szybkości przysyłania danych
Transmitter Signal Timing
lub TC
(15)
Sygnał wejściowy nazywany również Transmitter Clock. Bardzo ważny, gdy dołączone urządzenie DCE to modem pracujący w trybie transmisji synchronicznej. Modem generuje wówczas sygnał zegarowy wprowadzany przez to wejście do urządzenia DTE kontrolując w ten sposób szybkość przesyłanych danych. Zmiana sygnału z logicznej „1” na logiczne „0” powoduje przesłanie bajtu danych przez linie TxD.
Receiver
Signal Timing

lub RC
(17)
Sygnał wejściowy nazywany również Receiver Clock. Funkcja zbliżona jest do opisywanej wyżej z tym, że jest to sygnał do odbioru bajtu danych przez DTE a nie do jego wysłania. Bajty odbierane poprzez linię RxD.
External Transmitter Signal Timing
lub ETC
(24)
Sygnał wyjściowy nazywany również External Transmitter Clock. Sygnał zegarowy dostarczany jest przez urządzenie DTE do użytku przez modem. Sygnał ten podawany jest tylko wówczas, gdy wyprowadzenie TC (15) i RC (17) nie są używane. Zmiana stanu z logicznej „1” na logiczne „0” wskazuje środek czasu trwania elementu danych.
Sygnały testowe
Local Loopback
(18)
Sygnał wyjściowy, dostarczany przez urządzenie DTE, używany do wprowadzenia modemu w tryb testowy. Gdy sygnał LL jest w stanie niskim, modem podłącza swój sygnał wyjściowy do swojego wejścia. Pozwala to na taki tryb pracy, w którym bajty wysyłane przez DTE będą odbierane za pośrednictwem modemu – tworzy się w ten sposób efekt echa znaków, dzięki czemu można dokonać kontroli obwodów wyjściowych i wejściowych modemu. Modem potwierdza przejście w tryb testowania podając stan niski na linii Test Mode (wypr. 25).
Remote Loopback
(21)
Sygnał wyjściowy, dostarczany przez urządzenie DTE, używany do wprowadzenia zdalnego modemu w tryb testowy. Gdy wyjście RL jest w stanie niskim, zdalny modem dołącza swoje wyjście danych do wejścia tak, że dane zwracane są do urządzenia wysyłającego ale za pośrednictwem dwóch modemów (nadającego i odbierającego) oraz linii telefonicznej. W ten sposób można stwierdzić poprawność transmisji na całej długości linii transmisyjnej oraz za pośrednictwem wszystkich urządzeń teletransmisyjnych.
Test Mode
(25)
Sygnał wejściowy, bardzo istotny, gdy dołączone urządzenie to modem. Gdy przyjmuje stan logiczny niski oznacza to, że modem wykonuje test LL lub RL (opisywane wyżej). Aktywność tego sygnału może oznaczać również inne testy wykonywane przez modem, zaimplementowane przez producenta.

http://www.tomaszbogusz.blox.pl/

Dodaj nowy komentarz

Zawartość pola nie będzie udostępniana publicznie.