Co w LPT-cie piszczy, cz. 1.pdf

(154 KB) Pobierz
Co w LPT-cie piszczy, część 1 - tryby SPP/ECP/EPP od strony praktycznej
K U  R S
Przez wiele lat port drukarkowy w†komputerach PC by³
część 1
traktowany jako nieco u³omny, ale ³atwy w†stosowaniu,
interfejs rÛwnoleg³y. Za jego pomoc¹ moøna by³o sterowaÊ prac¹ rÛønych urz¹dzeÒ
zewnÍtrznych przy czym obszar aplikacji zawÍøa³y: stosunkowo niewielka szybkoúÊ transmisji,
brak standaryzacji dwukierunkowoúci linii danych i†steruj¹cych, a†takøe trudnoúci w†do³¹czeniu
do interfejsu wiÍcej niø jednego urz¹dzenia. Zaczynamy od prezentacji podstawowego trybu
pracy SPP, w†ktÛrym Centronics moøna wykorzystaÊ jako uniwersalny port I/O.
Tryby SPP/ECP/EPP od strony praktycznej
Centronics naleøy - obok RS232 - do
grona klasycznych interfejsÛw kompute-
rowych, stosowanych w†rÛønego rodzaju
urz¹dzeniach wspÛ³pracuj¹cych z†kompu-
terami. Centronics jest szczegÛlnie przy-
jazny uøytkownikom, poniewaø transmis-
ja danych odbywa siÍ w†sposÛb rÛwno-
leg³y (12 linii wyjúciowych i†9†wejúcio-
wych), a†zapis i†odczyt danych wymaga
tylko prostych operacji zapisu i†odczytu
odpowiednich rejestrÛw.
Od chwili powstania, Centronics
w†zasadzie nie by³ poddawany øadnym
modyfikacjom aø do roku 1994, kiedy
to wprowadzono istotnie zmodyfikowa-
ne protoko³y (IEEE1284: ECP i†EPP)
zwiÍkszaj¹ce moøliwoúci interfejsu bez
koniecznoúci wprowadzania (widocz-
nych dla uøytkownika) zmian elek-
trycznych i†mechanicznych.
- nadajnik (komputer) ustawia na li-
niach danych D0...D7 kombinacjÍ bi-
tÛw odpowiadaj¹c¹ przesy³anemu
bajtowi,
- nastÍpnie sterowany przez nadajnik
sygna³ strobuj¹cy nStrobe przyjmuje
poziom niski, co sygnalizuje odbior-
nikowi koniecznoúÊ odebrania da-
nych,
- na czas odbierania danych odbior-
nik ustawia stan ì1î na linii Busy ,
dziÍki czemu nadajnik jest informo-
wany o†koniecznoúci wstrzymania
dalszej transmisji na czas zajÍtoúci
odbiornika,
- po miniÍciu czasu niezbÍdnego dla
przyjÍcia danych odbiornik potwier-
dza ich odbiÛr za pomoc¹ impulsu
na linii nAck , ktÛra przyjmuje stan
logiczny ì0î.
W†opisanym przebiegu transmisji
nie uwzglÍdniono kilku sygna³Ûw po-
mocniczych (wszystkie wymieniono
w† tab. 1 ), ktÛre mog¹ m.in. wstrzymaÊ
lub przerwaÊ transmisjÍ w†przypadku
braku papieru lub wyst¹pienia b³Ídu
wewnÍtrznego kontrolera drukarki.
SzczegÛ³owa specyfikacja funkcji tych
sygna³Ûw jest istotna tylko w†przypad-
ku korzystania z†Centronicsa jako in-
terfejsu drukarkowego. W†przypadku
wykorzystania go jako uniwersalnego
interfejsu I/O, specyficzne zadania re-
alizowane przez dodatkowe sygna³y
steruj¹ce moøna zignorowaÊ, traktuj¹c
poszczegÛlne linie interfejsu jako
zwyk³e linie I/O przyporz¹dkowane re-
jestrom, ktÛrych adresy przedstawiono
w† tab. 2 .
W†wiÍkszoúci wspÛ³czeúnie oferowa-
nych komputerÛw, Centronics jest
przystosowany do dwukierunkowego
przesy³ania danych poprzez 8-bitowy
port danych. Schemat bufora wejúcio-
Klasyka: SPP
W†trybie SPP (Standard Parallel
Port), czyli w†trybie odpowiadaj¹cym
klasycznemu Centronicsowi, dane mo-
g¹ byÊ przesy³ane z†szybkoúci¹ ok.
50...150kB/s w†kierunku od komputera
do urz¹dzenia wspÛ³pracuj¹cego.
W†protokole obs³ugi transferu danych
przyjÍto potwierdzanie przez odbiornik
przyjÍcia kaødego bajtu danych, co
jednak zbytnio nie komplikuje trans-
misji. Przebiegi ilustruj¹ce pracÍ inter-
fejsu pokazano na rys. 1 , a†przebiega
ona nastÍpuj¹co:
Tab. 1. Sygnały interfejsu Centronics wraz z ich przypisaniem do rejestrów i numerów
styków w typowych złączach.
Numer styku
Numer styku
Nazwa sygnału Kierunek Dostęp Inwersja
w DB25
w 36−stykowym
poprzez
złączu Centronics
rejestr
1
1
nStrobe
we/wy Control
tak
2
2
Data 0
wy
Data
nie
3
3
Data 1
wy
Data
nie
4
4
Data 2
wy
Data
nie
5
5
Data 3
wy
Data
nie
6
6
Data 4
wy
Data
nie
7
7
Data 5
wy
Data
nie
8
8
Data 6
wy
Data
nie
9
9
Data 7
wy
Data
nie
10
10
nAck
we
Status
nie
11
11
Busy
we
Status
tak
12
12
PaperOut
we
Status
nie
13
13
Select
we
Status
nie
14
14
nAutoLineFeed we/wy Control
tak
15
32
nError
we
Status
nie
16
31
nInitialize
we/wy Control
nie
17
36
nSelectIn
we/wy Control
tak
Rys. 1.
18...25
19...30
GND
66
Elektronika Praktyczna 12/2001
32215487.008.png 32215487.009.png 32215487.010.png
 
