Schematy i opisy portów (LPT, COM, Gameport)
Poradnik: Jak podłączyć własnoręcznie skonstruowane urządzenia do komputera.
- Schematy i opisy portów - LPT, COM, Gameport
- Programy do sterowania portami
- Napisz własny program
- Konstruowanie urządzenia
LPT / port równoległy / interfejs Centronics / parallel port / IEEE 1284 / D-SUB
UWAGA: Port na obrazku ma 25 pinów. Tak wygląda port od strony komputera. Od strony kabla (drukarki) ma 36. Niektóre różnią się. Piny od 1 do 14 są identyczne w obu złączach.
Pozostałe: |
||
25-pin |
Nazwa |
36-pin |
15 |
Error |
32 |
16 |
Initialize |
31 |
17 |
Select In |
36 |
Od strony komputera: 25 PIN D-SUB [więcej]
Od strony drukarki: 36 PIN CENTRONICS [więcej]
- rejestr danych (wyjścia) - 8 bitów (D0 - D7) Napięcie +5V
- rejestr dwukierunkowy - 4 bity (bit0 STROBE, bit 1 AUTO, bit 2 INIT, bit 3 SELECT)
- rejestr wejściowy (bit 3 ERROR, bit 4 ONLINE, bit 5 PE, bit 6 ACK, bit 7 BUSY).
Adresy rejestrów podaje się zwykle w odniesieniu macierzystego adresu bazowego:
- 00h -> rejestr danych (Data), służy do zapisu i odczytu, odczytywać może jedynie dane wpisane tam przez siebie.
- 01h -> rejestr wejściowy (Status), służy do odczytu.
- 02h -> rejestr sterujący (Control) jest dwukierunkowy, służy do zapisu i odczytu.
Jak ustalić adresy rejestrów (czyli adres portu potrzebny podczas pisania programu):
Podobno najczęściej jest to 278h. U mnie jest H378 (tak wpisuję w Visual Basic - w Win98, Me i WinXP wszystko działa.)
Można to sprawdzić za pomocą programu (zob. dział programy).
Możesz to zobaczyć na przykład w Menadżerze Urządzeń (Windows 98, Me, XP). Wybierz Porty => Port drukarki (LPT) => Właściwości => Zasoby => Zakres We/Wy => W Ustawieniach jest podana liczba (może to być np.: 0378-037F).
Ta sama informacja jest w Informacjach o systemie: Start => Programy => Akcesoria => Narzędzia systemowe => Informacje o systemie => Zasoby sprzętowe => We/Wy (może to być np.: 0x00000378-0x0000037F).
Adresy rejestrów po uwzględnieniu przemieszczenia (offset) w systemie szesnastkowym: (W dziale Napisz własny program jest to pokazane na przykładzie).
port |
szyna danych |
rejestr wejściowy |
rejestr dwukierunkowy |
LPT1: |
378 |
379 |
37A |
LPT2: |
278 |
279 |
27A |
LPT3: |
3BC |
3BD |
3BE |
Jeśli ustawi się dany bit rejestru na 1, to na odpowiedniej końcówce LPT pojawi się napięcie +5V.
Rejestr danych:
Osiem (D0 - D7) wyjść, które można zaprogramować poprzez wysłanie liczby od 0 do 255. Każda liczba z tego zakresu odpowiada konkretnej kombinacji wyjść. Bardzo dobrze to widać po podłączeniu diód do LPT (zanim zaczniesz konstruować jakieś urządzenie zrób prosty układ z 8 diód - zobaczysz jak to wszystko działa). Można zauważyć, że każda kombinacja w systemie dziesiętnym (0-255) odpowiada liczbie w systemie dwójkowym (binarnym) zapisanej w postaci zapalonych lub zgaszonych diód - jedynki i zera.
Rejestr wejściowy:
Odpowiednio łącząc metalową obudowę LPT z którymś z pinów (10, 11, 12, 13, 32) możesz zmienić wartość na tym rejestrze, która może być odczytana przez program.
Rejestr sterujący:
(W praktyce jeszcze z niego nie korzystałem, poniższa informacja to cytat)
Można nim przesyłać informację w obu kierunkach: komputer - świat zewnętrzny oraz świat - komputer. Praktycznie jest czterobitowy. Praktycznie, gdyż cztery starsze bity nie są dostępne i nie wolno w nie ingerować, bo spowoduje to awarię systemu. Dostępne są cztery młodsze bity. Bit 0 (STROBE), 1 (AUTO) i 3 (SELECT) są negowane sprzętowo. Bez negacji jest bit 2 (INIT). Powoduje to trochę komplikacji przy odczycie lub wysyłaniu wartości do portu. Na przykład aby ustawić bit 4 STROBE należy wysłać do portu o adresie np. 379h (378h + 1h =379h) liczbę dziesiętna 10. Aby ustawić AUTO - 9, a dla INIT - 15. Wysłanie liczby 11 powoduje ustawienie na wszystkich bitach portu wartości 0 logicznego. Wysłanie 4 ustawi same jedynki.
Zastosowanie:
Według mnie port LPT jest najbardziej uniwersalny i najprostszy w obsłudze. Zwykle potrzeba więcej wyjść niż wejść. LPT ma 8, które bardzo łatwo zaprogramować oraz jeszcze 3 (gdyby 8 nie wystarczyło). Wejść ma 5. Jednak jeśli to urządzenie ma sterować komputerem to lepiej użyć Gameportu. Dużo osób ma drukarkę, więc bez problemu można odłączyć kabel, położyć koło komputera i pokombinować. Prosty program do sterowania 8 diodami ma tylko kilka linijek kodu.
[na górę strony]
COM / RS232 / DB9 / PC 9 / port szeregowy / serial port
Złącze żeńskie:
<== wejście
==> wyjście
Pin |
Name |
RS232 |
Kierunek |
Opis |
1 |
CD |
CF |
<== |
Carrier Detect |
2 |
RXD |
BB |
<== |
Receive Data |
3 |
TXD |
BA |
==> |
Transmit Data |
4 |
DTR |
CD |
==> |
Data Terminal Ready |
5 |
GND |
AB |
== |
System Ground (Uziemienie) |
6 |
DSR |
CC |
<== |
Data Set Ready |
7 |
RTS |
CA |
==> |
Request to Send |
8 |
CTS |
CB |
<== |
Clear to Send |
9 |
RI |
CE |
<== |
Ring Indicator |
Podczas pisania programu do sterowania urządzeniem przez COM z tej tabelki istotne jest tylko to, który z pinów to wejście, który wyjście, a który uziemienie (minus).
Adres portu można znaleźć w tan sam sposób co wcześniej opisałem dla LPT.
Zastosowanie:
Dobry do prostych układów (np. mail2led). Zaletą COM-a może być to, że obecnie jest raczej niewykorzystywany więc nie ma potrzeby odłączania innego urządzenia.
[na górę strony]
Gameport / joystick / MIDI
PIN |
Znaczenie |
Rysunek |
1 |
+5v |
|
Gameport nie jest standardowo umieszczony na płycie głównej. Jest elementem karty dźwiękowej (służy również jako wejście/wyjście MIDI). Jeśli ktoś ma zintegrowaną kartę muzyczną i nie ma Gameportu, to ... ma problem. Zawsze jednak można kupić jakąś starą używaną kartę dla samego portu.
Port joysticka znajduje się pod adresem 201h w Win98.
Zastosowanie:
Jak wynika z tabelki Gameport ma 4 wyjścia i aż 8 wejść. Taka duża liczba czasem może się bardzo przydać. Na przykład pełne sterowanie komputerem - można zastąpić myszkę.
Zastosowań może być bardzo dużo (to zależy tylko od inwencji twórcy).
A może ktoś chce zrobić alarm, który monitoruje 8 punktów w domu - program, który wyświetla na monitorze, które drzwi są otwarte, a które zamknięte.