|
Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie
|
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
| SPIS TREŚCI |
Pojęcie bitu
|
| Podrozdziały |
|
Słowo RS-232 pochodzi od nazwy angielskiej - Recommended Standard 232 (Polecany Standard 232). Odnosi się on do protokołu transmisji szeregowej (ang. serial transmission), w której bity są przesyłane kolejno jeden po drugim. Już od ponad 20 lat port szeregowy RS-232 jest stosowany w komputerach PC do podłączania różnych urządzeń - najczęściej modemów i drukarek. Obecnie staje się już przestarzały (podobnie jak port Centronics) i jest systematycznie wypierany przez USB. |
Dane są transmitowane tylko w jednym kierunku po danej linii transmisyjnej. Aby zatem zrealizować połączenie dwustronne musimy posiadać dwie linie transmisyjne. Te dwie linie wraz z masą dają trzy linie, co jest minimalną, niezbędną konfiguracją tego portu. Aby połączenie było bardziej stabilne, szczególnie na większych odległościach, port został wyposażony w dodatkowe linie, które służą do przesyłania potwierdzeń odbioru danych. Zatem port RS-232 może składać się z od 3 do 22 sygnałów i może pracować z szybkością od 100 bodów do 20 kilo bodów (1 kb = 1000 bitów na sekundę) . Standardowe prędkości transmisji to 2,4k, 9,6k i 19,2k. W użyciu są również wyższe prędkości transmisji - 38,4k i 57,6k, lecz standard ich nie pokrywa - mimo to mogą być stosowane. Kabel RS-232 może posiadać długość do około 17 metrów.
Dane są transmitowane szeregowo (tzn. bit po bicie) w jednym kierunku po parze przewodów. Linia danych wychodzących jest nazywana Tx (ang. transmission - nadawanie) , natomiast linia danych wchodzących ma nazwę Rx (ang. reception - odbiór) . Najprostszy, dwukierunkowy system komunikacyjny wymaga tylko trzech linii: Tx, Rx i GND (ang. ground - masa) . Skrzyżowanie linii danych Tx i Rx pomiędzy dwoma systemami pozwala im się nawzajem porozumiewać:

Każdy bajt może być wysłany w dowolnej chwili. Nie jest on synchronizowany z odbiornikiem - mówimy, że jest to szeregowa transmisja asynchroniczna, w której nie ma sygnału zegarowego. Dlatego nadajnik i odbiornik muszą na obu końcach być ustawione w dokładnie taki sam sposób, inaczej strumień bitów zostałby źle odczytany. Bity są wysyłane poprzez odpowiednie ustawienie napięcia elektrycznego na linii Tx:
| + 12 V | - transmitowany bit 0 |
| - 12 V | - transmitowany bit 1 |
Czas transmisji bitu zależy od ustalonej szybkości transmisji - ten parametr muszą zawsze wynegocjować urządzenie nadawcze z odbiorczym. Gdy nic nie jest transmitowane, linia Tx jest utrzymywana w stanie -12V. Przed rozpoczęciem transmisji bajtu wysyłany jest bit startowy o wartości 0 - linia Tx skacze do napięcia +12V. Bit ten nie wchodzi w skład transmitowanego bajtu. Jego zadaniem jest poinformowanie odbiornika, że transmisja się rozpoczęła. Po bicie startu są wysyłane kolejne bity bajtu danych - od najmłodszego do najstarszego. Liczba przesyłanych bitów zależy od wybranego rodzaju transmisji, może to być 5, 7 lub 8 bitów danych. Po przesłaniu bitów danych może być przesyłany bit parzystości lub nieparzystości:
Na końcu transmisji bajtu przesyłany jest przynajmniej jeden bit stopu o wartości 1 - linia Tx przechodzi w stan -12V, w którym może pozostać, jeśli transmisja danych się zakończyła.
Poniższy rysunek przedstawia transmisję na linii Tx znaku K o kodzie 7510 = 010010112. Do 8 bitów został dodany bit parzystości 0. W sumie przesyłane są kolejno bity 110100100 - od najmłodszego b0 do najstarszego b7 = bit parzystości bp.

Odstęp czasu pomiędzy poszczególnymi bitami jest dla odbiornika bardzo ważny i musi być utrzymywany. To na jego podstawie odbiornik próbkuje stan swojej linii Rx w połowie okresu przesyłania bitu. Odstęp ten zależy od wybranej szybkości transmisji. Na przykład dla 19200 bodów czas transmisji pojedynczego bitu to:
| tbit = 1 sekunda / 19200 = 0,000052 sek = 52 µs |
Aby obliczyć szybkość transmisji portu RS-232 w bajtach, należy wziąć pod uwagę kilka czynników:
Załóżmy, że szybkość transmisji wynosi 19200 bodów (bitów na sekundę). Transmisja odbywa się bez bitu parzystości oraz z jednym bitem stopu. Zatem przesłanie pojedynczego bajtu wymaga przesłania 10 bitów: 1 bit startu, 8 bitów danych oraz 1 bit stopu. Otrzymujemy:
| 19200 / 10 = 1920 bajtów na sekundę |
Teraz załóżmy, iż w transmisji wykorzystujemy bit parzystości/nieparzystości. Liczba transmitowanych bitów wzrasta do 11. Zatem
| 19200 / 11 = 1745 bajtów na sekundę |
Jeśli w transmisji dodatkowo wymagane są dwa bity stopu przed rozpoczęciem kolejnej transmisji, to liczba przesyłanych bajtów wzrasta do 12 i otrzymujemy:
| 19200 / 12 = 1600 bajtów na sekundę |
Komunikacja poprzez złącze RS-232 odbywa się najczęściej pomiędzy terminalem a modemem. Terminal jest urządzeniem aktywnym, które tworzy i przyjmuje dane. W terminologii telekomunikacyjnej oznacza się go skrótem DTE (ang. Data Terminal Equipment). W naszym przypadku terminalem jest komputer PC lub stacja robocza. Modem jest urządzeniem komunikacyjnym i oznacza się go skrótem DCE (ang. Data Communication Equipment). Modem jest urządzeniem biernym, podporządkowanym terminalowi. Rozróżnienie to jest istotne z tego powodu, iż sygnały w porcie RS-232 są oznaczane z punktu widzenia urządzenia DTE. Na przykład linia TxD (ang. transmitted data) na urządzeniu DTE jest wyjściem danych, a na urządzeniu DCE jest wejściem danych. Z kolei linia RxD (ang. received data) jest na urządzeniu DTE wejściem danych, a na urządzeniu DCE wyjściem.

Jak sprawdzić, czy nasz port RS-232 jest w trybie DTE? Wystarczy zmierzyć napięcie na końcówce TxD. Dla DTE powinno wynosić około -12V (stan nieaktywny). W przypadku DCE końcówka ta jest wejściem i nie produkuje napięcia - zmierzone napięcie będzie w granicach 0V. Nie polecam tej operacji osobom początkującym - łatwo można coś uszkodzić w komputerze - OSTRZEGŁEM!
Złącze RS-232 pierwotnie zaprojektowano dla wtyku i gniazda 25 końcówkowego DB25. W standardzie uwzględniony został drugi kanał komunikacyjny. W praktyce jednak stosuje się pojedynczy kanał wraz z jego sygnałami potwierdzeń. Na komputerach osobistych PC stosowana jest wersja 9 końcówkowa DB9 i nią się tutaj głównie zajmiemy. Po stronie komputera stosuje się wtyczki DB9 typu male (męskie) z bolcami. Kable posiadają wtyki DB9 female (żeńskie) z otworami na wtyki. Numerki wtyku/otworu są zwykle umieszczane na wtyczce - czasami należy posłużyć się lupą, aby je poprawnie odczytać.
![]() |
![]() |
| Gniazdo DB25 Female | Wtyczka DB25 Male |
![]() |
![]() |
| Gniazdo DB9 Male | Wtyczka DB9 Female |
![]() |
1. | FGND | (Frame Ground) | - wspólna masa | |
| 2. | TxD | (Transmit Data) | - wysyłane dane | ||
| 3. | RxD | (Receive Data) | - odbierane dane | ||
| 4. | RTS | (Request To Send) | - żądanie wysłania danych | ||
| 5. | CTS | (Clear To Send) | - gotowość na przyjęcie danych | ||
| 6. | DSR | (Data Set Ready) | - zestaw danych gotowy | ||
| 7. | SGND | (Signal Ground) | - masa sygnałowa | ||
| 8. | CD | (Carrier Detect) | - wykrycie sygnału nośnego | ||
| 12. | SDCD | (Secondary Carrier Detect) | - wykrycie sygnału nośnegow drugim kanale | ||
| 13. | SCTS | (Secondary Clear to Send) | - gotowość na przyjęcie danych w drugim kanale | ||
| 14. | STxD | (Secondary Transmit Data) | - wysyłane dane w drugim kanale | ||
| 15. | TCLK | (Transmit Clock) | - nadawczy sygnał zegarowy dla transmisji synchronicznej | ||
| 16. | SRxD | (Secondary Receive Data) | - odbierane dane w drugim kanale | ||
| 17. | RCLK | (Receive Clock) | - odbiorczy sygnał zegarowy dla transmisji synchronicznej | ||
| 19. | SRTS | (Secondary Request To Send) | - żądanie wysłania danych w drugim kanale | ||
| 20. | DTR | (Data Terminal Ready) | - gotowość terminalu | ||
| 21. | RL/SQ | (Signal Quality detector) | - czujnik jakości sygnału | ||
| 22. | RI | (Ring Indicator) | - wskaźnik dzwonka dla modemu telefonicznego | ||
| 23. | CH/CI | (Signal Rate Selector) | - wybór szybkości sygnału | ||
| 24. | ACLK | (Auxiliary Clock) | - zegar pomocniczy dla drugiego kanału |
![]() |
1. | CD | (Carrier Detect) | - wykrycie sygnału nośnego |
| 2. | RxD | (Receive Data) | - odbierane dane | |
| 3. | TxD | (Transmit Data) | - wysyłane dane | |
| 4. | DTR | (Data Terminal Ready) | - gotowość terminalu | |
| 5. | SGND | (Signal Ground) | - masa sygnałowa | |
| 6. | DSR | (Data Set Ready) | - zestaw danych gotowy | |
| 7. | RTS | (Request To Send) | - żądanie wysłania danych | |
| 8. | CTS | (Clear To Send) | - gotowość na przyjęcie danych | |
| 9. | RI | (Ring Indicator) | - wskaźnik dzwonka dla modemu telefonicznego | |
| FGND | (Frame Ground) | - wspólna masa |
Poniższe połączenie złącza RS-232 female (żeńskie) może być stosowane do testów portu szeregowego na twoim komputerze. Linie danych i potwierdzeń zostały połączone. W ten sposób wysyłane dane trafią natychmiast z powrotem do portu. Test można wykonać za pomocą standardowego oprogramowania komunikacyjnego.

Druga wersja umożliwia pełne przetestowanie portu RS-232 za pomocą programów diagnozujących - np. Norton Diagnostics lub Chekit.

Testowanie odbywa się w kilku krokach. Dane zostają wysłane przez linię TxD, a odebrana informacja z linii RxD jest następnie porównywana z danymi wysłanymi. Zaletą drugiej wersji jest możliwość przetestowania linii RI, która służy do reakcji na sygnał dzwonka w modemie telefonicznym, który pojawia się przy próbie nawiązania połączenia zewnętrznego.
Najprostszym sposobem połączenia ze sobą dwóch komputerów PC przez złącze RS-232 jest wykorzystanie tzw. kabla modemu zerowego (ang. null modem cable). Nazwa pochodzi stąd, iż fizycznie w tym połączeniu nie występuje żaden modem - wystarczają same kable. Najprostsze połączenie wymaga jedynie trzech linii: TxD, RxD oraz GND. Nie są używane sygnały potwierdzające.

| Złącze 1 | Złącze 2 | Funkcja |
|---|---|---|
| 2 | 3 | Rx ← Tx |
| 3 | 2 | Tx → Rx |
| 5 | 5 | Masa sygnałowa |
Jeśli oprogramowanie komunikacyjne wymaga obecności sygnałów potwierdzających, można zastosować poniższy kabel modemu zerowego, w którym zostały zapętlone sygnały potwierdzeń. Zaletą jest stosowanie tylko trzech przewodów do transmisji danych.

| Złącze 1 | Złącze 2 | Funkcja |
|---|---|---|
| 2 | 3 | Rx ← Tx |
| 3 | 2 | Tx → Rx |
| 5 | 5 | Masa sygnałowa |
| 1 = 4 = 6 | - | DTR → CD = DSR |
| - | 1 = 4 = 6 | DTR → CD = DSR |
| 7 = 8 | - | RTS → CTS |
| - | 7 = 8 | RTS → CTS |
Kolejny kabel tworzy modem zerowy z częściowym potwierdzeniem transmisji.

| Złącze 1 | Złącze 2 | Funkcja |
|---|---|---|
| 1 | 7 = 8 | RTS2 → CTS2 = CD1 |
| 2 | 3 | RxD ← TxD |
| 3 | 2 | TxD → RxD |
| 4 | 6 | DTR → DSR |
| 5 | 5 | Masa sygnałowa |
| 6 | 4 | DSR ← DTR |
| 7 = 8 | 1 | RTS1 → CTS1 = CD2 |
I na koniec kabel modemu zerowego ze wszystkimi sygnałami potwierdzającymi.

| Złącze 1 | Złącze 2 | Funkcja |
|---|---|---|
| 2 | 3 | RxD ← TxD |
| 3 | 2 | TxD → RxD |
| 4 | 6 | DTR → DSR |
| 5 | 5 | Masa sygnałowa |
| 6 | 4 | DSR ← DTR |
| 7 | 8 | RTS → CTS |
| 8 | 7 | CTS ← RTS |
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.