3021


Łącze równoległe 561

Rozdział 11. Łącze równoległe

Podstawowym zadaniem łącza równoległego, wynikającym z przyjętej architektury sys­temu, jest obsługa drukarki. Również klasyczna drukarka posiada łącze typu równo­ległego (zwane także Centronics). Nie jest to oczywiście jedyna możliwość; drukarka może też być dołączona do jednego z łącz szeregowych. Coraz częściej pojawiają się drukarki wyposażone bądź to w oba rodzaje łącz, bądź posiadające możliwość wymiany modułu obsługującego łącze (interfejsu). Warto też zwrócić uwagę, że niektóre drukarki wykraczają poza rolę biernego odbiorcy poleceń i danych i dysponują zdolnością dwu­stronnej komunikacji z obsługującym je komputerem (elementarne możliwości komu­nikacji dwustronnej przez uaktywnienie linii BUSY ma każda drukarka), wysyłając np. — w zamian za lakoniczny komunikat o braku papieru - precyzyjną informację o zaist­niałym podczas pracy błędzie.

Maksymalna liczba łącz równoległych, a tym samym akceptowanych przez BIOS i DOS drukarek, wynosi cztery. System operacyjny identyfikuje je oznaczeniami LPT l, LPT2, LPT3 i LPT4. Każde z tych łącz musi być zidentyfikowane przez BIOS w trakcie ładowania systemu. Informacja o liczbie łącz równoległych w systemie przechowywana jest w obszarze danych BIOS-u, w bitach 7. i 6. bajtu o adresie 0040:001 Ih. Niektóre starsze odmiany BIOS-u ignorują łącza LPT3 i LPT4.

Poruszając się na poziomie systemu operacyjnego DOS możemy odwoływać się do dru­karek przez symbole LPT1-LPT4. Synonimem LPT1 jest PRN - domyślna drukarka systemu. Symbole te stanowią oznaczenia urządzeń i nie jest powiedziane, że z danym łączem LPTn musi współpracować drukarka. Jedynie programy obsługujące przerwania sprzętowe pochodzące od tych łącz (zwykle IRQ5 i IRQ7) ukierunkowane są na specy­fikę obsługi drukarki z łączem równoległym.

Niewątpliwą przewagą łącza równoległego nad szeregowym jest szybkość transmisji danych, większa średnio 9 razy. Do wad należy zaliczyć ograniczoną do 5 m długość przewodu połączeniowego (specyfikacja łącza szeregowego dopuszcza transmisję danych na odległość do 200 m).


562

Anatomia PC



Obsługa drukarki z łączem równoległym

Łącze równoległe drukarki może być wykonane jako samodzielna karta rozszerzenia (zawsze 8-bitowa, nawet w standardzie EISA) lub być zintegrowane z innymi układami peryferyjnymi. Najczęściej łącze to wchodzi w skład karty grafiki monochromatycznej (jest wówczas elementem układu wielkiej skali integracji zawierającego cały sterow­nik), ewentualnie karty Multi I/O, na której realizowane jest zwykle za pomocą układu scalonego UM82C11. Może ono być skonfigurowane (za pomocą mikroprzełączników lub zwór) jako LPT1-3, rzadziej LPT4. Zwykle mamy też możliwość wyboru linii przer­wań IRQ7 (standardowo) lub IRQ5. Karta taka dekoduje linie adresowe AO-A9 oraz sygnały ~IOR i -IOW magistrali zewnętrznej, rozpoznając w ten sposób odwołania pro­cesora do jej rejestrów. Sygnały wyjściowe i wejściowe karty skupione są w tzw. „żeńskim" 25-końcówkowym gnieździe typu DB-25. Rozmieszczenie tych sygnałów przedstawia rysunek 11.1.


Rysunek 11.1.

Rozmieszczenie

sygnałów

w 25-końcówkowym

gnieździe łącza

równoległego

STR

DO D1

D3 D4

D7

BUSY

PAP

ONOF

gt

V

ft

11

ft

Q

ffi\

UJ rtl

1*

<P\

vJ

/fl

tt)

^x

©-

®-

SH

SH

ALF

INI DSL


Połączenie pomiędzy gniazdem łącza równoległego a drukarką realizowane jest prze­wodem typu Centronics, który od strony drukarki zakończony jest charakterystycznym 36-końcówkowym wtykiem o tej samej nazwie.

