RS-232

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
RS-232C
Wtyk RS-232
Typ interfejsu szeregowy
Transfer typ. do 115,2 kb/s (w niektórych implementacjach, np. modemy jako karty wewn., do 230,4 kb/s), w trybie synchronicznym do 1 Mb/s
Długość magistrali do ok. 15 m (nie określono w standardzie)
Liczba portów typowo 1 lub 2
Liczba urządzeń jedno na każdy port
Rodzaj złącza DE-9 lub DB-25
Zasilanie przez interfejs nie
Hot plugging nie
Zastosowanie
modemy, telefony komórkowe, łączenie dwóch komputerów kablem null modem, starsze drukarki, Tunery satelitarne, sprzęt specjalistyczny, diagnostyka samochodowa, programowanie układów logicznych
Port szeregowy (RS-232) gniazdo męskie
Wtyk żeński RS-232

Standard RS-232 opisuje sposób połączenia urządzeń DTE (ang. Data Terminal Equipment) tj. urządzeń końcowych danych (np. komputer) oraz urządzeń DCE (ang. Data Communication Equipment), czyli urządzeń komunikacji danych (np. modem). Standard określa nazwy styków złącza oraz przypisane im sygnały a także specyfikację elektryczną obwodów wewnętrznych. Standard ten definiuje normy wtyczek i kabli portów szeregowych typu COM. Standard RS-232 (ang. Recommended Standard) opracowano w 1962 roku na zlecenie amerykańskiego stowarzyszenia producentów urządzeń elektronicznych (Electronic Industries Alliance) w celu ujednolicenia parametrów sygnałów i konstrukcji urządzeń zdolnych do wymiany danych cyfrowych za pomocą sieci telefonicznej.

RS-232 jest magistralą komunikacyjną przeznaczoną do szeregowej transmisji danych. Najbardziej popularna wersja tego standardu, RS-232C pozwala na transfer na odległość nie przekraczającą 15 m z szybkością maksymalną 20 kbit/s.

W architekturze PC standardowo przewidziano istnienie 4 portów COM oznaczanych odpowiednio COM1-COM4. Specjalizowane karty rozszerzeń pozwalały na podłączenie znacznie większej ilości portów RS-232, jednak nie były one standardowo obsługiwane przez MS-DOS i wymagały dedykowanego oprogramowania.

W przypadku komputerów PC porty RS-232 początkowo obsługiwane były przez układy 8250 (PC, XT), później 16450 (AT, 80386, pierwsze i486), następnie przez zintegrowane z płytą główną 16550A. Układy te są ze sobą wstecznie zgodne, jednak kolejne wersje posiadają coraz większy bufor FIFO. Kość 16550A posiada standardowo bufor 2x 16B. Zwiększenie długości kolejki FIFO skutkowało obniżeniem częstotliwości przerwań generowanych przez port przy przesyłaniu danych. Na potrzeby zastosowań profesjonalnych (np. równoczesna obsługa wielu szybkich modemów w systemach typu BBS) stosowano często specjalizowane karty RS-232 z jeszcze większymi buforami (np. 16650 czy karty procesorowe). Znane były rozwiązania pozwalające na podłączenie do 1024 urządzeń RS-232, przy zachowaniu pełnej prędkości przez port i buforami rzędu 1024 bajty na port. Część kart tego typu pozwalała także na ustawianie wyższego zegara wskutek czego bitrate na wyjściu układu był wyższy niż ustawienia programowe – przy dużej wielkości kolejki FIFO pozwalało to na uzyskiwanie wysokich (często niestandardowych – jak w przypadku modemów ZyXel 76800 bps) prędkości. Spotkać można było na rynku modemy komunikujące się z portem RS-232 z prędkościami do 421 kbit/s, a nawet 921,6 kbit/s (np. Yuko, Goramo).

Specyfikacja napięcia definiuje "1" logiczną jako napięcie -3V do -15V, zaś "0" to napięcie +3V do +15V. Poziom napięcia wyjściowego natomiast może przyjmować wartości -12V, -10V, +10V, +12V, zaś napięcie na dowolnym styku nie może być większe niż +25V i mniejsze niż -25V. Należy zaznaczyć przy tym, że zwarcie dwóch styków RS-232 teoretycznie nie powoduje jego uszkodzenia. W praktyce ten zapis w specyfikacji nie zawsze jest przestrzegany.

Sygnały w PC[edytuj | edytuj kod]

