USB Universal Serial Bus
www.usb.org revize 2.0 z 27.dubna 200
Základní charakteristika USB Proč vznikla ? · bylo třeba vytvořit nové univerzální a dostatečně rychlé rozhraní pro vícenásobné připojení různých periferních zařízení Požadavky na nově vznikající rozhraní : · · · ·
možnost připojit více zařízení současně možnost připojovat a odpojovat zařízení za chodu k počítači při konfiguraci nového zařízení se obejít bez zásahu uživatele poskytnout dostatečné přenosové kapacity
V roce 1996 vznikla první specifikace USB. Jednalo se o revizi 1.0. Tato specifikace však úplně nebyla jednoznačná a proto některá zařízení spolu nespolupracovala. Z tohoto důvodu se během roku 1998 objevila upravená verze této specifikace, která nesla označení 1.1. Maximální přenosová rychlost 12Mb/s však přestala vyhovovat a v roce 2000 vznikla revize 2.0, která podporuje přenosové rychlosti až do 480 Mb/s. Tato poslední verze USB se na trhu výrazně prosadila až na přelomu roku 2001 a 2002 kdy se objevila první zařízení podle této specifikace. USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
2
Vlastnosti USB sběrnice a USB zařízení : · · · · · · · ·
· · · ·
nezávislost na použité platformě (PC, MacOS) garantovaná přenosová kapacita a zpoždění podpora pro přenosy dat v reálném čase možnost připojit až 127 zařízení současně lze připojovat a odpojovat zařízení za chodu konfiguraci připojeného zařízení provede hostitelský systém bez zásahu uživatele (konfigurace prostředků zařízení) nízká zátěž samotného protokolu včetně volby velikosti datového paketu Dostatečná přenosová kapacita : o Low Speed zařízení (LS) - maximální rychlost 1,5Mb/s o Full Speed zařízení (FS) - maximální rychlost 12 Mb/s o High Speed zařízení (HS) - maximální rychlost 480 Mb/s mechanismy pro detekci chyba a následné opakované poslání poškozených paketů podpora PnP pro detekci zařízení a následnou volbu ovladače (pokud je třeba) možnost napájet energeticky nenáročná zařízení přímo ze sběrnice podpora pro úsporu energie je zabudována přímo v protokolu
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
3
Logická struktura sběrnice USB sběrnice má stromovou strukturu a zařízení lze rozdělit do tří základních tříd : · USB hostitel (Host) – HW, který je součástí počítače společně se SW podporou obsaženou ve většině případů v operačním systému. · USB zařízení (Device) – samotné zařízení, které chceme připojit k počítači pomocí USB · USB rozbočovač (HUB) – speciální druh USB zařízení, které vytváří nové přípojné body ke sběrnici (porty) Veškerou komunikaci se zařízeními a jejich konfiguraci řídí USB hostitel společně s operačním systémem. Ve stromové struktuře USB sběrnice se z tohoto důvodu může vyskytovat pouze jediný USB Host a ten je vždy na nejvyšší úrovni ve stromové struktuře. Žádné dvě USB zařízení spolu nemohou komunikovat přímo. Zařízení může posílat data pouze v okamžiku, kdy hostitel vyhradí prostor v časovém schématu sběrnice pro konkrétní zařízení. Maximální počet úrovní ve stromové struktuře sběrnice je 7. První úroveň je již USB rozbočovač v hostitelském systému. (Obrázek 1 - Logická struktura USB) USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
4
Obrázek 1 - Logická struktura USB USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
5
Zvláštním druhem zařízení je tzv. Compound Device. Tato periferie v sobě integruje USB rozbočovač a zároveň USB zařízení. Typickým představitelem může být USB klávesnice, která obsahuje port pro připojení dalšího zařízení – například USB myš. Původní verze USB 1.1 podporoval pouze zařízení LS a FS. Nová revize zachovává zpětnou kompatibilitu a navíc podporuje HS zařízení. Z tohoto důvodu jsou z pohledu revize sběrnice funkční téměř všechny kombinace USB zařízení a hostitelů. V další úvaze předpokládejme jak USB hostitele tak USB zařízení podle verze 1.1. Pokud je zařízení LS připojeno k počítači pomocí dalšího rozbočovače tak samotné zařízení komunikuje se svým rozbočovačem podle pravidel pro zařízení LS. Hostitel však posílá požadavky na zařízení podle pravidel pro zařízení FS, protože rozbočovač je zařízení typu FS. Z výše uvedeného je patrné že rozbočovač musí obsahovat vyrovnávací paměť a mít jistou „inteligenci“. Je také rozdíl ve fyzické signalizaci pro FS a LS zařízení a rozbočovač musí být schopen transformovat i příslušné signály. Zařízení typu HS používá principiálně úplně jinou signalizaci. Na následujícím obrázku (Obrázek 2 - Rychlost komunikace mezi jednotlivými zařízeními) jsou znázorněny komunikační rychlosti pro kombinaci rozbočovačů a zařízení podle obou revizí specifikace. USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
6
Obrázek 2 - Rychlost komunikace mezi jednotlivými zařízeními
Je nutné se i také uvědomit, že maximální přenosová kapacita je sdílena mezi všemi USB zařízeními. Nelze tedy předpokládat, že pokud připojíme dvě HS zařízení k HS hostiteli, tak budou obě zařízení po celou dobu připojení schopny komunikovat vždy na maximální přenosové rychlosti 480Mb/s. Pokud celou problematiku zjednodušíme, lze předpokládat, že v okamžiku kdy budou chtít komunikovat obě zařízení současně se hostitel bude snažit poskytnout oběma zařízením zhruba stejnou přenosovou kapacitu – každému polovinu za maxima. USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
7
Model toku dat Na následujícím obrázku (Obrázek 3 - Vrstvový model toku dat) jsou zobrazeny jednotlivé vrstvy, které mají na starosti jednotlivé operace a přes které prochází data. · Fyzická vrstva – stará se o fyzický přenos dat. Jde o konkrétní HW, který je většinou implementován na základní desce počítače. Společně s ovladačem pro daný USB obvod je tato část zodpovědná za příjem a vysílání paketů včetně generování a kontrolu CRC. Díky ovladači poskytuje standardní rozhraní pro vyšší vrstvu. Ta je tak nezávislá na konkrétní HW implementaci. · Komunikační vrstva – na této úrovni probíhá detekce a konfigurace zařízení a následný přenos dat. Skládá se ze dvou částí. Nižší je zodpovědná za správu a řízení zařízení. Je pevnou součásti systému. Vyšší část je reprezentována ovladačem konkrétního zařízení a zodpovídá za příjem požadavků z vyšší vrstvy, jejich transformaci a předávání vrstvě nižší. · Funkční vrstva – typickým představitelem je konkrétní klientský SW, který chce komunikovat se „svým“ zařízením. Nezajímá se jak přesně je zařízení připojeno, požaduje pouze bezchybný přenos dat. USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
8
Obrázek 3 - Vrstvový model toku dat USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
9
Na straně USB zařízení nelze jednoznačně určit, kde přesně začíná a končí jednotlivé vrstvy. Vždy bude záležet na konkrétní implementaci. Jednou z možností je kompletní obvodová implementace, kde zpracování všech standardních požadavků ze strany USB hostitele a také požadavků ovladače zařízení obstarává samotný obvod. Jakákoli změna v parametrech USB zařízení znamená zásah do struktury obvodu nebo jeho paměti. Druhou možností je obvod, který je schopen zpracovávat fyzickou vrstvu a komunikační vrstvu musí již implementovat další obvod. Ve většině případů se používá mikrokontrolér. U funkční vrstvy je problém podobný. Funkčnost může realizovat samotný obvod, nebo řidicí mikrokontorlér nebo další obvod, který využívá USB rozhraní ke komunikaci. Fyzické USB zařízení může v sobě integrovat více logických zařízení. Typickým představitelem může být kopírka, tiskárna a scanner v jednom zařízení. Každé zařízení má své rozhraní (interface) a pomocí něj lze využívat služeb daného zařízení. Výsledkem je, že fyzicky je připojeno pouze jedno zařízení avšak v systému se může vyskytnout několik nových logických zařízení. Pro další výklad předpokládejme jedno fyzické zařízení, které obsahuje pouze jedno logické zařízení. Na následujícím obrázku (Obrázek 4 - Koncept koncových bodů) je zobrazen koncept koncových bodů. USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
10
Obrázek 4 - Koncept koncových bodů
Při komunikaci s USB zařízením se používají komunikační kanály, roury (pipes), které jsou zakončeny na straně zařízení koncovým bodem (EndPointEP) a na straně hostitele vyrovnávací pamětí. Koncový bod není nic jiného než USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
11
vyrovnávací paměť, která má definovány určité parametry a ty jsou vázány na danou rouru. Roura může být pouze jednosměrná. Pokud požadujeme obousměrnou komunikaci musíme použít roury dvě. Terminologie USB rozlišuje dva typy kanálů (pipes) : · Message pipe – přenášena data jsou strukturovaná a jednotlivé položky mají z pohledu USB určitý význam. Tyto informace však nejsou interpretovány koncovým bodem ale až vyšší komunikační vrstvou · Steram pipe – přenášená data nemají z pohledu USB specifikace žádnou strukturu a jejich skutečný význam zná až funkční vrstva. USB specifikace rozlišuje celkem čtyři typy koncových bodů a příslušných kanálů a od toho se odvíjející 4 typy přenosů. Typ podporovaného přenosu pro daný EP se nastavuje během konfigurace zařízení a za provozu se nemůže již změnit. U všech těchto přenosů je volitelná velikost paketu. Existuje několik omezení v závislosti na použité revizi USB sběrnice a rychlosti zařízení, na které komunikuje. · Control transfer – tento typ přenosů se používá pro detekci a konfiguraci zařízení, přenášena data mají specifikovanou strukturu a jedná se tedy o Message pipe. Tento typ přenosů se většinou nepoužívá pro data, které chce přenést uživatelská aplikace. USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
12
· Interrupt transfer – pokud je třeba přenést data z zařízení do počítače s definovaným maximálním zpožděním, je použit tento typ přenosu. Jeden z parametrů nastavovaných při konfiguraci je právě maximální akceptovatelné zpoždění. · Isochronous transfer – pokud je třeba přenášet data v pravidelných intervalech a s pevnou velikostí (real time data) je použit tento typ přenosu. Pokud dojde k chybnému přenosu paketu, tak se tato chyba ignoruje a data se zahazují. Oba předchozí typy přenosů mají jisté nároky na časování. Protože veškerou komunikaci na USB řídí hostitel, musí všechny tyto požadavky vzít v úvahu při tvorbě časového schématu sběrnice. V případě Interrupt přenosů se musí hostitel dotazovat zařízení na data nejpozději v okamžiku kdy vyprší čas na maximální zpoždění přenosu dat. V případě Isochronous přenosů se musí zařízení dotazovat v přesně definovaném intervalu a musí vždy vyhradit dostatečný prostor pro přenos dat.
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
13
· Bulk transfer – tento typ přenosů nemá žádné omezení na časování případně vyhrazenou přenosovou kapacitu. Pokud je na USB více logických zařízení, které používají tento typ přenosu snaží se hostitel zbývající prostor v časovém schématu sběrnice spravedlivě podělit mezi všechny přenosy tohoto typu. Z charakteristiky výše uvedených přenosů plyne několik poznatků : · Pro přenosy typu Control, si systém vyhradí zhruba 10% přenosové kapacity sběrnice. Tím je zajištěno, že se vždy povede detekovat nově připojené zařízení. · Pokud je na USB připojeno relativně hodně zařízení nemusí být v časovém schématu sběrnice již prostor pro nové zařízení a nemusí tedy fungovat i když se správně detekuje. · Chyby u přenosu typu Isochronous se neopravují a chybná data se zahazují.
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
14
Konfigurace a detekce zařízení Po připojení zařízení k portu tuto událost rozbočovač zaregistruje a pošle příslušnou zprávu hostiteli. Ten vyšle požadavek na BusReset příslušného portu a jeho následné zapnutí. Připojené zařízení se inicializuje, nastaví si adresu 0 a čeká na požadavky od hostitele. V předchozí kapitole je popsán koncept koncových bodů. Jednotlivé parametry nemusí být vždy pevně dány a během konfigurace si hostitele může vybrat z několika možností. Taktéž fyzické USB zařízení může obsahovat několik logických zařízení a každé logické zařízení může mít několik možností nastavení. Základní principy lze shrnout do několika bodů : · Koncový bod nula je vyhrazen vždy pro konfiguraci zařízení – ve skutečnosti se jedná o koncové body 0 a 1, kdy jeden slouží pro přenos dat od hostitele k zařízení (OUT) a druhý od zařízení k hostiteli (IN)
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
15
· Všechny ostatní koncové body mohou patřit příslušnému logickému zařízení. · Každé fyzické zařízení může obsahovat několik možných konfigurací. Vybrána může být v daný okamžik pouze jedna – děje se tak při detekci a konfiguraci. · V rámci každé konfigurace může existovat několik rozhraní (Interface), přičemž každé rozhraní reprezentuje jedno logické zařízení. Ke každému rozhraní může náležet několik koncových bodů včetně nastavení jejich parametrů. · Rozhraní může mít ještě tzv. alternativní rozhraní, kdy v rámci jedné konfigurace existuje několik možných variant pro příslušné rozhraní (logické zařízení). V jeden okamžik může být vybráno pouze jedno z možných alternativních rozhraní. Informace o tom jaké možné konfigurace zařízení obsahuje se hostitel dozví při detekci zařízení. Tyto informace jsou uloženy v deskriptorech. Pokud zařízení obsahuje více možných konfigurací vybere si hostitel tu, která mu nejvíce vyhovuje. Pokud zařízení vyhovuje USB 2.0 musí být většina deskriptorů uložena dvakrát. Podle toho jestli se komunikuje na FS nebo HS se musí některé parametry upravit.
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
16
Třídy zařízení Každé USB zařízení může patřit do jisté třídy zařízení (Device Class). Typickým představitelem je USB myš, která patří do skupiny HID (Human Input Device). Pokud zařízení náleží do definované třídy, musí splňovat některé požadavky. Většinou musí podporovat specifické USB požadavky pro danou třídu zařízení. V jednotlivých třídách zařízení existují ještě podtřídy (SubClass), které dále zařízení dělí – většinou podle funkce. Pro takto definovanou třídu existuje příslušný komunikační protokol a nastavení příslušných koncových bodů. Protože většina operačních systémů v sobě obsahuje ovladače pro příslušné třídy zařízení, výrobce už nemusí dodávat vlastní. Výsledkem je, že většina USB myší a klávesnic funguje okamžitě po připojení. Jiným příkladem mohou být paměťové karty na USB nebo digitální foťáky. Tyto zařízení patří do třídy velkokapacitních zařízení (MassStorage). Výhodou tohoto řešení je, že o veškerou logickou správu se stará operační systém a USB zařízení poskytuje pouze přístup k paměťovým místům. Do příslušné třídy může patřit celé fyzické USB zařízení nebo jen příslušné logické zařízení (interface). Každé logické zařízení pak může používat svůj definovaný protokol. Pokud žádná z existujících tříd danému USB zařízení nevyhovuje, výrobce si navrhne svůj komunikační protokol a pak také musí dodat svůj ovladač pro dané zařízení. USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
17
Mechanické vlastnosti Pro připojování USB zařízení se používají dva typy konektorů. „A“ konektor
„B“ konektor
Opačný „A“ konektor
Opačný „B“ konektor
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
18
Obrázek 5 - Průřez kabelem
Na předchozím obrázku (Obrázek 5 - Průřez kabelem)je zobrazen průřez kabelem. Pro FS a HS zařízení musí mít výše uvedenou strukturu. Je také nutné dodržet celou řadu parametrů. Pro zařízení LS nejsou požadavky na propojení tak náročné a musí se dodržet pouze některé parametry. USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
19
Fyzická vrstva USB sběrnice používá pro propojení zařízení s hostitelem celkem 4 vodiče : · červený – napájecí napětí +5V · černý – napájecí a signálová zem · zelený – signálový vodič D+ · bílý – signálový vodič DSignály D+ a D- lze považovat za signály komplementární při přenosu dat. V některých okamžicích mají oba stejnou úroveň a slouží k signalizaci specifických požadavků. USB zařízení podle verze 1.1 používají pro přenos dat napěťové úrovně. Naproti tomu USB zařízení podle verze 2.0, které komunikuje na HS používá pro přenos dat proudové smyčky. Pokud toto zařízení komunikuje na FS používá pro signalizaci opět napěťové úrovně. Z tohoto důvodu musí mít HS zařízení přijímač i vysílač, který je schopen zpracovávat data přenášená napěťovými úrovněmi a také proudovou smyčkou. Schéma HS přijímače je zobrazeno na následujícím obrázku (Obrázek 6 - HS přijímač vysílač).
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
20
Obrázek 6 - HS přijímač vysílač USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
21
USB specifikace nepoužívá pojmy logická „1“ a logická „0“ ale stavy „J“ a „K“. Podle toho na jaké rychlosti zařízení komunikuje (LS, FS, HS) jsou těmto stavům přiřazeny příslušné napěťové úrovně. FS/LS D+
HS D-
D+
D-
High D+ > VOH (min) D- < VOL (max) VHSOH (min) ≤ D+ ≤ VHSOH (max) VHSOL (min) ≤ D- ≤ VHSOL (max) Low D+ < VOL (max) D- > VOH (min) VHSOL (min) ≤ D+ ≤ VHSOL (max) VHSOH (min) ≤ D- ≤ VHSOH (max) Tabulka 1 - Definice napěťových úrovní LS
FS
HS
J
Low
High High
K
High
Low
Low
Tabulka 2 - Definice stavů
Pro připojení USB zařízení se používá kabelů, jejichž impedance je 90W. Oba datové vodiče D+ a D- jsou jak na straně rozbočovače tak na straně zařízení zakončeny 45W rezistorem pro komunikaci na HS. Po FS a LS komunikaci má vysílač i přijímač impedanci 45 W. V předchozích tabulkách nejsou uvedeny číselné USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
22
hodnoty. Zjednodušeně lze tvrdit, že u LS a FS signalizace odpovídá High +5V a Low 0V. U HS zařízení neslouží pro přenos informací napěťové úrovně přímo. Je použita proudová smyčka s proudem o velikosti +-17,77mA. Vedení je na každé straně zakončeno rezistorem o velikosti 45W. Průchodem proudu vznikne na každém rezistoru +400mV nebo -400mV podle směru procházejícího proudu. Jak se pozná, že zařízení je LS, FS nebo HS ? Podle rezistoru o velikosti 1,5kW, který je připojený na signál D+ nebo na D-.
Obrázek 7 - Low Speed zařízení USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
23
Obrázek 8 - Full Speed zařízení
HS zařízení má k signálu D+ připojený rezistor o velikosti 1,5kW proti +3,3V (Obrázek 6 - HS přijímač vysílač). Tento rezistor je odpojitelný a používá se pouze při detekci zařízení. Jestli je zařízení schopno komunikovat na HS se zjišťuje během BusReset.
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
24
Shrnutí k signalizaci : · · · · · ·
signály D+ a D- jsou navzájem komplementární LS a FS zařízení používají pro přenos dat napěťové úrovně HS zařízení používá proudové smyčky signalizace u FS je invertovaná oproti LS rychlost zařízení se pozná podle rezistoru, který je připojený na D+ nebo Dsignály D+ a D- musí být na každé straně zakončeny rezistorem o velikosti 45W, což odpovídá polovině jmenovité impedance kabelu.
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
25
Kódování, časování Při komunikaci se nevysílají přímo stavy J a K, které reprezentují příslušné bity. Provede se nejdříve NRZI překódování, které je zobrazeno na následujícím obrázku (Obrázek 9 - NRZI kódování).
Obrázek 9 - NRZI kódování
Princip NRZI : · pokud je „0“ změň signál na signál opačný · pokud je „1“ nedělej nic Všechna data jsou vysílána sériově. Pokud však nedojde po delší dobu ke změně signálu mohlo, by dojít rozsynchronizování hodin vysílače a přijímače. To by se mohlo stát v případě, kdy by se vysílaly za sebou samé „1“, protože ty nemění USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
26
výstupní signál. Používá se metoda vycpávání (bit stuffing). Pokud je za sebou vysláno šest „1“ je automaticky vložena „0“, která se na straně přijímače následně odstraní. Tímto způsobem lze detekovat i některé chyby. Pokud je za sebou víc jak sedm „1“ je určitě něco špatně. Problém synchronizace hodin se také musí vyřešit při vysílání paketu. Než se začnou přenášet užitečná data jsou vyslány 3 páry KJ a 2 K signály u LS a FS zařízení. U HS zařízení se používá 15 KJ páru a 2 K signály. Rámec, mikrorámec Časování sběrnice je u LS a FS komunikace děleno do rámců (frame) kde každý rámec trvá 1ms. Na začátku každého rámce pošle hostitel paket (StartOfFrame-SOF) s číslem rámce. Pro počítání rámců se používá 11 bitový čítač, který přetéká a začíná znovu počítat od nuly. U HS komunikace se každý rámec skládá z 8 mikrorámců (microframe), což odpovídá délce 125ms.
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
27
Formát paketů Existuje několik typů paketů. Každý paket musí mít na začátku identifikátor svého typu (PID), většinou následuje adresa zařízení a koncového bodu. Identifikátor paketu je 4 bitový. Zabezpečení proti chybám je provedeno tak, že každý bit se přenese ještě jednou v invertované podobě jak je zobrazeno na následujícím obrázku (Obrázek 10 - Identifikátor paketu).
Obrázek 10 - Identifikátor paketu PID Type
Token
PID Name PID<3:0> Description OUT 0001B Address + endpoint number in host-to-function transaction IN 1001B Address + endpoint number in function-to-host transaction SOF 0101B Start-of-Frame marker and frame number Address + endpoint number in host-to-function transaction for SETUP 1101B SETUP to a control pipe
Tabulka 3 - Typy paketů - 1. část USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
28
PID Type
PID Name PID<3:0> Description DATA0 0011B Data packet PID even DATA1 1011B Data packet PID odd Data packet PID high-speed, high bandwidth isochronous Data DATA2 0111B transaction in a microframe Data packet PID high-speed for split and high bandwidth MDATA 1111B isochronous transactions ACK 0010B Receiver accepts error-free data packet Receiving device cannot accept data or transmitting device NAK 1010B cannot send data Handshake STALL 1110B Endpoint is halted or a control pipe request is not supported NYET 0110B No response yet from receiver (Token) Host-issued preamble. Enables downstream bus PRE 1100B traffic to low-speed devices. ERR 1100B (Handshake) Split Transaction Error Handshake Special SPLIT 1000B (Token) High-speed Split Transaction Token (Token) High-speed flow control probe for a bulk/control PING 0100B endpoint Reserved 0000B Reserved PID
Tabulka 4 - Typy paketů - 2. část USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
29
Na následujících obrázcích je zobrazen formát pole pro uložení adresy příjemce a adresy koncového bodu (Obrázek 11 - Adresa zařízení, Obrázek 12 - Adresa koncového bodu).
Obrázek 11 - Adresa zařízení
Obrázek 12 - Adresa koncového bodu
I u těchto položek je třeba zajistit detekci případných chyb. Používá se CRC součet s následujícím generujícím polynomem : G(X)=X5+X2+1 Posloupnost jednotlivých položek v paketu je zobrazena na následujícím obrázku (Obrázek 13 - Posloupnost položek v paketu).
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
30
Obrázek 13 - Posloupnost položek v paketu
Podle typu paketu lze kromě adresy zařízení a adresy koncového bodu přenášet ještě další informace, které nemají charakter dat. I tyto položky jsou zabezpečeny pomocí kontrolního součtu. Generující polynom je stejný jak v případě adresy zařízení a adresy koncového bodu Data se přenášejí za sebou po jednotlivých bytech (nejdříve LSB pak MSB). Číslování bytů je zobrazeno na následujícím obrázku (Obrázek 14 - Princip uložení dat). Identifikátor datového paketu se pravidelně mění z DATA0 na DATA1. Tím je ošetřen případ, kdy by se ztratil celý paket. Přijímač vždy zkoumá zda skutečný identifikátor datového paketu odpovídá tomu co očekává.
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
31
Obrázek 14 - Princip uložení dat
Rovněž při přenosu dat je třeba zajistit detekci chyb. V tomto případě je použit také kontrolní součet s následující generující polynom : G(X)=X16+ X15+ X2+1 Na následujícím obrázku je zobrazena posloupnost položek v paketu, který nese data (Obrázek 15 - Posloupnost položek v datovém paketu).
Obrázek 15 - Posloupnost položek v datovém paketu USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
32
USB protokol používá tzv. pozitivní potvrzování. Pokud došla data bezchybně vyšle přijímací strana paket ACK. Pokud jsou data poškozená tak přijímač data zahodí a mlčí. Pokud odesílatel do určité doby neobdrží potvrzení doručení vyšle data znovu. Paket NAK slouží k informování hostitele, že zařízení není schopno akceptovat další data (většinou pouze dočasně). Pokud se jedná o přenos typu OUT a přijímací zařízení má plný vstupní buffer pošle paket NAK. Pokud je přenos typu IN je paket NAK poslán v případě, kdy zařízení nemá žádné data, které by chtělo poslat hostiteli. Paket NAK nesmí nikdy poslat hostitel jako odpověď zařízení.
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
33
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
34
Obrázek 16 - Control transfer
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
35
Obrázek 17 - Bulk transfer
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
36
Obrázek 18 - Interrupt transfer USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
37
Obrázek 19 - Isochronous transfer
USB - Univerzální Sériová Sběrnice, (revize 2.0 z 27.dubna 2000)
Hynek Urbiš
38