Jste zde

Paralelní port + přenosový software

Původní článek je mírně poopraven, ale hlavně DOPLNĚN o dva programy určené pro přenos dat.

Myslím, že pokud máte např. notebook a potřebujete občas přenést nějaká data, je to pro vás víc než zajímavá

nabídka.

English version

Velmi často potřebujeme přenést data z jednoho PC do druhého, ať se jedná o notebook nebo stolní počítač. O tom, jaké se nám k tomu naskýtají možnosti bez použití sítě, budou následující řádky. K jakémukoli přímému přenosu dat, bez zásahu do počítače pokud nemáme k dispozici síť, můžeme použít pouze sériový nebo paralelní port. V tomto článku se budeme věnovat často opomíjenému paralelnímu portu.

    Standard IBM LPT byl vytvořen ke komunikaci s tiskárnou "na míru" této problematice po dohodě s výrobci tiskáren. Jedná se o rozhraní určené pouze ke komunikaci s tiskárnou, a nikdo nepočítal s jiným použitím. Tomu odpovídá i hardwarové provedení a zapojení. Standardní paralelní port (dále jen SPP) je připojen na 25pinový konektor CANNON v provedení samička (dutinky). Obsahuje osm datových vodičů D0 až D7 umístěných na pinech 2 až 9, dále 4 stavové výstupní a 5 vstupních vodičů. Ve standardním provozu s tiskárnou čeká počítač na tiskárnu, až oznámí, že je připravena přijmout další znak. Potom vyšle na datové vodiče bity specifikující tento znak, oznámí pulsem na pinu STROBE, že na datových vodičích je připraven další znak a opět čeká na tiskárnu. V nejlepším případě je možné, aby během doby, kdy tiskárna zpracovává přijatý znak, běžel hlavní program. Toho je dosaženo pomocí využití hardwarového přerušení na pinu /ACK (pokud je toto přerušení zapnuto v odpovídajícím registru). Standartní paralelní port používá hardwarové přerušení IRQ 5 nebo IRQ 7. V jednom počítači umožňuje BIOS až čtyři rozhraní pro tiskárnu, tak řečená LPT. Ve skutečnosti existují pouze dvě adresy pro LPT, buď 378H, nebo 278H. Firma HERCULES však distribuovala ve své době velmi úspěšné grafické rozhraní doplněné o další paralelní port, který byl umístěn na adrese 3BCH. Tato adresa byla časem zahrnuta jako další možná adresa LPT, ale nepodporují ji všichni výrobci. Po startu počítače prohledává BIOS uvedené adresy v daném pořadí, a nalezne-li na nich paralelní port, přiřadí mu číslo LPT od 1 do 3. Teoreticky by LPT1 mělo používat IRQ7 a LPT2 IRQ5, ale není to nutné. Zde bych chtěl poznamenat, že klidně mohou všechna LPT používat stejné IRQ zároveň se zvukovou kartou nebo modemem, a pokud nebudou tato zařízení používána najednou, mělo by teoreticky všechno fungovat. Ne všechny obslužné programy s tím ale počítají, a nemají tento případ korektně ošetřen. V důsledku to vede k tomu, že výhodnější je mít pro každé rozhraní samostatné IRQ, nebo mít sdruženou např. zvukovou kartu a LPT na IRQ 7, což téměř vždy funguje. Na všech portech, které nejsou starší než dva roky, jsou tyto parametry nastavitelné buď jumpery na desce, nebo pokud se jedná o porty integrované na základní desce, je to možno nastavovat v SETUPu počítače. 

 

Různé standardy

Rozdíly v portech podle standardu SPP, EPP nebo ECP jsou v rozšířených možnostech ECP a EPP. Hlavní novinkou je možnost obousměrné komunikace pomocí datových bitů D0 až D7. Toho je dosaženo pomocí změny hardwarové struktury koncové části právě těchto vodičů. Zatímco klasické porty podle normy SPP mají koncovou část zapojenou podle obrázku 1. 
 
 
 

 

