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ě 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 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č.