Cesta do hlubin USB - Historie USB

1. 9. 2000

Sdílet

- 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 kompresovaného videa v reálném čase, - pružno...

– 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 kompresované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ů.

Standardy pro nové univerzální sériové rozhraní se začaly vytvářet už na

přelomu let 1994 a 95. Cílem mělo být rozhraní snadno použitelné s dostatkem

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 sjednotila 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í externích skenerů či zálohovacích mechanik.

V té době se sice už do jisté míry zlepšil software 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).

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í třech kategorií pomalá, střední a

rychlá.

Pomalá zařízení vyžadují datový tok v řádu 10–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í kompresovaný audio tok,

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 rychlost se pohybuje kolem 25–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: jediném typu konektorů a kabelu, eliminaci

veškerých elektrických detailů od uživatele (například neexistuje povinná

terminace sběrnice, jako třeba u rozhraní SCSI), 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ů až k

megabitům za sekundu, dále je zde podpora mnoha typů přenosů prostřednictvím

jediného kabelu, možnost současné práce několika periferií, podpora až 127

současně připojených zařízení, podpora datových toků současně s předáváním

zpráv, podpora multifunkčních zařízení a nízká provozní režie při přenosu.

Velmi cenná je celková robustnost sběrnice. Do protokolu jsou integrovány

mechanismy 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é rovněž pro vývoj velmi laciných periferí, jako jsou myši či

klávesnice, používají se také levné kabely a konektory.

Architektura 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ězdicovost 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ť ten je zcela zodpovědný za své podřízené periferie.

Vícevrstevná architektura je nutností pro varabilitu 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á hubu níže

postavenému.

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 z zásadních vlastností USB je též distribuce napájení. Vzhledem k

vnitřnímu uspořádání kabelu, kde jsou dva vodiče datové, jeden zemnící a jeden

napájecí, je systém připraven také na připojení perfierií 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

dvou 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í dva typy trubek tokové a zprávové. Zatímco tokové trubky nemají nějak

přesně USB specifikovanou strukturu, 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, momentálním 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 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 dvě 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 jednoho či dvou 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ě 3×, 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 je o hub nebo 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 přenos hromadný (bulk transfer). Při takovém přenosu

jsou typicky přenášeny větší objemy dat vysokou rychlostí tak je tomu například

při skenování nebo tisku po USB. Hromadný přenos má dvě 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í jako myši či joysticky, klávesnice a podobně.

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 kompresované video z

USB kamery. Izochronní data musí být doručena při zachování stejného časování,

v jakém byla odeslána.

Pomalá a rychlá zařízení

USB podporuje dvě 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.

Budoucnost USB

Popsaná technologie je dnes nazývána USB první generace, tedy USB 1. Již dnes

jsou ale projekty a dokumenty standardizující další verzi USB 2.0, podporovanou

novým konsorciem firem Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC a

Philips. Hlavním vylepšením by mělo být zvýšení přenosové rychlosti na 480 Mb/s

(tedy 60 MB/s), při zachování plné zpětné kompatibility se stávajícími systémy

USB 1.1. Tím je myšleno především používání shodných kabelů a konektorů, stejně

jako podpora stávajících periferií standardu USB 1.1. Na první základní desky a

periferie obsahující rozhraní USB 2.0 se můžeme těšit již v druhé polovině

tohoto roku.

Porazí USB 2.0 FireWire?

Zajímavou a s nástupem USB verze 2.0 i aktuální otázkou je konkurence mezi

sběrnicí USB a IEEE–1394 (FireWire).

USB bylo původně navrhováno jako komplementární technologie k IEEE-1394. USB

mělo být určeno pro připojování polohovacích periferií, pomalých diskových

jednotek, modemů, zvukových karet a podobně, zatímco FireWire byl navržen pro

stahování záznamů z videokamer, diskové systémy a další periferie s vysokým

přenosovým výkonem.

Nástup USB 2.0 však umožní, aby i rychlejší zařízení bylo možné připojit na

sběrnici USB, aniž by však došlo k výraznější ztrátě výkonu, jako tomu je dnes.

Nejnovější specifikace IEEE-1394 navrhují i vyšší rychlosti přenosu, ale

vzhledem k obecně dražší implementaci FireWire do stávajících i budoucích

systémů nelze předpokládat jejich rychlé a plošné rozšíření. Příkladem může být

i velmi pomalý rozmach USB, kdy v prvních letech byla k dispozici specifikace,

existoval operační systém schopný s USB pracovat, dokonce i nové základní desky

byly vybavovány USB root huby, avšak nebyla k dispozici příslušná zařízení.

Dnes je situace s IEEE-1394 velmi podobná, a navíc se rozhraní FireWire ještě

zdaleka nestalo běžnou součástí základních desek PC.

Z těchto důvodů se nezdá pravděpodobné, že by se schylovalo k nějaké zásadnější

bitvě mezi USB 2.0 a FireWire. Síly spíš zůstanou rozloženy tak, jako tomu bylo

dosud a technologie se budou vzájemně doplňovat.

Jaký USB kabel?