Widok gniazda PC (męskiego) typu DE-9
Numer Kierunek Oznaczenie Nazwa angielska Nazwa polska
9 pin 25 pin
1 8 DCE – > DTE DCD Data Carrier Detected sygnał wykrycia nośnej
2 3 DCE – > DTE RxD Receive Data odbiór danych
3 2 DCE < – DTE TxD Transmit Data transmisja danych
4 20 DCE < – DTE DTR Data Terminal Ready gotowość terminala[a]
5 7 DCE – DTE GND Signal Ground masa
6 6 DCE – > DTE DSR Data Set Ready gotowość "modemu"[a]
7 4 DCE < – DTE RTS Request to Send Data żądanie wysyłania
8 5 DCE – > DTE CTS Clear to Send Data gotowość wysyłania
9 22 DCE – > DTE RI Ring Indicator wskaźnik dzwonka
  9-19; 21; 23-25   NC   niewykorzystane[b]

Zworki na wtyku kontrolnym[edytuj | edytuj kod]

9 pin 25 pin
2--3 2--3
7--8 4--5
1--4--6 6--8--20

Podłączenie do PC (lub innego DTE) tak wykonanego wtyku powoduje, że dostaje on z powrotem wszystkie wysłane dane - taki wtyk służy do testowania poprawności działania portu RS-232 w DTE.

Protokoły transmisji danych[edytuj | edytuj kod]

Asynchroniczny: każdy bajt jest przesyłany niezależnie, i jest poprzedzony bitem START (stan 0), po którym są przesyłane bity danych od 0 do 7 (lub mniej: stosuje się bajt od 5 do 8 bitów), po nich opcjonalnie bit parzystości (do wyboru: tak, by łączna liczba jedynek w danych i tym bicie była parzysta (Even Parity), albo nieparzysta (Odd Parity), albo by miał określoną wartość 0 albo 1 (Stick Parity) - łącznie 4 możliwości), i na koniec bit (lub bity) STOP (stan 1; dla słowa 5-bitowego 1 lub 1.5 bitu, dla dłuższych 1 lub 2; jest to gwarantowany odstęp przed bitem START następnego bajtu, może on jednak być dowolnie długi); bity mają czas trwania określony przez stronę wysyłającą, strona odbierająca odmierza czas od zbocza 1→0 na początku bitu start i próbkuje stan w połowie długości bitu; wykrycie wartości '1' w połowie bitu START jest interpretowane jako "fałszywy start"; wykrycie wystąpienia '0' pół odstępu czasu po rozpoczęciu bitu STOP jest interpretowane jako "błąd ramki" (framing error).

Synchroniczny: DCE (modem) podaje sygnały TxC (nie musi go podawać, lub może być nieprawidłowy, kiedy nie daje CTS) i RxC (nie musi go podawać, lub może być nieprawidłowy, gdy nie daje DCD), a DTE (terminal) wysyła (TxD) lub odbiera (RxD) kolejne bity danych; żeby ustalić przy odbieraniu, gdzie jest granica bajtów, dane są poprzedzone serią bajtów SYN (0x16 - DTE musi analizować je i wykryć, o ile bitów trzeba przesunąć dane, by uzyskać taką wartość), po których następuje znak rozpoczynający pakiet danych (np. SOH - 0x01) i kolejne bajty, bez możliwości "zaczekania" (najwyżej z możliwością wysłania danych nieznaczących); dane mają strukturę określającą ich przeznaczenie (np. dane do wyświetlenia, dane do wydrukowania, sterowanie terminalem - to, co w protokole TCP/IP określa "port"), i gdzie jest ich koniec; zwykle dla kontroli poprawności transmisji pakiet zawiera dodatkowe dane do jej sprawdzenia, czasem jest to różnica symetryczna wszystkich bajtów, częściej CRC; z powodu konieczności synchronizacji przesyłanie danych wyłącznie pakietami; liczba bitów pomiędzy pakietami nie musi być wielokrotnością bajta.

Modemy half- i full-duplex[edytuj | edytuj kod]

RS-232 (niesymetryczny) został przedstawiony w roku 1962 i pomimo pogłosek o jego przedwczesnym wycofaniu, pozostał szeroko używany w przemyśle. Według specyfikacji RS-232 zezwala na przesyłanie danych od nadajnika do odbiornika ze stosunkowo niskim transferem (do 20Kbit/s), z maksymalną prędkością na krótkich odcinkach (do 15m) W celu nawiązania komunikacji full-duplex ustalane są niezależne kanały transmisyjne. Sygnały RS-232 są przedstawione za pomocą poziomów napięcia, mierzone względem wspólnego poziomu masy. Stan nieaktywny "idle" ("MARK") ma ujemny poziom sygnału, natomiast stan aktywny "active" ("SPACE") ma dodatni poziom sygnału. RS-232 posiada sporą liczbę linii synchronizujących transmisję (głównie używane z modemami), oraz określony protokół komunikacyjny. Podłączenie urządzenia do modemu bez wyłączenia obsługi linii synchronizujących (programowo lub sprzętowo) może przysporzyć wiele problemów. Sygnał RTS (żądanie nadawania) jest użyteczny w pewnych określonych aplikacjach.

Sygnały RS-232 są przedstawione za pomocą poziomów napięcia, mając na względzie wspólny poziom masy. Ten typ sygnałów sprawdza się dobrze w komunikacji pomiędzy dwoma stacjami (point to point) przy niskiej prędkości przesyłania danych. Porty RS-232 w komputerze PC są przypisane do pojedynczego urządzenia. Port COM1 może być portem myszki, a port COM2 może być użyty do podłączenia modemu. Jest to przykład komunikacji między dwoma stacjami (point to point) (jeden port komunikuje się z jednym urządzeniem). Sygnały RS-232 wymagają wspólnego "zera" pomiędzy komputerem PC a przyłączonym urządzeniem. Długość przewodów powinna być ograniczona do 30-60m przy przesyłaniu asynchronicznym oraz 15m przy przesyłaniu synchronicznym (co w pewnych przypadkach może powodować zakłócenia). Przesyłanie synchroniczne posiada zegar nadawania i odbierania, który ogranicza maksymalną długość linii synchronizującej. Pokrótce, port RS-232 został stworzony do komunikacji z urządzeniami lokalnymi i obsługuje jedno urządzenie transmisyjne (DCE) i jedno końcowe (DTE).

Modem full-duplex może jednocześnie odbierać i wysyłać, DTE współpracujący z takim modemem zwykle włącza na stałe sygnał RTS, aby uniknąć opóźnień na synchronizację modemów.

Modem half-duplex nie może robić obu tych rzeczy naraz - podanie RTS powoduje odczekanie na przerwę w sygnale nośnym (DCD) i wysłanie sygnału nośnego - po uzyskaniu stabilnego połączenia do wysyłania z modemem z drugiej strony modem podaje sygnał CTS; po zakończeniu wysyłania danych (ale nie wcześniej) DTE musi wyłączyć RTS, aby modem przestał wysyłać sygnał nośny i pozwolił, by modem z drugiej strony mógł rozpocząć wysyłanie.

Różne warianty złącz[edytuj | edytuj kod]

Sygnał Nadawca DB-25 DE-9
(TIA-574)
8P8C ("RJ45") 10P10C ("RJ50") Alternatywne funkcje
Nazwa Oznacz. DTE DCE TIA-561 Yost MMJ Cisco[1] Hirsch- mann Cycla- des[2] National Instr[3]. Cycl- ades[2] Digi[4]
Common Ground G 7 5 4 4,5 3,4 4,5 4 4 6 5 7 -
Protective Ground PG 1 - - - - - - - - 1 4 -
Transmitted Data TxD 2 3 6 3 2 3 3 3 8 4 5 -
Received Data RxD 3 2 5 6 5 6 5 6 9 7 6 -
Data Terminal Ready DTR 20 4 3 2 1 2 - 2 7 3 9 -
Data Set Ready DSR 6 6 1 7 6 7 - 8 5 9 2 (alt 10) -
Request To Send RTS 4 7 8 1 - 1 (tylko Aux) - 1 4 2 3 Ready To Receive (RTR)
Clear To Send CTS 5 8 7 8 - 8 (tylko Aux) - 5 3 6 8 -
Carrier Detect DCD 8 1 2 7 - - - 7 10 8 10 (alt 2) -
Ring Indicator RI 22 9 1 - - - - - 2 10 1 -

Standard RS-232-D[edytuj | edytuj kod]

Zobacz też[edytuj | edytuj kod]

Uwagi

  1. 1,0 1,1 Nazwa sygnału DSR bywa mylnie tłumaczona jako "wypełniony bufor (gotowość transmisji)", a DTR jako "przetworzono dane (gotowość odbioru)" - w rzeczywistości oznaczają one gotowość urządzeń do pracy (czyli, że mają włączone zasilanie i wykonały reset po włączeniu) - angielskie nazwy "Data Set" i "Data Terminal" oznaczają urządzenia, a nie ich stany.
  2. Sygnały te nie są wykorzystywane przy łączności asynchronicznej (standardowy PC miał tylko taką) - łączność synchroniczna używała jeszcze innych sygnałów, np. zegarowych do odbioru i wysyłania danych (RxC i TxC), które przy łączności asynchronicznej są zbędne.

Przypisy

Bibliografia[edytuj | edytuj kod]

  • Burkhard Kainka: „Messen, Steuern, Regeln über die RS 232-Schnittstelle“, Burkhard Kainka, Franzis Verlag, 1997, ISBN 3-7723-6058-0.
  • Joe Campbell: "V 24 / RS-232 Kommunikation", Sybex-Verlag, 1984, ISBN 3-88745-075-2.

Linki zewnętrzne[edytuj | edytuj kod]