Hlavní navigace

Externí sběrnice a porty

6. 11. 2008
Doba čtení: 10 minut

Sdílet

V dnešní části seriálu o architekturách počítačů se začneme zabývat problematikou komunikace počítače s vnějšími zařízeními či dalšími počítači. Postupně si popíšeme jak některé historické způsoby připojení, například sériový a paralelní port, tak i USB, rozhraní FireWire či externí sběrnice používané v průmyslu.

Obsah

1. Externí sběrnice a porty
2. Vlastnosti externích sběrnic a portů
3. Externí sběrnice vs. port
4. Sériový a paralelní přenos dat
5. Jednosměrná a obousměrná komunikace
6. Způsob řízení sběrnice
7. Význam standardizace externích portů a sběrnic
8. Odkazy na Internetu
9. Obsah následující části seriálu

1. Externí sběrnice a porty

Již v úvodní části tohoto seriálu jsme si popsali von Neumannovu architekturu počítačů, která je – i přes její některé mírné modifikace a vylepšení – použita v moderních osobních počítačích i serverech. Ve své podstatě není von Neumannova architektura vůbec komplikovaná. Celý počítač se skládá z pěti koncepčních bloků. Jedná se o operační paměť, ve které je uschován jak zpracovávaný program, tak i data, se kterými program pracuje. Dále se zde nachází programový řadič řídící činnost celého počítače a aritmeticko-logická jednotka, ve které jsou vykonávány – jak již název naznačuje – aritmetické a logické operace s universálními registry nebo přímo místy (paměťovými buňkami) v operační paměti. Jak jsme si již řekli v předchozích částech seriálu, jsou v současných počítačích aritmeticko-logická jednotka (ALU) a řadič integrovány do jednoho čipu nazývaného procesor či mikroprocesor a k operační paměti je naopak přidána poměrně složitá struktura vyrovnávacích (cache) pamětí, přičemž mikroprocesor většinou komunikuje pouze s vyrovnávacími paměťmi a nikoli přímo s pamětí operační.

pc3601

Obrázek 1: Principiální schéma von Neumannovy architektury počítačů. V předchozích částech tohoto seriálu byla popsána funkce řadiče, aritmeticko-logické jednotky i operační paměti.

Poslední dva bloky von Neumannovy architektury, které jsou nazvané vstupy a výstupy jsou představovány jednotlivými zařízeními, jež se k počítači různým způsobem připojují. V tom nejjednodušším případě se může jednat například o LED na výstupu a několik tlačítek na vstupu (příkladem může být výukový „počítač“ PMI-80, který si vystačil s cca dvaceti tlačítky a osmimístným sedmisegmentovým displejem), stejně tak se však k počítači mohou připojit inteligentní řadiče disků, grafické subsystémy, různá čidla (mikrořadiče v autech jich obsluhují i několik desítek) atd. My jsme si prozatím vysvětlili, jakým způsobem je možné připojovat vstupní a výstupní zařízení (karty) k některých interním sběrnicím – jedná se o již zmiňované sběrnice typu ISA, EISA, VESA Local Bus, PCI či PCI Express. K počítači je však možné připojovat i zařízení vnější. V minulosti bylo navrženo i implementováno mnoho technologií sloužících právě pro komunikaci mezi počítačem a externími zařízeními. Některé technologie byly proprietární a objevily se například jen na jednom typu počítače, další technologie byly standardizovány a dočkaly se celosvětového rozšíření.

pc3602

Obrázek 2: Ani von Neumanna (i přes jeho vysokou inteligenci) by asi nenapadlo, jaká „užitečná“ výstupní zařízení se budou vyrábět na začátku třetího tisíciletí. Toto zařízení je připojeno přes externí sběrnici USB.

2. Vlastnosti externích sběrnic a portů

Všechny technologie, které slouží pro připojení externích zařízení k počítačům, je možné rozdělit na základě několika vlastností, jež budou popsány v následujících kapitolách.

pc3603