K U  R S
Rys. 3.
Rys. 2.
wo-wyjúciowego ìprawdziwieî dwukie-
runkowego portu pokazano na rys. 2 .
Zaznaczony na czerwono sygna³ Enab-
le BiDir (bit 5†rejestru Control ) s³uøy
do blokowania i†uaktywniania trÛjsta-
nowego bufora wyjúciowego rejestru
'374. Jego zablokowanie (co wymaga
wpisania na bit 5†rejestru Control lo-
gicznej ì1î), czyli ustawienie buforÛw
wyjúciowych w†stan wysokiej impedan-
cji, umoøliwia odczytanie poprzez bu-
for wejúciowy '244 dowolnego dopro-
wadzonego stanu na wejúcia Da-
ta0..Data7 . Jeøeli bufor wyjúciowy nie
zostanie zablokowany, moøe ulec
uszkodzeniu wywo³anemu przez prze-
ci¹øenie pr¹dowe.
Istniej¹ takøe inne sposoby odczy-
tania 8-bitowego s³owa wejúciowego,
ktÛre moøna zastosowaÊ w†przypadku,
gdy wbudowany w†komputer interfejs
nie jest dwukierunkowy. Najprostsze
wydaje siÍ byÊ zastosowanie dostÍp-
nych dwukierunkowych linii steruj¹-
cych z†rejestru Control (jak to pokaza-
no na rys. 3 ), ale ze wzglÍdu na bez-
pieczeÒstwo sterownika (nie zawsze
jest on wyposaøony w†bufory z†otwar-
tym kolektorem!) lepiej jest zastosowaÊ
nieco bardziej z³oøony uk³ad ( rys. 4 ),
Rys. 4.
ktÛry umoøliwia przekazanie 8-bitowe-
go s³owa poprzez 4-bitowy port wej-
úciowy utworzony z†czÍúci (4 najstar-
szych bitÛw) rejestru Status . WybÛr
przesy³anej do komputera po³Ûwki baj-
tu odbywa siÍ poprzez zmianÍ stanu
logicznego na linii Strobe z†rejestru
Control (dla ì0î - cztery m³odsze bi-
ty, dla ì1î - cztery starsze bity).
Transfer danych prowadzony w†taki
sposÛb poch³ania stosunkowo duøo
czasu, ale z†punktu widzenia pewnoú-
ci dzia³ania jest on lepszy od sposobu
z†rys. 3.
Poziomy napiÍÊ przyporz¹dkowane
wejúciowym i†wyjúciowym stanom lo-
gicznym w†Centronicsie odpowiadaj¹
standardowi TTL. WydajnoúÊ pr¹dowa
poszczegÛlnych linii interfejsu Centro-
nics jest zaleøna od wykonania, ale
moøna przyj¹Ê, øe minimalna wydaj-
noúÊ pr¹dowa pojedynczej linii
(w obydwu kierunkach) wynosi 6mA.
Spotykane s¹ takøe interfejsy z†wyso-
kowydajnymi buforami pr¹dowymi,
ktÛre moøna obci¹øyÊ pr¹dem o†natÍ-
øeniu do 48mA.
Tomasz Jakubik, AVT
Tab. 2. Rozmieszczenie rejestrów obsługujących LPT w przestrzeni adresowej PC.
Adres
Nazwa Kierunek
Numer bitu
Opis
bazowy+0 Data Zapis
7
Data 0
(w niektórych
6
Data 1
wykonaniach także
5
Data 2
odczyt)
4
Data 3
3
Data 4
2
Data 5
1
Data 6
0
Data 7
bazowy+1 Status Odczyt
7
Busy
6
nAck
5
PaperOut
4
SelectIn
3
Error
2
IRQ (zanegowany)
1
0
bazowy+2 Control Odczyt/Zapis
7
6
5
Enable BiDir
Dodatkowe informacje
4
Enable IRQ via Ack
Dodatkowe informacje mo¿na znaleŸæ w Internecie
pod adresami:
- http://www.beyondlogic.org/pardebug/pdebug.htm,
- http://www.beyondlogic.org/spp/parallel.pdf,
- http://www.beyondlogic.org/epp/epp.pdf,
- http://www.beyondlogic.org/ecp/ecp.pdf,
- http://www.lvr.com/parport.htm,
- http://www.lpt.com/Downloads/downloads.htm.
3
Select
2
nInitialize
1
AutoLineFeed
0
Strobe
Uwaga! Adresy bazowe: LPT1 − 378h, LPT2 − 278h oraz LPT1 (tylko na karcie grafiki, obecnie rzadko
stosowane) − 3BCh.
68
Elektronika Praktyczna 12/2001
32215487.001.png 32215487.002.png 32215487.003.png 32215487.004.png 32215487.005.png 32215487.006.png 32215487.007.png
Zgłoś jeśli naruszono regulamin