USB teorie a praxe

Sběrnice USB se dlouho nevyužívala prostě proto, že chyběly periferie, které by ji používaly a také podpora USB v op...


Sběrnice USB se dlouho nevyužívala prostě proto, že chyběly periferie, které by
ji používaly a také podpora USB v operačních systémech byla mizivá. Až po
představení Windows 98 a masivním nástupu iMaca (který kromě USB má jen
vestavěný modem a síťové rozhraní pro Ethernet), se začala nejrůznější zařízení
s USB nějak více objevovat. A na letošním CeBITu se s nimi doslova roztrhl
pytel. Návštěvník tak mohl mít pocit, že jiné rozhraní pro připojení periferií
se dnes už snad vůbec nepoužívá.
USB jak to vlastně funguje?
Objem dat, který počítače zpracovávají, dramaticky roste. Tomu dlouhou dobu
odpovídal i pokrok ve výkonech procesorů, kapacitách pamětí všeho druhu, rozvoj
grafických a síťových karet, atd. Jen základní komunikační porty zůstávaly
poměrně neměnné a stávaly se úzkým hrdlem na trase informací. Proto se výrobci
začali zajímat o nové, jednoduché, rychlé a hlavně univerzální rozhraní. Tak
vzniklo rozhraní USB (Universal Serial Bus). Již několik let jsou počítače
tímto rozhraním vybavovány na periférie a podporu operač-ních systémů jsme
museli trochu čekat.
Historie USB
Tvorba standardů pro nové sériové rozhraní začala už na přelomu let 1994 až 95.
Jejím cílem bylo už konečně vytvořit rozhraní, které se bude snadno používat a
u kterého nebude nikdy nedostatek portů. Do té doby byla všechna běžná
rozhraní, snad kromě PCMCIA, velmi obtížně konfigurovatelná z pozice koncového
uživatele, a počítače se neustále potýkaly s nedostatkem přípojných míst.
Postupem času se sice výbava PC ujednotila na dvojici sériových portů, jednom
paralelním a jedné klávesnici, ale i tak se poměrně obtížně řešilo připojování
třeba skenerů či zálohovacích mechanik skrz různé pass-through konektory.
V té době se sice už do jisté míry zlepšil softwa-re z obtížně zvladatelné
příkazové řádky do podoby grafických uživatelských rozhraní, stejně jako se
hardware začal chovat poněkud rozumněji, jsa připojen na moderní sběrnice, ale
stále zde zůstávala mezera v podobě externích zařízení a jejich připojování k
PC. Proto se konsorcium firem Compaq, Intel, Microsoft a NEC usneslo a v
listopadu 1995 vytvořilo první oficiální dokument, standardizující nové
rozhraní nazvané Universal Serial Bus (USB).
Pozadí USB
Při tvorbě rozhraní USB byla brána v potaz především tato kritéria:
snadné rozšiřování PC dalšími komponentami,
levné řešení pro přenosy rychlostí až 12 Mb/s,
plná podpora přenosu hlasu, audia a komprimovaného videa v reálném čase,
pružnost protokolu pro zvládání různých typů přenosu současně,
jednoduché zapojení USB do stávajících systémů.
Kategorie zařízení
Vzhledem k maximální přenosové rychlosti 12 Mb/s se z hlediska datové
náročnosti mohou k USB připojovat zařízení 3 kategorií pomalá, střední a rychlá.
Pomalá zařízení vyžadují datový tok v řádu 10 až 100 Kb/s a reprezentují
především interaktivní vstupní a výstupní zařízení. Typickým příkladem pomalých
zařízení jsou myši, klávesnice, pera, herní zařízení, prostředky pro virtuální
realitu nebo třeba konfigurační prostředky pro monitor a to vše samozřejmě v
obou směrech přenosu. Tedy možnost ovládat hru přes USB joystick, stejně jako
nechat joystickem kymácet v režimu force-feedback.
Střední zařízení vyžadují datový tok 500 Kb až 10 MB/s a jejich představiteli
jsou zejména modemy, audiosoustavy, kamery produkující komprimovaný audiotok,
připojení ISDN či některé síťové adaptéry. U takových zařízení je nutnost
zajistit především stálý datový tok, dynamické připojení a odpojení a v
neposlední řadě také simultánní provoz několika z nich.
Mezi rychlá zařízení patří hlavně diskové systémy, skenery, nebo video, jejichž
přenosová rychlost se pohybuje kolem 25 až 500 Mb/s. Tato zařízení se dají k
USB připojit pouze za zvláštních podmínek ve speciálním přenosovém režimu.
Vlastnosti USB
Jednou z předních vlastností USB je snadnost použití pro koncového uživatele.
Ta spočívá v několika věcech: v jediném typu konektorů a kabelu, eliminaci
veškerých elektrických detailů od uživatele (např. neexistuje povinná terminace
sběrnice, jako třeba u SCSI), ve zcela automatické identifikaci periferií,
jejich mapování k ovladači a konfiguraci, v možnosti dynamicky připojovat a
odpojovat zařízení ve spojení s jejich samočinnou rekonfigurací.
Další důležitou vlastností je široké pole použitelných zařízení. To je
zajištěno především ve variabilním datovém toku od několika kilobitů za sekundu
až k megabitům za sekundu, podporou mnoha typů přenosů prostřednictvím jediného
kabelu, možností současné práce několika periferií, podporou až 127 současně
připojených zařízení, podporou datových toků současně s předáváním zpráv,
podporou multifunkčních zařízení, nízkou provozní režií při přenosu.
Velmi cenná je celková robustnost sběrnice. Do protokolu jsou integrovány
mechanizmy pro detekci chyb a zotavení, stejně tak jsou podporována hlášení
zařízení o vlastních chybách a veškerá zařízení mohou být dynamicky připojována
a odpojována bez vyvolání chyb.
Vzhledem k univerzálnosti použití bylo nutné zařadit také širokou flexibilitu
USB. Podporovány jsou rozličné délky paketů podle požadavků zařízení, stejně
jako různé přenosové rychlosti. Také kontrola toku dat je součástí přenosového
protokolu.
Pro široké rozšíření je nezbytná také nízká cena celého řešení. USB je proto
optimalizováno pro integraci do hostitelského systému i periferií, je
přijatelné také pro vývoj velmi laciných periferií, jako jsou myši či
klávesnice, používají se také levné kabely a konektory.
Achitektura USB
Systém sběrnice USB je především důsledně hvězdicový, vícevrstvý a současně
také zcela centrálně ovládaný.
Hvězdice je základem USB. Každá periferie může být připojena pouze do zařízení,
které v USB funguje jako hub (rozbočovač) a poskytuje tedy další přípojná
místa. Není možné vázat další periferie na zařízení bez vlastností hubu, neboť
hub je zcela zodpovědný za své podřízené periferie.
Vícevrstevná architektura je nutností pro variabilitu připojovaných periferií.
Znamená především to, že k hubu je možné připojit buď periferii, nebo další,
podřízený hub, který poskytuje další přípojná místa, podřízená níže postavenému
hubu.
Každá USB sběrnice začíná u jednoho centrálního zařízení, tedy hostitele, root
hubu nebo kořenového rozbočovače. Tento root hub řídí veškerý provoz na
sběrnici, vyvolává a ukončuje datové přenosy a zodpovídá také za správu
sběrnice.
Distribuce napájení
Jednou ze zásadních vlastností USB je též distribuce napájení. Vzhledem k
vnitřnímu uspořádání kabelu, kde jsou 2 vodiče datové, 1 zemnící a 1 napájecí,
je systém připraven také na připojení periferií napájených přes sběrnici.
Paketový model přenosu dat
Komunikační protokol pracuje na principu paketového přenosu. Systém tedy
nepřenáší pouze vyhraněná data jedné periferie, ale s pomocí malých bloků údajů
je schopen současně řešit více požadavků a přenosů. Komunikace probíhá v tzv.
transakcích, což jsou skupiny paketů spolu úzce souvisejících. Každou transakci
začíná root hub, tedy řadič USB uložený uvnitř PC a vyvedený na zadní stranu ve
2 konektorech. Prvním paketem je token packet, určující typ přenosu, jeho směr,
adresu zařízení a číslo koncového bodu. Zařízení v token paketu označené jako
adresované, samo sebe pozná a identifikuje, načež odešle, případně přijme
požadovaná data. Také směr přenosu, tedy do host adaptéru nebo do periferie je
určen v token paketu. Nejsou-li už žádná data k dispozici, pošle zdrojové
zařízení do cílového oznámení o ukončení přenosu. Cílové zařízení naopak oznámí
korektní přijetí dat pomocí zvláštního paketu.
Trubky jádro USB
Transfer dat mezi zdrojem a cílem přenosu se nazývá trubka (pipe). Obecně
existují 2 typy trubek tokové a zprávové. Zatímco tokové trubky nemají nějak
přesně specifikovanou strukturu USB, zprávové ji mají. Mnoho trubek se zapojí
okamžitě poté, co se k USB připojí zařízení a je správně zkonfigurováno. Jedna
zprávová trubka, nazývaná Default Control Pipe, existuje stále, od okamžiku,
kdy je připojené zařízení napájeno. S její pomocí jsou posílány základní zprávy
pro přístup ke konfiguraci, stavu a ovládání zařízení.
Správa transakcí zajišťuje práci tokových trubek. Na hardwarové úrovni je
zajištěno odebírání a odesílání požadovaných dat, což zajišťuje možnost
otevření mnoha tokových trubek pro různá zařízení, přenášející svá data zcela
odlišnými rychlostmi. Proti problémům je systém zabezpečen využitím negativního
potvrzení přenosu (NAK). Dojde-li od nějakého zařízení signál NAK, paket se
zopakuje v nejbližším volném termínu. Tímto systémem je USB schopno v reálném
čase zpracovávat několik datových toků s různou rychlostí a s různou délkou
paketu. Systém trubek a paketů je jádrem schopnosti USB pracovat s několika
zařízeními zároveň.
Aby byl přenos dostatečně robustní, jsou integrovány 2 technologie na řešení
chyb. Na bitové úrovni je součástí každého paketu kód CRC, pro zjištění všech
chyb a rekonstrukci dat s chybou v rozsahu 1 či 2 bitů. Zároveň obsahuje systém
pro řešení krizových situací, kdy není možní přenos dokončit. USB se o přenos
pokouší ještě 3x, až poté operačnímu systému oznámí chybu při přenosu.
Klientský software samozřejmě může vyžadovat opětovné dokončení přenosu.
Konfigurace systému
Z pozice konfigurace systému je nejzajímavější připojování a odpojování
zařízení. K USB lze připojovat periferie pouze na speciální zařízení zvané
huby. Huby mají na každém svém přípojném místě indikátor, jenž oznámí připojení
nebo odpojení zařízení na jeden z jejich portů. Řadič se periodicky vyptává
hubů na tyto indikátory a reaguje na jejich změnu. V případě připojení řadič
povolí port, a naadresuje skrz řídicí trubku periferii zatím na základní adrese.
Kořenový rozbočovač přidělí zařízení jedinečné ID na USB sběrnici, kterým bude
během této seance zařízení voláno. Pak zjistí, jakou základní funkci nová
periferie má, zda jde o hub nebo o výkonné zařízení. Jestliže je připojené
zařízení hub, který má na sobě už připojena další zařízení, provede se
předchozí postup také pro každé zařízení k hubu připojené. Je-li připojeným
zařízení výkonná periferie, je softwaru oznámeno připojení nového zařízení.
Když je naopak USB zařízení odstraněno, hub musí zavřít port a provést indikaci
o odstranění zařízení do řadiče. Pokud je odpojeným zařízením hub, musí
systémový software USB zajistit zrušení odkazů nejen na rozbočovač, ale také na
všechna předtím připojená zařízení, napojená na odebíraný hub.
Typy datových toků
Trubkový model datových přenosů se dále dělí podle parametrů a požadavků na
přenos, zejména rychlosti a délky paketu. Rozeznáváme celkem 4 základní typy
přenosů:
Ovládací přenos (control transfer) je používán USB systémovým softwarem pro
konfiguraci zařízení těsně po jeho připojení. Ostatní softwarové ovladače mohou
tohoto typu přenosu využít podle aktuální potřeby. Doručení je bezeztrátové.
Dalším typem přenosu je hromadný přenos (bulk transfer). Při hromadném přenosu
jsou typicky přenášeny větší objemy dat vysokou rychlostí, tedy např. při
skenování nebo tisku po USB. Hromadný přenos má 2 základní vlastnosti:
Především se používá v případě, kdy teoretický výkon zařízení je vyšší, než je
nejvyšší možný výkon USB a kdy je tedy po sběrnici vyžadována maximální možná
rychlost. A dále pak je u tohoto přenosu povoleno opakování jednotlivých paketů
při problémech s doručením. Detekce chyb je totiž schopna zjistit, zda došlo ke
korektnímu doručení dat a v případě, že nedošlo, je možné na hardwarové úrovni
vyvolat několik pokusů o opětovné doručení. Hromadný přenos se využívá třeba u
USB zálohovacích zařízení, jako jsou ZIP nebo jiné mechaniky.
Zvláštním režimem přenosu je přerušovací přenos (interrupt transfer). Jeho
charakterem jsou malé objemy dat, u kterých je ovšem kladen velký důraz na
včasné doručení. Typickým případem přerušovacího přenosu jsou polohovací
zařízení mezi něž patří myši či joysticky, klávesnice apod.
Posledním typem přenosu je izochronní přenos (isochronous transfer). Izochronní
data jsou především výsledky tvorby či záznamu v reálném čase, kdy je však
rychlost jejich generování nižší, než je rychlost sběrnice. Typickým příkladem
izochronních dat je třeba hudba do USB reproduktorů nebo komprimované video z
USB kamery. Izochronní data musí být doručena při zachování stejného časování,
jako byla odeslána.
Pomalá a rychlá zařízení
USB podporuje 2 základní rychlosti vysokou a nízkou. Vysoká rychlost je
maximálně právě zmíněných 12 Mb/s (tedy 1,5 MB/s), zatímco nízká rychlost
dosahuje nejvíce 1,5 Mb/s (187,5 KB/s). Pouze ovládací a přerušovací přenos
může být prováděn jak v režimu vysoké, tak v režimu nízké přenosové rychlosti.
9 0941 / orn









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.