Na obrázku 2 je zapojení koncové části datových bitů paralelního portu podle normy EPP a ECP. Jak je ze zapojení patrné, rozdíly jsou pouze v nahrazení spínacího tranzistoru na kladné napájecí napětí odporem. Ohmová hodnota by se podle normy měla pohybovat kolem 4 700 ohmů. Navíc je pin na obrázku 2 doplněn vstupem do vstupního registru. Díky tomu lze tento port nastavit do režimu čtení tím, že je do něj zapsána hodnota logických jedniček, takže tranzistory spínající logickou úroveň 0 zůstanou rozepnuté, a i přes zakončovací odpor lze přečíst logickou úroveň přenášenou kabelem. Tento systém, který plně zachovává zpětnou kompatibilitu, však zároveň přináší některé problémy, o nichž se ještě zmíním ve spojitosti s přenosovými vlastnostmi. Popisovat softwarové ovládání není účelem tohoto článku, takže pouze pro ilustraci uvedu, že přečtená data se čtou na datovém portu, na nějž je prováděn zápis poté, co jsou přidaným 5. bitem na XXX+3 (kde XXX je adresa portu, např. 378H) nastavena do vstupného režimu (log. 1). Rozdíl mezi porty standardu ECP a EPP se už týká téměř výhradně softwaru. Oproti EPP přináší ECP možnost DMA přenosu, což značně zvyšuje propustnost dat. 
 

 

 

Přenosové vlastnosti

Jak jistě tušíte, lze tento port použít k přímému spojení počítačů bez nutnosti osazení síťové karty a instalování speciálního síťového softwaru. Pomocí paralelního portu lze přenášet data v průměru 3x až 4x rychleji než pomocí sériového rozhraní. Komunikační kabel má však výrazně omezenou délku. Vzhledem k tomu, že veškerá komunikace probíhá pomocí napěťových úrovní 5V a nikoli proudovou smyčkou, jsou kabely delší než 1m velmi náchylné k rušení. Přesto lze po dodržení určitých zásad používat až 10 m dlouhé kabely pro komunikaci po paralelním portu, viz Zásady pro vytvoření maximálně odolných komunikačních kabelů. Bohužel jsem se dosud nesetkal s programem typu Laplink, který by možnost obousměrnosti datových vodičů standardu EPP a ECP využíval, a všeobecně je podporován pouze komunikační kabel, který byl původně implementován v programu Interlink v DOSu. Osobně se mi s tímto kabelem osvědčily tyto programy : Manažer602 od verze 2.0, Norton Commander od verze 4.0 a LapLink. Na Internetu lze dokonce najít software EASYNET, který umožňuje pomocí paralelního portu emulovat IPX kompatibilní síť mezi dvěma počítači. V tomto směru však paralelní port nedoporučuji, vynikající je na občasný přenos dat např. do notebooku nebo podobně, ale v žádném případě nemůže nahradit počítačovou síť, jejíž cena se dnes v porovnání s cenou softwaru stává zanedbatelnou. 
 
 

ECP, EPP nebo SPP?

Porty nových standardů sice drží zpětnou kompatibilitu na úrovni hardwaru, ale vzhledem k nutným změnám se může snadno stát, že např. při použití delšího kabelu k tiskárně (nad 3m) by nemusely s některými tiskárnami naprosto spolehlivě fungovat. Navíc ne všechny tiskárny skutečně využívají nové možnosti obousměrné komunikace. Nejčastějším viníkem nekompatibility je však špatně napsaný software pro komunikaci PC s tiskárnou, který mnohdy nepočítal s existencí rozšiřujících bitů, takže občas přepne směr toku dat atd. Po zkušenostech i s renomovanými firmami mohu říci, že pokud port používáte opravdu pouze pro tiskárnu, klidně zapněte v SETUPu pouze SPP režim. ECP a EPP mod můžete kdykoli vyzkoušet, ale při prvních komplikacích hledejte chybu zde. Pokud však na paralelním portu používáte nejrůznější komunikační média typu CD-ROM, JAZZ Drive, ZIP drive, paralelní modem atd. má pro vás režim ECP opodstatnění a aktivujte si jej. Přenosovou rychlost tím lze až zdvojnásobit. 

 


Pro vážné zájemce o tuto problematiku, které neuspokojí odkaz na popis např. v SYSMANovi, sem přikládám soubor s dokumentací, z nichž jsem čerpal. ZDE

 


Zásady pro vytváření komunikačních kabelů

Pro jakýkoli 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 nebo stíněním. Vyhnete se tak "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 používáte plochý vodič, vyplývá toto doporučení už z vlastního zapojení pinů paralelního portu. Pokud používáte 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čů. 



 

Pozor na použití zásuvek mezi spojovanými zařízeními

Každý standardní počítač třídy PC má na svůj kryt, stejně jako na uzemňovací pin, přiveden ze zásuvky rozvodu 220 V střední ochranný kolík. Ten však bývá většinou v zásuvce spojen s pracovním nulový vodičem. Pokud máte dvě PC, která hodláte propojit komunikačním kabelem každé v jiné zásuvce, může se stát, že každé bude připojeno na jinou větev bytového zásuvkového rozvodu. Tyto větve jsou sice vodivě spojeny v rozvodové skříňce, ale na jedné je třeba připojena pračka nebo podobné zařízení, které odebírá značný příkon, díky čemuž poklesne za tímto výkonným spotřebičem napětí. Pokud jde o jednorázový impuls, může se jednat o napěťový impuls řádu desítek voltů. Tento rozdíl napětí se potom objeví na vstupu druhého počítače, připojeného na jinou napájecí větev, a tam může VELMI SNADNO zničit nejenom paralelní nebo sériový port, ale často i řadič disku nebo podobně. Proto je dobré spojovat kabely pouze zařízení napájená ze stejné zásuvky, nebo alespoň spojená přímo prodlužovací šňůrou. To platí i o spojování s tiskárnou, monitorem, notebookem a podobně. V případě některých notebooků je dokonce mnohdy nejjistější nechat je po dobu přenosu dat běžet pouze na akumulátory. Toto nebezpečí je však u moderních notebooků minimální. V souvislosti s notebooky, bych chtěl upozornit na výrazné nebezpečí používání komunikačních kabelů, protože pokud váš notebook umožňuje připojit přes tento konektor i externí mechaniku, nemusí se vždy jednat o naprosto kompatibilní paralelní port, a mohlo by dojít k poškození notebooku. 


 Rady ohledně použití paralelního portu pro baslíře
 
  • Vždy používejte buď stíněné vodiče, nebo alespoň svazky vodičů, kde zbývající dráty připojíte na zem. To platí hlavně pro dlouvé vedení, po němž se bude komunikovat na rychlosti vyšší než 100 k bitů.
  • Při konstrukci všech zařízení na LPT připojujte pokud možno hned u konektoru odporové žebříčky, připojené na +5V. Díky tomu značně omezíte vytváření RC článků z přívodního kabelu. Nejlépe se mi osvědčila hodnota mezi 4 až 10 kohmy.  Pro jistotu je dobré připojit přes tyto ukončovací odpory všechny vodiče, které v zařízení používate.
  • Při rychlé komunikaci vždy používejte klopné obvody typu D, které reagují na hranu a nikoli LATCH, reagující na úroveň. Při přenosu dat se většinou nastaví data, a pak se jedním vodičem potvrdí jejich platnost. U obvodů reagujících na úroveň se během onoho nastavování dat, může velmi snadno stát, že vlivem "přeslechu" se zapíší špatná data. (Obvody typu D jsou např. 74374, 574, 7474.... naproti tomu LATCHe jsou 74373 573.....
  • Software je potřeba vždy psát s ohledem na edhanced porty. To znamená, že to, že ty bity nejsou použity v módu SPP, neznamená, že je nikdo nevyužívá v jiných módech, díky tomu jsou potom vaše ovladače nefunkční v ECP a EPP režimech portů......
  • Nepokoušejte se nic napájet z portu LPT tak, jako je napájena např. myš ze sériového portu. Napětí pro log. 1 se někdy pohybuje kolem 3.5 V, a nelze se proto po součtu napětí na diodách (z důvodů proudové zatížitelnosti) spolehnout ani na obvody pracující od 2.7 V...
  • Paralelní port je rozhraní, které nechutně rádo odchází. Počítejte s tím a pokusujte zásadně na druhém portu, na nějaké levné ISA kartě, nikoli na svém portu, integrovaném na základní desce. Není také naškodu, mít vždy nějakou tuto desku připravenou v záloze....  

 
Jan Řehák  -  5.02.1998
Hodnocení článku: