Uživatel:Hlavap14

Z HPM wiki
Přejít na: navigace, hledání

Petr Hlavacek

Semestralni prace: USB2/USB3


Obsah

USB (Universal Serial Bus)

rightRůzné typy konektorů USB, zleva doprava: micro USB, mini USB, typ B, samice typ A, typ A, pro srovnání velikosti na obrázku s jedním rublem‎‎

Zkratka v názvu této sběrnice pochází z anglického sousloví Universal Serial Bus (Univerzální sériová sběrnice). Jedná se o externí sběrnici, která je zajímavá především tím, že na fyzické úrovni jsou jednotlivá komunikující zařízení (včetně hubů) propojena systémem point to point (jedním kabelem mohou být propojena vždy jen dvě zařízení), na rozdíl od klasických sběrnic tvořených společnými vodiči. Na logické úrovni se však o sběrnici skutečně jedná, komunikace probíhá i mezi zařízeními mezi nimiž leží i několik hubů (uzlů, ve kterých dochází k větvení). První specifikace USB byla navržena v roce 1995, jako levné univerzální rozhraní pro externí zařízení, která vystačí s nižší průchodností dat. Jak konstrukční provedení konektorů, tak i způsob propojení jednotlivých komunikujících uzlů je navrženo s ohledem na co nejsnazší práci se zařízeními určenými pro tuto sběrnici.

USB znak

Pomocí USB lze připojit téměř každou periférii, klávesnice, myší, tiskárny, ale i kamery, či pevné disky. Výhodou je možnost připojování Plug & Play bez nutnosti restartování počítače nebo ručního instalování ovladačů. Zařízení lze připojit za chodu k počítači a během několika sekund je přístupné. Mnoho menších zařízení, které se připojují ke sběrnici USB má tak malé výkonové požadavky, že je lze napájet přímo pomocí napájecích vodičů vyvedených z počítače na konektory USB. Sběrnice USB díky svým vlastnostem postupně vytlačila prakticky všechny starší technologie sloužící k připojení externích zařízení k počítačům – například port pro klávesnici a myš (původně se na IBM PC jednalo o konektor typu DIN, později PS/2), sériový port RS-232C (v některých oblastech je však sériový port sběrnicí USB jen těžko nahraditelný). Vysokorychlostní externí zařízení dnes nadále používají převážně rozhraní FireWire a SCSI, i když i zde se můžeme setkat s využitím USB pro přenos dat u přenosných disků.


Topologie sběrnice

Topologie sběrnice USB


USB není založeno na sběrnicové (lineární) topologii, ale na víceúrovňové hvězdicové či, přesněji řečeno, stromové struktuře. Není tedy možné na USB vytvořit zařízení zapojená do kruhu. Celou komunikaci na sběrnici tedy řídí jedno zařízení tzv. kořenový rozbočovač (root hub), jedná se o zařízení pracující v režimu master. Rozbočovače a ostatní zařízení, kterých může být až 127, pracují v režimu slave a jsou k němu připojeny. Díky existenci pouze jednoho zařízení typu master došlo k výraznému zjednodušení komunikačního protokolu, na druhou stranu to však také znamená, že bez použití nějakých mezičlánků není možné mezi sebou propojit dvě zařízení typu master, třeba právě dva počítače. S ohledem na zpoždění signálu v kabelech a hubech povoluje specifikace zapojení maximálně pěti rozbočovačů mezi kořenovým rozbočovačem a koncovým zařízením.

Existují také zařízení, které mohou pracovat jako master i slave. Například některé digitální fotoaparáty jsou schopné při připojení k počítači emulovat mass storage device a tvářit se jako záznamové zařízení (režim slave) nebo ovládat tiskárnu k nim připojenou (režim master). V daném okamžiku může být aktivní pouze jeden z těchto režimů (nehledě na to, že se používají odlišné konektory či propojovací kabely).


USB rozbočovač
Různé typy USB konektorů

