Ovladač pro paralelní port pci. Instalace ovladače pro práci s portem LPT

Setkání s ním vřele doporučujeme. Najdete tam spoustu nových přátel. Navíc je nejrychlejší a efektivní způsob kontaktujte administrátory projektu. Sekce Antivirové aktualizace nadále funguje – vždy aktuální bezplatné aktualizace pro Dr Web a NOD. Nestihli jste si něco přečíst? Celý obsah tickeru naleznete na tomto odkazu.

Práce s LPT portem ve Win NT/2000/XP

LPT port (L ine P rin T er) je port paralelního rozhraní, který byl původně vytvořen pro připojení tiskárny. BIOS poskytuje podporu pro port LPT, který je nezbytný pro organizaci výstupu přes rozhraní Centronics. Adresový prostor portu zaujímá rozsah &H378-&H37F

Port LPT má 12 výstupních a 5 vstupních linek. Tohle je docela velký počet linky dělá možné spojení do portu jednoduchého zařízení, které nemusí mít ani vlastní mikrokontrolér. Proto je tento port, i přes vymizení tiskáren s LPT rozhraním, aktivně využíván pro připojení jednoduchých programátorů paměťových čipů, JTAG rozhraní pro flashování (náhrada softwaru) satelitních přijímačů, DVD přehrávačů a dalších elektronické technologie. Port LPT je také oblíbený mezi moddery, protože umožňuje připojit LCD displeje k počítači bez vytváření složitých desek rozhraní.

Windows 2000/XP neumožňuje aplikacím přímý přístup k I/O portům. Chcete-li to provést, musíte použít ovladač spuštěný v režimu KERNEL (v režimu jádra operačního systému).

Omezení přístupu k I/O portům pro běžné aplikační programy (běžící v uživatelském režimu) činí operační systém stabilnější. I když na druhou stranu nikdo nebrání programátorovi napsat ovladač, který k portům přistupuje.

Zajímalo by mě k čemu procesor Intel x86, můžete napsat ovladač, který v zásadě používá jeden ze dvou různé přístupy. První možností je, že k portům přistupuje samotný ovladač a aplikační program řidiči pouze říká, co má dělat. Tato možnost v obecný případ je standardní a preferované.

K vyřešení problému existují čtyři oblíbené možnosti ovladače, které umožňují aplikačnímu programu přístup k I/O portům: ovladač DLPortIO, Řidič UserPort, Řidič DejteIO.sis, Řidič Port95nt.

Všechny čtyři možnosti jsou téměř rovnocenné.

Ovladač DLPortIO