Obrázek 3: Konektor kabelu externí sběrnice SIO, která byla použita v osmibitových počítačích Atari. Pomocí SIO bylo možné k počítači připojit větší množství „inteligentních“ zařízení (disketová jednotka, tiskárna) a na úplný konec řetězce jedno zařízení „hloupé“ (typicky magnetofon). Tato sběrnice je ve své podstatě předchůdcem dnešní sběrnice USB; na jejich vývoji se podílel stejný autor. Majitelé původních osmibitových Atari dnes na sběrnici SIO zapojují i pevné disky a CD-ROM či s její pomocí propojují osmibitové Atari s osobním počítačem (SIO2PC).

3. Externí sběrnice vs port

V praxi je od sebe nutné odlišit sběrnice a porty. Základní vlastností sběrnic je, že umožňují s počítačem propojit několik zařízení, přičemž řízení sběrnice (takzvanou arbitráž) obstarává buď jedno předem zvolené zařízení (master) nebo zařízení libovolné (master-select). Fyzická topologie externí sběrnice může být založena například na hvězdě/stromu (USB, ta má mimochodem pouze centrální řízení) nebo mohou být všechna zařízení připojena na společné vodiče (SIO, I2C). Naproti tomu port slouží pro připojení pouze jednoho zařízení, které jednosměrně či obousměrně komunikuje s počítačem. Typickým zástupcem portů, se kterým se ještě i dnes můžeme u některých počítačů setkat, je sériový port RS-232 (označován jako COM) a port paralelní (na osobních počítačích bývá označen jako LPT). I původní způsob připojení klávesnice přes konektor DIN i modernější (technicky však hůře navržený) konektor PS/2 je ve své podstatě založen na jednoúčelovém sériovém obousměrném portu.

pc3604

Obrázek 4: Konektor typu A určený pro externí sběrnici USB. Tento konektor se připojuje vždy do počítače (přesněji řečeno do zařízení typu master), na druhé straně propojovacího kabelu je umístěn konektor typu B, protože na USB není možné připojit dvě zařízení typu master. To mj. znamená, že přes USB nelze přímo (bez nějakého mezičlánku) propojit dva počítače.

4. Sériový a paralelní přenos dat

U externích sběrnic i portů se také rozlišuje, zda jsou data přenášena sériově či paralelně. Při sériovém přenosu dat jsou jednotlivé byty rozděleny na sekvence bitů, které jsou postupně přeneseny sériovým způsobem, tj. bit po bitu (pro přenos dat tímto způsobem teoreticky postačují pouze dva vodiče, popř. jeden vodič a společná zem). Naproti tomu u paralelního přenosu je použito větší množství vodičů pro přenos dat, další vodiče jsou použity k řídicím účelům. Například u výše zmíněného paralelního portu (LPT) se přenos provádí po celých bytech, tj. tento port obsahuje osm datových vodičů, které jsou doplněny o vodiče řídicí a signální. Nejvíce datových vodičů je možné najít v některých verzích externího rozhraní SCSI, dnes se ovšem toto rozhraní pro připojení externích zařízení již příliš nepoužívá, protože je postupně nahrazováno sběrnicí USB či rozhraním FireWire (SCSI má i svoji interní podobu, zde se naopak stále používá). Do nákladů, které je nutné vynaložit na implementaci externí sběrnice či portu, je nutné započítat cenu konektorů i vlastních vodičů, proto je v této oblasti patrný příklon k sériovému způsobu přenosu dat – zmenšuje se počet vodičů a i konektory mohou být jednodušší a levnější.

pc3605

Obrázek 5: Velmi praktické externí zařízení: USB disk zabudovaný v propisce, který je možné doplnit i o laserové ukazovátko.

5. Jednosměrná a obousměrná komunikace

Některé porty (u sběrnic se s touto vlastností v naprosté většině případů nesetkáme) také slouží pouze pro jednosměrný přenos dat. Například již dvakrát zmíněný původní paralelní port LPT byl určen pouze pro jednosměrný přenos dat z počítače do tiskárny, zpět se přenášely po speciálních vodičích pouze stavové informace typu „tiskárna připravena“ či „došel papír“. Teprve pozdější rozšíření paralelního portu (technologie ECP a další) umožnily obousměrný přenos dat a posléze i přenos vyšší rychlostí, čehož bylo možné využít v programu LapLink, Norton Commander apod. pro propojení dvou počítačů v dobách před masivním rozšířením Ethernetu. Prakticky všechna moderní zařízení vyžadují obousměrnou komunikaci, proto i externí sběrnice a porty bývají koncipovány pro přenos dat v obou směrech. I klávesnice, která je z hlediska operačního systému považována za typické vstupní (jednosměrné) zařízení, ve skutečnosti vyžaduje obousměrnou komunikaci – počítač například může měnit rychlost automatického opakování stlačené klávesy, nebo je možné programově blikat světelnými diodami na klávesnici.