Jak bylo řečeno v úvodu, jedním kabelem lze propojit pouze dva uzly. Jak je možné dosáhnout připojení maximálního počtu uzlů (zařízení), které může dosáhnout hodnoty až 127 připojitelných uzlů k jednomu kořenovému uzlu (master). Řešení problému připojení většího množství zařízení spočívá v použití takzvaných rozbočovačů (hubs). Každý rozbočovač, který může být představován buď specializovaným zařízením, jež slouží pouze pro připojení dalších uzlů, nebo má i jinou funkci (rozbočovače na monitorech, klávesnicích atd.) musí obsahovat jeden konektor určený pro připojení buď přímo k počítači nebo k dalšímu rozbočovači a prakticky libovolný počet konektorů (většinou typu A), na které lze připojit koncová zařízení, případně další rozbočovač. Díky tomuto uspořádání je již mechanicky zajištěno, že nevznikne zakázaná topologie obsahující cyklus. Rozbočovače obsahují poměrně složité obvody, které zajišťují řízení sběrnice, zesilování signálů, úpravu jejich hran a směrování paketů, tj. nejedná se o pouhé paralelní propojení několika konektorů. Norma stanovuje, že za sebou může být zapojeno maximálně pět rozbočovačů, ovšem díky tomu, že počet rozbočovačů na stejné úrovni již omezen není, lze snadno vybudovat i velmi rozsáhlé sítě, které jsou omezené především maximální povolenou délkou propojovacích kabelů (3m v případě USB 2.0).


Přenosové rychlosti

Zařízení, která jsou připojena na sběrnici USB mohou přenášet data několika rychlostmi.

USB 1.0

Původní norma, dnes označovaná jako USB 1.0, stanovovala dvě rychlosti. Základní rychlost 1,5 MB za sekundu (12 Mb za sekundu), neboli Full Speed, musí být podporována všemi rozbočovači a většinou i samotným kořenovým uzlem (master), nikoli však nutně koncovými zařízeními, protože některá zařízení, například klávesnice či joysticky, tak vysokou rychlost ke své činnosti nepotřebují. Taková pomalá zařízení pracují na rychlosti 187,5 kB za sekundu (1,5 Mb za sekundu), jež se označuje termínem Low Speed. Při této rychlosti se každý bit přenáší osmkrát pomaleji než při použití základní (plné) rychlosti.

USB 2.0

V roze 2001 byla v normě USB 2.0 stanovena i vyšší rychlost – High speed – při které lze teoreticky dosáhnout až hodnot 60 MB za sekundu (480 Mb za sekundu). Rychlost přenosu reálných informací je ve skutečnosti někdy i podstatně nižší, protože se kromě „užitečných“ dat musí přenášet i další informace – adresy, CRC, řídicí tokeny atd.. Zařízení dovolující použití High speed může v případě potřeby přejít i na základní rychlost, což je nutné pro udržení zpětné kompatibility. V dnešní době takřka všechny základní desky a zařízení podporují USB 2.0, tedy i všechny tři výše popsané přenosové rychlosti.

USB 3.0

V létě roku 2010 byla vydána specifikace USB 3.0, která mj. obsahuje i tzv. SuperSpeed, což je označení přenosové rychlosti, jejíž hodnota dosahuje 625 MB za sekundu (5,0 Gb za sekundu). Jedná se o alternativu k externímu SCSI či FireWire (v současnosti například pevné disky připojené přes FireWire pracují rychleji než srovnatelné disky připojené přes USB 2.0). Nová technologie má 8 vodičů namísto původních 4 (datové vodiče jsou již 4 oproti dvěma u USB 2.0).


Zapojení a napájení

Zapojení vývodů konektorů A a B na panelu

Jako přenosové medium dvou komunikujících uzlů se používá kabel se čtyřmi vodiči, který má na první pohled poněkud neobvyklou strukturu, především při porovnání s kabely používanými u jiných typů sběrnic. Dva vodiče slouží pro napájení připojených periferních zařízení (myší, flash disků, web kamer a dalších), jedná se o zem (GND) a vodič po kterém je přivedeno stejnosměrné napětí +5V. Další dva vodiče, které se označují symboly D+ a D-, jsou určeny pro sériový poloduplexní přenos dat s využitím diferenčního kódování. Díky tomu jsou přenášená data odolnější vůči účinkům okolních elektrostatických polí a data mohou být přenášena na delší vzdálenosti. Oba signálové vodiče jsou tvořeny kroucenou dvojlinkou, jejíž impedance by měla dosahovat hodnoty přibližně 90 Ω (odchylka od této hodnoty může být maximálně patnáctiprocentní). U USB sběrnice není vyvedený samostatný hodinový signál, který není potřeba oproti jiným sběrnicím, protože díky použitému způsobu kódování bitů metodou NRZI (Non Return To Zero) s vkládanými bity se přijímací zařízení může s každým přeneseným bajtem znovu zasynchronizovat (je zaručeno, že v jednom bajtu vždy dojde ke změně datového signálu).

USB kabel

Připojené zařízení může po sběrnici odebírat proud maximálně 500 mA. U osobních počítačů občas bývají napájecí vodiče sběrnice vyvedeny přímo ze zdroje počítače a USB zařízení připojené k počítači a pak zařízení může odebírat i mnohem vyšší proud. Tohoto triku zneužívají například některé externí USB pevné disky, jejichž odběr je vyšší než požadovaných 500 mA a které po připojení k některému počítači nemusí fungovat. USB 3.0 nám může nabídnout až 150 mA*6 jednotek, tj. celkem až 900 mA.