USB používá obecně dva druhy konektorů nazvané A a B. Konektor typu A je plochý

a zdířku na něj naleznete právě na straně vašeho PC (zadní, boční, přední,

záleží na konkrétním případu skříně). Konektor B je menší, téměř čtvercový a

příslušná zdířka se nachází v periferii, tedy v tiskárně, skeneru, ale i v

hubu. Nejčastějším kabelem USB je A-B kabel, kterým se jednoduše spojí hub (ať

už kořenový v počítači, či přídavný hub ležící na stole) s další periferií. Oba

konektory na kabelu jsou typu „sameček“, což jistě není třeba obšírněji

vysvětlovat.

Zvláštním typem USB kabelu je prodlužovací kabel A-A v konfiguraci sameček-

samička. Ten slouží jako prosté prodloužení akčního radia USB. Některé názory

na něj však nejsou příliš povzbudivé a tvrdí se, že zhoršuje parametry USB

přenosu, nezaručuje plnou funkčnost některých periferií, a navíc je s ním

poměrně snadné překročit maximální délku USB kabelu, která činí 5 metrů.

Ano, zařízení USB nemůže být od rozbočovače dále než 5 metrů a v případě, že

zřetězíte více hubů za sebou, nesmíte ani tak překročit 25 metrů. Je-li však

vaše tiskárna dále než zmíněných 5 metrů, můžete ji připojit s pomocí aktivního

USB kabelu.

V čem to kouzlo spočívá? Každý propojovací A-B USB kabel je navržen jako

pasivní, což znamená, že neobsahuje žádné aktivní prvky můžete jej směle

podrobit radioaktivnímu záření a uvidíte, bude stále pracovat! Aktivní USB

kabel se naproti tomu skládá z prostého USB kabelu, na který je integrován

jednoportový USB hub s konektorem typu A-samička. Mívá délku kolem 5 metrů a

můžete do něj zapojit libovolně dlouhý (samozřejmě do 5 metrů) pasivní USB

kabel typu A-B. Na jeho konec pak standardním způsobem připojíte tiskárnu,

skener, nebo jinou USB periferii. Pochopitelně není vyloučené pokračovat dalším

USB hubem.

Tyto aktivní kabely je možné dále zřetězit a dosáhnout tak délky až 25 metrů od

kořenového rozbočovače v PC k periferii. Aktivní USB kabel stojí na našem trhu

kolem 1 200 Kč.

Zařízení dostupná na USB

Polohovací zařízení: klávesnice, myši, joysticky, volanty, tablety

Adaptéry: Ethernet, paralelní, sériové, SCSI

Periferie: modemy, tiskárny, skenery, reproduktory

Disky: pevné, CD-ROM, CD-RW, ZIP, disketové mechaniky

Obrazová zařízení: digitální fotoaparáty, kamery, monitory (pouze ovládání, ale

často s integrovaným hubem)

Ostatní: rozbočovače (huby), aktivní kabely, rozšířené rozbočovače (hub s

dalším adaptérem, nejčastěji sériovým, paralelním, Ethernet, PS/2), čtečky

paměťových karet

Mimo těchto zařízení je USB potenciálně k dispozici všude tam, kde se dříve

používalo sériové či paralelní rozhraní jako komunikační prostředník. Příkladem

mohou být třeba on-line UPS nebo přenosné MP3 přehrávače.

USB jako metoda propojení dvou počítačů

USB samo o sobě není schopné zajistit spojení dvou PC. Je to dáno především

tím, že hvězdicová topologie určila do středu pomyslné hvězdy právě root hub,

tedy součást dnes již každého nového PC. A právě zde nastává hlavní problém:

Root hub v počítači je schopen pracovat pouze v režimu, kdy on sám je kořenovým

rozbočovačem a nikoliv klientem. Při spojení dvou PC pomocí prostého kabelu by

tak zákonitě nastala situace, kdy oba dva kořenové rozbočovače by se snažily

pracovat jako vůdčí pro toto připojení a ke spojení by zcela zákonitě nedošlo.

Navíc USB jako samonapájecí rozhraní disponuje ve svých čtyřech vodičích také

dvojicí napájecích, a i s nimi by při propojování dvou PC byl problém.

Počítat s tím, že výrobci čipových sad pro USB implementují do svých produktů

také režim, kdy kořenový rozbočovač v PC bude schopen pracovat rovněž jako

klient, je zatím poměrně naivní a tak nezbývá, než se spolehnout na produkty

třetích firem. A dnes již lze s radostí konstatovat, že na trhu jsou speciální

propojovací kabely schopné pracovat jako rychlé spojení dvou PC prostřednictvím

USB, včetně toho, aby prostřednictvím softwaru poskytly k dispozici také obsah

připojeného počítače. Mezi oběma konektory kabelu se nachází aktivní prvek,

chovající se pro obě dvě strany USB jako klient, jenž zaručuje přenos dat

vysílaných z obou root hubů a také elektrické oddělení napájecích vodičů USB.

Řešení je to finančně nenáročné s uspokojivým výkonem. Na našem trhu by se cena

takového zařízení pohybovala zřejmě kolem 1 500 Kč.