Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2024 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ś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 |
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 ©2024 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.