Třídy a podtřídy USB zařízení

Každému zařízení je podle jeho funkce přiřazen kód nazývaný třída zařízení. Ihned po zapojení zařízení do sítě a jeho resetu, dojde ke zjištění třídy do které zařízení spadá a operační systém zvolí vhodný ovladač přičemž zařízení, která spadají do stejné třídy, mohou používat shodný či velmi podobný ovladač, i když se může jednat o zařízení od různých výrobců.

Flash disk připojený do počítače se ohlašuje jako zařízení třídy 08, podtřída 06.
   08  Mass Storage
       01  RBC (typically Flash)
               00  Control/Bulk/Interrupt
               01  Control/Bulk
               50  Bulk (Zip)
       02  SFF-8020i, MMC-2 (ATAPI)
       03  QIC-157
       04  Floppy (UFI)
               00  Control/Bulk/Interrupt
               01  Control/Bulk
               50  Bulk (Zip)
       05  SFF-8070i
       06  SCSI
               00  Control/Bulk/Interrupt
               01  Control/Bulk
               50  Bulk (Zip)


Detekce rychlosti zařízení a impedanční ukončení přenosové linky

Rozpoznání‎ zařízení

Na straně výstupního konektoru počítače či rozbočovače je na každou datovou linku, tj. jak D+, tak i D-, připojen rezistor o hodnotě 15 kΩ jehož druhý konec je uzemněný. To znamená, že pokud není na tento konektor zapojeno žádné další zařízení, jsou na obou signálových vodičích nízké úrovně L. Tento stav snadno a za všech okolností detekovatelný (v přenášených datech se nemůže nikdy objevit). Na straně USB zařízení (či na vstupu rozbočovače) je na jedné datové lince umístěn pull-up rezistor o odporu 1,5 kΩ připojený na napájecí napětí 3,3 V. Pokud dojde k připojení zařízení k host controlleru, vytvoří se napěťový dělič 1,5 kΩ-15 kΩ a napětí na tomto signálovém vodiči se zvýší na logickou úroveň H, která odpovídá přibližně hodnotě tří voltů. Přenosová rychlost jakou bude zařízení komunikovat se určí podle toho na který datový vodič je přivedeno napětí. Pokud je „zvednuta“ logická úroveň vodiče D+, jedná se o zařízení zvládající normální rychlost (Full Speed), pokud je naopak zvednuta úroveň druhého vodiče D-, jde „pouze“ o zařízení pracující nízkou rychlostí (Low Speed), na této rychlosti pracují HID zařízení (klávesnice, myš,...). Během resetu se zařízení identifikuje jako High Speed zařízení a pokud i druhá strana komunikace podporuje režim High Speed, je pull-up rezistor odpojen (přes tranzistor), protože obě linky musí být kvůli diferenčnímu kódování vyváženy.


Logické úrovně a kódování přenášených bitů

Zařízení pracující v režimu nízké i normální rychlosti se používají napěťové úrovně na signálových vodičích, pro nízkou logickou úroveň L je stanoven rozsah 0,0 až 0,3 V, pro vysokou logickou úroveň H pak rozsah 2,8 až 3,6 V. Pro zařízení pracující v režimu vysoké rychlosti jsou však napěťové úrovně zcela odlišné, je to –10mV až 10mV pro logickou úroveň L a 360–440 mV pro logickou úroveň H. Zmíněné úrovně H a L však nereprezentují přímo přenášené bity, protože pro použito upravené kódování NRZI mluvíme o tzv. stavech J a K, nikoli o úrovních H a L. Je tomu tak proto, že při použití nízké přenosové rychlosti je použita opačná polarita, než v případě, že komunikace probíhá rychlostí plnou.

NRZ kodovani.png


NRZI kodovani.png

Data jsou přenášena pomocí změny stavu datových linek. Jak už bylo zmíněno, rozeznávají se dva stavy J a K a proud bitů je zakódován (inverzní) metodou NRZI. To znamená, že bit s hodnotou nula je reprezentován jako změna stavu mezi J a K či naopak změnou stavu mezi K a J, zatímco bit s logickou hodnotou jedna znamená, že se stav přenosové linky nezmění, tj. linka zůstane v původním stavu (buď J nebo K). Kvůli synchronizaci přenášených dat, je v případě, kdy by se v bitovém proudu vyskytlo za sebou šest jedniček (šestkrát za sebou by se stav linky nezměnil) vložen bit s hodnotou nula a obě linky mohou být tak sesynchronizovány.