pc3606

Obrázek 6: Miniaturizace čipů s paměťmi typu Flash umožňuje konstrukci stylových USB disků. Ten, který je zobrazen na šestém obrázku, je možné použít ve stavebnici LEGO (má „kompatibilní“ rozměry).

6. Způsob řízení sběrnice

V předchozích částech tohoto seriálu jsme si také při popisu jednotlivých interních sběrnic říkali, jakým způsobem jsou sběrnice řízeny. U sběrnic externích je situace do značné míry podobná. V podstatě jsou možné dva způsoby řízení: řízení centrální, přičemž oním centrálním uzlem nejčastěji bývá počítač (přesněji řečeno řadič externí sběrnice umístěný v počítači) a řízení decentralizované, při kterém se jakékoli zařízení připojené na sběrnici může stát masterem, který provoz na sběrnici řídí. U externích sběrnic se většinou můžeme setkat s centrálním řízením. Centrální řízení bývá v tomto případě vhodnější, protože externí zařízení nebývají konstruována tak, aby mohla komunikovat přímo sama mezi sebou, tudíž jsou všechny komunikace směrovány na centrální uzel představovaný počítačem. Naproti tomu je u některých počítačových architektur možné, aby interní zařízení spolu komunikovala přímo bez nutnosti jakýchkoli zásahů ze strany mikroprocesoru.

pc3607

Obrázek 7: Zadní strana osmibitového počítače Atari, který je vybaven externí sběrnicí CIO a také (pro tento počítač nestandardním = dobastleným) sériovým portem kompatibilním s RS-232C.

Centrální řízení se také jednodušeji implementuje, protože není nutné navrhovat složitý přenosový protokol, řešit kolize více zařízení, které by chtěly sběrnici obsluhovat atd. Typickým příkladem externí sběrnice s centrálním řízením je USB; zde je dokonce zařízení typu master vybaveno konektory odlišnými od zařízení typu slave. Tato sběrnice má fyzickou topologii hvězdy/stromu, přičemž uzlem stromu je vždy zařízení typu master, ostatní zařízení jsou typu slave. Na úrovni logické jsou všechna zařízení typu slave rovnocenná, i když mohou být zapojena v navzájem odlišných úrovních (patrech) stromové struktury. I u průmyslové sběrnice I2C je jedno zařízení typu master, na fyzické úrovni jsou však všechna zařízení (masterslave) připojena na společné vodiče.

pc3608

Obrázek 8: Miniaturní cestovní myš určená pro sběrnici USB. Přívodní kabel k myši je schován v malém mechanismu vybaveném samonavíjecí pružinou. Sběrnice USB obsahuje kromě dvou datových vodičů i napájecí vodiče, přičemž je normou stanoveno, jaký proud mohou jednotlivá zařízení z počítače odebírat. Díky tomu se k USB mohou připojit různé cestovní lampičky, ohřívače na kávu, nabíječe baterií atd., které již nemusí mít vlastní (mnohdy neefektivní) napájecí zdroj.

7. Význam standardizace externích portů a sběrnic

U externích sběrnic a portů je důležitá existence standardu a samozřejmě také unifikace jednotlivých rozhraní. Pro vysvětlení významu unifikace se zkusme vrátit v čase zpět do několika posledních let minulého tisíciletí. Běžný osobní počítač byl v té době vybaven mnoha rozhraními, které mezi sebou nebyly navzájem kompatibilní a pro každé rozhraní (i zařízení připojené k tomuto rozhraní) se musely použít zvláštní ovladače: klávesnice se připojovala buď k vlastnímu rozhraní s konektorem typu DIN nebo ke konektoru typu PS/2. Myš byla určena pro „malý“ sériový port s konektorem DB9 (popř. ke druhému konektoru PS/2), modem naopak pro „velký“ sériový port s konektorem DB25. Tiskárna využívala paralelní port, joystick vlastní rozhraní s třináctipinovým konektorem (o toto rozhraní se navíc musel dělit s MIDI výstupem). Připojení skeneru se řešilo buď dalším paralelním portem (většinou bylo nutné přikoupit zvláštní kartu s tímto portem či porty) nebo externím SCSI rozhraním (opět nutno přikoupit). Rozšíření počítače o další externí zařízení bylo z tohoto důvodu komplikované, uživatel se většinou musel uchýlit ke koupi další rozšiřující karty – samozřejmě za předpokladu, že měl v počítači volný konektor, volné přerušení atd.

Tento stav samozřejmě nevyhovoval ani uživatelům, ani výrobcům periferních zařízení – snahou uživatele je co nejvíc si ulehčit práci (plug and play), snahou výrobců prodat co nejvíce různých více či méně užitečných zařízení, které musí být možné k počítači jednoduše připojit. Málokdo by si například pořídil nabíječku na baterie napájenou z počítače, s níž by navíc dostal přídavnou kartu, kterou by mu do počítače musel někdo zabudovat. S konceptem unifikovaných portů či sběrnic, které navíc podporují technologii plug and play je to již možné, protože se odstraňuje nutnost instalace rozšiřujících karet do počítače, nastavování těchto karet (paměťový rozsah, přerušení, vstupně-výstupní porty) atd. Výsledkem snah o unifikaci je sběrnice USB, se kterou se seznámíme příště.

pc3609

Obrázek 9: Logo sběrnice USB, takzvaný „trojzubec“ (trident), naznačuje fyzickou topologii založenou na hvězdě/stromu.

CS24_early

8. Odkazy na Internetu

  1. Interview with Joe Decuir
    http://www.ata­rimuseum.com/ar­ticles/joedecu­ir.html
  2. USB AND OS/2
    http://www.os2vo­ice.org/VNL/pas­t_issues/VNL1199H/­vnewsf5.htm
  3. Standards and specs: The ins and outs of USB
    http://www.ib­m.com/developer­works/power/li­brary/pa-spec7.html
  4. USB Class Codes
    http://www.us­b.org/developer­s/defined_class
  5. Universal Serial Bus
    http://en.wiki­pedia.org/wiki/Usb
  6. SMBus.org
    http://www.smbus­.org
  7. SMBus FAQ
    http://www.smbus­.org/faq/faq.htm
  8. System Management Bus
    http://en.wiki­pedia.org/wiki/Sys­tem_Managemen­t_Bus
  9. SMBus Specifications
    http://www.smbus­.org/specs
  10. SMBus Control Method Interface Specification Version 1.0
    http://www.smbus­.org/specs/smbus_cmi1­0.pdf
  11. System Management Bus (SMBus) Specification Version 2.0
    http://www.smbus­.org/specs/smbus20­.pdf

9. Obsah následující části seriálu

V navazující části seriálu o architekturách počítačů si podrobně popíšeme universální sériovou sběrnici (USB), průmyslovou sběrnici I2C a její zjednodušenou verzi SMBus. Sběrnice USB postupně vytlačila prakticky všechny starší technologie sloužící k připojení externích zařízení – například port pro klávesnici a myš (DIN, PS/2), sériové (RS-232) a paralelní porty atd. Jedinou výjimkou jsou vysokorychlostní zařízení, pro které se dnes používá převážně rozhraní FireWire. Průmyslová sběrnice I2C (SMBus) je taktéž velmi rozšířena (pravděpodobně i více než USB, i když se s ní běžný uživatel setká méně často). Používá se jak v osobních počítačích a serverech pro interní komunikace (větráčky, čtení dat ze sériové nevolatilní ROM), tak i v mnoha dalších elektronických zařízeních a strojích. I v automobilech můžeme tuto sběrnici nalézt, zde slouží k přenosu dat z jednotlivých čidel do centrální řídicí jednotky a naopak k řízení motoru (vstřikování, zapalování) i dalších zařízení.

Byl pro vás článek přínosný?

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.