RS-232
Z Wikipedii
RS-232C | |
Typ interfejsu: | szeregowy |
Transfer: | typ. do 115,2 kb/s (w niektórych implementacjach, np. modemy jako karty wewn., do 230,4 kb/s), |
Długość magistrali: | do ok. 15 m (nie określono w standardzie) |
Liczba portów: | typowo 1 lub 2 |
Liczba urządzeń: | jedno na każdy port |
Rodzaj złącza: | DB-9 lub DB-25 |
Zasilanie przez interfejs: | nie |
Hot plugging: | nie |
Zastosowanie | |
---|---|
modemy, telefony komórkowe, łączenie dwóch komputerów kablem nullmodem, starsze drukarki, Tunery satelitarne, sprzęt specjalistyczny, programowanie układów logicznych |
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 Circuit-terminating 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.
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łądu 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). Obecnie wobec upowszechnienia się magistrali USB powyższe informacje mają coraz bardziej historyczne znaczenie.
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.
Spis treści |
[edytuj] Sygnały w PC
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 | RING | 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.
[edytuj] Zworki na wtyku kontrolnym
9 pin | 25 pin |
2--3 | 2--3 |
7--8 | 4--5 |
1--4--6 | 6--8--20 |
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.
[edytuj] 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 ilość 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ę 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; ilość bitów pomiędzy pakietami nie musi być wielokrotnością bajtu.
[edytuj] 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.
[edytuj] Zobacz też
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
- Opis standardu (en)
AGP • ATA (IDE) • ATAPI (EIDE) • Bluetooth • EISA • Ethernet: RJ-45 RJ-11 • ExpressCard • FireWire (IEEE 1394) • IrDA • ISA • MCA • Port szeregowy • Port szeregowy (RS-232) • Port równoległy • Port Centronics (IEEE 1284) • PCI • PCI Express • PCI-X • PCMCIA • PS/2 • SATA • SCSI • USB • VESA Local Bus