Stavy a řízení sběrnice
Stav sběrnice Úroveň na vodiči D+ Úroveň na vodiči D- Poznámka
Differential ‚1‘ H L představuje buď J nebo K podle zvolené rychlosti
Differential ‚0‘ L H představuje buď J nebo K podle zvolené rychlosti
Single Ended Zero (SE0) L L konec paketu, reset, atd.
Single Ended One (SE1) H H nepovoleno


Stavy J a K, které jsou použité pro přenos zakódovaného proudu bitů, se liší podle toho, jakou rychlostí se data přenáší:

Stav Režim Low speed Režim Full speed
J Differential ‚0‘ Differential ‚1‘
K Differential ‚1‘ Differential ‚0‘


Způsob přenosu dat

Stromová_topologie

USB sběrnice je na fyzické úrovni tvořena navzájem propojenými uzly tak, že tvoří stromovou strukturu s jedním kořenovým uzlem (nazývaným host). Řízení přenosu dat je centralizováno právě do tohoto kořenového uzlu, který postupně adresuje ostatní připojená zařízení a iniciuje přenosy dat. Výhodou této struktury je jednoduchost, protože není zapotřebí zavádět složitou arbitráž sběrnice a složitě řešit souběžně běžící přenosy mezi několika uzly. Nevýhodou tohoto řešení je však nedostatečné využití přenosového pásma a také nutnost aktivního zjišťování stavu všech připojených zařízení. Neexistuje totiž možnost, jak by zařízení (kromě kořenového uzlu) samo o sobě mohlo požádat o předání sběrnice. Proto není použití USB vhodné tam, kde se vyžadují rychlé reakce v zaručeném časovém intervalu. Kromě vlastních „užitečných“ dat jsou přenášeny i příkazy, kterými host řídí připojená zařízení a ty mu naopak posílají informaci o stavu přenosu dat, připravenosti pro příjem či vysílání dat.


Typy přenosů

Interupt přenos

Tyto přenosy jsou typické pro zařízení, které vyžaduje řízení pomocí přerušení. Například klávesnice generuje přerušení při každém stisku klávesy a to je následně zpracováno.


Bulk přenos

Tento přenos se používá pro přenos velkých bloků dat. Například pro tiskárnu.


Isochronní přenos

Používá se pro zařízení, které vyžaduje stálý přísun dat. Zde se nevyžaduje potvrzení došlých dat. Například mikrofon, reproduktory.


Řídící přenos

Je používán pro konfiguraci USB zařízení. Každé USB zařízení má v sobě zabudován popis kterým sděluje hostitelskému systému, jakým způsobem budou spolu komunikovat. Popis se načte právě při tomto řídícím přenosu.


Základní typy paketů

Pakety.jpg

Token paket

Token paket definuje typ transakce na USB. Známe čtyři základní typy token paketů. SOF (start of frame) - indikuje začátek 1ms rámce IN - přenos dat od cílového USB zařízení do systému OUT - přenos dat ze systému do zařízení USB SETUP - signalizuje start řídícího přenosu

Datový paket

Data se vysílají v krátkých datových paketech o délce 8B a delších o délce 256 bajtů.

Handshake paket

Potvrzovací paket máme též v několika verzích. ACK - Kladné potvrzení. Používá se pro oznámení správnosti doručení dat. NAK - Záporné potvrzení většinou signalizují, že data nemůžou být přijata. STALL - Používá se pokud není přenos kompletní

Preamble paket

Tento paket slouží pro přepínání sběrnice FULL-speed/LOW-speed.

Sekvence CRC

Data jsou zabezpečeny CRC kódem. Datové pakety jsou zabezpečeny 16 bitovým CRC kódem a ostatní pakety jsou zabezpečeny 5 bitovým CRC kódem.


V porovnání s konkurencí

right‎


Zdroje

http://www.hw.cz/Rozhrani/ART1232-USB-2.0---dil-1.html

http://www.hw.cz/je-usb-30-opravdu-10x-tak-rychle-jako-usb-20

http://www.hw.cz/teorie-a-praxe/art2569-vysla-specifikace-usb-30.html

http://www.root.cz/clanky/prenos-dat-po-universalni-seriove-sbernici/

http://www.chip.cz/clanky/hardware/2010/07/prejdete-na-usb-3.0

http://cs.wikipedia.org/wiki/Usb

http://technet.idnes.cz/upravene-usb-3-0-zvladne-v-roce-2012-napajet-i-cely-notebook-pj0-/hardware.aspx?c=A110812_172509_hardware_vse

Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje