25-pinový konektor paralelného portu počítača
**Paralelný port** alebo *paralelné rozhranie, centronics, paralelný interfejs, LPT port, printer port* a pod. je označenie komunikačného rozhrania, používaného hlavne v počítačoch najmä pre pripojenie tlačiarne. Paralelný port patrí medzi tzv. legacy porty (zastarané porty). Výraz paralelný vychádza z faktu, že dáta sa prenášajú paralelne po viacerých vodičoch naraz.

Paralelný port má 8 dátových signálov a niekoľko riadiacich signálov, ktoré riadia komunikáciu (*handshake*) a signalizujú stav pripojeného zariadenia. Vo svojej dobe paralelný port predstavoval komunikačné rozhranie s vysokou prenosovou rýchlosťou (niekoľko desiatok kB/s, t. j. niekoľko sto kbit/s), preto sa k nemu pripájali okrem tlačiarní aj iné zariadenia vyžadujúce rýchly prenos dát (napr. skener). Niekedy sa používal aj na prenos dát medzi dvomi počítačmi, najmä kvôli nízkej cene a dostupnosti LPT portu na každom počítači (v čase, keď sieťové karty boli drahé a neboli samozrejmou súčasťou každého PC). Hlavným obmedzením bola najmä maximálna prípustná dĺžka kábla, asi 2 metre.

Dnes je paralelný port už vytlačený modernejšími rozhraniami, najmä USB.

Technické detaily
-----------------

### Jednosmerné a obojsmerné režimy

Pre paralelný port je definovaných niekoľko režimov, medzi ktorými je možné prepínať príslušným nastavením hardvéru, obvykle z nastavovacej utility BIOSu.

#### SPP (Standard Parallel Port)

Tradične bola dátová zbernica paralelného portu jednosmerná – dáta sa dali prenášať len z počítača do tlačiarne. Napriek tomu boli na porte 4 riadiace signály obojsmerné, čo sa často využívalo najmä pri prepojení dvoch PC.

#### Bidirectional

V klasickom paralelnom porte je možnosť do dátového registra nielen zapisovať, ale aj čítať. Hardvér portu je však skonštruovaný tak, že jednotlivé bity dátového portu sú trvalo budené dvojčinným výstupom, takže nie je možné bez poškodenia vnútiť portu stav zvonka, a čítanie len vrátilo hodnotu naposledy zapísanú do dátového registra.

Pomerne jednoduchou úpravou sa dalo aj u pôvodného paralelného portu (ktorý bol skonštruovaný z bežných TTL logických obvodov typu 74xx) dosiahnuť, že pri nastavení jedného z bitov riadiaceho registra prešiel budič dátovej linky (74LS374) do vysokoimpedančného stavu, čo umožňovalo prečítať priamo stav dátových pinov, t. j. sa port v tom okamihu správal ako vstupný.

Tento režim implementovali aj viacerí výrobcovia rozširujúcich kariet, ale nikdy nebol formálne štandardizovaný.

#### EPP (Enhanced Parallel Port)

Potreba obojsmernej komunikácie a lepšej previazanosti hardwaru a softwaru na strane PC vyústila v takú definíciu existujúcich signálov rozhrania, ktorá umožňovala zo strany PC priamo zapisovať a čítať do/z registrov pripojeného zariadenia (samozrejme za spolupráce hardvéru a firmvéru pripojeného zariadenia). Lepšie využitie signálov, presnejšie časovanie ako aj ovládač využívajúci prerušenie umožnili zvýšiť prenosovú rýchlosť zhruba až desaťnásobne, t. j. na niekoľko stoviek kByte/s.

#### ECP (Extended Capability Port)

Pri štandardizácii paralelného portu (IEEE-1284) bol do štandardu prevzatý režim EPP a po miernych úpravách bol premenovaný na ECP. Spolu s možnosťou priameho prenosu dát z pamäte PC (DMA) dosahuje prenosová rýchlosť zhruba 250 kB/s (2,5 Mbit/s).

### Konektor a popis signálov

Pinout LPT portu
Zapojenie pinov (pinout) pre konektor DB25 je nasledovný:

| Číslo pinu (DB25) | Názov signálu | Smer | Register – bit | Invertovaný |
| --- | --- | --- | --- | --- |
| 1 | nStrobe | Výstup | Control-0 | Áno |
| 2 | Data0 | Vstup/Výstup | Data-0 | Nie |
| 3 | Data1 | Vstup/Výstup | Data-1 | Nie |
| 4 | Data2 | Vstup/Výstup | Data-2 | Nie |
| 5 | Data3 | Vstup/Výstup | Data-3 | Nie |
| 6 | Data4 | Vstup/Výstup | Data-4 | Nie |
| 7 | Data5 | Vstup/Výstup | Data-5 | Nie |
| 8 | Data6 | Vstup/Výstup | Data-6 | Nie |
| 9 | Data7 | Vstup/Výstup | Data-7 | Nie |
| 10 | nAck | Vstup | Status-6 | Nie |
| 11 | Busy | Vstup | Status-7 | Áno |
| 12 | Paper-Out | Vstup | Status-5 | Nie |
| 13 | Select | Vstup | Status-4 | Nie |
| 14 | Linefeed | Výstup | Control-1 | Áno |
| 15 | nError | Vstup | Status-3 | Nie |
| 16 | nInitialize | Výstup | Control-2 | Nie |
| 17 | nSelect-Printer | Výstup | Control-3 | Áno |
| 18-25 | Zem | - | - | - |

