Obsah
Úvod |
Paralelní port LPT je standardní součástí běžných počítačů PC pro paralelní komunikaci (paralelní přenos bitů signálu) s periferiemy pomocí 17 digitálních linek, které lze rozdělit na 8 datových signálů a 9 signálů pro řízení komunikace (handshaking) . PC s periferií lze spolehlivě propojit na vzdálenost 2m, v praxi lze komunikovat i na vzdálenost max. 5m, při správném stínění datových vodičů komunikačního kabelu. Původně byl paralelní port pro PC účelově vytvořen pro komunikaci s tiskárnou, tedy jednosměrný přenos dat od PC do tiskárny. Později však byl dalšími módy uzpůsoben i pro obousměrný přenos dat rychlostí až jednotek MB/s. Paralelní port byl v roce 1994 standardizován pod IEEE 1284. Tento standard definuje 5 módů činnosti: 1. SPP mode - Compatibility Mode (Centronics mode). |
Zapojení konektorů pro LPT
Pro paralelní port se nejčastěji používají 2 typy konektorů:
- 25 pin D-sub female konektor (obrázek 1.), který je dnes obvykle součástí základní desky PC
- 36 pin Centronics female konektor, který se obvykle vyskytuje na tiskárnách a jiných periferních zařízeních.
V tabulce 1. je popis jednotlivých pinů, signálů, které je reprezentují, a příslušnost k danému ovládacímu registru PC (Data, Status, Control) obou konektorů. Ve standardu IEEE 1284 definuje dále 36 pinový port podobný Centronics, ale menších rozměrů.
(D-Sub) |
(Centronics) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Poznámka: Tabulku pinů konektorů pro LPT s názvy v podobě pdf dokumentu lze stáhnout v Dokumentech nebo i s obrázky rozložení pinů Centronics konektorů v Rozložení pinů portů pro LPT dané standardem IEEE 1284 .
Definice signálů
Výstupní signály paralelního portu jsou definovány klasickou TTL logickou úrovní signálů, tzn. log. 1. odpovídá hladině +3.5V až +5V a log. 0 hladině 0V až +0.4V (viz obrázek 2.). Rozdílné hodnoty maximálních zátěžových proudů paralelního portu, které se liší v závislosti na fyzické realizaci paralelního portu. Maximální hodnoty odebíraného proudu se mohou pohybovat od 4mA až po 20mA. Proto je vždy nejvýhodnější na paralelním rozhraní s PC komunikujícího zařízení využít oddělovací buffer. |
Obr. 2. Definice napěť. úrovní pro TTL (vstupní napětí- input voltage, výstupní napětí - output voltage) |
Zásady bezpečné práce proti zničení portu | Adresy portů PC | ||||||||||||||||||
Narozdíl od sériového portu je paralelní port možné docela snadno nevědomky zničit, protože výstupy nejsou obvykle chráněny proti přetížení a statické elektřině. Proto je vhodné dodržovat následující bezpečnostní opatření:
|
Pro paralelní porty PC se obvykle definují a užívají 3 základní adresy, které ukazuje tabulka 2.
Adresa 3BCh byla původně určena pro dřívejší Video karty a dnes se již téměř nevyužívá.
|
Zapojení nejčastěji používaných kabelů
Tiskový kabel (Centronic) |
Redukce Centronic - LapLink
Použití: spojení dvou PC tiskovým kabelem (Centronic) jako LapLinkovým |
LapLink kabel
Použití: propojení dvou PC |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pro zvětšení klikněte na obrázek |
36 pin Centornics konektor (Do tiskového kabelu od PC 1) 25 pin D-sub konektor (Do PC 2)
|
Pro zvětšení klikněte na obrázek |
Zásady pro vytváření komunikačních kabelů |
Pro jakýkoliv datový kabel a pro kabel na paralelní port dvojnásobně platí, že každý datový vodič by měl být od sousedního kryt zemním vodičem (GND) nebo stíněním. Lze se tak vyhnout "přeslechům" mezi jednotlivými datovými vodiči a kabel bude možno používat pro vyšší přenosovou rychlost i na větší vzdálenost. Pokud se využívá plochého vodiče, vyplývá toto doporučení už z vlastního zapojení pinů paralelního portu. Pokud se používá svazek vodičů, je optimální použití kabelu, kde jsou vždy dvě žíly smotány dohromady, a jednu z nich použít jako další zemní vodič. Toto by se mělo dodržovat alespoň u datových vodičů.
Komunikační módy LPT portu
SPP Mode - Compatibility Mode |
Tento mód je taky často označován jako Centronics mode a je to základní mód pro standardní paralelní port původně určen pouze pro komunikaci PC s tiskárnou. Definován je jen přenos typu forward, tedy od PC k periferii, a rychlost přenosu se pohybuje jen do 150KB/s. Průběh komunikace je popsán následujícím obrázkem 3.
Obr. 3. Časový průběh komunikace v klasickém SPP módu
Popis fází přenosu :
- Zápis dat do datového registru.
- Program přečte stavový registr, aby zkontroloval zda tiskárna není zaneprázdněna (signál BUSY).
- Když není zaneprázdněna, pak zápis do Control registru způsobí stav low na lince nSTROBE
- Tiskárna přijme data a potvrdí příjem signálem nACK (stav low).
Mnoho dnešních integrovaných 1284 I/O řadičů má implementový tzv. Fast Centronics nebo Parallel Port FIFO Mode, kdy se i v tomto režimu využívá FIFO bufferů pro přenos. Pak data zapsané do FIFO portu budou přenesena k tiskárně s využitím hardwarově generovaných handshake signálů a tím se zvýší přenosová rychlost až na 500KB/s. Tento mód ale není definován standardem IEEE 1284.
SPP registrové rozhraní
Základní SPP mód paralelního portu je řízen 3 základními registry:
- Datový registr (Data Register) - určený pro zápis vysílaných dat
- Stavový registr (Status Register) - určený pro čtení stavů na lince
- Řídící registr (Control Register) - určený pro řízení perfierie, které jsou data vysílána
Přiřazení jednotlivých registru pinům portu je na následujícím obrázku 4.
Obr. 4. Přiřazení pinů portu k danému registru
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
Tab 4. Datový registr (Data Registr)
Na základní (base) adrese se vyskuje datový registr pro vyslání 8bitové hodnoty na linku. Tento registr je v tomto módu určený pouze pro zápis. Při případném čtení bude přečten poslední vyslaný bajt.
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
Tab. 5. Stavový registr (Status Register)
Stavový registr s adresou +1 od bázové adesy je určen pouze pro čtení a popisuje stav komunikující periferie (tiskárny).
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
Tab. 6. Řídící registr (Control Register)
Řídící register (Tab. 6.) je určen pro zápis a umožňuje řídít komunikující periferii (tiskárnu) prostřednictvím 5 výstupních bitů.
Nibble Mode |
Nibble mode je cesta, jak získat zpětný kanál, resp. obousměrnou komunikaci mezi periferií a PC, přímo z klasického SPP Compatible módu bez hardwarových úprav. Nutná je tedy jen podpora softwarová. Proto je limit v rychlosti přenosu na 100KB/s. Výhodou je schopnost používat tuto obousměrnou komunikaci na všech PC s LPT.
K přenosu se využívá 5 vstupních linek portu do PC primárně určené pro handshake. 4 z nich se však využívají pro přenos dat do PC. Využitím těchto linek může periferie vyslat byte jako posloupnost 2 tzv. nibblů (4 bity) ve dvou po sobě následujících datových cyklech. Oba přenosové cykly popisuje obrázek 5. a tabulka signálů 7.
Obr. 5. Časový průběh komunikace v obousměrném Nibble módu
SPP Signál
|
Nibble Mód
|
In/Out
|
Popis -- Využití signálů v Nibble Mode přenosu dat |
---|---|---|---|
nSTROBE
|
nSTROBE
|
Out
|
Není využíván pro zpětný přenos dat |
nAUTOFEED
|
HostBusy
|
Out
|
Nibble mód handshake signál. Nastavený do log.0 indikuje, že PC je připraven pro přenos. Nastaven do log.1 indikuje příjmutí dat. |
nSELECTIN
|
1284Active
|
Out
|
Nastaven do log.1, když PC je v 1284 transfer módu. |
nINIT
|
nINIT
|
Out
|
Nevyužíván pro zpětný přenos dat. |
nACK
|
PtrClk
|
In
|
Nastaven do log.0 indikuje platná data, nastaven do log.1 v odpovědi k HostBusy going high. |
BUSY
|
PtrBusy
|
In
|
Používán pro datový bit 3, pak 7 |
PE
|
AckDataReq
|
In
|
Používán pro datový bit 2, pak 6 |
SELECT
|
Xflag
|
In
|
Používán pro datový bit 1, pak 5 |
nERROR
|
nDataAvail
|
In
|
Používán pro datový bit 0, pak 4 |
DATA[8:1]
|
Nevyužit
|
|
Tab. 7. Přiřazení signálů v Nibble módu
Byte Mode |
Po implementaci rozhraní paralelního portu, někteří výrobci v čele s IBM zvýšili kapacitu přenosu vypuštěním budiče datových linek a umožnili tak obousměrnou 8bitovou komunikaci přes datové linky. Přenosová rychlost je 100 až 200 KB/s. Obrázek 6. ukazuje jeden přenosový cyklus v tomto módu a tabulka 8. popisuje jednotlivé signály.
Obr. 6. Časový průběh komunikace v obousněrném Byte módu
SPP Signál
|
Byte Mód
|
In/Out
|
Popis -- Využití signálů v Byte Mode přenosu dat |
---|---|---|---|
nSTROBE
|
HostClk
|
Out
|
Puls log. 0 v každém konci každého Byte mode přenosu dat indicuje příjem bajtu. Potvrzovací signál. |
nAUTOFEED
|
HostBusy
|
Out
|
Nastaven do log. 0 k indikaci, že zařízení očekává bajt. Nasteven do log. 1 k indikaci, že bajt byl přijat. Handshake signál. |
nSELECTIN
|
1284Active
|
Out
|
Nastaven do log. 1, když zařízení je v 1284 přenosovém módu. |
nINIT
|
nINIT
|
Out
|
Nevyužívá se. Nastaven na log.1. |
nACK
|
PtrClk
|
In
|
Nastaven do log. 0 k indikaci platných dat na datových linkách, nastaven do log. 1 pro odpověď na HostBusy v log. 1. |
BUSY
|
PtrBusy
|
In
|
Stav zaneprázdnění dopředného kanálu. |
PE
|
AckDataReq
|
In
|
Následuje nDataAvail |
SELECT
|
Xflag
|
In
|
Extensibility flag. Nevyužívá se v Byte mode. |
nERROR
|
nDataAvail
|
In
|
Nastaven do log. 0 periferií k indikaci, že zpětná data jsou připravena. |
DATA[8:]
|
DATA[8:1]
|
Bi-Di
|
Přenos dat - datový buffer. |
Tab. 8. Přiřazení signálů v Byte módu
EPP Mode |
EPP - Enhanced Parallel Port protocol byl původně vyvinut firmou Intel, Xircom a Zenith Data Systems, aby poskytnul výkonné propojení přes paralelní port a přitom byl kompatibilní se standardním paralelním portem. Tento protokol byl poprvé implementován v 386SL chipsetu (82360 I/O chip). Poté byl přijat jako do standardu IEEE 1284 jako pokročilý (advanced) mód.
Efekt tohoto módu je rychlost přenosu mezi 500KB/s až 2MB/s. Přenos se však vždy uskuteční vždy přenosovou rychlostí toho nejpomalejšího komunikujícího zařízení. To si obě komunikující zařízení zjistí z výměn a odezev na handshake signály nWait a nDataStrobe (viz. dále - obrázek 7.).
EPP protokol poskytuje 4 přenosové cykly:
- Data Write Cycle
- Data Read Cycle
- Adress Write Cycle
- Adress Read Cycle
Data cykly jsou určené pro přenos (transfer) dat mezi PC a periferií. Adresové cykly jsou určené k přenosu adresy kanálu, nebo příkazu a řídící informace. Oba je nutné zobrazit jako dva rozdílné přenosové (transfer) cykly.
SPP Signál |
EPP Mód |
In/Out |
Popis -- Využití signálů v EPP Mode přenosu dat |
---|---|---|---|
nSTROBE
|
nWRITE
|
Out
|
Aktivní v log.0 indikuje zápisovou operaci, zatímco v log.1 indikuje cyklus čtení. |
nAUTOFEED
|
nDATASTB
|
Out
|
Aktivní v log.0 a indikuje čtení dat resp. zápis dat. |
nSELECTIN
|
nADDRSTB
|
Out
|
Aktivní v log.0 a indikuje operaci čtecí adresy, resp operaci zápisu adresy. |
nINIT
|
nRESET
|
Out
|
Aktivní v log. 0. Reset periferií. |
nACK
|
nINTR
|
In
|
Přerušení od periferií. Užívá se k generování přerušení od periferie. |
BUSY
|
nWAIT
|
In
|
Handshake signál. Když je v log.0 indikuje OK stav pro začátek cyklu, když log.1 indikuje OK stav pro ukončení cyklu |
D[8:1]
|
AD[8:1]
|
Bi-Di
|
Obousměrné adresové / datové linky. |
PE
|
definován uživatelem
|
In
|
Může být využit rozdílně dle každé periferie. |
SELECT
|
definován uživatelem
|
In
|
Může být využit rozdílně dle každé periferie. |
nERROR
|
definován uživatelem
|
In
|
Může být využit rozdílně dle každé periferie. |
Tab. 9. Přiřazení a popis signálů v EPP módu
Obrázek 5. je ukázka jednoho datového zápisového cyklu . CPU signál nIOW zvýrazňuje celý handshake, který nastává v jednom I/O cyklu.
Obr. 7. Časový průběh komunikace v rozšířeném EPP módu (datový zápisový cyklus)
Popis fází přenosu v datovém zápisovém cyklu (Data-Write cycle):
- Program vykoná I/O zápisový cyklus na port 4 (EPP Data Port)
- nWrite linka uvolní zapisovací operaci a data jsou vyslána na paralelní port
- nDataStrobe zahájí indikaci zápisové operace dokud je nWAIT signál low
- Port čeká na potvrzení od přijímacího zařízení, dokud je nWAIT signál high
- nDataStrobe indikuje konec operace přenosu
- I/O cykl končí
- nWAIT indikuje možnost začátku dalšího cyklu
Obr. 8. Časový průběh komunikace v rozšířeném EPP módu (datový čtecí cyklus)
Poznámka: Paralelní porty s EPP před standardizací IEEE 1284, mohou mít trošku odlišný průběh některých handshake signálů.
EEP Registrové rozhraní
Následující tabulka 10. popisuje rozšíření registrů proti standardnímu SPP módu. Jak bylo uvedeno výše, SPP mode používá 3 registry: datový, stavový a řídící. EPP mód to rozšiřuje o několik dalších registrů viz. tabulka 10., která uvádí offset registrů od bázové adresy portu.
Jméno Portu | Offset | Mód | Čtení (Read) / Zápis (Write) | Popis |
---|---|---|---|---|
SPP Data Port
|
+0
|
SPP/EPP
|
W
|
Standardní SPP datový port. Nepodporuje autostrobing. |
SPP Status Port
|
+1
|
SPP/EPP
|
R
|
Čte vstupní stavové linky interfacu. |
SPP Control Port
|
+2
|
SPP/EPP
|
W
|
Nastavuje stav řídících (control) výstupních linek. |
EPP Address Port
|
+3
|
EPP
|
R/W
|
Generuje adresy čtecího nebo zápisového cyklu. |
EPP Data Port
|
+4
|
EPP
|
R/W
|
Generuje data čtecího nebo zápisového cyklu. |
Nedefinováno
|
+5 to +7
|
EPP
|
N/A
|
Využívá se různě v závislosti na implementaci. Mohou být použity pro 16 bit nebo 32 bit I/O. |
Tab. 10. Tabulka registrů využívaných v EPP módu
Jednoduchým pokusem o zápis na adresu bázová_adresa+4, lze zjistit zda zařízení tento režim komunikace podporuje.
ECP Mode |
Extended Capability Port protocol byl stvořen firmami Hewlett Packard a Microsoft jako pokročilý mód pro obousměrnou komunikaci PC s dalšími periferiemi jako je například scaner. Přenosová rychlost v tomto módu je až 800 KB/s bez využití DMA ( Direct Memory Access) a až 2MB/s s pomocí DMA. To platí při implementaci na ISA sběrnici. Dnes však při implementaci na PCI sběrnici PC lze dosáhnout 3 až 5 MB/s. Někdy se udává i až 8MB/s.
ECP protokol poskytuje dva komunikační cykly:
- Datové cykly (Data cycles)
- Příkazové cykly (Command cycles)
Plná registrová implementace a popis lze nalézt v dokumentu Microsoft: "The IEEE 1284 Extended Capabilities Port Protocol and ISA Interface Standard" (ecp_reg.pdf). Tento dokument definuje vlastnosti a implementaci, které IEEE 1284 standard nepostihuje. Jako například Run_Length_Encoding (RLE) datovou kompresi, FIFO buffery, DMA i programování.
RLE umožňuje real-time datovou kompresi s poměrem až 64:1, ale musí být povolena na obou komunikujících zařízeních. To je výhodné například při přenosu velkého množství dat obrázku ze scaneru. Adresování kanálů je také odlišné od EPP módu. ECP adresování (Channel addressing) je zde je určen k adresování mnoha logických zařízení jedním fyzickým zařízením. Například k jednomu paralelnímu portu jsou připojeny FAX, tiskárna a modem. Užitím ECP channel addressing lze přistoupit ke každému zařízení. Lze například přijímat data z modemu během doby, kdy datový kanál je busy vlivem tisku tiskárny.
V základním komunikačním módu nelze během signálu busy od tiskárny provádět jinou komunikaci. V ECP módu stačí jen adresovat jiný logický kanál a komunikace muže probíhat.
Stejně jako jiné 1284 rozšiřující módy, ECP protokol předefinovává klasické SSP signály a přidává další pro ECP handshake.
SPP Signál
|
ECP Mód
|
In/Out
|
Popis -- Využití signálů v ECP Mode přenosu dat |
---|---|---|---|
nSTROBE
|
HostClk
|
Out
|
Používán spolu s PeriphAck k přenosu dat a informace o adrese v přímém směru přenosu. |
nAUTOFEED
|
HostAck
|
Out
|
Poskytuje Command/Data status (Příkaz / Data stav) v přímém směru přenosu. Používán spolu s PeriphClk k přenosu dat ve zpětném směru přenosu . |
nSELECTIN
|
1284Active
|
Out
|
Nastavený do log.1, když zařízení je v 1284 transfer módu. |
nINIT
|
nReverseRequest
|
Out
|
Nastaven do log.0, když je kanál v zpětném směru přenosu. |
nACK
|
PeriphClk
|
In
|
Použiván společně s HostAck k přenosu dat ve zpětném směru přenosu. |
BUSY
|
PeriphAck
|
In
|
Používán s HostClk k přenosu dat nebo adresové informaci v přímém směru přenosu dat. Poskytuje Command/Data stav ve zpětném směru. |
PE
|
nAckReverse
|
In
|
Nastaven do log.0 k potvzení nReverseRequest signálu. |
SELECT
|
Xflag
|
In
|
Extensibility flag. |
nERROR
|
nPeriphRequest
|
In
|
Nastavený do log.0 periferií k indikaci, že zpětná data jsou dostupná. |
Data[8:1]
|
Data[8:1]
|
Bi-Di
|
Používaná k přenosou dat mezi periferií a PC. |
Tab. 11. Přiřazení a popis signálů v ECP módu
Obrázek 9. ukazuje průběh dvou dopředných cyklů přenosu (forward transfer cycles). V prvním cyklu se přenášejí data (forward channel data cycle), ve druhém příkazy (forward channel command cycle). To řídí signál HostAck. Když se nastavený stav high, indikuje začátek datového cyklu, když nastavený stav do low, indikuje počátek command cyklu. 8.bit datového bajtu je využit k indikování RLE vs. Channel addressing. Když je tento bit v log.0, pak předchozích 7 bitů reprezentuje tzv. Run_Length Count (0-127), když v log.1, reprezentují adresu kanálu (Channel address) 0-127.
Obr. 9. Časový průběh komunikace v ECP módu pro dopředný přenos dat (forward data transfer)
Poznámka: Protože se využívá FIFO bufferů je nutné podoknout, že příjímací zařízení má v FIFO bufferu data platná až časovém bodě 4, tedy po přechodu signálu HostClk do stavu high. Mezi body 3 a 4 je možné přenos přerušit. Pak ale nelze zaručit, že data byla úspěšně přenesena.
Obrázek 10. pak ukazuje zpětný přenosový cyklus (reverse transfer cycles), kde první je datový cyklus (reverse channel data cycle) následovaný příkazovým cyklem (reverse channel command cycle). V obrázku není zobrazen I/O read/write signál. To je díky ECP FIFO bufferům, které ruší vazbu ISA datových transferů, DMA nebo programovaných I/O od aktuálního PC/periferie přenosu dat. Větší bloky dat jsou přesouvány pomocí DMA (Direct Memory Access) a díky zrušené vazbě, softwarové drivery nepoznají, zda je vysílán 123 bajt nebo 342000 bajt. Pak například v případě tiskáren, software se o přenos nemusí starat, pouze hlídá, zda přenos je kompletní. Zároveň tento obrázek ukazuje rozdíl ECP módu od EPP módu. V EPP totiž software může libovolně mixovat režim čtení a zápis na linku. Naopak v módu ECP musí zařízení žádat o zpětný (reverse) přenos pomocí signálů nReverseRequest a nAckReverse. Navíc se případně musí čekat na ukončení přenosu DMA nebo přerušení od DMA.
Obr. 10. Časový průběh komunikace v ECP módu pro zpětný přenos dat (reverse data transfer)
ECP Software a registrové rozhraní
Specifikace Microsoftu "The IEEE 1284 Extended Capabilities Port Protocol and ISA Interface Standard" (ecp_reg.pdf) definuje registrové rozhraní adaptéry ISA s ECP založené na 1284. Tato specifikace definuje i operační módy, pod kterými může adaptér pracovat. Ty uvádí následující tabulka 12.
Mód
|
Popis |
---|---|
000
|
SPP mode |
001
|
Bi-directional mode (Byte mode) |
010
|
Fast Centronics |
011
|
ECP Parallel Port mode |
100
|
EPP Parallel Port mode |
101
|
(reserved) |
110
|
Test mode |
111
|
Configuration mode |
Poznámka: Mód EPP není specifikován protokolem ECP, ale takto bývá implementován většinou řadičů.
Registrový model pro ECP port vychází ze standardního paralelního portu, ale definuje 6 registrů. Následující tabulka 13 je popisuje. Důležité je, že definice registru závisí na právě nastaveném ECP módu (viz. předchozí tabulka 12.).
Offset
|
Jméno
|
Čtení (Read) / Zápis (Write)
|
ECP Mode
|
Funkce |
---|---|---|---|---|
000
|
Data
|
R/W
|
000-001
|
Data Register (Datový Registr) |
000
|
ecpAfifo
|
R/W
|
011
|
ECP Address FIFO |
001
|
dsr
|
R/W
|
všechny
|
Status Register (Stavový registr) |
002
|
dcr
|
R/W
|
všechny
|
Control Register (Řídící registr) |
400
|
cFifo
|
R/W
|
010
|
Parallel Port Data FIFO |
400
|
ecpDfifo
|
R/W
|
011
|
ECP Data FIFO |
400
|
tfifo
|
R/W
|
110
|
Test FIFO |
400
|
cnfgA
|
R
|
111
|
Configuration Register A |
401
|
cnfgB
|
R/W
|
111
|
Configuration Register B |
402
|
ecr
|
R/W
|
všechny
|
Extended Control Register (Rozšířený řídící registr) |
Tab. 13. Tabulka registrů využívaných v ECP módu dle zvoleného módu registrů
Z důvodu obsáhlosti tématu, zde již nebudu popisovat jednotlivé definice bitů v každém ze 6 registrů. Zájemce odkazuji na velmi podrobný popis ve specifikaci Microsoftu: "The Extended Capabilities Port Protocol and ISA Interface Standard", která je součástí dokumentu ecp_reg.pdf, případně datasheet konkrétního I/O řadiče.
Programový přístup na LPT
Pro programování |
DOS / Windows 95, 98, Me | Windows NT4, 2000, XP |
Pro programový přístup pod OS MS-DOS stačí využít příkazů pro přímý zápis do registrů LPT pro konkrétní programovací jazyk. Pro programový přístup pod OS Windows 95/98/Me lze na internetu najít mnoho univerzálních driverů pro potřeby uživatelů a programátorů pro přímé programování pod Windows 95/98. Například:
|
S příchodem OS Windows na bázi NT však nastávají problémy s přístupem na paralelním port. Programy s přístupem na LPT psané klasickým způsobem v kapitole pro DOS / Windows 95, 98, Me nelze použít, protože vyvolávají chybovou hlášku (viz. obrázek) a program je přerušen. To je způsobenou ochrannou OS, který pracuje v tzv. chráněném módu, který přiděluje práva k přístupu jen některým programům. Ten rozděluje všechny programy do dvou kategorií User mode (běží v ring3 módu) a Kernel mode (běží v ring0 módu). Běžně psané programy spadají právě do User mode, který neumožňuje přístup na porty příkazy IN, OUT apod. V kernel módu tyto omezení nejsou, proto je nutné použít driver, který zde běží. Tento driver pak může využít běžící uživatelský program pro přístup na port. Na internetu lze najít mnoho univerzálních driverů pro potřeby uživatelů a programátorů. Například:
Programový test funkce čtení a zápisu na LPT port 0x378 pro jednotlivé drivery jsem prováděl v programovacím jazyku C++ (program C++ Builder 5). |
Pro starší programy pod Windows NT4/2000/XP |
Obecně | Některé programy |
Jak již bylo popsáno výše, programy využívající jakýkoliv přístup na paralelní port PC programované klasickým způsobem pro OS DOS nebo Windows 95/98, nelze samostaně pod OS Windows NT4/2000/XP provozovat. K jejich správné funkci je však možné využít některý univerzálních ovladačů (programů), které běží na pozadí a umožňují spuštění i takových to starších programů. Více podrobných informací na toto téma se lze dočíst v článcích HW serveru: Přímý přístup na IO porty počítače pod Windows 2000/XP Provozování aplikací na operačních systémech Windows NT/2000/XP |
Podrobnější popis obou ovladačů lze najít v článku Přímý přístup na IO porty počítače pod Windows 2000/XP Poznámka: Oba programy jsem otestoval jako funkční pod Windows XP |
Programy pro ovládání LPT
DOS / Windows 95, 98, Me | Windows NT4, 2000, XP |
|
|
Poznámka : Programy zde uvedené byly odzkoušeny jako plně funkční v OS Windows 98 nebo XP (dle programu).
|
|
DOWNLOAD & Související odkazy
|
|
|
Literatura k LPT
- Götz Sören, Mende Reiner : Měření, řízení a regulace s Delphi, BEN 2004 - popis využití LPT portu v módu EPP
- Matoušek David : Udělejte si z PC... 1. díl , BEN 2004 - programový přístup na LPT pod Windows i DOS
- Matoušek David : Udělejte si z PC v Delphi..., 1.díl, BEN 2003 - programový přístup na LPT v módu SPP
- Matoušek David : Udělejte si z PC... 2. díl , BEN 2004 - LPT port ve standadrdu SPP/EPP/ECP
- Burkhard Kainka, Hans-Joachim Berndt : Využití rozhraní PC pod Windows, HEL 2000 - využití LPT portu pod Windows 95/98
- Vlach Jaroslav : Počítačová rozhraní, BEN 2000 - obecný popis LPT portu
Další zajímavé odkazy
Stránky na HW Serveru
- /programovani/win_porty/spousteni_aplikaci_windows.html
- /Teorie-a-praxe/Programovani/ART1044-Primy-pristup-na-IO-porty-pocitace-pod-Windows-2000-XP.html
- /software/lpt_stav_automat/index.html
- /programovani/win_porty/smport.html
- /software/userport/userport.html
- /constrc/ad_lpt/ti_ads7813.html
- /constrc/i2c_lpt/i2c_lpt.html
- /programovani/x86_porty/lpt_clk_gen.html
- /externi/68/
Web stránky v angličtině:
- http://www.beyondlogic.org/parallel/parallel.htm - Interfacing the Standard Parallel Port
- http://www.lvr.com/parport.htm - vše o paralelním portu anglicky + mnoho různých odkazů
- http://www.fapo.com - výborný popis standardu IEEE 1284 pro paralelní porty s podrobným popisem všech módů
- http://www.logix4u.cjb.net - stránky věnované řešení problému přístupu na LPT ve Windows NT/2000/XP
- http://www.phm.lu/documentation/connectors/Parallel.asp - popis portů pro LPT
- http://www.angelfire.com/pa2/jcgr/tecnica/PP/pp.htm - obecný popis paralelního portu i s popisem přístupu v ASM a C
- http://home.wxs.nl/%7Em.f.hajer/lpt_port_support_on_windows_nt.htm - přístup na LPT pod Windows
- http://neil.fraser.name/software/Parallel port monitors.htm - programy pro řízení LPT portu pro Windows, DOS, Unix
- http://www.visioneer.com/paratroubleshooting.asp - General Parallel Communication Troubleshooting Steps (Windows)
- http://ee.cleversoul.com/parallel_port.html - stručný popis paralelního portu s mnoha dalšími odkazy na drivery
- http://www.doc.ic.ac.uk/~ih/doc/par/doc/intro.html - IBM-PC Parallel Printer Port Introduction
Web stránky v češtině:
- http://www.manualy.sk/conect/con2info.html - stránka o propojování počítačů přes LPT
- http://people.vslib.cz/miroslav_novak/compasci.htm - návod na různé přípravky pro LPT port PC
- http://www.tydyt.cz/kabely/kabely/cen.htm - propojení LPT portu PC a tiskárny
- http://www.manualy.sk/lpt.html - zásady pro práci s LPT porty PC
- http://www.prochazka.zde.cz - příklady programů a driverů pro Windows pro LPT port
Web stránky v němčině:
- http://www.inf.hs-zigr.de/~boehm/rt991/lueth/SPP%20EPP%20ECP.html - podrobný popis struktury LPT a jeho módů
Komentáře
otazka
Zaujimalo by ma, ako to funguje s portmi LPT a COM, ktore nie su priamo na pocitaci ale su realizovane adapterom cez USB.
Škoda penazí za tie
Škoda penazí za tie prevodníky.. funkcia je problematická.
Spravte si RLE umožňuje
Spravte si RLE umožňuje real-time datovou kompresy -> kompresi, jinak vcelku dobrý článek...