Oznaczenia linii przewodu Centronics zebrane są w tabeli 11.1. Znak ~ symbolizuje negację, tzn. stanem aktywnym sygnału jest poziom zera logicznego, odpowiadający napięciu około O V.


Łącze równoległe

563


Tabela 11.1.

Oznaczenia linii przewodu Centronics

Końcówka wtyku DB-25

£b«cówfa/ w(y£« Centronics-36

Sygnał

Kierunek transmisji (względem komputera)

1

1

~STR

wyjście

2

2

DO

wyjście

3

3

Dl

wyjście

4

4

D2

wyjście

5

5

D3

wyjście

6

6

D4

wyjście

7

7

D5

wyjście

8

8

D6

wyjście

9

9

D7

wyjście

10

10

~ACK

wejście

11

11

BUSY

wejście

12

12

PAP

wejście

13

13

ONOF

wejście

14

14

-ALF

wyjście

15

32

~ERR

wejście

16

31

-INI

wyjście

17

36

~DSL

wyjście

18-25

19-30, 33

GND

16

OV

17

obudowa

18

+5V

34,35

wolne

Wymienione sygnały sterujące mają następujące znaczenie:

~STR (Strobe) niski poziom logiczny tej linii nakazuje drukarce

odebranie bajtu z linii danych DO-D7;

~ACK (Acknowledge) niskim poziomem logicznym na tej linii drukarka

potwierdza odebranie bajtu i gotowość do przyjęcia następnego;

BUSY (Busy) wysoki poziom logiczny tego sygnału może oznaczać jeden

z następujących faktów:

564 Anatomia PC

PAP (Paper) wysoki poziom logiczny na tej linii sygnalizuje

wyczerpanie się zapasu papieru;

ONOF (On-line/Off-line) wysoki poziom logiczny oznacza, że drukarka

jest w stanie on-line, tj. jest logicznie połączona z komputerem;

~ALF (Auto Linę Feed) niski poziom logiczny na tej linii poleca drukarce

automatyczne dołączanie znaków wysuwu wiersza (LF) po odebraniu znaku powrotu karetki (CR);

—ERĘ. (Error) przyczyną niskiego poziomu logicznego na tej linii może

być:

~INI (Initializatioń) niski poziom logiczny na tej linii uruchamia

w pewnych typach drukarek procedurę inicjalizującą;

~DSL (Device Seleci) niski poziom logiczny powoduje wybranie

drukarki. Zwykle linia ta jest na stałe połączona z masą, tzn. drukarka jest stale wybrana.

Warto wspomnieć, że w kwestii oznaczeń linii łącza równoległego panuje pewna do­wolność, na przykład linia ONOF zwana jest czasami ONLINE, linia PAP - PERR, a linia ~DSL - -SLCT.

Dostęp do łącza równoległego

z poziomu systemu operacyjnego DOS

Jak wiadomo, DOS traktuje wszystkie urządzenia na równi z plikami dyskowymi. Pole­cenie copy plik.a pl i k. b nie różni się od polecenia copy plik.a Ip 12. System operacyjny przegląda listę nazw urządzeń (LPT1, LPT2, LPT3, LPT4, COM1, COM2, COM3, COM4, AUX, CON, PRN, NUL) i odróżnia plik dyskowy od urządzenia, tak więc zawartość pliku plik.a zostaje wysłana do programu sterownika (ang, device dri-ver) obsługującego łącze LPT2. Wspomnieć należy również o poleceniu type plik.a > Ipt2 oraz programie rezydentnym print (print plik.a /d:LPT2), które prowa­dzą do tego samego celu.

Dla obsługi drukarki programiści mogą korzystać z dwóch funkcji przerwania 21h: 05h i40h.

Funkcja 05h

Działanie:

Funkcja ta jest reliktem z czasów systemu operacyjnego CP/M i obsługuje transmisję pojedynczego znaku wyłącznie do łącza LPT1 (PRN).


Łącze równoległe 565

Parametry wejściowe:

AH 05h;

DL kod ASCII znaku.

Wartości zwracane:

— brak —

Przykład:

mov ah,05h; numer funkcji

mov dl, Och; znak wysuwu strony (FF - Form Feed)

int 21h ; wysuw strony w drukarce

Funkcja 40h

Działanie:

Funkcja ta w ogólnej postaci obsługuje zapis większej liczby znaków do pliku lub urzą­dzenia. Korzysta ona z koncepcji tzw. uchwytów (ang. handle) definiujących jednorazo­wo i jednoznacznie plik lub urządzenie.

Drukarce PRN (LPT1) przyporządkowany jest standardowo numer uchwytu 4. Urzą­dzenia LPT« wymagają wcześniejszego otwarcia do zapisu funkcją 3Dh przerwania 21 h. Funkcja otwarcia do odczytu (3Fh) nie ma w przypadku drukarki sensu fizycznego.

Parametry wejściowe:

AH 40h;

BX numer uchwytu urządzenia LPTw;

CX liczba przesyłanych znaków;

DS:DX adres bufora zawierającego znaki.

Wartości zwracane:

AX liczba faktycznie przesłanych znaków lub kod błędu w przypadku

CF=1;
CF l w przypadku wystąpienia błędu.

Przykład:


bufor DB 8 DUP('*')

mov ah,40h

mov bx,04h

mov ex,08h

mov dx,OFFSET bufor

int 21h

osiem znaków "*"

numer funkcji

uchwyt urządzenia PRN

przesyłamy 8 znaków

adres (przemieszczenie) bufora

zakładamy, że DS zawiera

adres segmentowy bufora

przerwanie DOS


Funkcja 40h zwraca wprawdzie w rejestrze AX kod błędu, nie mówi natomiast nic o stanie poszczególnych linii łącza. Informacji tych dostarczają funkcje BIOS-u.


566 Anatomia PC

Dostęp do łącza równoległego poprzez funkcje BIOS

BIOS udostępnia trzy funkcje przerwania 17h obsługujące łącze równoległe. Funkcja OOh wysyła jeden znak do łącza, funkcja 01 h inicjalizuje łącze i drukarkę, natomiast funkcja 02h określa aktualny stan łącza.

Funkcja OOh

Działanie:

Funkcja ta wysyła jeden znak do dowolnego z zainstalowanych w systemie łącz równo­ległych.

Parametry wejściowe:

AH OOh;

AL kod ASCII znaku;

DX numer łącza:

Wartości zwracane:

AH bajt statusowy.

Przykład:

mov ah,00h ; numer funkcji

mov al,'D ; znak "D"

mov dx,03h ; port LPT4

int 17h ; wyprowadź znak "D" na drukarkę LPT4

Funkcja 01 h

Działanie:

Funkcja Olh przeprowadza tzw. sprzętową inicjalizację drukarki i łącza (ang. hardware reset). Linia -INI jest aktywowana poprzez wystawienie na niej zera logicznego. Po­dobny efekt uzyskać można wysyłając tzw. sekwencję inicjalizującą (ang. software reset), na ogół <ESC>'@', przy czym korzystamy wówczas ze wszystkich 8 linii danych i linii sterujących. Należy jednak pamiętać, że nie każda drukarka reaguje na sygnał -INI.

Parametry wejściowe:

AH Olh;


Łącze równoległe

567


DX numer łącza:

Wartości zwracane:

AH bajt statusowy.

Przykład:


mov ah,Olh mov dx,OOh

int 17h

numer funkcji

LPT1

inicjalizuj drukarkę dołączoną do portu LPT1


Funkcja 02h

Działanie:

Funkcja ta zwraca w rejestrze AH bajt statusowy, odwzorowujący stan łącza i drukarki. Nie są wykonywane żadne inne operacje.

Parametry wejściowe:

AH 02h;

DX numer łącza:

Wartości zwracane:

AH bajt statusowy.


Przykład:

mov ah,02h mov dx,Olh int 17h

numer funkcji

LPT2

bajt statusowy znajdzie się w AH


Wymieniany w opisie funkcji OOh, Olh i 02h bajt statusowy zawiera następujące dane:

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit l bit O


bit?

bito

bit 5

stan linii BUSY; l = drukarka zajęta,

0 = drukarka wolna;

stan linii ~ACK;

1 = nadszedł sygnał potwierdzenia,

0 = łącze oczekuje na sygnał potwierdzenia;

stan linii PAP;

1 = w drukarce brak papieru;


568

Anatomia PC



bit 4 stan linii ONOF;

l = drukarka w stanie on-line,

0 = drukarka w stanie off-line;

bit 3 stan linii ERR;

1 = drukarka zajęta, off-line lub inny błąd, np. drukarka wyłączona;

bity 2-1 zarezerwowane (zwykle równe 1);

bit O przekroczenie limitu czasu (ang. time-out) w oczekiwaniu na

reakcję drukarki.

Maksymalne czasy oczekiwania systemu na reakcję drukarki definiowane są przez BIOS i przechowywane w jego obszarze danych.

Adres

Znaczenie

0040:0078h

limit czasu dla łącza LPT1 (w sekundach)

0040:0079h

limit czasu dla łącza LPT2 (w sekundach)

0040:007Ah

limit czasu dla łącza LPT3 (w sekundach)

0040:007Bh

limit czasu dla łącza LPT4 (w sekundach)

Wartością domyślną przyjmowaną przez BIOS jest 20 sekund. Czas ten można zmienić na nieskończenie długi (ma to znaczenie przy obsłudze drukarek laserowych) polece­niem DOS-u modę iptn,, p. Po upływie zdefiniowanego wcześniej czasu oczekiwania dane będą wysyłane ponownie.

Ogólne zastosowanie łącza równoległego - dostęp do portów

Zastosowanie łącza równoległego jako portu drukarki wykorzystuje w niewielkim stop­niu jego możliwości. Zapomnijmy na chwilę o drukarce i potraktujmy 25-końcówkowe gniazdo LPT« jako programowalny port dwukierunkowy.

Z rysunku 11.2. widać, że port taki dysponuje siedemnastoma wejściami X1-X17 oraz dwunastoma wyjściami YI—Y12. Mamy więc w zasadzie nieograniczone możliwości sterowania różnorodnych prostych układów automatyki. Mowa tu naturalnie o sterowa­niu typu „włącz-wyłącz"; również informacja dostarczana od zewnętrznych czujników liniami X nie może mieć charakteru ciągłego - możliwe są tylko dwa stany. Linie da­nych można oczywiście wykorzystać do sterowania prostego przetwornika cyfrowo-analogowego, uzyskując w ten sposób możliwość regulacji wielostopniowej.

Stan każdej z linii Y może być w każdej chwili zmieniany. Mamy również możliwość kontroli poziomu logicznego na każdej z linii X.


Łącze równoległe

569



0x01 graphic

Y10

Rysunek 11.2.

Rozmieszczenie wejść i wyjść w gnieździe łącza równoległego

WEJŚCIA

WYJŚCIA


Początek obszaru przestrzeni adresowej przeznaczonej na rejestry sterujące poszcze­gólnych (zaakceptowanych przez BIOS w fazie ładowania systemu) łącz równoległych (tzw. adres bazowy) definiowany jest w obszarze danych BIOS-u:

Adres

Szerokość

Znaczenie

Standardowy adres bazowy (port)

0040:0008h

słowo

adresu bazowy łącza LPT1

378h (3BCh)

0040:OOOAh

słowo

adresu bazowy łącza LPT2

278h (378h)

0040:OOOCh

słowo

adresu bazowy łącza LPT3

3BCh (278h)

0040:OOOEh

słowo

adresu bazowy łącza LPT4

2BCh (2BCh)

Wartości adresów podane w nawiasach aktualne są w przypadku zainstalowania w sys­temie karty grafiki monochromatycznej z portem drukarki (MGP, Hercules). Procedury inicjalizujące BIOS-u przeglądają standardowe adresy bazowe i w przypadku wykrycia tam rejestru przyporządkowują mu kolejny numer LPT«.

Każde łącze równoległe posiada trzy własne rejestry. Ich adresy podaje się w odniesie­niu macierzystego adresu bazowego (tj. jako przemieszczenie - offset). Przemieszczenie O oznacza adres bazowy.


570

Anatomia PC



Rejestr danych

Rejestr danych (umieszczony pod przemieszczeniem OOh) umożliwia dostęp do koń­cówek 2-9 (wejścia X2-X9 lub wyjścia Y2-Y9).

bit? [ bito | bit 5 [ bit 4 [bit 3 bit 2 [ bit l | bit O |


bit?

bito

bit 5

bit 4

bit 3

bit 2

bit l

bitO

poziom sygnału na końcówce 9:

poziom sygnału na końcówce 8:

poziom sygnału na końcówce 7:

poziom sygnału na końcówce 6:

poziom sygnału na końcówce 5:

poziom sygnału na końcówce 4:

poziom sygnału na końcówce 3:

poziom sygnału na końcówce 2:

Ustawienie dowolnego bitu tego rejestru powoduje pojawienie się napięcia +5 V na stowarzyszonej z nim końcówce skonfigurowanej jako Y (wyjście). Trochę inaczej wy­gląda sprawa odczytu stanu końcówki. Rejestr danych jest rejestrem dwukierunkowym, a dane zapisane do niego (np. rozkazem out rejestr, al) są w nim „zatrzaskiwane". Odczyt z tego rejestru (np. rozkazem in al, rejestr) powoduje w efekcie przeczy­tanie tych samych danych, które były uprzednio tam zapisane. Mechanizm ten został wprowadzony w celu umożliwienia wykrywania przekłamań spowodowanych np. zwar­ciami na magistrali danych portu równoległego. Niektóre karty, zgodne ze standardem firmy IBM, wyposażone są również w bufor wejściowy (zestaw bramek trój stanowych, nie rejestr zatrzaskowy!), umożliwiający transmisję danych w kierunku do komputera. Bajt danych, który pojawi się na liniach X2-X9, jest wówczas dostępny w porcie danych drukarki. Karty niezgodne ze standardem IBM na ogół nie umożliwiają trans­misji dwukierunkowej. Po starcie komputera w rejestrze danych znajduje się wartość OOh.


Łącze równoległe

571


Musimy również brać pod uwagę inwersję sygnałów na liniach l, 11, 14 i 17, dokony­waną przez układy logiczne łącza.

Rejestr stanu

Stan końcówek wejściowych X10-X13 i X15 można odczytać z rejestru stanu zlokali­zowanego pod przemieszczeniem Olh. Rejestr ten można tylko odczytywać.

bit? bito bit 5 bit 4 bit 3 bit 2


bit?

bito

bit 5

bit 4

bit 3

bity 2-0

(zanegowany!), poziom napięcia na końcówce Xli: l = niski, O = wysoki;

poziom napięcia na końcówce X10:

poziom napięcia na końcówce X12:

poziom napięcia na końcówce Xl3:

poziom napięcia na końcówce Xl5:

bez znaczenia, zwykle równe l.


Rejestr sterujący

Łącze równoległe może być źródłem przerwania sprzętowego IRQ5 lub IRQ7, jeżeli sygnał na linii Xl O (~ACK) zmieni stan z wysokiego na niski. Definiuje to rejestr steru­jący umieszczony pod przemieszczeniem 02h.


bit 4

bit 3

bit2 bit l bitO



bity 7-5 bit 4

bit 3

bit 2

bez znaczenia;

generacja sygnałów IRQ: l = dozwolona,

0 = zabroniona;

(zanegowany!), poziom napięcia na końcówce 17:

1 = niski,

O = wysoki;

poziom napięcia na końcówce 16:


572 Anatomia PC

bit l (zanegowany!), poziom napięcia na końcówce 14:

l = niski,

0 = wysoki;

bit O (zanegowany!), poziom napięcia na końcówce l:

1 = niski,

O = wysoki.

Rejestr sterujący jest dwukierunkowy w swej mniej znaczącej połowie (bity 3-0), co umożliwia dostęp do końcówek l, 14, 16, 17 jako wejść lub wyjść. Dla bitu 4 (gene­racja sygnału IRQ) obowiązuje tylko jeden kierunek - zapis. Odczyt tej pozycji bitowej dostarcza zawsze ostatnio ustawionej wartości i nie ma sensu fizycznego jako wartość zwracana. Numer linii IRQ (zwykle 5 lub 7) ustawiany jest przełącznikiem konfigura-cyjnym na karcie łącza równoległego.



Wyszukiwarka

Podobne podstrony:
3021
3021
01 Zabezpieczenie społeczne niepełnosprawnościid 3021 ppt
3021
3021
3021 PSpice%20Tutorial v3
3021
3021
3021
3021
44 Р 3021Б коор
Kenwood KDC 4021,4021V,3021,306,2092R Manual
31 Р 3021А коор
45 Р 3021Б хар

więcej podobnych podstron