#### Niektoré nástrahy pri používaní LPT

Pri úvodnom teste systému (POST) je detegovaná prítomnosť LPT portu zápisom určitých hodnôt (obvykle 0x55 a 0xAA) do dátového registra portu, čo sa prejaví aj navonok zmenou stavov jednotlivých pinov, napríklad pri „teplom" resete PC (tlačidlom alebo softwarovo). S týmto musia konštruktéri pripojených zariadení rátať.

Operačný systém Windows XP v niektorých jeho revíziách má po inštalácii zapnutú automatickú detekciu pripojenia zariadenia na LPT port, čo spôsobuje občasnú nečakanú zmenu stavu niektorých signálov.

### Adresácia v osobnom počítači

V PC je paralelný port tradične mapovaný niektorú z týchto troch adries:

| počiatočná (bázová) I/O adresa | koncová I/O adresa | číslo prerušenia # |
| --- | --- | --- |
| `0x3bc` | `0x3bf` | `IRQ 5` |
| `0x378` | `0x37f` | `IRQ 7` |
| `0x278` | `0x27f` | `IRQ 6` |

Je možné mať zapojených viac portov súčasne, aj keď typicky býva prítomný len jeden. Tradične je BIOSom (a následne DOSom) detegovaná prítomnosť portov v horeuvedenom poradí, a v poradí akom sú nájdené jednotlivé porty, sú zaznamenané do interných tabuliek a je im pridelené symbolické meno LPT1 až LPT3 (pričom LPT1 má aj „alias" PRN). Neplatí teda jednoznačné priradenie adresy k symbolickému menu, čo býva zdrojom problémov u zle napísaných programov, ktoré s týmto počítajú. Typicky však bázová adresa 0x3bc nepoužíva a bola použitá len u pôvodného PC.

Jednotlivé čísla prerušení tiež nie sú obvykle prísne dodržiavané, a najmä s ohľadom na preplnenosť prerušovacieho priestoru v PC a vzhľadom na to že väčšina softwaru prerušenie vôbec nepoužíva, sú zdieľané aj s inými zariadeniami (napr. zvuková karta alebo sieťová karta)(čo však mnohokrát bolo zdrojom nepríjemných a ťažko diagnostikovateľných problémov).

U operačného systému Windows už tieto pravidlá neplatia, a je možné použiť bez vážnejších problémov aj viac LPT rozhraní aj na netypických adresách.

História
--------

Rozhranie vyvinula spoločnosť Centronics, ktorá bola priekopníkom v oblasti tlačiarní (pripisuje sa jej vynález ihličkovej tlačiarne), začiatkom 70-tych rokov, t. j. ešte v dobe pred PC. Na strane tlačiarne bol použitý 36-pinový konektor firmy Amphenol, ktorý sa stal štandardom; ale na strane počítača konektor dlhú dobu nebol štandardizovaný.

Keďže v čase vývoja IBM PC bolo toto rozhranie už štandardom na pripojenie tlačiarní, IBM implementovalo do prvého PC aj toto rozhranie. Pomerne nečakane bol paralelný port integrovaný spolu s grafickou kartou (typu MDA). U ďalších modelov a u klonov od iných výrobcov už mal paralelný port samostatnú rozširujúcu kartu, alebo bol často integrovaný spolu s jedným alebo viacerými sériovými portami. Rozšírenie a popularita PC mala za následok zjednotenie konektora typu DB25 (Canon 25 female) na strane počítača.

Aj keď sa jednalo o veľmi rozšírené a populárne rozhranie, formálne bolo štandardizované až pomerne neskoro v 90-tych rokoch, ako **IEEE-1284**.

### Dnešné použitie

V dnešných PC je paralelný port pokladaný za zastaraný (legacy port), a preto ho už nikde nenájdeme. V oblasti pripojenia tlačiarní, ale aj pre iné účely, bol úplne vytlačený jednoduchšie použiteľným USB portom.

Paralelný port je najmä u vývojárov elektronických zariadení mnohokrát využívaný aj netypickým spôsobom, napr. na simuláciu niektorých sériových rozhraní (SPI, JTAG) ktoré typicky nemajú natívnu podporu v bežných PC, a to priamym ovládaním jednotlivých pinov portu (tzv. *bit-bang*). Takéto využitie je v moderných operačných systémoch založených na Windows NT problematické, keďže tieto operačné systémy izolujú samotný hardware od aplikácií vrstvou ovládačov, a je potrebné použiť zvláštny „sprístupňujúci" ovládač.

Pre účely pripojenia starších zariadení (tlačiarní) sú vyrábané prevodníky („káble", čo je nepresné označenie, keďže takýto „kábel" obsahuje elektroniku ukrytú obvykle v krytke konektora) USB-LPT. Tieto však majú často problematické ovládače a neumožňujú použitie inak, ako na pripojenie tlačiarne (t. j. bit-bang režim nie je obvykle možný).

Externé odkazy
--------------

* rozsiahly súhrn informácií o paralelnom porte na hw.cz
* parmon -- užitočná utilita na zobrazenie a zmenu stavu portu
* Parallel Port Central od Jan Axelson
* Viac článkov o paralelnom porte na beyondlogic.org