DLportIO - ovladač pro přístup k portu z balíčku Ovladač LINX od společnosti Scientific Software Tools, Inc. (http://www.sstnet.com) ve zkrácené podobě (bez popisu a zbytečné dokumentace). Pro normální operace Konkrétně lze doporučit programy údržby pro LCD indikátory tato možnost ovladače.

Samotný ovladač se skládá ze dvou součástí:
. DLPortIO.dll - Win32 DLL poskytující hardwarové I/O a
. DLPortIO.sys - ovladač pro WinNT, běžící v režimu jádra OS (není vyžadován pro Win95/98)

V instalačním balíčku ovladače je kromě těchto dvou součástí také soubor Install.exe, který přesune dvě výše zmíněné do složky Ovladače pro Windows a jejich registraci v systému.

Více k tomuto ovladači není co napsat. Není nutné žádné nastavení. Staženo, nainstalováno, použito. Nezapomeňte se podívat na konec článku a přečíst si o zajištění funkčnosti LPT portu.

Instalace je jednoduchá - spusťte soubor Install.exe a nainstalujte. Po dokončení instalace se podívejte do složky C:\Windows\System32\drivers a zkontrolujte přítomnost dvou souborů ovladačů (DLPortIO.sys a DLPortIO.dll). Pokud vidíme, že tyto soubory nebyly nikdy zkopírovány, vezmeme je z instalační balíček a zkopírujte jej ručně. Nebojte se, vašemu počítači se nic špatného nestane. Restartujeme počítač a pracujeme s LPT portem.

Pokud náhle v důsledku manipulace se zařízením obdržíte od řidiče zprávu takto: "dlportio.sys ovladač zařízení nenačteno. Port I/O nebude mít žádný účinek", nepropadejte panice. Tento problém je opraven následovně:
. Spusťte regedit.
. Jdeme na pobočku v registru HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.
. Ve složce dlportio změňte hodnotu parametru Start na 1 .
. Restartujte počítač.

Ovladač UserPort

Řidič UserPort otevírá přístup k portům ve Win NT/2000/XP pro programy. Tuto verzi ovladače portu LPT nejčastěji používají „technici“, kteří pracují s programátory a JTAGy, protože ovladač má alespoň nějaké konfigurační nastavení.

Archiv ovladačů obsahuje tři soubory:
. UserPort.sys - ovladač pro WinNT, běžící v režimu jádra OS,
. UserPort.exe je program pro konfiguraci ovladače a
. UserPort.pdf - soubor s popisem.

Instalace UserPort:
. 1. Rozbalte archiv do samostatné složky.
. 2. Zkopírujte soubor UserPort.sys do C:\Windows\System32\drivers

Nastavení UserPort:
. Spusťte UserPort.exe.
. Před námi se objeví panel se 2 okny.

Levé okno odkazuje na program běžící v okně DOS, pravé na celá obrazovka. Standardně obsahují čísla portů LPT – všechna lze odstranit pomocí tlačítka „Odebrat“. V obou oknech musíte zadat požadovaná čísla portů, které plánujete používat.

Pro použití z ovladače s většinou programátorů, JTAGů a servisních programů displeje přidejte do levého sloupce následující parametry:
378 , 379 A 37A Pro LPT1
278 , 279 A 27A Pro LPT2(Pokud je adresa portu LPT změněna v systému BIOS).

Dovolte mi vysvětlit, co čísla znamenají. 0x378- toto je adresa portu.
. Adresa 0x378 volal základní a používá se pro psaní a čtení data do az portu přes datovou sběrnici D0-D7.
. Adresa 0x379 (základní+1) vytvořený pro číst bity stav ze zařízení připojeného k portu LPT.
. Adresa 0x37A (základní+2) slouží pro bitový záznam ovládání zařízení připojeného k portu LPT.

Přidejte to takto:
0x378-0x378
0x37A-0x37A



Adresy portů musíte přidat do seznamu pomocí vstupního okna a pomocí tlačítka "Přidat". Adresa 0x379 většinou není potřeba a lze ji vynechat, protože je určena číst bity stav ze zařízení připojeného k portu LPT a většina zařízení (zejména programátory, JTAG a LCD indikátory) negeneruje stavové signály V případě potřeby můžete naopak zadat celý rozsah adres přidělených systémem pro port LPT 0x378-0x37F.

Pojďme Kontrolní panel, Systém, vyberte kartu Vybavení, správce zařízení, přejděte na Porty (COM a LPT) a podívejte se na vlastnosti portu LPT, přes který chcete navázat spojení. V okně Vlastnosti otevřete kartu Zdroje a podívejte se na hodnotu parametru Rozsah vstupů/výstupů (I/O).. (V systému Windows XP se obvykle rovná 378 - 37F)

Po vygenerování seznamu adres musíte kliknout na tlačítko "Start", spustí se ovladač a zobrazí se zpráva:



Poté klikněte na tlačítko „Aktualizovat“, ovladač se zaregistruje v systému, poté na „Konec“. Během používání ovladače samozřejmě není nutné mačkat tlačítko „Stop“.

Pokud se systém po kliknutí na tlačítko "Aktualizovat" restartuje, musíte zkusit spustit registraci ovladače v systému s právy správce nebo se pokusit dočasně deaktivovat firewall nebo antivirus, které mohou blokovat zásah do systémové procesy. Pokud něco nefunguje, přečtěte si UserPort.pdf

Chcete-li zkontrolovat, zda se objevil přístup k portům, můžete spustit program "lpt-test.exe".

Po spuštění programu se zobrazí okno s následujícím obsahem:



Absence zprávy „LPT port se testuje (adresa XXXh)“ a řádky za ní znamenají, že ovladač nefunguje.

Tento program jednoduše odešle do datového registru Dx a řídicího registru Ux portu LPT různá čísla a pak je přečte. Stavový registr portu LPT Sx je pouze pro čtení. Na obrazovce se zobrazí číslo a adresa testovaného portu LPT. Pokud je port v pořádku, neměly by být vydávány žádné zprávy pro registry Dx a Ux.



LPT-TEST v1.03 1995-2003 Copyright (C) S.B.Alemanov. Moskva "BINAR".
Během testování by k portům neměla být připojena žádná periferní zařízení.
Dx - reg. data (out), Ux - reg. ovládání (out), Sx - reg. stav (inp).

Testuje se port LPT1 (adresa 378h)
2. kontakt (D0) - ne "1"
3. kontakt (D1) - ne "1"
4. kontakt (D2) - ne "1"
5. kolík (D3) - bez "1"
6. kolík (D4) - bez "1"
7. kolík (D5) - bez "1"
8. kolík (D6) - bez "1"
9. kolík (D7) - bez "1"
1. kontakt (U0) - ne "1"
14. kolík (U1) - ne "1"
17. kolík (U3) - ne "1"
1. kontakt (U0) - ne "0"
14. kolík (U1) - bez "0"
17. kolík (U3) - bez "0"
15. kontakt (S3) - bez "0"


Pokud jsou registry Dx nebo Ux vadné, zobrazí se zpráva „no 0“ nebo „no 1“ a zobrazí se číslo pinu na konektoru LPT (signály na tomto pinu lze zobrazit osciloskopem). Vstup stavového registru Sx může být buď "0" nebo "1", ale obvykle, když k portu LPT není nic připojeno, mají všechny vstupy stavového registru "1". Výskyt stavu „0“ na vstupu registru může být známkou toho, že vstup byl přerušen, pokud tam předtím vždy byla „1“.
Pokud je na některých strojích vadný datový nebo řídicí registr, pak se přístup k portu LPT vůbec neobjeví. BIOS po zapnutí počítače zřejmě otestuje LPT port a pokud je vadný, tak jej zakáže.

Pokud se vyskytnou problémy, je možné, že některé ovladače zasahují do provozu tím, že periodicky vysílají pulsy do portu LPT (to lze vidět na osciloskopu). Můžete se například odpojit od portu LPT v nastavení tiskárny:
vypněte LPT1: Port tiskárny
povolit FILE: Tisk do souboru

Po vyřešení všech problémů a úspěšném testu by se měl objevit přístup k portům a můžete spustit program, který používá port LPT. V opačném případě nebude zařízení připojené k portu na takovém stroji fungovat.

Ovladač GiveIO.sys

V roce 1996 provedl americký programátor Dale Roberts řadu experimentů, jejichž výsledkem byl ovladač GiveIO.sys. Až dosud zůstává tento ovladač jedním z populárních nástrojů, který umožňuje aplikačnímu programu přístup k I/O portům.

Sám autor ovladače důrazně doporučuje používat tento ovladač pouze pro účely ladění. Finální verze aplikačního programu by měl namísto nezávislého přístupu k I/O portům svěřit tento úkol ovladači napsanému speciálně pro tyto účely. Ovladač se musí chovat „správně“ tím, že zkontroluje, zda zařízení již nepoužívá nějaká jiná aplikace.

Pokud jste si však naprosto jisti, že požadované I/O porty kromě vás nikdo nepoužívá (například nemáte k LPT připojenou tiskárnu), můžete bezpečně použít ovladač GiveIO.sys.

Instalace ovladače:

1. Stáhněte si archiv, rozbalte a zkopírujte soubor GiveIO.sys do adresáře C:\Windows\System32\Drivers (za předpokladu, že váš Windows je nainstalován v adresáři C:\Windows).
. 2. Spusťte soubor install.reg. Na obrazovce se objeví následující zpráva:


. 3. Odpovídáme kladně. Zobrazí se zpráva oznamující, že informace byly úspěšně vloženy do registru. Pokud chcete, můžete si to ověřit. Spustíme editor registru regedit.exe a ve větvi HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\giveio Kontrolujeme přítomnost následujících záznamů:


. 4. Restartujte počítač a zkontrolujte fungování programů pomocí ovladače.

Řidič GiveIO.sys lidé ji aktivně používají a postupem času se objevily další možnosti instalace.

Například - řidič GiveIO.sys pokud existuje soubor s "informacemi o hardwaru" GiveIO.inf lze nainstalovat pomocí apletu "Instalace hardwaru".




Ukážeme si ovladač GiveIO.sys operační systém takže věří v existenci zařízení GiveIO.

Stáhněte si sadu souborů pro tuto možnost instalace ovladače GiveIO.sys(giveio_sys_v2.rar - 78 kb). Archiv obsahuje soubory GiveIO.sys a GiveIO.inf a také podrobné pokyny návod k instalaci s ilustracemi.

Kromě možností pro „ruční“ instalaci ovladače bylo napsáno několik verzí instalačního programu, které provádějí instalaci automaticky.

Stáhněte si sadu souborů pro automatická instalaceŘidiči GiveIO.sys(giveio_sys_install.rar - 28 kb). Archiv obsahuje soubory GiveIO.sys a instdrv.exe a také soubor remove-giveio.cmd, se kterým ovladač GiveIO.sys lze odstranit ze systému.

Ovladač port95nt

Termín " Řidič Port95nt" zde nebude zcela správný. V podstatě se jedná o stejný ovladač DLPortIO z balíčku Ovladač LINX z Scientific Software Tools, Inc., jedině v plná verze, s několika nástroji pro správu portů, s popisem a mnoha příklady pro programátory. Běžný uživatel nemá z dalších komponent žádný užitek a komponenty ovladače DLPortIO.sys a DLPortIO.dll jsou úplně stejné jako ve zkrácené verzi.

Port95nt jsem uvedl jako ovladač ze dvou důvodů. První je dokončit seznam odkazů na ovladače portů LPT nalezené na internetu.

Druhým důvodem je, že v některých případech mohou nastat problémy s instalací zkrácené verze DLPortIO pod WinXP. Obvykle, ale ne často, k tomu dochází v ořezaných „autorských“ sestaveních WinXP. V tomto případě si můžete vzít plnou verzi instalátoru (1,5 MB). I když podle mého názoru bude rychlejší to ručně vložit požadovanou složku DLPortIO.sys a DLPortIO.dll, proč se obtěžovat výběrem instalačního programu, který to dokáže za vás.

Dodatečná opatření

Kromě instalace jednoho z výše uvedených ovladačů je pro normální provoz LPT portu pod OS WinXP potřeba upravit registr pomocí souboru REG xp_stop_polling.reg(xp_stop_polling.rar – 0,48 kb)

Pod WinXP jsou zařízení používající port LPT někdy nestabilní. Příčinou těchto selhání může být podsystém Plug-and-Play (PnP) ve Windows, který pravidelně dotazuje LPT, aby detekoval připojená zařízení. K tomuto dotazování dochází při spouštění systému, ale může k němu dojít i během provozu. Bohužel ovladač DLportIO.sys a další možnosti ovladače neblokují přístup k LPT z jiných programů při práci s klientským portem tohoto řidiče a subsystém PnP má jistotu, že port není zaneprázdněn, přistupuje k němu a narušuje práci externí zařízení. K vyřešení problému se používá soubor REG. xp_stop_polling.reg. Tento soubor zapisuje do registru Windows klíč, který zakáže takové dotazování za běhu systému.

Kromě instalace ovladače a omezení současného přístupu programů k portu je pro zajištění hardwarové kompatibility a normálního provozu zařízení s LPT portem nutné nastavit správnou adresu A provozní režim portu(„Normální“, SPP nebo EPP, ale ne ECP).

Následující parametry lze konfigurovat pomocí nastavení BIOS:

Základní adresa, která může být 378h, 278h a 3BCh. Při inicializaci BIOS zkontroluje přítomnost portů podle adresy přesně v tomto pořadí a podle toho přiřadí detekovaným portům logická jména LPT1, LPT2, LPT3. Adresa 3BCh má adaptér portu umístěný na desce MDA nebo HGC (předchůdci moderní grafické karty). Většina portů je standardně nakonfigurována na adresu 378h a lze je přepnout na 278h.

Použitá linka požadavku na přerušení, IRQ7 se obvykle používá pro LPT1, IRQ5 pro LPT2. V mnoha aplikacích pro stolní počítače se přerušení tiskárny nepoužívají a tento vzácný počítačový zdroj lze ušetřit. Při použití vysokorychlostních režimů ECP (Fast Centronics) však může provoz přerušení výrazně zlepšit výkon a snížit zatížení procesoru.

Režim ECP zároveň nelze použít u zařízení, která vyžadují těsné časování (programátory a rozhraní JTAG).

Na závěr něco málo k terminologii:

. SPP(Standardní paralelní port - standardní paralelní port). Pro zjednodušení porozumění je v BIOSu často označen výrazem " Normální".
. EPP(Enhanced Parallel Port) - možnost vysokorychlostního obousměrného rozhraní. Účel některých signálů byl změněn, byla zavedena schopnost adresovat několik logická zařízení a 8bitový datový vstup, 16bajtová hardwarová vyrovnávací paměť FIFO. Maximální rychlost výměny je až 2 Mb/s.
. ECP(Enhanced Capability Port) – inteligentní verze EPP. Přidána možnost rozdělení přenášené informace pro příkazy a data, podpora DMA a komprese přenášených dat metodou RLE (Run-Length Encoding).

S otázkou portů se setkal každý, kdo si někdy zkoušel sestavit PC svépomocí nebo zakoupit některou z komponent. Paralelní nebo sériové? Čtyřpinový nebo 16pinový konektor? Výstup přes port nebo paměť? Všechny tyto otázky vyvstávají při studiu tohoto tématu a výběru správného kabelu.

Přístav

co je to port? Jedná se o speciální konektor v PC, který funguje jako spojovací článek mezi různými typy zařízení a počítačovým systémem. Porty jsou podmíněně synonymem pro konektory, které jsou potřebné pro provoz periferních zařízení oddělených od architektury PC. Například naproti tomu stojí za zmínku, že síťový konektor, respektive místo pro připojení čipu a RAM, se nenazývá port.

Některé porty mohou podporovat zapojování a odpojování za provozu, některé vyžadují nejprve vypnutí systému a poté připojení portu.

Hardwarový port se dodává v různých typech. To zahrnuje paralelní rozhraní, sériové, USB, PATA/SATA, PS/2 a čtyři moderní video rozhraní: Display Port, HDMI, VGA, DVI.

Paralelní

Budeme mluvit o jednom z těchto typů rozhraní. Parallel byl vytvořen pro PC jako propojení mezi periferním zařízením a počítačem. Li mluvíme o tomÓ počítačová technologie, pak tento typ fyzicky implementuje paralelní připojení, což je celkem logické.

Často můžete slyšet výraz „paralelní port tiskárny“, a to není bez důvodu. Typ tohoto rozhraní hned po svém zrodu dostal názvy Printer Port a Centronics Port.

Start

Toto jméno opravdu vzniklo z nějakého důvodu. Rozhraní bylo vyvinuto společností Centronics, která s ním v roce 1970 vydala tiskárnu. Na přístavu pracovaly společnosti Howard a Robinson. Nikdo neplánoval vytvořit nový typ nebo učinit revoluční objev. Vše se de facto stalo a paralelní port se stal průmyslovým standardem.

V té době existovalo mnoho různých kabelů, které výrobci používali. Oblíbené byly například konektory DC-3, 36, 25 a 50 pinů.

Rozvoj

Vývoj portu tiskárny byl rychle zvednut. Společnosti jedna po druhé začaly implementovat své verze. Začaly se objevovat ploché možnosti pro velké množství kolíků. Společnost Dataproducts pracovala s rozhraním a vyvinula DC-37, který byl hostitelem, a 50pinový port, který se připojoval k tiskárně.

Dataproducts vytvořil několik možností najednou. Paralelní připojení bylo možné realizovat na krátké vzdálenosti do 15 metrů a pro dlouhé spoje do 150 metrů. Toto rozhraní vydrželo dlouho. Až do 90. let jej mnoho výrobců využívalo jako možnost.

americký společnost IBM Rozhodl jsem se také přispět k vytvoření paralelního portu počítače. V době svého prvního vydání osobní počítač bylo možné se seznámit s úpravou Centronics. Je zajímavé, že mnoho uživatelů dostalo okamžitě podmínku. S tímto rozhraním mohly fungovat pouze přepracované tiskárny Epson, které obsahovaly logo IBM.

Společnost tvrdě pracovala na standardizaci kabelu formátu DB25F. Poté začali výrobci tiskáren standard implementovat do svých modelů. A na počátku 90. let se populární port Centronics začal měnit na IEEE 1284.

Odrůda

Novinka se tedy začala používat a získala si své příznivce. IEEE 1284 má jiný název - LPT. Paralelní port získal mezinárodní standardizaci a stále slouží k připojení periferních zařízení.

Stejně jako předchozí možnost se častěji používá k aktivaci tiskárny, skeneru a různých externích zařízení. Na rozdíl od předchozí modifikace bylo možné vytvořit spojení mezi dvěma počítači a aktivovat mechanismy dálkového ovládání.

Základem pro IEEE 1284 byl port Centronics a jeho různé variace.

Srovnání

Jak již bylo zmíněno dříve, rozhraní Centronics bylo vytvořeno stejnojmennou společností a bylo široce používáno pro počítače IBM PC. Díky tomuto konektoru bylo možné připojit tiskové stroje. Dlouho byl považován za hlavní, i když oficiálně nebyl.

Nejprve byl vytvořen pro jednosměrný přenos informací, takže byl ideální pro tiskárny. Když začaly práce na úpravách duplexu, bylo rozhodnuto formalizovat jednu z nově vytvořených norem. Tak se zrodilo EEE 1284.

Odrůda

Co je to paralelní port? Na straně počítače je zastoupen 25pinovým konektorem ve dvou řadách formátu DB-25-female. Ihned je třeba poznamenat, že se jedná o takzvaný „samičí“ konektor, ale existuje podobný konektor - „samec“, který byl dříve používán v počítačích jako COM port.

Periferní zařízení je často vybaveno 36pinovým mikrokonektorem ve formě pásky, takže kabel má na jedné straně 25 DB-25-samec a připojuje se k PC, a na druhé straně - 36 IEEE 1284-B pinů . Někdy tato možnost nahrazuje port MiniCentronics, který je reprezentován 36pinovým AC kabelem.

Mezi všemi jsou i CC kabely, na jejichž obou stranách je MiniCentronics. Jedná se o velmi vzácnou modifikaci, určenou pro zařízení s standard IEEE 1284-II.

Protože se jedná o standard, má určité požadavky, které je třeba dodržovat. Například délka kabelu nesmí být větší než tři metry. Prezentována je samotná budova kroucené páry na obecné nebo individuální obrazovce. Páskové verze jsou vzácné.

Pokud se podíváte pozorně na starší modely skenerů, místo IEEE 1284-B byl také port DB-25-male. Zajímavé je, že taková zařízení měla další konektor DB-25-female, aby bylo možné připojit tiskárnu. Skener tedy přenášel informace přes dvě rozhraní.

Fyzické provedení

Hlavní port Centronics, jak již bylo zmíněno dříve, byl jednosměrný paralelní port. Kabel implementoval hlavní charakteristiky. Bylo zde tedy 8 signálních linek pro pohyb, záblesky a linka stavu zařízení.

Jednosměrné rozhraní samozřejmě umožňovalo přenos materiálů jedním směrem z počítače do zařízení. Navzdory tomu byla technologie poněkud širší. Bylo jich pět zpětné linky kdo sledoval stav zařízení. Rychlost, kterou bylo možné přenášet informace, kolísala a vystoupala na 1,2 Mbit/s.

Rozšíření

Všechny počáteční úpravy byly později kombinovány a standardizovány. Samotný proces sjednocení skončil registrací standardu IEEE-1284. To však nevyřešilo otázku plného souladu. Nový produkt se stále lišil od dříve vytvořených specializovaných rozšíření.

Nejznámější byl vývoj společnosti Hewlett-Packard. Spolu s Centronics se objevil port Bitronics. Přijímala obousměrnou technologii, přesouvala data dvěma směry a byla potřebná pro sběr informací o stavu tiskárny.

Bitronics pracoval s protokolem multiplexní sběrnice HP. Technologie umožnila použití „řetězce“: připojení několika zařízení ke konektoru LPT. K realizaci tohoto úkolu bylo vytvořeno několik standardů, i když ani zde nebylo dosaženo kompatibility.

Proto, pokud jste se setkali zastaralá zařízení Hewlett-Packard, které nefungují správně - to není překvapující. Celý problém je v portech a implementaci.

Možnosti

Paralelní rozhraní lze použít v několika režimech. Například SPP je standardní implementace portu s jedním koncem, který je kompatibilní s Centronics. Nibble Mode je obousměrný režim přenosu dat. Funguje to díky ovládacím linkám. Svého času to byla jediná možnost, přes kterou Centronics přenášel informace obousměrně.

Byte Mode je další možnost obousměrné synchronizace, která se nestala populární, ale stále se používala u některých ovladačů. EPP - provozní režim od předních výrobců Intel, Xircom a Zenith Data Systems, zabývající se rovněž obousměrným přenosem informací rychlostí 2 MB/s.

A posledním režimem je ESR. Pracovali na tom Microsoft a Hewlett-Packard. Objevila se hardwarová komprese souborů, vyrovnávací paměť a práce s přímým přístupem do paměti.

aplikace

Není žádným tajemstvím, že nyní je většina tiskáren připojena pomocí USB kabelů. Než se tato možnost objevila, byl konektor jedinou možností. Ale kromě toho existoval také v různých periferních zařízeních.

Nyní je těžké říci, co se objevilo dříve a jako první, ale elektronické klíče, které chránily software před kopírováním, se staly známými. Tento port je také k dispozici pro disky a skenery. A to zase dalo impuls k vytvoření konektorů s paralelní připojení pro modemy, zvukové karty, webové kamery, gamepady atd.

Dále začali vyvíjet adaptéry pro standard SCSI spárované s paralelním typem. Známé jsou také adaptéry pro EPROM a hardwarové řadiče.

Moderní použití

Paralelní rozhraní se stalo méně populární. Byl nahrazen USB kabely a pro internetové připojení- Ethernet. Mnoho výrobců považuje paralelní typ konektorů za zastaralý. Proto začíná hromadně mizet z panelů rozhraní počítačů a notebooků. Microsoft žádá vývojáře, aby se zdrželi používání tohoto typu portu. A pro ty, kteří stále nejsou připraveni se této možnosti vzdát, je tu adaptér „paralelního USB portu“.

Rozdíl

Často se srovnávají sériové a paralelní porty. V systémech od IBM kromě paralelního rozhraní existovalo sériové a vestavěné rozhraní pro klávesnici. Sériový portčasto sloužil k připojení vysokorychlostních komunikačních zařízení, která pracovala ve formátu RS-232. Zde se bavíme o modemech a podobných zařízeních.

Sériový port bylo jednodušší implementovat pro technologii, která vyžadovala přenos malého množství dat. To zahrnuje běžnou počítačovou myš.

Chyba

Lidé se často o paralelním rozhraní dozvídají ze samotného systému. Někdy se objeví problémy, které vyžadují, aby uživatel tvrdě pracoval na jejich odstranění. Někteří si tedy mohli všimnout selhání ovladače paralelního portu. Tato chyba se obvykle objeví v systémovém protokolu a je označena červeným křížkem.

V dnešní době je takový problém v systému stále méně častý. Může nastat při spuštění Parport, když na desce není žádný paralelní port. V tomto případě můžete přejít do registru a v části Parport najít řádek „Start“. Zde musíte změnit hodnotu „2“ na „4“.

závěry

Paralelní port je nyní minulostí. Pracovali na tom už v minulém století, ale u nás to dokázali nahradit pohodlnějšími konektory. Možnosti, které zůstaly nezměněny, byly schopny získat adaptéry. Bylo tedy možné zakoupit řadič paralelního portu PCI, Výměna USB a další populární rozhraní.

Na internetu je mnoho způsobů, jak si ten či onen kabel vyrobit sami. Ale upřímně řečeno, možnosti nejsou zcela bezpečné a vyvolávají pochybnosti. Je lepší, když náhle potřebujete paralelní port pro zařízení, podívejte se do obchodů. Sice se již nevyrábí, ale stále zůstává v prodeji. A když si sestavujete PC sami, je lepší se blíže podívat na panel rozhraní základní desky, abyste se později nedostali do problémů.

Asi před 10-15 lety byl paralelní port poměrně oblíbeným rozhraním pro komunikaci mezi zařízeními. Dnes výrobci různá zařízení dát přednost sériová rozhraní. I dnes však LPT port lze nalézt. A někteří vývojáři pro to stále píší programy (nebo podporují ty napsané během rozkvětu paralelní rozhraní). Ale v počítačích je nyní port LPT docela vzácností. Existují samozřejmě počítačové rozšiřující karty, které implementují rozhraní LPT. Jsou to v podstatě desky založené na sběrnice PCI. Bohužel ne všechen software, který byl napsán pro integrovaný základní deska LPT porty, budou fungovat s kartami LPT-PCI.

Je navrženo řešení tohoto problému: softwarová třída napsaná pod .NET a dynamická knihovna, která pracuje s LPT. Tato implementace byla testována na 32bitových a 64bitových systémech Windows XP, Windows 7, 8 a 10, obě s vestavěnými porty LPT a implementovány jako rozšiřující karty na sběrnici PCI nebo PCI-Express. Ovladač pro LPT port si můžete stáhnout z odkazu níže za článkem.

1 Instalace ovladače pro práci s LPT portem

Přiložený archiv obsahuje dvě složky – pro 32-bit a pro 64-bit Verze Windows. V jedné ze složek je soubor InstallDriver.exe. Nejprve spusťte tento soubor, nainstaluje dynamické knihovny do systému. Poté by měl být počítač restartován.

Chcete-li použít navrhovaný ovladač, soubory inpout32.dll A inpoutx64.dll musí být umístěn ve stejném adresáři jako spustitelný soubor váš program.

2 Třída programu pro použití knihoven práce s LPT portem

Napsal jsem třídu pro .NET, která používá dynamické knihovny inpout32.dll A inpoutx64.dll a umožňuje číst data z paralelního portu a zapisovat data do jeho registrů.

Uvedené knihovny jsem nenapsal já. Nabízím pohodlnou třídu wrapper, která zjednodušuje práci s těmito knihovnami. Navíc autor knihoven ve spis readme.txt hlásí, že jeho ovladač nepodporuje PCI zařízení. Podařilo se mi jej zprovoznit jak s integrovaným paralelním portem, tak s portem LPT, implementovaným jako rozšiřující karta na sběrnici PCI-Express. Port navíc perfektně funguje jak na moderních Windows10 x64, tak na starších systémech.

Zde je kód pro třídu LPT ve VB.NET:

Kód třídy LPT v jazyce VB.NET(rozbalí) Importuje System.Runtime.InteropServices """ """ Pracuje s portem LPT. Po vytvoření detekuje přítomnost ovladače a vybere vhodnou knihovnu. """ Public NotInheritable Class LPT #Region "CONST" Public Const DLL32 As String = "c:\temp\inpout32.dll" Public Const DLL64 As String = "c:\temp\inpoutx64.dll" Public Const DLL32DRV As String = "c: \temp\inpoutx32drv.dll" """ """ Registry paralelního portu. """ Public Enum Register as Integer """ """ Datový registr SPP/EPP. """ DATA = 0 """ """ Registr stavu SPP/EPP. """ STAV = DATA + 1 """ """ Řídicí registr SPP/EPP. """ CONTROL = DATA + 2 """ """ Registr adres EPP. Čtení nebo zápis do něj generuje související cyklus čtení nebo zápisu adresy EPP. """ EPP_ADDRESS = DATA + 3 """ """ Registr dat EPP. Čtení (zápis) generuje přidružený cyklus čtení (zápisu) dat EPP. """ EPP_DATA = DATA + 4 """ """ Registr aktivace režimu EPP. """ """ """ Pokud pouze smíšené "ECP+EPP" nebo "Extended" - pravděpodobně budete muset také zapsat bajt 0x80 do portu ECR """ (ECR je registr režimu ECP, ECR=BASE_ADDR+0x402, BASE_ADDR - základní adresa LPT port """ ECR = DATA + &H402 "TEST End Enum #End Region" /CONST #Region "DllImport" Private Shared Function IsInpOutDriverOpen() jako Byte End Function Soukromá sdílená funkce IsInpOutDriverOpen_x64() jako koncová funkce UInt64 Private Shared Function Inp32(PortAddress As UInt32) As Byte End Function Private Shared Sub Out32(portAddress As UInt32, data As UInt32) End Sub Private Shared Function Inp64(PortAddress As UInt64) As Byte End Function Private Shared Sub Out64(PortAddress As UInt64, Data As UInt64) End Sub #End Region "/DllImport #Region "CTOR" """ """ Zkontroluje, zda lze použít ovladače x86 nebo x64. Pokud ne, vyvolá výjimku "ovladač není nainstalován". """ Shared Sub New() Dim x86 As Boolean = CheckIsDriverX86() Dim x64 As Boolean = CheckIsDriverX64() If x64 Then _IsX64DriverUsed = True ElseIf x86 Then _IsX64DriverUsed = False Jinak Hoďte novou systémovou výjimku LPT("Ovladač není nainstalován." ) End If End Sub """ """ Inicializace portu - nastavení XXXX0100"b v řídicím registru. """ Private Shared Sub InitLpt(port As ULong) Write(port, Register.ECR, &H80) Write(port, Register.CONTROL, &H4) End Sub #End Region "/CTOR #Region "PROPS" """ """ Zda se používá 64bitová verze ovladače. """ Pokud ovladač není nainstalován, vrátí se NULL. """ Veřejná sdílená vlastnost pouze pro čtení IsX64DriverUsed jako logická hodnota? Získat návrat _IsX64DriverUsed Konec Získat koncovou vlastnost Soukromá Sdílená Pouze pro čtení _IsX64DriverUsed jako logická hodnota? = Nic #End Region "/PROPS #Region "METHODY" """ """ Určuje, zda je ovladač 32bitový. """ Private Shared Function CheckIsDriverX86() As Boolean Try Dim res As Byte = IsInpOutDriverOpen() Return True Catch ex as Exception Return False End Try End Function """ """ Určuje, zda je ovladač 64bitový. """ Private Shared Function CheckIsDriverX64() As Boolean Zkuste Dim nResult As ULong = IsInpOutDriverOpen_x64() Return (nResult<>0) Catch ex as Exception Return False End Try End Function #End Region "/METHODS #Region "Čtení/zápis LPT portu" """ """ Přečte 1 bajt dat ze zadaného registru portu LPT. """ """ Číslo portu. """ Registr přístavu. Veřejná sdílená funkce Read(port As ULong, Optional reg As Register = Register.DATA) As Byte Dim data As Byte = 0 If IsX64DriverUsed Then data = Inp64(CULng(port + reg)) Else data = Inp32(CUInt(port + reg) ) )) End If Vrátit data End Function """ """ Zapíše číslo do určeného registru portu LPT. """ """ Adresa přístavu. """ Registr přístavu. """ Public Shared Sub Write (port As ULong, reg As Register, data As ULong) If IsX64DriverUsed Then Out64(port + CULng(reg), data) Else If (data<= UInteger.MaxValue) Then Out32(CUInt(port + reg), CUInt(data)) Else Throw New ArgumentException("В 32-разрядных системах аргумент должен быть 32-разрядным (тип UInt32).", "data") End If End If End Sub #End Region "/Read / Write LPT Port """ """ Testuje přítomnost portu LPT na dané adrese. """ """ Adresa paralelního portu. Veřejná sdílená funkce CheckPortPresent(lptAddress As ULong) As Boolean Dim portPresent As Boolean = False Zkuste InitLpt(lptAddress) Dim data As ULong = Read(lptAddress, Register.DATA) "uložte aktuální hodnotu datového registru" Pojďme zkontrolovat: co bylo napsáno bylo také čteno? Write(lptAddress, Register.DATA, &H0) portPresent = portPresent And (&H0 = Read(lptAddress, Register.DATA)) Write(lptAddress, Register.DATA, &H55) portPresent = portPresent And (&H55 = Read(lptAddress, Register.DATA )) Write(lptAddress, Register.DATA, &HAA) portPresent = portPresent And (&HAA = Read(lptAddress, Register.DATA)) Write(lptAddress, Register.DATA, data) "obnovit předchozí hodnotu registru dat" Zkontrolujte přítomnost řídicích registrů a dat, pokud port není detekován (v případě jednosměrného portu) If (Not portPresent) Then data = Read(lptAddress, Register.CONTROL) portPresent = ((data<>0) A také (data<>&HFF)) "Není prázdný? => Port je přítomen. If (Not portPresent) Then data = Read(lptAddress, Register.STATUS) portPresent = ((data<>0) A také (data<>&HFF)) End If End If Catch ex as Exception Return False End Try Return portPresent End Function End Class "/LPT

Kód třídy LPT v C#:

Kód třídy LPT v C#(rozšíří) pomocí System; pomocí System.Diagnostics; pomocí System.Runtime.InteropServices; jmenný prostor LPTIO ( /// Třída pro LPT práce přístav. Po vytvoření určuje přítomnost ovladače a jeho bitovou kapacitu. veřejná zapečetěná třída LPT( private const string DLL32 = "inpout32.dll"; private const string DLL64 = "inpoutx64.dll"; private static bool _IsX64DriverUsed; /// Zda se používá 64bitová verze ovladače. public static bool IsX64DriverUsed ( získat ( return LPT._IsX64DriverUsed ; ) ) statický LPT()( if (LPT.getIsDriverX86()) ( LPT._IsX64DriverUsed = false; ) else ( if (!LPT.getIsDriverX64()) vyvolá novou SystemException("Ovladač pro port LPT není nainstalován."); LPT._IsX64DriverUsed = true ) ) public LPT() ( ) soukromý statický externí bajt IsInpOutDriverOpen(); private static extern ulong IsInpOutDriverOpen_x64(); soukromý statický externí bajt Inp32(uint PortAddress); private static extern void Out32(uint portAddress, uint data); soukromý statický externí bajt Inp64(ulong PortAddress); private static extern void Out64(ulong PortAddress, ulong Data); /// Určuje, zda je ovladač pro 32bitový systém Windows. soukromý statický bool getIsDriverX86()( bool flag; try ( LPT.IsInpOutDriverOpen(); flag = true; ) catch (Exception ex) ( ProjectData.SetProjectError(ex); flag = false; ProjectData.ClearProjectError(); ) return flag; ) /// Určuje, zda Je ovladač pro 64bitový Windows? soukromý statický bool getIsDriverX64()( bool flag; try ( flag = Decimal.Compare(new Decimal(LPT.IsInpOutDriverOpen_x64()), Decimal.Zero) != 0; ) catch (Exception ex) ( ProjectData.SetProjectError(ex); flag = false; ProjectData. ClearProjectError(); Přečte 1 bajt dat z portu LPT. /// Číslo portu. /// Registr přístavu. veřejný statický bajt Read (ulong port, LPT.Register reg = LPT.Register.DATA)( return !LPT.IsX64DriverUsed ? LPT.Inp32(Convert.ToUInt32(Decimal.Add(new Decimal(port), new Decimal((int) reg)))) : LPT.Inp64(Convert.ToUInt64(Decimal.Add(new) Decimal(port), new Decimal((int) reg))) ) /// Zapíše číslo do portu LPT. /// Adresa přístavu. /// Registr přístavu. /// Číslo k záznamu. Na 32bitových systémech nesmí být argument větší než maximální hodnota pro typ UInt32. public static void Write (ulong port, LPT.Register reg, ulong data)( if (LPT.IsX64DriverUsed) ( LPT.Out64(checked (port + (ulong) (uint) reg), data); ) else ( if (data > (ulong) uint.MaxValue) throw new ArgumentException("At 32- na bitových systémech musí být argument 32bitový (typ UInt32).", "data"); LPT.Out32(Convert.ToUInt32(Decimal.Add(new Decimal(port), new Decimal((int) reg))) ), zkontrolováno ((uint) data)); Registry LPT portů. veřejný výčet Registr( DATA, STAV, KONTROLA, ) ) )

3 Pomocí třídy .NET pro práci s LPT portem

Pokud se podíváme na seznam exportovaných funkcí knihovny inpout32.dll se skvělým nástrojem Prohlížeč exportu DLL od společnosti NirSoft, uvidíme následující obrázek:

Toto je seznam funkcí, které můžeme použít. Ve skutečnosti se ve třídě používají všechny LPT, ale implementace je skrytá a z veřejných metod má uživatel k dispozici pouze dvě metody a jednu vlastnost (o nich je pojednáno trochu dále).

Během vytváření instance třída sama určí, kterou knihovnu použít - inpout32.dll nebo inpoutx64.dll. Uživatel proto nemusí provádět žádnou akci k inicializaci nebo určení použité bitové hloubky dll. Z LPT portu můžete okamžitě zapisovat nebo číst. Jedno „Ale“: pokud není ovladač nainstalován, vyvolání jakékoli z metod dynamické knihovny způsobí výjimku, takže doporučuji používat bloky Zkus chytit zachytit a zpracovat výjimky.

Několik příkladů použití třídy LPT.

K určení, zda je použita 64bitová verze ovladače (inpoutx64.dll, pokud je True) nebo 32bitová (inpout32.dll, pokud je False) (ve skutečnosti to nemusíte vědět, třída používá přesně knihovnu to je potřeba, ale najednou to z nějakého důvodu budete muset zjistit ze svého programu):

Bool is64bitDriver = LPT.IsX64DriverUsed;

Chcete-li zapsat číslo "123" do registru řízení portu LPT, zavolejte ze své třídy:

LPT.Write(currentPort, LPT.Register.CONTROL, 123);

Chcete-li přečíst jeden bajt z datového registru portu LPT a přečíst stavový registr:

Byte b = LPT.Read(aktuálníPort, LPT.Registr.DATA); byte s = LPT.Read(aktuálníPort, LPT.Registr.STAV);

Tady currentPort - Adresa portu LPT. Navíc, pokud máte integrovaný LPT port, pak jeho adresa s největší pravděpodobností bude 378 h. A pokud máte LPT port na rozšiřující desce, pak bude adresa jiná, např. D100h nebo C100h.

Chcete-li zjistit adresu portu LPT, přejděte na správce Zařízení Windows, najděte sekci COM porty a LPT, vyberte paralelní port, který používáte, a v okně vlastností (kliknutím na něj klikněte pravým tlačítkem myši myš) podívejte se, jaké zdroje používá vybraný port (musíte vzít první hodnotu z rozsahu).


Například v v tomto případě musí být použito číslo portu C100.

Stáhnout přílohy:

  • Stáhnout ovladač pro port LPT (2643 stažení)



Horní