Vyšlo v týdeníku Computerworld č. 23/93 v roce 1993
Vytištěno z adresy: http://www.earchiv.cz/a93/a323c120.php3

Port

Co by to bylo za počítač, kdyby k němu nešlo nic připojit - žádná tiskárna, žádný modem ani žádný joystick pro hravé.

Každé periferní zařízení však má určité požadavky na způsob svého připojení, a je to počítač, který těmto požadavkům musí vyjít vstříc a vytvořit pro ně potřebné podmínky. Mezi oběma stranami tedy musí existovat shoda v tom, kterým směrem, v jakém tvaru a jak rychle si budou předávat data a nejrůznější řídicí příkazy či signály, jakým způsobem se budou vzájemně informovat o význačných stavech a situacích (například o tom, že tiskárně došel papír, a proto nemůže tisknout), jak budou jednotlivé p říkazy či signály mezi sebou provázány (jak má jedna strana reagovat na určitý signál druhé strany), a v neposlední řadě se musí obě strany shodnout i na tom, jaké budou používat konektory, jak budou zapojeny jejich jednotlivé vývody, jaké elektrické parametry budou mít signály na těchto vývodech, jaké budou mít časové průběhy atd. Již dříve jsme si v této rubrice (v CW 12 z roku 1992) řekli, že právě popsané konvence definují tzv. rozhraní (anglicky: interface) mezi počítačem a periferií. Zde jsme si také uv edli, že v užším slova smyslu jde skutečně jen o abstraktní "pravidla hry", ale že v širším slova smyslu jsou pod pojem rozhraní zahrnovány i technické (a někdy i programové) prostředky, které jej implementují.

Pro pojmenování samotných prostředků, které vytváří příslušné "rozhraní" (přesněji: jeho polovinu), však má angličtina samostatný termín: port.

Například počítače PC jsou standardně vybavovány dvěma porty, které vytváří tzv. sériová rozhraní (a jsou proto označovány jako: serial ports), a jedním portem, který vytváří tzv. paralelní rozhraní (parallel port) - odsud také tajuplná zkratka "2s/1p", se kterou se můžeme setkat na nejrůznějších reklamních prospektech. Sériové porty se používají pro připojování modemů, myší, tabletů, trackballů a dalších zařízení, zatímco paralelní port je určen hlavně pro připojování tiskáren.

Sériové i paralelní porty mohou obecně používat různá "pravidla hry", podle kterých generují jednotlivé signály, vysílají a přijímají data apod. Mohou tedy obecně implementovat různé druhy sériových či paralelních rozhraní (v užším slova smyslu).

Naštěstí však v této oblasti panuje mezi výrobci počítačů i výrobci periferních zařízení poměrně dobrá shoda. Sériové porty dnešních počítačů se proto, až na velmi malé výjimky, "chovají" podle pravidel, která pochází z oblasti telekomunikací a jsou kodifikována v normě RS-232-C (pocházející od americké organizace EIA - Electronic Industries Association), resp. v téměř identickém doporučení CCITT V.24. Díky této vzácné shodě mohou být sériové porty označovány také jako porty RS-232. Obdobně pří znivá situace panuje i u paralelních portů. Zde si dominantní postavení vydobylo vlastní řešení jednoho z výrobců tiskáren, u nás nepříliš známé firmy Centronics, Inc. Proto se také paralelním portům dnešních počítačů říká též Centronics porty.

Pro správné pochopení vztahu mezi portem a rozhraním (v užším slova smyslu) je dobré si uvědomit, že tato idylická situace nebyla ještě před několika lety ještě nebyla zdaleka samozřejmostí. Hlavně v bývalé RVHP se totiž vyráběly tiskárny, které sice měly paralelní rozhraní, ale jiného druhu - IRPR místo ve světě obvyklého rozhraní Centronics. K paralelním portům počítačů PC, které počítaly s rozhraním Centronics, pak tyto tiskárny připojit nešly. Rozdíl byl například v tom, že zatímco jedno ro zhraní posílalo tiskárně jednotlivé datové bity v přímém (tj. nikoli v negovaném) tvaru, druhé je posílalo negované. Další rozdíly pak spočívaly i ve významu a časovém průběhu signálů, kterými počítač signalizoval tiskárně správný okamžik k převzetí dat, a také ve způsobu, jakým tiskárna signalizovala zpět počítači, že si tato data (jednobytový znak) již úspěšně převzala. Nebylo ovšem těžké přijít na to, že chování paralelního portu počítače PC je řízeno programem (konkrétně rutinou v rámci BIOSu), a že tedy není principiálním problémem ovládání paralelního portu přeprogramovat tak, aby místo rozhraní Centronics vytvářelo rozhraní IRPR.

Paralelní a sériové porty však nejsou zdaleka jedinými druhy portů, se kterými se dnes můžeme setkat. Dalším příkladem úzce specializovaného portu může být tzv. game port neboli port pro připojování tzv. joysticků pro ovládání nejrůznějších her.

Vzájemné terminologické "překrývání" pojmů port a rozhraní je sice nepříjemné, ale s využitím kontextu je obvykle možné rozlišit, kdy se pod rozhraní zahrnuje i příslušný port, a kdy nikoli - pokud je to vůbec třeba rozlišovat. Větším problémem však bývá skutečnost, že termín "port" má ještě jeden, a to dosti odlišný význam.

K jeho pochopení je třeba si nejprve ujasnit, jakým způsobem je port (ve výše uvedeném smyslu) ve skutečnosti realizován. Například paralelní port počítačů PC se vůči BIOSu "tváří" jako trojice vstupně-výstupních registrů, z nichž jeden slouží pro výstup znaku k tisku, druhý umožňuje ovládat výstupní signály paralelního portu, a třetí registr umožňuje přijímat stavové signály, jež přicházejí do paralelního portu počítače od připojené periferie. Procesor, který zajišťuje programovou obsluhu paral elního portu, však musí být schopen s těmito registry pracovat. Příslušné strojové instrukce, které s těmito registry pracují, je musí jednoznačně identifikovat. Obvyklý způsob (používaný právě u procesorů 80x86 počítačů PC) je takový, že tyto vstupně-výstupní registry mají přiřazeny speciální adresy (tzv. V/V adresy, anglicky: I/O addresses) a příslušné instrukce je pak specifikují pomocí těchto V/V adres. Jde přitom o adresy jiného typu, než jsou adresy paměťových míst operační paměti, a také jeji ch rozsah je obvykle řádově menší. Například procesor i8086 je schopen generovat jen 65 536 V/V adres takovýchto vstupně-výstupních registrů (zatímco u operační paměti je schopen adresovat až 1 MB).

Problémem je však to, že právě naznačené V/V registry (v češtině též: V/V brány) se často označují také jako porty (anglicky I/O ports). A k završení celkového zmatku: v odborné literatuře se jako porty označují i samotné V/V adresy. Typickým příkladem bývají manuály k různým rozšiřujícím kartám (například síťovým kartám), které čtenáře vybízejí, aby příslušnými propojkami či přepínači nastavili port karty. Ve skutečnosti přitom jde o stanovení počáteční V/V adresy vstupně-výstupních registrů, které karta vytváří.