background image

         

                                                       

Standard 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 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 

specjalistycznego 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 per 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, a nawet 921,6 kbit (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.

background image

Sygnały w 

PC

 

 

Widok gniazda PC (męskiego) typu 

DE-9

 od strony wtyczki

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 1)

5

7

DCE – DTE

GND

Signal Ground

masa

6

6

DCE – > DTE DSR

Data Set Ready

gotowość "modemu" 1)

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

 

nie wykorzystane 2)

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.

Zworki na wtyku kontrolnym 

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 

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ę 

9 pin

25 pin

2--3

2--3

7--8

4--5

1--4--6 6--8--20

background image

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 

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.


Document Outline