Sterowanie za pomocą bitów
RS-232 - port szeregowy


Bramki logiczne
Cyfrowe układy scalone TTL i CMOS
Zasilanie układów TTL i CMOS
Zjawisko hazardu w sieciach logicznych
Przerzutniki
Pamięć
Wejście / wyjście
  Centronics
RS-232
PS/2
USB

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.

 

Podstawy portu RS-232

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ę

 

Złącze RS-232

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ć.

Image of CONN DB25 FEMALE SLD CUP CHROME - 172-E25-201R911
Gniazdo DB25 Female Wtyczka DB25 Male
Image of CONN DB9 MALE SOLDER DIP NKL - 172-E09-113R001
Gniazdo DB9 Male Wtyczka DB9 Female

 

RS-232 DB25

  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śnego w 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

 

RS-232 DB9

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
 

Wtyczka testowa RS232 z pętlą zwrotną

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.

 

Kable modemu zerowego RS-232

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

 



List do administratora Serwisu Edukacyjnego Nauczycieli I LO

Twój email: (jeśli chcesz otrzymać odpowiedź)
Temat:
Uwaga: ← tutaj wpisz wyraz  ilo , inaczej list zostanie zignorowany

Poniżej wpisz swoje uwagi lub pytania dotyczące tego rozdziału (max. 2048 znaków).

Liczba znaków do wykorzystania: 2048

 

W związku z dużą liczbą listów do naszego serwisu edukacyjnego nie będziemy udzielać odpowiedzi na prośby rozwiązywania zadań, pisania programów zaliczeniowych, przesyłania materiałów czy też tłumaczenia zagadnień szeroko opisywanych w podręcznikach.



   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2017 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.