Port LPT
Port LPT - nazwa 25-pinowego złącza w komputerach osobistych. LPT jest portem równoległym wykorzystywanym w głównej mierze do podłączenia urządzeń peryferyjnych: drukarek, skanerów, ploterów. Został opracowany w 1994 r. przez konsorcjum Network Printing Alliance jako standard zapewniający wsteczną kompatybilność z używanym od lat 70. jednokierunkowym portem Centronics. Długość magistrali LPT wynosi 8 bitów, zaś transfer 2 Mb
Budowa LPT
Magistrala tego interfejsu składa się z: 8 linii danych, 4 linii sterujących i 5 linii statusu. Nie zawiera linii zasilających. Linie magistrali są dwukierunkowe (w standardzie Centronics jednokierunkowe), poziomy sygnałów na liniach odpowiadają poziomom TTL. Interfejs IEEE 1284(LPT) zapewnia transmisję na odległość do 5 metrów, jeśli przewody sygnałowe są skręcane z przewodami masy, w przeciwnym przypadku na odległość do 2 metrów. Transmisja danych odbywa się z potwierdzeniem, z maksymalną prędkością ok. 2 Mb/s LPT.nie oferuje funkcjonalności hot plug, odłączenie kabla od portu przy włączonym zasilaniu w niektórych przypadkach spowoduje uszkodzenie układu odpowiedzialnego za transmisję równoległą.
W standardzie IEEE 1284 zdefiniowano następujące protokoły transmisji danych:
SPP (ang. Standard Parallel Port, znany też pod nazwą Compatibility Mode) - tryb kompatybilności ze złączem Centronics z możliwością transmisji dwukierunkowej. Port zapewnia najniższy transfer (150 kb/s). Wadą jest obsługa poprzez przerwania, co jest utrudnione w systemach wielozadaniowych.
Nibble Mode - tryb półbajtowy (czterobitowy), przy transmisji z urządzenia zewnętrznego po liniach statusu. Prędkość transmisji nie przekracza 50 kb/s. Odpowiednik portu Bi-tronics wprowadzonego przez Hewlett-Packard.
Byte Mode - tryb bajtowy (ośmiobitowy).
EPP (ang. Enhanced Parallel Port) - najczęściej stosowany tryb. Brak tutaj kanału DMA Handshake realizowany jest sprzętowo, co umożliwia działanie w systemie wielozadaniowym (po wywłaszczeniu procesu transmisja nadal trwa) oraz znacznie ułatwia pracę programistów.
ECP (ang. Extended Capability Port) - port używa DMA i oferuje najwyższe prędkości (do 2 Mb/s). Wykorzystywane są bufory FIFO.
Zastosowanie
Najważniejszym (historycznie) zastosowaniem portu równoległego była komunikacja z urządzeniami wymagającymi przesyłu dużych ilości danych z komputera do urządzenia. Dzięki dużej prędkości transferu świetnie nadawał się do podłączania drukarek i skanerów oraz pamięci masowych. Jednak wejście na rynek interfejsów o znacznie lepszych walorach użytkowych, takich jak USB i FireWire spowodowało, że port ten jest coraz rzadziej stosowany.
Łączenie komputerów za pomocą portu równoległego było popularne w latach dziewięćdziesiątych, gdy sprzęt sieciowy był drogi, program Norton Commander posiadał wbudowaną obsługę transferu plików poprzez port szeregowy i równoległy. Dziś i to zastosowanie odeszło do lamusa za sprawą sieci komputerowych i pamięci masowych USB.
Port równoległy jest często wykorzystywany przez elektroników amatorów. Zadecydowała o tym prostota wykonania urządzeń (port równoległy działa na zasadzie n bitowej maszyny stanów) oraz prostota tworzenia oprogramowania sterującego (port posiada zestaw rejestrów kontrolnych i sterujących dzięki którym jego programowa obsługa jest wyjątkowo prosta).
Port równoległy pozwala na równoległe wejście 9 bitów lub wyjście 12 bitów w tym samym czasie (łącznie z wykorzystaniem linii przewidzianych jako kontrolne i sterujące).
Port COM
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 Communication 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. Standard RS-232 (ang. Recommended Standard) opracowano w 1962 roku na zlecenie amerykańskiego stowarzyszenia producentów urządzeń elektronicznych w celu ujednolicenia parametrów sygnałów i konstrukcji urządzeń zdolnych do wymiany danych cyfrowych za pomocą sieci telefonicznej.
Port szeregowy (RS-232) gniazdo męskie Wtyk żeński RS-232
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ładu 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).
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.
Widok gniazda PC (męskiego) typu DE-9 od strony wtyczki |
|||||
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.
Typ interfejsu |
szeregowy |
Transfer |
typ. do 115,2 kb/s (w niektórych implementacjach, np. modemy jako karty wewn., do 230,4 kb/s), w trybie synchronicznym do 1Mb/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 |
DE-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, diagnostyka samochodowa, programowanie układów logicznych |
Protokoły transmisji
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 liczba 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; liczba bitów pomiędzy pakietami nie musi być wielokrotnością bajta.