13. Typowe interfejsy systemu komputerowego

13.1. Interfejs szeregowy RS 232C

Ogólnie rzecz biorąc układy wejścia /wyjścia mogą być równoległe albo szeregowe. Różnicę między nimi ilustruje rys. 1.

Rys.1. a) szeregowy układ we/wy b) równoległy układ we/wy

Standard RS 232 interfejsu szeregowego (RS od ang. Recommended Standard) został wprowadzony w roku 1962 prze EIA (ang. Electronic Industies Association). Z założenia był to standard normalizujący interfejs pomiędzy normalizujący interfejs pomiędzy

  • tzw. urządzeniem końcowym dla danych – DTE (ang. Data Terminal Equipment). W praktyce jest to nasz komputer.
  • urządzeniem komunikacyjnym dla danych – DCE (ang. Data Communication Equipment). W zamyśle twórców standardu miał być to modem.

W 1969 roku została wprowadzona nieco zmodyfikowana norma RS-232 o nazwie RS-232C i w takiej zmodyfikowanej wersji jest często wykorzystywana we współczesnych systemach komputerowych. Obecnie RS-232C jest standardem szeregowej transmisji danych stosowanym również pomiędzy różnymi typami urządzeń DTE np. pomiędzy dwoma komputerami, komputerem a myszką, komputerem a drukarką itd.

W interfejsie szeregowym RS 232 C transmisja danych odbywa się szeregowo bit po bicie, przy czym definiuje się 2 rodzaje transmisji

  • transmisję asynchroniczną znakową
  • transmisję synchroniczną

Asynchroniczna transmisja znakowa polega na przesyłaniu pojedynczych znaków, które mają ściśle określony format. Początek znaku stanowi bit startu służący jedynie celom synchronizacji. Dalej mamy pole danych, w którym umieszczamy bity przesyłanego znaku począwszy od najmniej znaczącego bitu, czyli bitu LSB.

Bezpośrednio za polem danych przewidziano opcjonalny bit kontrolny (np. bit parzystości) służący zabezpieczeniu przed błędami transmisji. Transmitowany znak kończy 1 lub 2 bity stopu.

W ten sposób tworzymy ramkę, której format pokazany jest na rys. 2.

Wewnątrz ramki bity przesyłane są synchronicznie tzn. zgodnie z zegarem nadajnika. Poszczególne ramki są natomiast przesyłane asynchronicznie. Odstęp pomiędzy ramkami jest dowolny.

Bity danych wysyłanych pojawiają się na końcówce oznaczonej symbolem TxD (T od ang. transceiver czyli nadajnik, D od ang. data czyli dane). Końcówka odbierająca dane oznaczona jest symbolem RxD (R od ang. receiver czyli odbiornik, D od data). Końcówka TxD musi być połączona z końcówką RxD. Końcówki interfejsu wyprowadzane są na złącze 25 stykowe lub 9 stykowe. W złączu 9 stykowym organizacja wyprowadzeń jest następująca

Nr styku Oznaczenie i funkcja
3 TxD \qquad(dane nadawane)
2 RxD\qquad (dane odbierane)
7 RTS \qquad(żądanie nadawania)
8 CTS \qquad(gotowość do nadawania)
6 DSR \qquad( gotowość DCE)
5 SG\qquad (masa sygnałowa)
1 DCD, RLSD (poziom sygnału odbieranego)
4 DTR \qquad(gotowość DTE)
9 RI \qquad(wskaźnik wywołania)

Interfejs RS-232 służy do transmisji danych na niewielkie odległości (do 15 m) z niewielkimi szybkościami do 20 kb/s. Do pracy na większe odległości przeznaczone są interfejsy RS-423A, RS-422A i RS-485.

Rys. 2. Format ramki w asynchronicznym trybie pracy interfejsu RS-232C

Szybkość transmisji danych, body i b/s. Wyjaśnimy jeszcze czym różnią się b/s od bodów. Ponieważ nie wszystkie bity są bitami informacyjnymi (część z nich ma charakter organizacyjny i synchronizujący przepływ danych) efektywna szybkość transmisji informacji jest mniejsza od „bitowej szybkości transmisji” rozumianej jako odwrotność czasu trwania jednego bitu por. rys. xx. Dwuznaczności unikamy podając efektywną szybkość transmisji w b/s a „bitową szybkość transmisji” w bodach. Dokładniej definiujemy bod jako liczbę zmian stanów znamiennych (modulacji) w ciągu jednej sekundy. Bod jest więc jednostką szybkości modulacji. 

Występujące przy znakowej transmisji asynchronicznej bity startu, stopu oraz przerwy między ramkami powodują ograniczenie efektywnej szybkości transmisji. Można zrezygnować z transmisji asynchronicznej stosując tzw. transmisję synchroniczną, której istotą jest przesyłanie bitów danych w znacznie większych blokach niż w przypadku transmisji asynchronicznej. Powstaje wówczas oczywiście problem jak w takiej sytuacji utrzymać synchronizację, właściwie rozpoznawać bity i łączyć bajty w ciągi bitów – bloki, a po dokonaniu transmisji rozbić długi blok na bajty.

Poszczególne bity przesyłanego bloku w trybie synchronicznym są wyprowadzane ze stacji początkowej zgodnie z taktem nadawania nazywanym również „podstawą czasu przy nadawaniu” (TT – ang. transmit timing), którego wielkość musi być dobrana do właściwości toru transmisyjnego.

Szybkość transmisji synchronicznej w standardzie RS-232C wynosi do 20 k bodów, przy czym powszechnie stosowane są wartości 1200 bodów, 2400, 4800, 9600 i 19200 bodów.

Standard RS-485 wprowadzono w 1983 roku jako rozwinięcie standardu RS-422A. W standardzie RS-485 dopuszcza się wiele nadajników i wiele odbiorników dołączonych do jednej linii. Dokładniej do linii możemy dołączyć maksymalnie 32 nadajniki i 32 odbiorniki. Nadajniki muszą być trójstanowe ponieważ jednocześnie może nadawać tylko jeden z nich, a pozostałe muszą być w stanie wysokiej impedancji. Maksymalna długość kabla to 1200 m, a maksymalna szybkość transmisji to 10 Mb/s.