VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:23/93
RoΦnφk:1993
Rubrika/kategorie: Co (ne)najdete ve slovnφku

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek

Ji°φ Peterka

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ß°φ.


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm