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.
- 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....