České vysoké učení technické v Praze Fakulta eletrotechnická Katedra počítačů
Bakalářská práce
Rozhraní USB ve verzi SuperSpeed Ondřej Mařík
Vedoucí práce: Ing. Tomáš Zeman Ph.D
Studijní program: Elektrotechnika a informatika, strukturovaný, bakalářský Obor: Výpočetní technika 1. ledna 2012
2
Čestné prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 4.1.2012
........................................................
3
4
Abstract This work's focus is the new version of USB, namely USB Superspeed (USB 3.0). It consists of two parts. First part is describing the USB SuperSpeed and is based on layered model. At first, the general attributes, architecture and data transfer model are presented, followed by description of layers responsible for bus functionality and lastly the application of bus and educational module is described. The educational module is the second part of this work and can be characterized as learning tool, which will be added to already existing system. Educational module is based on the first part of this work.
Abstrakt Práce se zabývá novou verzí rozhraní USB SuperSpeed (USB 3.0). Skládá se ze dvou částí. První část je dokumentace rozhraní USB SuperSpeed, založena na vrstveném modelu rozhraní. Nejdříve jsou popsány obecné vlastnosti rozhraní, architektura a model datových přenosů, následuje popis jednotlivých vrstev podílejících se na fungování rozhraní a nakonec je zařazeno využití sběrnice a popis výukového modulu. Tento výukový modul je druhou částí práce, jedná se o učební pomůcku, která bude zařazena do již existujícího systému. Výukový modul se zakládá na dokumentační části práce.
5
6
Obsah 1.
Úvod ........................................................................................................................................ 10
2.
Vysokorychlostní datová rozhraní ........................................................................................... 10 2.1.
Vývoj rozhraní .................................................................................................................. 10
2.2.
Druhy rozhraní.................................................................................................................. 11
2.2.1.
Metalická rozhraní s krátkým propojením ............................................................... 11
2.2.2.
Metalická rozhraní.................................................................................................... 12
2.2.3.
Optická rozhraní ....................................................................................................... 13
2.2.4.
Bezdrátová rozhraní ................................................................................................. 14
2.3. 3.
Perspektivní datová rozhraní ........................................................................................... 15
Obecný popis rozhraní USB 3.0 ............................................................................................... 15 3.1.
Rozhraní USB 3.0 .............................................................................................................. 15
3.2.
Architektura SuperSpeed ................................................................................................. 17
3.2.1. 4.
Mechanické a elektrické vlastnosti rozhraní ........................................................................... 19 4.1.
5.
USB 3.0 konektory ............................................................................................................ 19
4.1.1.
Standardní konektor typu A ..................................................................................... 19
4.1.2.
Standardní a Napájený konektor typu B .................................................................. 20
4.1.3.
Mikrokonektory typu A a typu B .............................................................................. 21
4.2.
USB 3.0 kabely .................................................................................................................. 21
4.3.
Požadavky na EMI............................................................................................................. 22
4.4.
Mechanické požadavky .................................................................................................... 23
Modely datových přenosů ....................................................................................................... 23 5.1.
Datové toky SuperSpeed .................................................................................................. 23
5.2.
Stručný přehled protokolu ............................................................................................... 24
5.2.1.
Srovnání USB 2.0 a SuperSpeed transakcí ................................................................ 24
5.2.2.
SuperSpeed pakety................................................................................................... 25
5.3.
6.
Řízení spotřeby ......................................................................................................... 18
Obecný popis přenosů...................................................................................................... 26
5.3.1.
Bursting - Shlukový přenos dat................................................................................. 26
5.3.2.
Řídící přenos ............................................................................................................. 27
5.3.3.
Objemový přenos ..................................................................................................... 28
5.3.4.
Přenos s přerušením................................................................................................. 29
5.3.5.
Synchronní přenos.................................................................................................... 30
Fyzická vrstva ........................................................................................................................... 30
7
6.1.
Funkce Fyzické vrstvy ....................................................................................................... 30
6.2.
Kódování a převod dat na sériová .................................................................................... 31
6.3.
Navázání spojení............................................................................................................... 32
6.4.
Časování ........................................................................................................................... 33
6.5.
Vysílání ............................................................................................................................. 33
6.5.1. 6.6.
Vysílač a přijímač .............................................................................................................. 35
6.6.1. 6.7. 7.
Ekvalíza přijímače ..................................................................................................... 36
Nízkofrekvenční periodická signalizace ............................................................................ 37
Spojová vrstva.......................................................................................................................... 37 7.1.
Funkce vrstvy spojení ....................................................................................................... 37
7.2.
Správa spojení a řízení datového toku ............................................................................. 37
7.2.1.
Pakety vrstvy spojení ................................................................................................ 37
7.2.2.
Řídící příkazy ............................................................................................................. 38
7.2.3.
Logická nečinnost ..................................................................................................... 40
7.3.
Reset spojení .................................................................................................................... 40
7.3.1. 7.4.
Vnitropásmový reset ................................................................................................ 41
Stavový automat přípravy a stavu spojení ...................................................................... 41
7.4.1.
8.
Obecné pojmy .......................................................................................................... 33
Stavy v SAPSS a přechody mezi nimi ........................................................................ 41
7.5.
Použití příkazů spojení při řízení datového toku a zotavení z chyb ................................. 47
7.6.
Použití příkazů spojení při řízení spotřeby ....................................................................... 48
7.7.
Detekce a oprava chyb ..................................................................................................... 48
Protokolová vrstva ................................................................................................................... 49 8.1.
Funkce protokolové vrstvy ............................................................................................... 49
8.2.
Transakce v SuperSpeed................................................................................................... 49
8.3.
Pakety a zapouzdření dat ................................................................................................. 50
8.3.1.
Typy paketů a jejich formát ...................................................................................... 50
8.3.2.
Pakety správy spojení ............................................................................................... 51
8.3.3.
Transakční pakety ..................................................................................................... 52
8.3.4.
Datové pakety .......................................................................................................... 54
8.3.5.
Izochronní časovací pakety....................................................................................... 54
8.3.6.
Adresní trojice a pole směrovacího řetězce ............................................................. 55
8.3.7.
Použití paketů ........................................................................................................... 55
8.4.
Transakce.......................................................................................................................... 56
8.4.1.
Objemové transakce................................................................................................. 56
8
9.
8.4.2.
Řídící Transakce ........................................................................................................ 58
8.4.3.
Transakce s přerušením ........................................................................................... 59
8.4.1.
Informace o časování hostitele ................................................................................ 60
8.4.2.
Synchronní transakce ............................................................................................... 60
Struktura zařízení..................................................................................................................... 61 9.1.
Popis funkce obecného zařízení USB 3.0.......................................................................... 61
9.1.1.
Stavy USB zařízení .................................................................................................... 61
9.1.2.
Inventarizace sběrnice.............................................................................................. 63
9.1.3.
Obecné operace zařízení .......................................................................................... 63
9.1.4.
Popisovač zařízení .................................................................................................... 64
9.2.
USB 3.0 Rozbočovač ......................................................................................................... 66
10. Zpětná kompatibilita s USB 2.0 a napájení .............................................................................. 66 10.1.
Podpora pro hostitele, rozbočovače a koncová zařízení USB 2.0 ................................ 66
10.2.
Možnosti napájení ........................................................................................................ 67
11. Aplikace USB 3.0 ...................................................................................................................... 68 11.1.
Vývoj USB ..................................................................................................................... 68
11.2.
Možnosti využití USB 3.0 .............................................................................................. 68
11.3.
Thunderbolt.................................................................................................................. 70
12. Výukový modul ........................................................................................................................ 71 12.1.
Zásady pro tvorbu výukového modulu......................................................................... 71
12.2.
Struktura modulu ......................................................................................................... 72
12.3.
Animace, simulace........................................................................................................ 72
12.4.
Ostatní didaktické prvky ............................................................................................... 72
12.5.
LMS systém................................................................................................................... 73
12.6.
Formátování textu ........................................................................................................ 74
12.7.
Balíček SCORM ............................................................................................................. 73
12.8.
Aplikace ve virtuálním studijním prostředí .................................................................. 74
13. Závěr ........................................................................................................................................ 74 14. Seznam použité literatury ....................................................................................................... 75
9
1. Úvod Tato bakalářská práce se zabývá tvorbou výukového modulu pro objasnění fungování nové verze datového rozhraní USB, tedy verze 3.0, tj. tzv. SuperSpeed. Hlavním cílem je seznámit uživatele s principy fungování rozhraní na úrovni datových toků, ale okrajově se zabývá i fyzickými a elektrickými vlastnostmi rozhraní, srovnáním s dalšími vysokorychlostními datovými rozhraními a praktickým využitím nové verze rozhraní. Výukový modul je vytvořen s ohledem na zásady tvorby výukového modulu, popsané v pozdější kapitole a samozřejmě také systému, do kterého bude modul zakomponován. Jeho podoba se liší od následujícího textu a i když z něj vychází, není tak zevrubný a soustřeďuje se na nejdůležitější informace.
2. Vysokorychlostní datová rozhraní 2.1.Vývoj rozhraní Bavíme-li se o datových rozhraních, máme tím obvykle na mysli rozhraní spojující buď jednotlivé komponenty (grafické, zvukové karty, disky,...) se základní deskou počítače, anebo periferní zařízení s počítačem. v tomto případě se budeme zabývat připojením externích zařízení k počítači. S vývojem počítačů a jejich zapojováním do běžného života v 80. letech 20. stolení se začalo objevovat stále více externích zařízení, které nebylo možné perspektivně integrovat do samotného počítače ať už z důvodu velikosti, ceny, nebo požadavku mobility. Takovými zařízeními byly například v počátcích klávesnice, monitor, postupně přibyla myš, tiskárna, skener, externí pevné disky a další paměťová média. Tak vzniká potřeba stále vyšších přenosových rychlostí datových rozhraní a možnosti připojení více zařízení. Díky poptávce tedy začalo vznikat množství nových rozhraní a s nimi i množství různých standardů, zahrnujících různé způsoby přenosů dat, formáty přenášených dat, konektorů, atd. To samozřejmě způsobilo, že výrobky různých výrobců nebyly vzájemně kompatibilní, tím pádem omezení jejich použitelnosti. Zároveň nebyl kladen příliš velký důraz na zpětnou kompatibilitu, což se také projevilo na rozšiřování a perspektivě jednotlivých rozhraní. v neposlední řadě hrála roli i cena výroby a integrace daného rozhraní v zařízení. Tyto skutečnosti měly přímý vliv na vývoj nového rozhraní v 90.letech, které mělo vyřešit všechny zmíněné problémy a také splňovat následující požadavky.
připojení více zařízení v jednom okamžiku
vysoká přenosová rychlost
nízká cena
použitelnost v různých zařízeních, zpětná kompatibilita
nezávislost na konfiguraci počítače
funkce plug&play - připojení a instalace zařízení za chodu
10
Tak začíná v roce 1994 vývoj rozhraní USB (zkratka Universal Serial Bus = univerzální sériová sběrnice, dále jen USB), na kterém spolupracovalo sedm firem - Compaq, DEC, IBM, Intel, Microsoft, NEC a Nortel. v roce 1996 je vydána verze rozhraní USB 1.0, masového rozšíření však USB dosahuje až s verzí 1.1 v roce 1998 a následně s verzí 2.0, která vznikla v roce 2001. Vývoj jiných datových rozhraní samozřejmě neustal, avšak většina se jich postupně přestává využívat a některé již zanikly úplně.
2.2.Druhy rozhraní Rozhraní se dají podle média, která přenáší data mezi hostitelem a připojeným zařízením, rozdělit do několika kategorií. Nejpoužívanějšími byly a jsou:
metalická – krátké propojení
metalická
optická
bezdrátová
Všem těmto kategoriím se věnuje několik následujících podkapitol.
2.2.1. Metalická rozhraní s krátkým propojením Už z názvu rozhraní je patrné, že se jedná o způsob připojení, kdy je zařízení připojeno přímo k hostiteli, bez nutnosti použití kabelů. Logicky je také jedním z prvních způsobů, neboť využívá nejstarší a v podstatě nejspolehlivější metodu vzájemného propojení. Jejich výhoda tedy spočívá jak ve spolehlivosti přenosu, tak v nízké ceně a rychlosti neomezované možnostmi přenosového média. Samozřejmě má tento způsob připojení i svá úskalí, především musí být obě zařízení v bezprostředním kontaktu, je tedy výrazně omezena mobilita, konektory na obou zařízeních obvykle nejsou určeny k častějšímu odpojování a opětovnému připojování, při neopatrném zacházení může snadno dojít k poškození konektorů, které obvykle znamená nutnost výměny celého zařízení nebo odborné opravy.Obvykle se jich tedy využívá jen u spojování zařízení, kde se s častým odpojováním nepočítá, jako například již zmíněných datových sběrnic na základní desce počítače a k nim připojovaných počítačových komponent. v takových případech je ovšem použití mechanických rozhraní optimální. Příklady některých takových rozhraní jsou uvedeny v tabulce 2.1.
11
Název
Přenosová rychlost
Příklad využití
PCI
1067 - 6399 Mb/s
modemy, síťové, zvukové a starší grafické karty
AGP
2133 - 34133 Mb/s
starší grafické karty
PCI Express
2000 - 204 800 Mb/s
grafické karty
DMI
8000 Mb/s
sockety CPU Intel
Hyper Transport
25600 - 409600 Mb/s
sockety CPU AMD a dalších, grafické procesory
QPI
153,6 - 204,8 Gb/s
nejnovější CPU Intel
ATA
26,4 - 1064 Mb/s
starší pevné disky
SATA
1200 - 4800 Mb/s
pevné disky
Tabulka 2.1 - mechanická rozhraní a jejich využití Uvedená rozhraní rozhodně neobsahují všechna existující rozhraní, uvádí pouze nejrozšířenější rozhraní v počítačích. Rozhraní PCI (Peripheral Component Interconnect) je nejstarší, dnes se s ním již v praxi nesetkáme. Rozhraní AGP (Accelerated Graphics Port), které nahradilo PCI, se už podle názvu využívá pouze u grafických karet a dnes se také už téměř nepoužívá. Hlavním důvodem byl nástup rozhraní PCI Express (dále jen PCI-E), které nabízelo stejnou, či potencionálně vyšší přenosové rychlosti než AGP, přičemž nabízelo omezenou zpětnou kompatibilitu s PCI. Zásadním rozdílem oproti PCI bylo použití několika sériových spojení mezi dvěma body (point to point) oproti sdílené paralelní sběrnici. Rozhraní DMI (Direct Media Interface) je v podstatě upravené rozhraní PCI-E, používaná společností Intel. Hyper Transport (dále jen HT) a QPI (Intel Quick Path Interconnect) jsou vysokorychlostní rozhraní, které využívají především CPU většina nejnovějších chipsetů grafických karet. Podobně jako PCI-E využívá principu sériového, případně i paralelního spojení mezi dvěma body. Rozhraní ATA (AT Attachment) a jeho nástupce SATA (Serial Advanced Technology Attachment) jsou používány pro připojení pevných disků a dalších datových úložišť Rozsahy maximálních rychlostí (které jsou i tak jen teoretické) jsou způsobeny vývojem a tedy i změnami parametrů jednotlivých verzí daného rozhraní. Hlavními faktory jsou logicky šířka sběrnice, taktování sběrnic a kódování dat. Speciálními rozhraními v této kategorii jsou rozhraní PC Card a ExpressCard, které se využívají hlavně u notebooků, kde poskytují možnost připojení externích zařízení za cenu nižší rychlosti.
2.2.2. Metalická rozhraní Metalickými rozhraními se myslí rozhraní, která jako médium k přenosu dat využívají kabelů z elektricky vodivých kovů. k přenosu dat se stejně jako u předchozího rozhraní využívá elektrický proud, respektive jeho změny. Tato rozhraní tím pádem tedy ztrácí některé výhody mechanických, avšak zároveň odstraňují některé jeho nedostatky.Přidáním kabelů dojde ke zvýšení ztrát na kabelu a konektorech mezi ním a zařízeními, ale také k větší možnosti rušení. v důsledku toho dojde ke snížení spolehlivosti, ale hlavně k omezení rychlosti. Výhodou je pak možnost snadnější manipulace s rozhraním, při poškození kabelu je snadno odstranitelné jeho náhradou. Je samozřejmé, že metalická 12
rozhraní jsou také omezeny maximální délkou kabelu, obvykle v řádu metrů. Využívá se jich tedy k připojení externích zařízení k počítači, který má obvykle potřebné konektory vyvedeny na povrch. Nejznámější příklady takových rozhraní jsou uvedeny v tabulce 2.2. Název
Přenosová rychlost
Příklady využití
Serial
0,230 - 35 Mb/s
komunikační technologie
Parallel
1 Mb/s
staré tiskárny
USB
1.536 Mb/s - 5 Gb/s
prakticky jakékoliv externí zařízení
FireWire
98,3 - 3145,7 Mb/s
multimédia - přenos obrazu, zvuku...
eSATA
2400 Mb/s
externí pevné disky
HDMI
4,69 - 10,2 Gb/s
nekomprimované video a zvuk
Tabulka 2.2 - metalická rozhraní a jejich využití Sériové rozhraní je poněkud zavádějícím pojmem vzhledem k tomu, že většina dnes používaných rozhraní pracuje na principu sériového přenosu dat. Sériovým rozhraním v tabulce 2.2. je však myšleno rozhraní, které je dnes využíváno v komunikačních technologiích, tedy telefonii, internetu, atp. Obsahuje více než jeden protokol a více druhů kabelů. Nejznámějšími zástupci jsou asi standard RS-232, využívaný v sériových portech počítačů a podobné RS-422 a RS-485 využívajících symetrických párů. Paralelním rozhraním je míněno nejznámější rozhraní, které bylo ve starších počítačích hojně využíváno k připojení tiskáren, než jeho funkci převzalo USB.USB je dnes jedním z nejvyužívanějších datových rozhraní, které je využíváno u mnoha druhů externích zařízení počínaje lampičkami napájenými z USB portu přes modemy, tiskárny až po datová úložiště jako jsou pevné disky a flash karty. Rozhraní FireWire, které vzniklo ještě před USB je primárně určeno k přenosu videa a audia v reálném čase, a oproti USB 2.0 má vyšší přenosovou rychlost velkých bloků dat. Kvůli vyšší ceně je však méně používané, než levnější USB. Posledním zmíněným rozhraním je eSATA, určené primárně k připojení externích pevných disků k počítači, rychlostí výrazně převyšující USB 2.0., které je v podstatě jen upravené rozhraní SATA. Rozhraní HDMI (High-Definition Multimedia Interface) je speciálním rozhraním určeným výhradně k přenosu digitálního obrazu a zvuku. Přenosové rychlosti jsou v tomto případě poněkud zavádějícím pojmem, neboť platí pouze pro video a audio a 2/10 datového toku navíc zabírá data v záhlaví kódování. Hlavním využitím HDMI je tedy logicky přenos obrazu a zvuku ve vysokém rozlišení, v případě HDMI verze 1.4 až 4096x1600 pixelů při 36-bit/pixel.Také v této tabulce jsou rychlosti jen doplňující informací, neboť se daná rozhraní stále vyvíjejí a rychlosti zvětšují.
2.2.3. Optická rozhraní V dnešní době stále se navyšující potřeby rychlosti přenosu dat postupně metalická rozhraní začínají narážet na strop svých možností. To se doposud řešilo stálým zvyšováním frekvence nosné vlny, počtu vodičů v kabelu a vylepšováním kódování dat. Další cestou, kterou se patrně budou v budoucnu datové přenosy dále ubírat je využití optickým médií.Nejenže tato nabízejí vyšší rychlosti, ale také obecně možnost delšího kabelu. Už dnes začíná být v oblasti internetu běžné používat optické kabely a tato média už se 13
začínají objevovat jako konkurence tradičních metalických rozhraní. Některé z optických rozhraní jsou v tabulce 2.3. Název
Přenosová rychlost
Příklad využití
FibreChannel
1062 - 4025 Mb/s
datové sítě
Thunderbolt (LightPeak)
10 Gb/s
univerzální
Tabulka 2.3. - Optická rozhraní a jejich využití Jak je na první pohled patrné, v porovnání s ostatními typy rozhraní je optika nejméně rozšířená, avšak přenosové rychlosti začínají tam, kde ostatní rozhraní končí. FibreChannel je zmíněn jen okrajově, je určen pro spojování počítačů v síti a samotný protokol vysloveně nevyžaduje optický kabel. Oproti tomu Thunderbolt (LightPeak) je vyvíjen jako rozhraní, které má nahradit a sjednotit všechna významná metalická rozhraní dneška. Přes zařazení mezi optická rozhraní je v nynější verzi (u produktů Apple) použit metalický kabel, kvůli nižší ceně,u dalších verzí se již počítá s optickým. Uvedená rychlost byla předvedena na funkčním rozhraní, teoreticky dosažitelná by se měla blížit 100 Gbit/s, což řádově překonává všechna doposud zmíněná rozhraní.
2.2.4. Bezdrátová rozhraní Optická rozhraní byla dalším logickým krokem ve vývoji datových rozhraní po metalických. k jejich vývoji však nevedla potřeba zvyšování rychlosti, i dnes rychlostí zaostávají za jinými typy, nýbrž větší mobilita takto připojených zařízení. Ačkoliv to lze považovat za nedostatečnou náhradu za rychlost, v některých případech výhody přenosnějšího zařízení převažují nad nutností velkých datových toků. Proto se také bezdrátová rozhraní vyvíjejí společně s metalickými. Některá rozhraní jsou uvedena v tabulce 2.4. Název
Přenosová rychlost
Maximální dosah
Příklad využití
IrDA
0,072 - 1024 Mb/s
1m
nízkoobjemový přenos dat
Bluetooth
1 - 24 Mb/s
1 - 100 m
hands-free, přenos dat
WUSB
53 - 480 Mb/s
3 - 10 m
univerzální
802.11n
2 - 300 Mb/s
20 - 70 m
datové sítě
Tabulka 2.3. - bezdrátová rozhraní a jejich využití První rozhraní, tedy IrDA (Infrared Data Association) bylo prvním prakticky využívaným bezdrátovým rozhraním. Trpělo však několika vážnými nedostatky. Prvním z nich byla nízká rychlost, dalšími, možná ještě horšími, byl nízký dosah a v neposlední řade nutnost přímé viditelnosti mezi dvěma přijímači. Proto bylo velice rychle nahrazeno rozhraním Bluetooth, které odstranilo nedostatky v dosahu a přímé viditelnosti a také nabídlo vyšší přenosové rychlosti. v tabulce je jako maximální rychlost uvedena rychlost verze 3.0, přičemž ve finálních fázích vývoje je verze 4.0, která má nabídnout rychlost až 480 Mb/s. Rozhraní WUSB (Wireless USB) je taktéž jedním z nejnovějších bezdrátových rozhraní, jak název napovídá, jedná se o bezdrátovou verzi USB, která má umožnit na vzdálenost 3 m rychlost až 480 Mb/s. Poslední rozhraní, tedy 802.11n je posledním přírůstkem rodiny 14
standardů 802.11, kam patří Wi-Fi a WiMAX, je uveden pouze pro úplnost. Dosah je uveden pro použití uvnitř budovy.
2.3.Perspektivní datová rozhraní Přestože cena a doposud zavedená rozhraní tomu zatím úspěšně brání, budoucnost datových rozhraní je v optických datových rozhraních, konkrétně v rozhraní LightPeak, které nabízí větší možnosti vývoje než metalická rozhraní. Hlavní nevýhodou tedy zatím zůstává cena, což patrně umožní rozhraní USB dále se udržovat na trhu, neboť s verzí 3.0 nabízí vyšší rychlost, přičemž cena zůstává tradičně nízko. v oblasti multimédií se jako nejperspektivnější jeví HDMI, které se patrně bude dále vyvíjet a používat jako rozhraní pro přenos videa. Samostatnou kapitolou jsou bezdrátová rozhraní, kde v posledních letech dochází k rychlému vývoji. Rychlostmi se sice stále nemohou rovnat metalickým rozhraním, avšak jak již bylo řečeno, mají jiné nesporné výhody. Rozhraní Bluetooth je v mnohých oblastech již zavedené a se zvýšením rychlosti v nové verzi rozhraní se z něj stává vážný soupeř prakticky souběžně vyvíjeného rozhraní WUSB, nabízejícího stejnou přenosovou rychlost. Obě tyto rozhraní patrně mají potenciál k dalšímu rozšiřování.
3. Obecný popis rozhraní USB 3.0 3.1.Rozhraní USB 3.0 Rozhraní USB 3.0 je následovník USB verze 2.0, a stejně jako předchozí verze má mnoho společných vlastností s předchozími verzemi rozhraní USB. Hlavním důvodem je zachování kompatibility nových rozhraní se zařízeními starších verzí. Verze 3.0 však doznává zatím nejrozsáhlejšího rozšíření oproti předchozí verzi. Přesto je nutné k jejímu pochopení nutná znalost základů fungování rozhraní USB 2.0, které nejsou součástí této práce. Hlavním principem USB 3.0 je architektura Duální sběrnice, která umožňuje souběžný provoz zařízenív superrychlostním režimu (Superspeed), a zařízení v pomalejších režimech předchozí verze. Samotná duální sběrnice je paralelně zapojená fyzická sběrnice USB 3.0 s fyzickou sběrnicí USB 2.0 (viz Obrázek3.1.).
15
Obrázek 3.1. Architektura Duální sběrnice Prvky architektury jsou stejné, jako byly u USB 2.0, jmenovitě hostitel, rozbočovač a koncové zařízení. Samotné spojení umožňuje připojení zařízení USB verze 2.0 i 3.0 k hostiteli USB 3.0. Fyzická topologie je tedy stejná, jako v případě USB 2.0, jedná se o stromovou strukturu, kde se v kořeni nachází Hostitel, ke kterému jsou připojeny koncová zařízení a rozbočovače (neboli huby), které poskytují připojení dalším koncovým zařízením. Model spojení USB 3.0 poskytuje zpětnou i dopřednou kompatibilitu, je tedy možné připojení jak zařízení USB 3.0, tak i zařízení USB 2.0 ke sběrnici USB 3.0. Stejně tak je možné připojení zařízení USB 3.0 ke sběrnici USB 2.0. Toho je docíleno kombinovanými kabely s příslušnými konektory a již zmíněným paralelním zapojením dvou sběrnic, které mohou pracovat souběžně. Stejně jako USB 2.0 umožňuje i nová verze rozhraní připojování zařízení za chodu a provoz nejvyšší možné rychlosti podle možností připojených zařízení, všech rozbočovačů na cestě k hostiteli a možnostech a konfiguraci samotného hostitele. Rozbočovače jsou zařízení, která umožňují zvýšení počtu přípojných bodů hostitele. Funkce a koncová zařízení nejsou zaměňovanými pojmy, koncová zařízení obsahují logické entity označené jako funkce. Detailnější popis jednotlivých prvků duální i kompatibility se nachází v pozdějších kapitolách.
16
sběrnice, jejich
fungování, jakož
3.2.Architektura SuperSpeed Jak již bylo řečeno, architektura USB 3.0 je duální architekturou, jenž zahrnuje sběrnici USB 2.0 a sběrnici SuperSpeed. v tabulce 3.1. jsou uvedeny klíčové rozdíly mezi architekturou USB 2.0 a USB 3.0. Vlastnost
SuperSpeed
Rychlost
SuperSpeed - 5 Gb/s
Datové kanály Počet signálových vodičů Protokol přenosů
Řízení spotřeby
Napájení sběrnice
Stavy portu
Typy datových přenosů
dual-simplex, čtyřdrátová diferenciální signalizace, oddělené od signálů USB 2.0, současný obousměrný tok dat šest : čtyři pro SuperSpeed data, dva pro ostatní data asynchronní tok dat řízený hostitelem, pakety jsou směrovány víceúrovňové řízení spotřeby spojení, podporující stavy nečinnosti, spánku a pozastavení, řízení spotřeby na úrovni spojení, zařízení a funkce jako USB 2.0, s 50% nárůstem pro nekonfigurovaná a 80% pro konfigurovaná zařízení hardware portu detekuje připojení zařízení a převede port do aktivního stavu, umožňujícího komunikaci stejné jako USB 2.0 s úpravou pro SuperSpeed, objemový má možnost proudů (Streams)
USB 2.0 nízko-(1,5 Mb/s), plně-(12 Mb/s) a vysokorychlostní (480 Mb/s) half-duplex, dvoudrátová diferenciální signalizace, jednosměrný tok s vyjednávanou změnou směru dva: dva pro nízko-, plně- a vysokorychlostní data hostitelem přidělovaný tok dat (polling), pakety jsou vysílány do všech zařízení (broadcast) pozastavení na úrovni portu s dvěma hodnotami zpoždění na výstupu, řízení spotřeby na úrovni zařízení podpora nízko a vysokovýkonových zařízení s nižšími limity pro nekonfigurovaná a zařízení v režimu pozastavení hardware portu detekuje připojení zařízení, systémový software pomocí příkazů uvede port do aktivního stavu přenos řídicích dat, přenos s přerušením, objemový a synchronní přenos
Tabulka 3.1 - srovnání USB SuperSpeed a USB 2.0 Architektura USB SuperSpeed se podobně jako předchozí verze skládá z několika základních prvků:
Propojení SuperSpeed – způsob připojení a komunikace zařízení s hostitelem, zahrnuje topologii zařízení, komunikační vrstvy, vztahy mezi nimi a interakce
17
Zařízení – zdroje nebo cíle přenosů informací, implementují požadované komunikační vrstvy na straně zařízení, potřebné k výměně dat mezi ovladačem na straně hostitele a logickou funkcí na straně zařízení
Hostitel – zdroj nebo cíl přenosů informací, implementuje komunikační vrstvy na straně hostitele, potřebné k výměně dat na sběrnici, vlastní plán datové aktivity a obsluhy sběrnice a všech zařízení na ni
Následující diagram reprezentuje SuperSpeed propojení pomocí komunikačních vrstev, obrázek 3.2.
Obrázek 3.2 - komunikační vrstvy sběrnice SuperSpeed Vodorovné řady reprezentují jednotlivé vrstvy, kterými se podrobněji zabývají následující kapitoly 5 - 8. Tři sloupce z levé strany ilustrují topologické rozdělení a vztahy mezi zařízeními připojenými ke sběrnici SuperSpeed. Sloupec na pravé straně pak vyjadřuje vliv řízení spotřeby na jednotlivé vrstvy. Řízení spotřeby je také věnována následující podkapitola.
3.2.1. Řízení spotřeby V rozhraní USB 3.0 došlo k výraznému rozšíření možností řízení spotřeby v několika oblastech architektury. Je důležité poznamenat, že tyto oblasti v zásadě nejsou přímo propojené, ale existují mezi nimi závislosti. Na rozdíl od předchozí verze je v SuperSpeed možné spravovat nezávisle jednotlivá spojení a řízení spotřeby této možnosti plně využívá. Samotné schéma řízení pak může určovat jak hostitel, tak zařízení nebo kombinace obou. Stav spojení je šířen rozbočovači vzestupně (vzestupný port je nastaven do režimu nízké spotřeby, když všechna sestupná spojení jsou v režimu nízké spotřeby). Všechna rozhodnutí ohledně změn stavu spojení jsou činěna lokálně. v případě, že jedno nebo více spojení mezi hostitelem a zařízením je
18
v okamžiku zahájení komunikace v režimu nízké spotřeby, existují mechanismy v protokolu, které přinutí tato spojení přejít do aktivního stavu a informují hostitele. Podobně zařízení přepne vzestupné spojení do aktivního stavu, čímž se aktivují i všechna další spojení na cestě k hostiteli. Klíčové prvky v řízení spotřeby spojení:
když jsou zařízení připravena, zašlou asynchronní oznámení hostiteli
pakety jsou směrovány, což dovoluje spojením, komunikace,přepnout se či setrvat v režimu nízké spotřeby
pakety, které narazí na porty v režimu nízké spotřeby, způsobí přepnutí těchto portů do aktivního stavu a ohlášení této změny
Více stavů spojení řízené hostitelem nebo zařízením, s nižší spotřebou za cenu vyššího zpoždění při přechodu do aktivního stavu
která
se
neúčastní
Zařízení může být stejně jako u USB 2.0 explicitně uvedeno do stavu pozastavení pomocí mechanismu pozastavení portu, což nastaví spojení do stavu nejnižší spotřeby. Novou možností SuperSpeed je řízení spotřeby funkcí v zařízení, takže při existenci více funkcí v zařízení je možné je nezávisle měnit režim každé z funkcí. Zařízení se však do režimu nízké spotřeby přepne pouze v případě, že dostane takovou instrukci na portu od hostitele, nezávisle na stavu funkcí. Funkce mohou být zdrojem vzdáleného probouzení, pokud je tato možnost explicitně nastavena hostitelem a stejně tak mohou být vzdáleně probouzeny.
4. Mechanické a elektrické vlastnosti rozhraní 4.1.USB 3.0 konektory Všechny specifikace v následující kapitole byly vyvinuty na základě požadavků zahrnující podporu vyšší rychlosti (5 Gb/s), zachování zpětné kompatibility s USB 2.0, minimalizování odlišných variací konektorů, omezení elektromagnetického rušení, podpory mobility a nízké ceny. Specifikace USB 3.0 definuje stejné typy konektorů jako USB 2.0 a jeden nový - Napájený konektor typu B. Stejně tak je definováno nové logo, vylisované na konektorech. Velikost je dána relativně, odchylka je ±5% (Obrázek 4.1).
4.1.1. Standardní konektor typu A Asi nejpoužívanější konektor, definovaný jako konektor hostitele. Jeho tvar a rozměry jsou shodné s odpovídajícím konektorem USB 2.0 (Standardní konektor typu A), ovšem s přidanými kontakty (vodiči) pro dva datové páry a uzemnění. Tento typ konektoru poskytuje úplnou zpětnou kompatibilitu, ale pro rozlišení se přesto doporučuje používat unikátní zbarvení konektorů USB 3.0. Zástrčku a vidlici typu A i se zabarvením znázorňuje Obrázek 4.2.
19
Obrázek 4.1 - Logo USB 3.0
Obrázek 4.2 - Standardní zástrčka a vidlice typu A - USB 3.0
4.1.2. Standardní a Napájený konektor typu B Standardní konektor typu B je určen pro připojení větších stacionárních zařízení. U konektoru typu B již není definována úplná zpětná kompatibilita, konektor je kvůli přidaným pinům rozměrově větší, je tedy možné zapojit vidlici USB 2.0 do konektoru USB 3.0, avšak zapojení vidlice USB 3.0 do konektoru USB 2.0 není fyzicky možné. Napájený konektor se pak rozměrově neliší od standardního, ale má zapojeny další dva kontakty, umožňující zařízení poskytnout napájení. Tvar konektoru je na Obrázku 4.3.
20
Obrázek 4.3 - Standardní zástrčka a vidlice typu B - USB 3.0
4.1.3. Mikrokonektory typu A a typu B Posledním typem konektorů jsou mikrokonektory, které jsou určeny pro relativně malá a lehká zařízení - handheldy. Tomu odpovídá i jejich velikost, což v případě zvýšení počtu kontaktů stejně jako u standardního typu B působí komplikace se zpětnou kompatibilitou. Existují zástrčky typu B a typu AB, přičemž jak název napovídá, lze do typu B zapojit vidlici typu B a do typu AB oba typy vidlic. Do zástrček USB 3.0 lze zapojit odpovídající vidlice USB 2.0, avšak do zástrček USB 2.0 není možné zapojit vidlice USB 3.0, obdobně jako je tomu u Standardních konektorů typu B.
4.2.USB 3.0 kabely Obrázek 4.5 ilustruje průřez kabelem USB 3.0, jsou patrné tři skupiny vodičů - UTP signální pár, stíněné diferenciální páry (SDP, křížené páry) a napájecí a zemnící vodiče. Schéma kabelu je pak na obrázku 4.4. UTP je určen pro přenos signálů USB 2.0, SDP jsou pro SuperSpeed. Jak je patrné z názvu, SDP mají vlastní stínění kvůli integritě signálu a omezení rušení (EMI). Navíc je ke každému stíněnému páru přidán další vodič, označovaný drain, který je připojen na uzemněný pin v konektoru (odlišný od zemnění napájení, označován GND_DRAIN). Stínění, uzavírající všechny vodiče je realizováno metalickým opletením, připojeným ke kovové části vidlice, k zachycení EM rušení. Barvy v obrázku odpovídají barvě izolace vodičů. Délka kabelů není specifikací omezená, avšak je limitovaná ztrátami na sestavení a poklesem napětí na délce vodiče, jak je ukázáno v následujících kapitolách.
Obrázek 4.4 - schéma USB 3.0 kabelu
21
Obrázek 4.5 - průřez USB 3.0 kabelem
4.3.Požadavky na EMI Tato kapitola se věnuje elektrickým vlastnostem kabelů USB 3.0, protože jsou však tyto parametry důležité pouze při výrobě, jsou zde zmíněny jen okrajově. Jak již je patrné z kapitoly věnující se kabelům, pro USB 3.0 vyvstala nutnost omezit elektromagnetické rušení (EMI), což také znamená zpřísnění parametrů součástí kabelů. Při jejich sestavování je tak nutné dodržovat parametry specifikované v dokumentaci omezující ztráty způsobené vnitřním a vnějším elektromagnetické rušení. Pro ilustraci jsou uvedeny limitní ztráty na jednotlivých částech kabelu. Tyto parametry se liší pro různé typy konektorů, uvedené jsou pro standardní konektory. Maximální ztráty jsou dány hodnotami útlumu při různých frekvencích signálu.
ztráty na zapojení konektorů jsou -1,5 dB (100 MHz), -5,0 dB (1,25 GHz), -7,5 dB (2,5 GHz)
ztráty způsobené Near-End Crosstalkem jsou -32 dB (100 MHz - 2,5 GHz), -23 dB (3 GHz - 7,5 GHz)
ztráty způsobené Crosstalkem mezi páry UTP a SDP jsou -21 dB (100 MHz - 2,5 GHz), -15 dB (3,0 GHz - 7,5 GHz)
Celkové ztráty na daném rozsahu (100 MHz - 7,5 GHz) nesmí překročit 20 dB. Další požadavky jsou kladeny na vlastnosti při průchodu stejnosměrného proudu, jak na napájecí, tak i na signální vodiče, zahrnující odpor mezi piny na obou stranách (30 mΩ napájecí VBUS a GND a 50 mΩ ostatní), změnu odporu při namáhání (+10 mΩ). 22
4.4.Mechanické požadavky Na kabely jsou taktéž kladeny požadavky na výdrž v případě mechanického namáhání. I ty jsou zmíněny jen okrajově. Standardní konektory by měly být schopny vydržet 1500 cyklů zapojení – odpojení, konektory se zvýšenou odolností 5000 cyklů a mikrokonektory pak 10000 cyklů. Kabel by měl vydržet 100 ohybů na poloměr roven 3,7násobku svého průměru. Stejně tak jsou dané síly v Newtonech pro výdrž uchycení kabelů, síly potřebné k zapojení a odpojení konektoru.Materiál konektorů není povinně specifikován, avšak je zřejmé, že bude mít vliv na přenosovou rychlost, doporučen je pozlacený nikl.
5. Modely datových přenosů 5.1.Datové toky SuperSpeed SuperSpeed zachovává základní principy USB 2.0 – poskytuje služby pro komunikaci mezi hostitelem a připojenými zařízeními, stejně jako vrstvovou architekturu a základní prvky v komunikačním toku. Tato kapitola se bude zabývat především rozdíly v komunikaci oproti USB 2.0. USB SuperSpeed přebírá modely datových toků z USB 2.0, stejně jako v USB 2.0 probíhá výměna dat mezi hostitelem a zařízením pomocí jednosměrných nebo obousměrných kanálů (pipes). Samotné přenosy jsou pak realizované mezi software hostitele a koncovým bodem zařízení, přidružené k funkci. Kromě výchozího řídícího kanálu jsou všechny kanály vytvářeny při konfiguraci zařízení a mohou podporovat jeden ze čtyř typů přenosů (objemový, řídící, synchronní, s přerušením). Tyto skutečnosti lépe ilustruje obrázek 5.1. Stejně jako v případě USB 2.0 je koncový bod identifikován adresní trojicí {Adresa zařízení, Číslo koncového bodu, Směr} a jeho popis je obsažen v deskriptoru koncového bodu a navíc Deskriptoru koncového bodu SuperSpeed. Kanál SuperSpeed je pak propojení koncového bodu zařízení a software hostitele a reprezentuje schopnost přenosu dat prostřednictvím paměťového zásobníku a jeho chování je stejné jako v případě USB 2.0. Stejně tak existují dva druhy kanálů – proudové(není definovaná struktura) a kanál zpráv (definovaná USB struktura) Hlavním rozdílem je pak možnost zaneprázdněného koncového bodu zaslat odpověď NRDY (nepřipraven) a před další obsluhou pak oznámení ERDY (koncový bod připraven), aby se hostitel opětovně pokusil o danou transakci.
23
Obrázek 5.1 - model komunikace USB sběrnice
5.2.Stručný přehled protokolu Protokol SuperSpeed je navržen tak, aby využíval fyzické vrstvy pracující v režimu dualsimplex (pár vodičů pro každý směr toku dat, možnost současného vysílání a přijímání). Zároveň je zachována zpětná kompatibilita s USB 2.0. v této kapitole je popsán rozdíl mezi protokolem USB 2.0 a SuperSpeed, obecný popis transakcí a krátký popis paketů použitých v SuperSpeed. Podrobnější informace se nacházejí v kapitole 8, která se věnuje Protokolové vrstvě.
5.2.1. Srovnání USB 2.0 a SuperSpeed transakcí Fyzická vrstva SuperSpeed pracující na principu dual-simplex spojení umožňuje obousměrný tok dat. SuperSpeed dovoluje vysílači poslat více datových paketů (Data) před příjmem stavového. Pro přenos OUT jsou informace v USB 2.0 vyzývacím paketu (Token) zahrnuty v záhlaví datového paketu, takže vyzývací paket není nutný. Pro přenosy IN je jako požadavek datového přenosu zařízení zaslán stavový paket. Zařízení pak reaguje zasláním dat, případně STALL stavu nebo NRDY (Nepřipraven) stavu, čímž odloží přenos, dokud není připraveno. USB 2.0 zasílá pakety všemi sestupnými porty – tedy v režimu všesměrového vysílání (broadcast). Každé zařízení musí dekódovat adresní triplet (adresa zařízení, koncový bod, 24
směr) každého paketu, aby zjistilo, zda musí odpovídat. SuperSpeed směruje pakety ke konkrétnímu zařízení – používá metodu unicast. Sestupné pakety jsou směrovány po trase mezi hostitelem a cílovým zařízením, vzestupné pakety jsou posílány po přímé cestě mezi zařízením a hostitelem. SuperSpeed pakety obsahují směrovací informace, které směrovače využívají ke zjištění výstupního portu, na který mají paket poslat, aby dosáhl cílového zařízení. Existuje výjimka - izochronní časovací paket (ITP), který je zasílán metodou multicast na všechny aktivní porty. V USB 2.0 byl použit systém přidělování datového toku (polling), který je nyní nahrazen použitím asynchronních hlášení. Transakce SuperSpeed začíná požadavkem hostitele, který je následován odpovědí od zařízení. Pokud zařízení může vyhovět požadavku, tak buď přijme, nebo zašle data. Pokud nemůže vyhovět požadavku kvůli nedostatku mezipaměti nebo dat, odpoví stavem NRDY, aby hostitele informovalo, že v tuto chvíli nedokáže požadavku vyhovět. Ve chvíli, kdy již požadavku vyhovět může, pak pošle stav ERDY (koncový bod připraven), po kterém hostitel opětovně naplánuje transakci. Přechod na tento způsob datových přenosů umožňuje spojením, které se aktivně nepodílejí na přenosu paketů, přejít do stavu snížené spotřeby. Vzestupné a sestupné porty spolupracují na přechodu svého spojení do režimu snížené spotřeby a rozbočovače tuto skutečnost vzestupně šíří. Tento způsob umožňuje sběrnici rychle přejít do stavu s nejnižší možnou spotřebou.
5.2.2. SuperSpeed pakety SuperSpeed pakety začínají 16 bytovým záhlavím, přičemž paket může být tvořen pouze tímto záhlavím. Záhlaví začínají informací o typu paketu, která je použita ke zjištění způsobu nakládání s paketem. Záhlaví je chráněno proti chybám 16bitovým CRC (cyklickým kódem) a končí 2 bytovým kontrolním slovem. v závislosti na typu paketu pak většina paketů obsahuje směrovací informace (route string) a adresní triplet zařízení. Směrovací data jsou využita při směrování sestupně, protože pakety zasílané zařízením jsou implicitně zasílány portem vedoucím k hostiteli. Existují čtyři základní druhy paketů:
Paket správy spojení (Link Management Packet - LMP) – je posílán jen mezi dvěma přímo spojenými porty, primárně určen k řízení tohoto spojení
Transakční paket (TP) – prochází všemi spojeními na přímé cestě mezi zařízením a hostitelem, používán ke kontrole toku datových paketů, konfiguraci zařízení a rozbočovačů, neobsahuje přenášená data
Datový paket (DP) – prochází všemi spojeními na přímé cestě mezi zařízením a hostitelem, skládá se ze dvou částí: záhlaví datového paketu (DPH), která je podobná TP a uživatelských dat datového paketu (DPP), který obsahuje datový blok a 32bitový CRC, zajišťující integritu dat
Izochronní časovací paket (ITP) - paket posílaný metodou multicast na všechna aktivní spojení
25
5.3.Obecný popis přenosů Každý zaslaný datový paket (kromě synchronního) je příjemcem potvrzen Stavem (nazvaným ACK transakční paket). Avšak vzhledem k tomu, že SuperSpeed má nezávislé cesty příjmu a zasílání dat, vysílač nemusí čekat na stav po každém přeneseném paketu před zasláním dalšího. USB 2.0 využívá model sériových transakcí – hostitel začne a dokončí jednu transakci (výzva, data, stav) před začátkem další. Dělené transakce dodržují stejný model, skládají se z vysokorychlostních transakcí podle stejného modelu (výzva, data, stav). SuperSpeed tento model vylepšuje využitím oddělené vysílací a přijímací části.Výsledkem je, že SuperSpeed transakční protokol je v zásadě protokolem dělených transakcí umožňujícím několik OUT transakcí a jednu IN transakci provádět zároveň. Pořadí Stavových ACK paketů musí být stejné jako pořadí posílaných datových paketů jen v rámci jednoho koncového bodu. Zařízení informují o maximální velikosti užitečných dat v paketu pro každý svůj koncový bod.
5.3.1. Bursting - Shlukový přenos dat Souvislý přenos dat zvyšuje efektivitu přenosů odstraněním času, který se čeká na potvrzení každého datového paketu zvlášť. Každý koncový bod zařízení SuperSpeed uvádí počet paketů, které může přijmout nebo odeslat (maximální velikost souvislého přenosu dat), než bude čekat na potvrzení. Tato velikost je individuální pro každý koncový bod, hostitel ho zjišťuje z popisovače koncového bodu SuperSpeed. Hostitel může dynamicky měnit velikost souvislého přenosu pro každou transakci (nesmí překročit maximální). Toho se využívá například při rozdělování přenosů mezi více zařízení. Když je zařízení cílem dat (OUT), hostitel může snadno regulovat velikost souvislého přenosu. Když je zařízení zdrojem dat (IN), hostitel může měnit velikost přenosu pro každou transakci prostřednictvím pole v potvrzovacím (ACK) paketu, zasílaném zařízení. Použití časovačů neaktivity a zřízením řízené správy spotřeby spojení může mít vliv na výkon. Pokud paket narazí na neaktivní spojení, nemůže ho přejít, dokud nepřejde do aktivního stavu. v případě IN transakcí hostitel nemůže zahájit další IN transakci, dokud se současná nedokončí. Na vyvážení spotřeby a výkonu se využívá koncept odložení (IN i OUT transakce). Když hostitelem zahájená transakce narazí na neaktivní spojení, rozbočovač o tomto zašle informaci zpět hostiteli, který tuto transakci tak může odložit. Navíc také zašle informaci o odkladu zařízení. Tento mechanismus informuje hostitele o zpoždění způsobených řízením spotřeby a umožní mu snížit dopad na výkon.
5.3.1.1. IN přenos Hostitel zahájí přenos zasláním potvrzovacího paketu (IN) zařízení. Tento paket obsahuje informace potřebné ke směrování paketu k určenému koncovému bodu. Hostitel sdělí zařízení počet paketů, který může poslat a sekvenční číslo prvního očekávaného paketu. Zařízení odpovídá zasláním paketů s odpovídajícími sekvenčními čísly hostiteli. Potvrzovací paket také implicitně potvrzuje, že všechny předchozí datové pakety byly 26
úspěšně přijaty. Přestože hostitel musí posílat potvrzovací paket za každý přijatý datový, zařízení může poslat všechny očekávané datové pakety, aniž by muselo čekat na potvrzení. IN přenos se může skládat z libovolných počtů IN transakcí (obrázek 5.2) a je ukončen, pokud nastane kterákoliv z podmínek:
všechna data jsou úspěšně přijata
koncový bod odpoví paketem, jehož velikost je menší než maximální velikost paketu koncového bodu
koncový bod odpoví chybou
Obrázek 5.2 - IN transakce SuperSpeed
5.3.1.2. OUT přenos Hostitel zahájí přenos zasláním souvislého sledu datových paketů zařízení. Každý datový paket obsahuje informace potřebné ke směrování paketu k určenému koncovému bodu a sekvenční číslo daného paketu. Zařízení vrátí potvrzovací paket se sekvenčním číslem dalšího očekávaného datového paketu, který tak zároveň potvrzuje přijetí předchozího. Podobně jako v případě IN přenosu musí zařízení posílat potvrzovací paket za každý přijatý datový, ale hostitel na tyto pakety nemusí čekat. Stejně jako v předchozím případě končí přenos, pokud nastane kterákoliv z podmínek:
všechna data byla úspěšně odeslána
hostitel pošle paket, jehož velikost je menší než maximální velikost paketu koncového bodu
koncový bod odpoví chybou
5.3.2. Řídící přenos Účel a popis řídícího přenosu je totožný s USB 2.0, umožňuje komunikaci mezi softwarem hostitele a funkcí zařízení za účelem konfigurace, ovládání a zjišťování stavu. Drobné změny jsou definovány v typech transakcí (nastavení a stav), ze kterých se řídící přenos skládá. Všechny řídící přenosy využívají pouze kanály zpráv. 27
Každé zařízení musí implementovat výchozí řídící kanál (jako kanál zpráv), který je určen k nastavení a správě zařízení. Poskytuje přístup k popisovačům zařízení a umožňuje změnit chování zařízení. Řídící přenosy mají nejvyšší prioritu, SuperSpeed se snaží je provádět co nejspolehlivěji a nejrychleji. Stejně jako u USB 2.0 funkce nemůže žádat o konkrétní šířku pásma, ta je přidělována hostitelem na základě momentálního vytížení sběrnice. Maximální délka užitečných dat v datové části přenosu je 512B a nelze využít shlukování. SuperSpeed vyžaduje, aby byla šířka sběrnice rezervovaná pro využití řídicími přenosy podle zásad:
transakce řídícího přenosu může být naplánována současně s transakcemi pro koncové body jiných funkcí jakéhokoliv typu přenosu
opakované pokusy o řídící přenosy nemají přednost před ostatními řídícími přenosy
v případě více čekajících řídících nebo objemových přenosů, jsou řídící přenosy vyřizovány podle pravidel implementovaných v hostiteli
pokud koncový bod není připraven, hostitel ho vyřadí z naplánovaných transakcí, dokud neobdrží zprávu, že je připraven (ERDY)
5.3.3. Objemový přenos Účel a popis objemového přenosu je totožný s USB 2.0, je určen pro zařízení, která potřebují přesunovat relativně velké objemy dat v čase, kdy může přenos využít jakoukoliv dostupnou šířku pásma SuperSpeed, např. čtení nebo kopírování dat na externí disk. Koncový bod funkce poskytuje:
přístup na sběrnici SuperSpeed podle momentální nevyužité šířky pásma
garanci doručení dat, bez garance šířky pásma a zpoždění
Stejně jako u USB 2.0 jsou kanály objemových přenosů proudové kanály, takže nejsou kladeny žádné požadavky na strukturu dat. Tyto kanály jsou jednosměrné, takže pro obousměrný tok dat jsou potřeba dva kanály (IN a OUT). USB SuperSpeed navíc přidává koncept proudů (Streams). Objemový přenos dat může být rozdělen na více transakcí a je dokončen, když koncový bod odeslal očekávaný objem dat nebo odeslal paket, který obsahoval méně než 1024B užitečných dat nebo odpoví stavem STALL.
5.3.3.1. Objemový přenos s proudy (streams) Standardní kanál pro objemový přenos představuje schopnost přesunu jednoho proudu (FIFO) dat mezi hostitelem a zařízením přes paměťový zásobník hostitele a koncovým bodem zařízení. SuperSpeed proudy (streams) poskytují podporu pro víceproudý model na úrovni protokolu. Proudy mezi hostitelem a koncovým zařízením jsou spravovány na základě Proudového protokolu. Každému proudu je přiděleno ID Proudu (SID).
28
Proudový protokol definuje stavové zprávy, které umožní hostiteli nebo zařízení ustanovit aktuální ID proudu (CSID) koncového bodu. Hostitel používá CSID k výběru vyrovnávací paměti koncového bodu, který bude použit při následných přenosech na kanálu. Zařízení používá CSID k výběru vyrovnávací paměti dat funkce.
Obrázek 5.3 - Příklad SuperSpeed IN proudu V příkladu na obrázku 5.3 je IN objemový kanál s více vytvořenými proudy. Ke každému proudu je přidružena alespoň jedna vyrovnávací paměť koncového bodu v paměti hostitele, který přijímá data proudu. v zařízení jsou pak odpovídající data funkcí, která se mají vysílat. Když má zařízení připravena data pro zvolený proud (v tomto případě G), vyšle ERDY zprávu, označenou CSID a hostitel začne posílat IN ACK transakční pakety zařízení, taktéž označené CSID. Zařízení odpoví zaslání datových paketů, obsahujících data funkce přidružená s daným CSID, opět označená CSID. Když hostitel přijme data, použije CSID k určení vyrovnávací paměti koncového bodu, který bude přijímat data. Když už nejsou žádná další data funkce, zařízení ukončí proud. Proudy umožňují jednomu koncovému bodu přístup do více vyrovnávacích pamětí hostitele (standardně má jeden koncový bod přiřazenu vyrovnávací paměť koncového bodu hostitele). Vzhledem k tomu, že proudy jsou přenášeny přes standardní objemový kanál, chyba na tomto kanálu zastaví veškerou aktivitu proudů. Proudy značně rozšiřují možnosti objemových přenosů, přičemž vyžadují minimální změny hardware na straně hostitele a zařízení. Příkladem využití může být například podpora provádění datových přenosů mimo pořadí pro zpracování příkazů v zařízeních mass storage.
5.3.4. Přenos s přerušením Účel a popis přenosu s přerušením je totožný s USB 2.0, hostitel v pravidelných intervalech (obslužných intervalech) požaduje data a zařízení je podle svých možností poskytuje. Přenosy s přerušením jsou určeny pro zařízení, která vyžadují vysokou spolehlivost přesunu malého množství dat v omezeném obslužném intervalu (například myš nebo klávesnice). SuperSpeed přenosy s přerušením poskytují:
zaručený maximální obslužný interval
garanci opakování přenosu v dalším obslužném intervalu
29
Přenos s přerušením používá proudové kanály, takže užitečná data nemusí mít pevný formát a kanál je jednosměrný. Koncovým bodů přenosů s přerušením a synchronním přenosům může být alokováno nejvýše 90% celkové šířky pásma sběrnice SuperSpeed. Koncový bod může ve svém popisovači určit požadovaný obslužný interval jako 2int x 125 µs, kde int je v rozmezí 0 15. Hostitelský software pak tuto informaci využije k určení udržitelného obslužného intervalu. Přenos s přerušením umožňuje přenos maximálně tří paketů za obslužný interval (tedy 3x1024B dat). Každý obslužný interval dochází k přístupu ke koncovým bodům přenosu s přerušením, avšak koncový bod buď nemusí být schopen přijímat data (OUT), nebo nemá žádná data, která potřebuje poslat (IN).
5.3.5. Synchronní přenos Účel synchronního přenosu je totožný s USB 2.0, umožňuje streaming dat – periodické přenosy s omezeným obslužným intervalem a tolerancí chyb. SuperSpeed využívá k synchronizaci časování izochronních časovacích paketů (ITP). SuperSpeed synchronní přenosy poskytují:
zaručenou šířku pásma pro přenosy s omezeným zpožděním
zaručenou velikost datového toku kanálem (pokud jsou data kanálu dodávána)
Každý obslužný interval dochází k přístupu ke koncovému bodu synchronního přenosu. koncovým bodům, kterým je povolen přístup ke sběrnici, je zaručena požadovaná šířka pásma. Požadovaný obslužný interval každého koncového bodu je v popisovači tohoto koncového bodu. Kanály synchronních přenosů jsou proudové kanály, vždy jednosměrné. Řízení spotřeby SuperSpeed může mít negativní vliv na synchronní přenosy, pokud přenos narazí na spojení v neaktivním stavu. Výsledné zpoždění by mohlo zapříčinit, že data nedorazí v obslužném intervalu. Proto hostitel před započetím synchronního přenosu vyšle PING paket zařízení a to odpoví PING_RESPONSE, čímž je zaručena aktivace spojení na cestě mezi zařízením a hostitelem. Maximální alokace šířky pásma a nastavování obslužných intervalů je shodné s přenosy s přerušením. Synchronní přenos umožňuje přenos maximálně tří shlukových přenosů složených ze 16 paketů za obslužný interval (tedy 3x16x1024B dat)
6. Fyzická vrstva 6.1.Funkce Fyzické vrstvy Fyzická vrstva definuje přenos signálů na sběrnici SuperSpeed a elektrické vlastnosti fyzického spojení mezi sestupným portem (na hostiteli nebo rozbočovači) a vzestupným portem (na zařízení). Taktéž zabezpečuje vytváření, udržování a ukončování spojení. Upravuje data přenášená z a do vyšší vrstvy (vrstva spojení), po bitech vysílá přes fyzické spojení. Podrobnější pohled na fungování fyzické vrstvy je na obrázku 6.1. 30
Obrázek 6.1 - Blokové schéma vysílače Přijímač pracuje prakticky stejným způsobem, samozřejmě postupuje ve schématu opačným směrem a obsahuje prvky pro detekci dat a obnovu bitového časování.
6.2.Kódování a převod dat na sériová SuperSpeed používá pro kódování symbolů standardní 8b/10b kód, který mapuje 8 bitové symboly na 10 bitové, přičemž zajišťuje dostatek hran pro obnovení časování v přijímači a vyvážený počet jedniček a nul kvůli minimalizaci stejnosměrné složky. Kódování ve vysílači a dekódování v přijímači probíhá podle schématu na obrázku 6.2. Řídící bit z určuje, zda se jedná o K-kód (řídící znak) nebo D-kód (datový znak).
Obrázek 6.2 - Mapování znaků na symboly 8b/10b 31
Převod dat na sériová je proces, při kterém jsou symboly získané 8b/10b kódováním převáděny na sled bitů, který je následně vysílán na sběrnici. v přijímači probíhá opačný proces. Postup převodu dat na sériová je patrný na obrázku 6.2 - sled bitů začíná bitem a (LSb) a končí bitem j (MSb). Pro D-kódy (datové znaky) mimo fázi navazování spojení je také aplikováno skramblování, realizovaný logickým obvodem, jehož účelem je eliminace dlouhých sledů stejných bitů (jedniček nebo nul). Skramblování se provádí před 8b/10b kódováním (při vysílání) Použitý obvod je na obrázku 6.3, generační polynom má tvar 𝐺 𝑋 = 𝑋16 + 𝑋 5 + 𝑋 4 + 𝑋 3 + 1.
Obrázek 6.3 - Lineární posuvný registr se zpětnou vazbou Pro účely navazování spojení a další správu spojení v 8b/10b kódovacím schématu existují speciální symboly (získané kódováním K-kódů), které se liší od datových symbolů (získaných kódováním D-kódů).
6.3.Navázání spojení Předtím, než může být spojení použito k přenášení dat, musí proběhnout inicializace a příprava spojení. k tomu a dalším úkonům správy spojení jsou Vrstvou spojení používány sekvence. Přípravné sekvence se skládají z řazených sad (K-kódů a D-kódů). U těchto sekvencí neprobíhá skramblování, ale 8b/10b kódování je aplikováno. Prvními dvěma fázemi přípravy spojení je bitové vyrovnání a po něm následující symbolové vyrovnání. Pro bitové vyrovnání je obvodem CDR (Clock/Data Recovery) nutné zjistit z příchozího toku dat informace o frekvenci a fázi. Toho je dosaženo posíláním dostatečně dlouhého řetězce jedniček a nul, takže CDR může přibližně vycentrovat hodiny v rámci jednoho bitu. Ve druhé etapě, v symbolovém vyrovnání, je pak třeba nalézt začátek a konec 10bitového symbolu. k tomuto účelu existuje speciální K-kód nazvaný COMMA, který je v rámci všech 8b/10b kódů unikátní (s výjimkou chyby se jeho bitový sled nevyskytuje v žádném jiném kódu, při jakékoliv polaritě). Přípravné sekvence, které se používají k bitovému a symbolovému vyrovnání, ke stanovení polarizace v přijímači a ekvalíze přijímače jsou TS1, TS2 a TSEQ. Vysílání TS1 a TS2 může být prokládáno pouze sekvencemi SKP (více o SKP níže), ty však mohou být vkládány pouze před nebo po odvysílání celé sekvence TS1 respektive TS2. TSEQ přípravná sekvence se opakuje 65536 krát (umožňuje testování různých nastavení), při kterých SKP vkládána být nesmí. Sekvence TS1 a TS2 obsahují bity používané ke správě spojení. 32
Sekvence TSEQ začíná K-kódem COMMA následovaným 31 specifickými D-kódy, z nichž posledních 16 je opakující se kód D10.2, který přijímač využívá ke zajištění správné polarity spojení (prohození pólů vysílače). Sekvence TS1 a TS2 se skládají ze 16 symbolů, z nichž první čtyři jsou COMMA, pátý je rezervovaný (D0.0), šestý je určen pro správu spojení (tabulka 6.1) a další jsou identifikátory TS1 nebo TS2 (opakující se D-kód). Bit 0 1 2 3 4:7
TS1 Symbol 5 Popis 0 - Normální příprava Reset je nastavován pouze hostitelem 1 - Reset za účelem resetu zařízení. Nastaven na 0 Rezervován pro budoucí použití. 0 - Zrušení režimu smyčky Když je nastaven, přijímač aktivuje 1 - Nastavení režimu smyčky digitální smyčku. 0 - Zrušení režimu bez skramblování Když je nastaven, přijímač nebude 1 - Nastavení režimu bez skramblování používat skramblování. Nastaveny na 0 Rezervovány pro budoucí použití. Tabulka 6.1 - Význam symbolu správy spojení
6.4.Časování Každé spojení má vlastní časování, které se na obou koncích synchronizuje během výše popsaného procesu navazování spojení. Součástí obou portů jsou tedy i referenční hodiny, jejichž přesnost je ±0,3‰, maximální rozdíl mezi oběma konci je tedy ±0,6‰. Použitá digitální modulace s rozprostřeným spektrem SSC (Spread spectrum clocking modulation) navíc přidává frekvenční rozdíl 5‰, celkem tedy může být frekvenční rozdíl -5,3‰ až 0,3‰. Kvůli tomuto rozdílu existuje pružná vyrovnávací paměť, která vyrovnává rozdíl vkládáním nebo přijímáním SKP (Skip) sekvencí. Vysílač průměrně vkládá SKP sekvence každých 354 symbolů, protože však tyto sekvence nemohou být vkládány do jakéhokoliv paketu, může vysílač ukládat tyto sekvence do vyrovnávací paměti a stejně tak přijímač musí mít vyrovnávací paměť pro několik symbolů. SKP sekvence se skládá ze dvou Kkódů SKP. Modulace SSC je použita pro všechny porty, tvar modulace se může lišit podle výrobce, avšak perioda modulační funkce musí být 30-33 kHz a rozdíl frekvencí (jednotkových intervalů) musí být 4-5‰. Vzhledem k požadavkům obvodu CDR nesmí celková rychlost přeběhu, ovlivněná jitterem SSC a ostatními zdroji, překročit určitou mez, specifikovanou níže.
6.5.Vysílání 6.5.1. Obecné pojmy Prvním důležitým pojmem při popisu přenosu signálu po spojení je tzv. Diagram oka, který je v podstatě grafickou reprezentací napěťového průběhu v závislosti na čase při vysílání znaku. Lze v něm pozorovat vliv jitteru na průběh signálu, neboť se měří pro 106jednotkových intervalů. Na obrázku 6.4 je ukázka obecného diagramu oka, čas je měřen od vyrovnání napětí na Txp a Txn (kladném a záporném pólu vysílače). Samotné oko je
33
pak prostor mezi grafy, šířka oka je čas, výška oka je napětí v místě největšího rozevření oka.
Obrázek 6.4 - Obecný Diagram oka Dalším důležitým pojmem je definice (časového průběhu) napěťových úrovní. Na obrázku 6.5 je opět příklad průběhu napětí, tentokrát přímo pro průběhy napětí při vysílání USB. Diferenciální napětíVDIFF je napětí na Txp (nebo Rxp na přijímači) vzhledem k napětí na Txn (respektive Rxn). VDIFF je také roven změně napětí jednoho signálu na jednom vodiči. (1)
𝑉𝐷𝐼𝐹𝐹 = 𝑇𝑥𝑝 − 𝑇𝑥𝑛
Celková změna diferenciálního napětí je pak diferenciální napětí špička-špička, VDIFF-PP. Jeho velikost je rovna dvojnásobku diferenciálního napětí. (2)
𝑉𝐷𝐼𝐹𝐹−𝑃𝑃 = 2 ∙ 𝑉𝐷𝐼𝐹𝐹
Souhlasné napětí VCM je průměrné napětí na jednom diferenciálním páru vodičů vhledem k zemi. Je měřeno podle vzorce (3). (3)
𝑉𝐶𝑀 =
𝑇𝑥𝑝 +𝑇𝑥𝑛 2
Stejnosměrné složky jsou všechny s kmitočtem nižším než 30kHz a střídavé pak s vyšším než 30kHz. V příkladu na obrázku 6.5 lze určit VDIFF-PP = 800mV, VDIFF = 400mV. Bod křížení Txn a Txp na hodnotě 300mV odpovídá hodnotě VDIFF = 0V a zároveň udává hodnotu VCM = 300mV. Tyto průběhy zahrnují deemfázi.
34
Obrázek 6.5 - Příklad průběhů napětí
6.6.Vysílač a přijímač Vysílač musí splňovat určité parametry dané normou, některé z nich jsou vypsány v tabulce 6.2. Značka UI VTX-DIFF-PP VTX-DIFF-PP-LOW VTX-DE-RATIO RRX-DIFF-DC
Parametr Jednotkový interval Vrcholové napětí vysílače Vrcholové napětí nízkovýkonového vysílače Deemfáze vysílače Výstupní odpor vůči diferenciálnímu signálu
Dovolené hodnoty
Komentář
199,94 - 200,06 ps
Odpovídají toleranci ±0,3‰ pro každé zařízení (nebere v potaz odchylky způsobené SSC)
0,8 - 1,2 V
Běžné je 1 V.
0,4 - 1,2 V
Nejsou specifikovány požadavky na deemfázi.
3,0 - 4,0 dB
Běžné je 3,5 dB
72 - 120 Ω
CAC-COUPLING
Kondenzátor střídavé vazby
75 - 200 nF
tCDR_SLEW_MAX
Maximální rychlost přeběhu
10 ms/s
Všechny vysílače obsahují střídavou vazbu, buď v médiu, nebo samotném vysílači
Tabulka 6.2 - Parametry vysílače SuperSpeed dále specifikuje nízkovýkonový vysílač, který bývá používán v systémech s krátkým dosahem, náchylným k rušení. Jeho podpora však není pro zařízení USB SuperSpeed povinná. Pro oba režimy vysílání je specifikován jeden přijímač. Výška oka v diagramu oka musí být v rozsahu 100 - 1200 mV po deemfázi. Přijímač musí kromě splnění parametrů stanovených tabulkou 6.3 být schopen provést . v případě dlouhých kabelů (velkého útlumu) je v diagramu oka výška oka minimální a je nutno aplikovat funkci, která kompenzuje daný útlum a umožní tak rozeznávání přijímaných symbolů. k tomuto účelu slouží dříve zmíněné TSEQ sekvence, které obsahují datové struktury rozložené do širokého frekvenčního spektra. Navíc také obsahují dostatek hran pro zachování bitového vyrovnání.
35
Značka UI RRX-DC RRX-DIFF-DC VRX-LFPS-DET-
Parametr Jednotkový interval Vstupní odpor vůči souhlasnému signálu Vstupní odpor vůči diferenciálnímu signálu
Dovolené hodnoty 199,94 - 200,06 ps
Komentář Nebere v potaz odchylky způsobené SSC
18 - 30 Ω
Nutné k detekci přijímače.
Hranice detekce LFPS
100 - 300 mV
72 - 120 Ω
DIFFp-p
Nižší hodnota je šum, při vyšší se musí přijímač probudit.
Tabulka 6.3 - Parametry přijímače Přijímač může procesem popsaným v následující kapitole přejít do režimu smyčky, kdy přijatá data ihned vysílá zpět na sběrnici. Vysílání však musí být přečasováno, není možné přímo připojit výstup zesilovače v přijímači na vysílač. Symboly SKP musí být zpracovávány jako v běžném režimu. Během režimu smyčky přijímač zpracovává příkazy Testování bitové chybovosti (BERT). v tomto režimu se operuje pouze v oblasti 10bitových symbolů, s výjimkou SKP a BERT příkazů se všechny symboly vysílají stejně, jak byly přijaty. Testování bitové chybovosti probíhá v režimu smyčky pomocí několika sekvencí, složených z K-kódů (kromě datového, který obsahuje D-kódy). Samotné testování je založeno na porovnávání přijaté BDAT sekvence, jejíž obsah je znám a počítání chyb v registru čítače chyb (EC). Sekvence BRST začíná samotné testování a zároveň nuluje registr EC. Pokud přijímač obdrží sekvenci BERC, odpoví na ni sekvencí BCNT, která obsahuje zakódovaný registr EC. Testování bitové chybovosti pokračuje, dokud není explicitně ukončeno.
6.6.1. Ekvalíza přijímače USB 3.0 umožňuje použití ekvalízy přijímače k vyhovění napěťovým a časovým požadavkům systémů. Slouží ke kompenzaci útlumu na vedení mezi přijímačem a vysílačem. Realizace tohoto procesu se může u různých zařízení odlišovat, avšak pro specifikace USB 3.0 je stanovena rovnice pro lineární časově spojitý ekvalizátor, která popisuje funkci přizpůsobení přijímače. Na obrázku 6.6 je pak graf této funkce. 𝐴𝑑𝑐 ∙𝜔 𝑝 1 ∙𝜔 𝑝 2
𝐻 𝑠 =
(5)
𝐴𝑑𝑐 = 0,667; 𝜔𝑧 = 2𝜋 650 ∙ 106 ; 𝜔𝑝1 = 2𝜋 1,95 ∙ 109 ; 𝜔𝑝2 = 2𝜋 5 ∙ 109
𝜔𝑧
∙
𝑠+𝜔 𝑝 2
(4)
𝑠+𝜔 𝑝 1 ∙ 𝑠+𝜔 𝑝 2
Obrázek 6.6 - Graf funkce přizpůsobení přijímače 36
6.7.Nízkofrekvenční periodická signalizace Nízkofrekvenční periodická signalizace (LFPS) zprostředkovává komunikaci mezi dvěma porty na spojení, které je v režimu nízké spotřeby. Taktéž se používá při přípravě spojení nebo po měkkém resetu spojení. Příklad průběhu napětí při LFPS je na obrázku 6.7. Doba cyklu LFPS je tPeriod. LFPS dávka je vysílání spojitého signálu LFPS po dobu tBurst. Sekvence LFPS je definována jako vysílání jedné dávky trvání tBurst během doby definované tRepeat. Mezi dvěma dávkami je spojení nečinné. Různé LFPS zprávy jsou kódovány v závislosti na době tBurst, tRepeat je časový interval před vysíláním další zprávy. LFPS zprávy mohou být polling.LFPS a ping.LFPS, dále jsou definovány signály pro opuštění režimů U1, U2 a smyčka, probuzení z U3 a měkký reset (viz kapitola 7).
Obrázek 6.7 - Vysílání LFPS Doba tPeriod musí být v rozmezí 20-100 ns, ostatní doby pak závisejí na typu zprávy nebo signálu.
7. Spojová vrstva 7.1.Funkce vrstvy spojení Vrstva spojení je odpovědná za udržování spojení a zajištění úspěšného přenosu dat mezi konci spojení. Operace vrstvy spojení jsou postaveny na paketech a příkazech spojení. Pakety jsou sestavovány ve vrstvě spojení, zajišťují přenos dat a dalších informací mezi hostitelem a zařízením. Příkazy spojení jsou určeny ke komunikaci mezi konci spojení. Pakety a příkazy spojení taktéž obsahují část zajišťující detekci chyb. Vrstva spojení se také stará o přípravu spojení, testování a řízení spotřeby spojení. Toto zajišťuje zavedení Stavového automatu přípravy a stavu spojení (SAPSS). Vícebytová pole paketu jsou po sběrnici přenášena v pořadí Little-endian (jako první nejméně významný byte). Každý byte paketu nebo příkazu spojení je dále zpracován ve fyzické vrstvě (viz kapitola 6).
7.2.Správa spojení a řízení datového toku 7.2.1. Pakety vrstvy spojení SuperSpeed používá k přenosu informací pakety, ty se dělí na pakety správy spojení (LMP), transakční pakety (TP), izochronní časovací pakety (ITP) a datové pakety (DP). 37
Paket záhlaví je dlouhý 20 symbolů (bytů) a skládá se ze tří částí - rámce paketu záhlaví, záhlaví paketu a slova řízení spojení. Tento typ paketu zahrnuje LMP, TP, ITP a záhlaví DP. Paket záhlaví je znázorněn na obrázku 7.1.
Obrázek 7.1 - paket záhlaví Rámec paketu záhlaví (počáteční řazená sada - HPSTART) je definovaný jako tři K-kódy SHP následovány jedním EPF. Další částí paketu je záhlaví paketu, které se skládá ze 12 bytů informace a 2 bytů kontrolního součtu CRC-16. Poslední částí je slovo řízení spojení, které je používáno jak k řízení toku dat jak na úrovni spojení, tak na úrovni koncových bodů. Skládá se postupně od LSB ze sekvenčního čísla záhlaví (3b), rezervované části (3b), hloubky rozbočovače (3b), bitu zpoždění, bitu odložení a CRC-5 (5b). Datový paket je speciální typ paketu, skládající se ze záhlaví datového paketu (DPH) a uživatelských dat datového paketu (DPP). DPH je paket záhlaví definovaný výše. DPP se skládá z rámce uživatelských dat datového paketu , uživatelských dat o variabilní velikosti a kontrolního součtu, jak je znázorněno na obrázku 7.2
Obrázek 7.2 - Datový paket Rámec užitečných dat DP se skládá z osmi K-kódů, počáteční řazené sady (DPPSTART) a koncové řazené sady (DPPEND) nebo rušící řazené sady (DPPABORT). DPPSTART se skládá ze tři K-kódů SDP a jednoho EPF. DPPEND obsahuje tři K-kódy END a jedním EPF, jeho alternativa DPPABORT pak ze tří K-kódů EDB a jednoho EPF. DPPEND indikuje normální ukončení uživatelských dat. Samotná uživatelská data mohou být dlouhá od 0B do 1024B a 4-bytového kontrolního součtu CRC-32. Při předčasném ukončení uživatelských dat obsahuje DPPABORT. Uživatelská data bezprostředně následují své záhlaví datového paketu.
7.2.2. Řídící příkazy Řídící příkazy spojení jsou použity pro zajištění integrity dat, řízení datového toku a řízení spotřeby na úrovni spojení. Příkazy spojení jsou vždy 8 symbolů (bytů) dlouhé a obsahují opakující se symboly pro vyšší toleranci chyb. Jejich názvy začínají písmenem L. Řídící
38
příkazy nemohou být posílány uprostřed žádného paketu a mezi záhlavím DP a uživatelskými daty DP. SKP sekvence mají vyšší prioritu než Řídící příkazy. Příkazy spojení mají strukturu znázorněnou na obrázku 7.3. První čtyři symboly jsou počáteční řazenou sadou příkazu spojení, složené ze tří K-kódů SLC následovaných EPF. Zbývající čtyři symboly obsahují dvoubytové řídící slovo spojení a jeho kopii.
Obrázek 7.3 - Příkaz spojení Samotné řídící slovo spojení je složeno z 11 bitů řídící informace chráněné 5 bity kontrolního součtu CRC-5 (obrázek 7.4). Řídící příkazy mají čtyři případy užití. Prvním je zajištění úspěšného přenosu paketu, druhým je řízení toku dat spojení, třetím je řízení spotřeby a posledním jsou speciální příkazy určené k signalizaci, že port je ve stavu U0. Definice všech příkazů jsou v tabulce 7.1. Řídící slova jsou rozdělena do tříd (podle prvních 2 bitů), typů (podle následujících 2 bitů) a podtypů (podle posledních 4 bitů), zbývající 3 bity jsou rezervované.
Obrázek 7.4 - Řídící slovo spojení
39
Příkaz spojení
LGOOD_n
LBAD
LCRD_x
LRTY LGO_U1, LGO_U2 LGO_U3 LAU LXU LPMA LDN LUP
Definice n(0-7): Sekvenční číslo záhlaví. Posílán portem, který přijal paket záhlaví, který měl platnou strukturu, ověřené kontrolní součty a očekávané sekvenční číslo, za předpokladu, že přijímací port měl dostupnou vyrovnávací paměť pro záhlaví. Přijímán portem, který poslal paket záhlaví. Pokud je sekvenční číslo n shodné s očekávaným, potvrzuje úspěšné přijetí paketu. Nesprávný paket záhlaví. Posílán portem, který přijal neplatný paket záhlaví (nesprávný kontrolní součet CRC-5 a/nebo CRC-16) Přijetí LBAD příkazu způsobí opětovné odeslání všech paketů záhlaví po posledním potvrzeném LGOOD_n. x(A,B,C,D): Index kreditu vyrovnávací paměti pro záhlaví přijímače. Značí, že jeden kredit vyrovnávací paměti byl dán k dispozici. Posílán portem, který přijal paket záhlaví, potvrzený odesláním LGOOD_n po jeho zpracování a uvolnění paměti. LCRD_x je posílán v abecedním pořadí (A,B,C,D,A...). Posílán portem před posíláním prvního paketu záhlaví po přijetí LBAD. Posílán portem vyžadujícím přechod do stavu U1 respektive U2. Posílán sestupným portem, vyžadujícím přechod do stavu U3. Posílán portem, který akceptuje přechod do stavu U1, U2 nebo U3. Posílán portem, který odmítne přechod do stavu U1 nebo U2. Posílán portem po přijetí LAU. Použitý ve spojení s LGO a LAU vyzýváním k zajištění stejného stavu obou portů. Posílán sestupným portem ve stavu U0 každých 10μs, v případě, že nejsou posílány žádné pakety nebo příkazy spojení. Stejný účel jako LDN, posílán vzestupným portem. Tabulka 7.1 - Příkazy spojení
7.2.3. Logická nečinnost Logická nečinnost je definovaná jako doba, kdy na sběrnici nejsou vysílány žádné informace (pakety nebo příkazy spojení). Přesto je v této době každým portem ve stavu U0 vysílán na sběrnici speciální D-kód definovaný jako symbol nečinnosti (D0.0, jehož hodnota je 00h).
7.3.Reset spojení Spojení má dvě možnosti resetu. Prvním je reset, který nastaví úložné prvky, registry, paměti do předem daného stavu při zapnutí napájení (navíc obnoví proměnné fyzické vrstvy na výchozí hodnoty). Druhý je vnitropásmový reset, který používá SuperSpeed
40
nebo LFPS pro šíření resetu přes spojení. Po dokončení resetu spojení přejde do stavu U0 (viz podkapitola 7.4).
7.3.1. Vnitropásmový reset Vnitropásmový reset je generován sestupným portem, řízením z protokolové vrstvy. Existují dva způsoby generování pásmového resetu - horký reset a měkký reset. Horký reset nemění nastavení vzestupného portu, ani proměnné fyzické vrstvy (pouze nuluje čítač chyb spojení). Měkký reset navíc obnovuje hodnoty nastavení vzestupného portu i proměnných fyzické vrstvy do výchozího stavu a je realizován pomocí NFSP.
7.4.Stavový automat přípravy a stavu spojení Stavový automat přípravy a stavu spojení (SAPSS) je konečný stavový automat určený k popisu správy spojení. SAPSS se skládá ze dvanácti různých stavů, které mohou být popsány na základě jejich funkcí. Mezi stavy patří U0, U1, U2, U3 (provozní stavy spojení), Rx.detekce, polling, zotavení a měkký reset (určeny k inicializaci a přípravě spojení), smyčka a přizpůsobení (testovaní bitové chybovosti a testování souladu vysílače), SS.nečinnost(chybový stav) a SS.odpojení (SuperSpeed na spojení je vypnuté). Přechody mezi stavy jsou ovládány softwarem. Přechody, které zahajuje vyšší (protokolová) vrstva jsou dále označovány jako „řízené“. Navíc existují časovače, které mají vliv na fungování SAPSS. Na obrázku 7.5 je obecný přehled SAPSS, který neobsahuje všechny možné podmínky přechodů mezi stavy. Všechny podmínky přechodů mají stejnou prioritu. Popis stavů a přechodů mezi nimi, který následuje je zobecněný, podrobný popis přechodů je nad rámec této práce.
7.4.1.
Stavy v SAPSS a přechody mezi nimi
Z většiny stavů je možné přejít řízením do stavu SS.vypnutí a měkkým resetem do stavu Rx.detekce. Součástí SAPSS je i množství časovačů, které jsou využívány v různých stavech a procesech přechodů mezi nimi, obvykle k omezení doby, po kterou port čeká na odpověď druhé strany.
41
Obrázek 7.5 - Stavový automat přípravy a stavu spojení
7.4.1.1. SS.odpojení Stav, při kterém je SuperSpeed sběrnice vypnutá, pracuje pouze USB 2.0 sběrnice. Podrobnosti chování zařízení a rozbočovače jsou v kapitole 9. Pro vzestupný port zařízení obsahuje dva podstavy, SS.odpojení.výchozí a SS.odpojení.chyba. SS.odpojení a SS.odpojení.výchozí jsou logické neaktivní stavy pro vzestupné porty rozbočovače, respektive zařízení s vlastním napájením. Sestupné porty do tohoto stavu přecházejí pouze řízením, vzestupné porty (s vlastním napájením) pak při neplatném VBUS.
Obrázek 7.6 - Podstavový automat SS.odpojení (vzestupný port zařízení)
42
Sestupný port opouští stav SS.odpojení (přehází do stavu Rx.detekce) řízením, vzestupný port rozbočovače pak při změně VBUS na platný nebo USB 2.0 resetu. Stavový diagram platný pro vzestupný port zařízení je na obrázku 7.6.
7.4.1.2. SS.nečinnost SS.nečinnost je stav, kdy na spojení selhala operace SuperSpeed. Během tohoto stavu port periodicky ověřuje přítomnost přijímače na vzdáleném konci spojení. Pokud je detekováno odpojení přijímače, přejde do stavu Rx.detekce. SS.nečinnost má dva podstavy - SS.nečinnost.klid a SS.nečinnost.detekce.odpojení. Ve stavu SS.nečinnost klid neprobíhá detekce přijímače na vzdáleném konci (úspora energie). Po vypršení time-outu přechází port do stavu SS.nečinnost.detekce.odpojení. v tomto stavu pak proběhne detekce přijímače na vzdáleném konci. v případě, že přijímač je detekován přejde port zpět do stavu SS.nečinnost.klid, jinak přejde do stavu Rx.detekce.
7.4.1.3. Rx.detekce Rx.detekce je stav SAPSS při zapínání sestupného i vzestupného portu, stejně jako stav sestupného portu po zahájení měkkého resetu a vzestupného, po jeho detekci. Účelem stavu Rx.detekce je zjistit přítomnost přijímače na vzdáleném konci spojení. Stav Rx.detekce je složen ze tří podstavů - Rx.detekce.reset, Rx.detekce.aktivní a Rx.detekce.klid (obrázek 7.7). Ve stavu Rx.detekce.aktivní detekuje port přijímač na vzdáleném konci. v případě úspěchu přechází do stavu polling, jinak přejde do stavu Rx.detekce.klid, ve kterém zůstavá po definovanou dobu (timeout) před opětovným pokusem o detekci (přechodu do stavu aktivní).
Obrázek 7.7 - Podstavový automat Rx.detekce
7.4.1.4. Polling Polling je stav, ve kterém probíhá příprava spojení. Mezi dvěma porty proběhne polling.LFPS handshake, poté bitové a symbolové vyrovnání a ekvalíza přijímačů. Stav polling se dále dělí na několik podstavů. Polling.LFPS, který je určený k nastavení parametrů operací fyzické vrstvy a synchronizování fungování portů na spojení po 43
příchodu ze stavu Rx.detekce. PollingRxEQ, ve kterém dochází k ekvalíze přijímače. Polling.aktivní je podstav, ve kterém pokračuje příprava spojení. v následujícím polling.konfigurace dochází k dokončení přípravy spojení. Polling.nečinnost je podstav, ve kterém port dekóduje TS2 sekvenci přijatou v předchozím stavu a podle výsledku určuje stav, do kterého přejde. Podrobněji je přechod mezi těmito podstavy a ostatními stavy znázorněn na obrázku 7.6 (Neobsahuje všechny možné přechody).
Obrázek 7.6 - Podstavový automat polling Ze všech podstavů přechází porty při měkkém resetu zpět do stavu Rx.detekce. Port přechází z podstavu polling.aktivní do polling.konfigurace po přijetí osmi identických TS1 nebo TS2 sekvencí. Do podstavu polling.nečinnost pak port přechází po přijetí osmi identických TS2 sekvencí (v případě sestupného portu s možností nastavení režimu smyčky, režimu bez skramblování nebo reset bitu) a odeslání 16 identických TS2 sekvencí. Port, který je v režimu polling.nečinnost, vysílá symbol nečinnosti. Po přijetí osmi symbolů nečinnosti vyšle 16 těchto symbolů zpět a přejde do stavu U0.
7.4.1.5. Režim přizpůsobení Režim přizpůsobení se používá k ověřování, zda vysílač splňuje napěťové a časovací požadavky. Za tímto účelem je postupně vysíláno několik testovacích sekvencí. z tohoto režimu je možné přejít pouze pomocí měkkého resetu do stavu Rx.detekce nebo řízením sestupného portu do stavu SS.vypnutí. 44
7.4.1.6. U0 U0 je normální stav, při kterém je možné vysílat a přijímat pakety. Při 10μs nečinnosti je na spojení vysílán paket LDN respektive LUP (viz tabulku 7.1). z tohoto stavu může port přejít do stavů U1, U2 nebo U3 po úspěšném dokončení LGO_Un vstupní sekvence (viz následující podkapitolu 7.5). Po třech neúspěšných pokusech o přechod do stavu U3 přejde port do stavu SS.nečinnost. v případě výskytu chyb (viz podkapitolu 7.6), detekci TS1 sekvence nebo řízením přechází do stavu zotavení. Port může řízením přejít do stavu SS.odpojení. Pokud nepřijme žádný příkaz spojení po dobu 1ms, přejde do stavu zotavení. Sestupný port navíc může řízením přejít do stavu SS.nečinnost.
7.4.1.7. U1 U1 je stav se sníženou spotřebou, kdy neprobíhá přenos paketů, oba porty jsou ve stavu spojení, kdy fyzická vrstva může být ve stavu snížené spotřeby. Port přejde do stavu zotavení, pokud dokončí LFPS opuštění U1handshake, pokud port tento handshake úspěšně nedokončí během 2ms, přechází do stavu SS.nečinnost. Po vypršení doby neaktivity U2 (definované v kapitole 9) přechází port do stavu U2. Sestupný port po uplynutí 300ms přechází do stavu Rx.detekce.
7.4.1.8. U2 U2 je stav, ve kterém je více možností snížení spotřeby, avšak také větší zpoždění při opuštění tohoto stavu. Port přejde do stavu zotavení, pokud dokončí LFPS opuštění U1 handshake, pokud port tento handshake úspěšně nedokončí během 2ms, přechází do stavu SS.nečinnost. Sestupný port může v případě odpojení zařízení přejít do stavu Rx.detekce.
7.4.1.9. U3 U3 je stav spojení, kdy je zařízení v režimu pozastavení. Výrazné snížení spotřeby spojení a zařízení. Port přejde do stavu zotavení, pokud úspěšně dokončí LFPS probuzení z U3 handshake, když se tak nestane do uplynutí 10ms, port zůstává ve stavu U3. Pokud po uplynutí 100ms nebyl dokončen handshake, může v případě potřeby tento handshake iniciovat zařízení. Sestupný port může v případě odpojení zařízení přejít do Rx.detekce.
7.4.1.10. Zotavení Zotavení je stav, který je určen k opětovné přípravě spojení, provedení horkého resetu nebo vstupu do režimu smyčky. Nedochází k opětovné ekvalíze přijímačů. Jsou používány sekvence TS1 a TS2. Stav zotavení je velice podobný stavu polling, avšak neobsahuje první dva podstavy a mírně se liší i podmínkami, jak je patrné na obrázku 7.7.
45
Obrázek 7.7 - Podstavový automat Zotavení
7.4.1.11. Smyčka Režim smyčky je určen k testování a izolaci chyb. Zahrnuje testování bitové chybovosti, popsané v kapitole 6. Master smyčky je port, který vyžádal režim smyčky, druhý port posílá zpět všechna přijatá data je slave smyčky. Stav smyčky má dva podstavy. Smyčka.aktivní je podstav, ve kterém probíhá testování smyčky - master posílá data/příkazy a slave vrací data respektive provádí příkazy. z tohoto stavu přechází port do stavu řízením (master) nebo dokončením handshake LFPS opuštění smyčky(slave). Smyčka.opuštění je stav, kdy master dokončil testování a zahajuje opuštění stavu smyčky. Po úspěšném dokončení handshake LFPS opuštění smyčky přejde port do stavu Rx.detekce, pokud se tak nestane do uplynutí 2ms, přejde port do stavu SS.nečinnost.
7.4.1.12. Horký reset Pouze sestupný port může zahájit horký reset (řízením z protokolové vrstvy). Horký reset se provádí pomocí TS2 sekvencí, konkrétně jejich reset bitu. Stav horký reset má dva podstavy. Horký reset.aktivní je podstav, ve kterém port provede reset, jak je popsáno v podkapitole 7.5. Port opouští tento podstav, pokud odeslal alespoň 16 TS2 sekvencí s nastaveným reset bitem, přijal dvě sekvence s vynulovaným reset bitem a následně odeslal čtyři sekvence s vynulovaným reset bitem. Pokud do uplynutí 12 ms tyto podmínky nesplní, přechází do stavu SS.nečinnost. Horký reset.opuštění je podstav, ve kterém port dokončil horký reset a je připraven stav Horký Reset opustit, vysílá symboly nečinnosti. Pokud přijme 8 symbolů nečinnosti a 16 jich odešle, přechází port do stavu U0. Pokud se tak nestane do uplynutí 2 ms, přejde do stavu SS.nečinnost. 46
7.5.Použití příkazů spojení při řízení datového toku a zotavení z chyb Příkazy spojení jsou využívány při řízení toku paketů záhlaví. Vyžaduje od obou konců spojení dodržování pravidel pří odesílání paketů a prací s vyrovnávací paměti záhlaví pro zajištění přenosů paketů. Každý port udržuje několik hodnot nutných pro přenos paketů záhlaví. Sekvenční číslo záhlaví vysílače (přiděleno paketu záhlaví při jeho odesílání), ACK sekvenční číslo záhlaví vysílače (očekávané sekvenční číslo záhlaví potvrzené v LGOOD_n), sekvenční číslo záhlaví přijímače (očekávané sekvenční číslo přijatého paketu záhlaví), kredit vyrovnávací paměti pro záhlaví přijímače (udává počet volných pozic ve vyrovnávací paměti přijímač) a vzdálený kredit vyrovnávací paměti pro záhlaví přijímače (počet volných pozic paměti druhé strany spojení). Každý port má 4 pozice ve vyrovnávací paměti pro záhlaví přijímače a další 4 vysílače. Po přechodu spojení do stavu U0 probíhá inicializace spojení. v rámci inicializace dojde nejprve ke stanovení sekvenčního čísla záhlaví, což je v podstatě nastavení ACK sekvenčního čísla záhlaví vysílače výměnou sekvenčního čísla záhlaví mezi dvěma porty (posledního úspěšně přijatého, prostřednictvím LGOOD_n). Všechna ostatní sekvenční čísla (podle kterých se stanovuje ACK sekvenční číslo) jsou po přechodu do stavu U0 vynulována (s výjimkou přechodu ze stavu zotavení, kdy se nemění). Další částí inicializace je pak stanovení kreditu vyrovnávací paměti pro záhlaví přijímače, které slouží k nastavení vzdáleného kreditu vyrovnávací paměti přijímače prostřednictvím výměny LCRD_x příkazů mezi porty, v závislosti na počtu volných pozic ve vyrovnávací paměti pro záhlaví přijímače. LCRD_x příkazy jsou posílány v abecedním pořadí, po D následuje znovu A. Příkazy LGOOD_n jsou posílány v číselném pořadí od 0 do 7, po 7 následuje znovu 0. v případě přijetí příkazu mimo pořadí přejde spojení do stavu zotavení. Před posláním paketu záhlaví, port přičte sekvenční číslo záhlaví vysílače k sekvenčnímu číslu v řídícím slově spojení. Odeslání zabere pozici ve vyrovnávací paměti přijímače, zvýší sekvenční číslo záhlaví vysílače a sníží vzdálený kredit vyrovnávací paměti. Při přijetí LBAD dojde k opakovanému odeslání nepotvrzených paketů (po LRTY), vyrovnávací paměť, sekvenční číslo přijímače ani vzdálený kredit vyrovnávací paměti se nemění. Vzdálený kredit se zvýší při přijetí LCRD_x. Při přijetí paketu záhlaví se porovnají kontrolní součty, sekvenční čísla v paketu a sekvenčním čísle záhlaví přijímače, zkontroluje se dostupnost vyrovnávací paměti přijímače. v případě splnění těchto podmínek se pošle LGOOD_n a zvýší se sekvenční číslo záhlaví přijímače, paket zabere pozici ve vyrovnávací paměti po dobu jeho zpracování (po ukončení zpracování se uvolní, pošle se LCRD_x, zvýší se kredit vyrovnávací paměti přijímače). Pokud paket záhlaví neprojde porovnáním kontrolního součtu, pošle se LBAD a LCRD_x v případě uvolnění vyrovnávací paměti. Uživatelská data datového paketu se zpracují, pokud je správně přijat jejich paket záhlaví a DPPSTART sekvence ihned po něm. Ukončení zpracování pak značí DPPEND sekvence,
47
zrušení značí DPPABORT nebo příjem K-kódu mezi DPPSTART a DPPEND nebo v případě překročení maximální délky uživatelských dat datového paketu. Pro využití při detekci chyb zde také existují časovače, které zabraňují příliš dlouhému čekání na ztracený paket nebo příkaz.
7.6.Použití příkazů spojení při řízení spotřeby Požadavky na přechod spojení do režimů nízké spotřeby jsou uplatňovány na úrovni spojení během stavu U0. Příkazy spojení LGO_U1, LGO_U2 a LGO_U3 jsou vyslány portem, který požaduje přechod spojení do režimu s nižší spotřebou. Na tuto výzvu druhý port odpovídá buď LAU nebo LXU. v případě odpovědi LAU První port zašle LPMA. Popis opuštění stavů Un se nachází v předchozí kapitole. v řízení spotřeby existuje několik časovačů omezujících dobu čekání na odpovědi druhé strany. Port může požádat o přechod spojení do režimu snížené spotřeby pokud nemá žádné pakety ani příkazy spojení k posílání a nebrání mu obdobné požadavky protokolové vrstvy. Port, který přijme LGO_U1 nebo LGO_U2 pak může za prakticky stejných podmínek odpovědět souhlasem (LAU), v případě jejich nesplnění pak odmítnout (LXU). Port může přejít přímo ze stavu U1 do stavu U2 pokud je nastavena doba neaktivity U2 a tato uplyne, aniž by byl přijat LFPS opuštění U1. Přechod spojení do stavu U3 může zahájit pouze sestupný port a vzestupný port tuto změnu nemůže odmítnout, tj. může odpovědět na LGO_U3 pouze příkazem LAU. Při vyjednávání přechodu do režimů nízké spotřeby mohou nastat kolize. Výzvy sestupného portu mají přednost před výzvami vzestupného. Požadavek na přechod z protokolové vrstvy nemá přednost před již započatými přechody. Přechod do stavu zotavení má přednost před přechody do Un stavů. Opuštění stavů U1, U2 a probuzení z U3 je realizováno pomocí LFPS a podrobněji popsáno v předchozí kapitole.
7.7.Detekce a oprava chyb Statistická pravděpodobnost náhodné chyby v bitu je 10-12. Rámec paketu a příkazu spojení připouští jeden chybný symbol. Celé pakety a příkazy spojení však mohou být výskytem chyby symbolu poškozeny. Proto musí být specifikace spojení musí umožňovat detekovat tyto chyby a následně spojení zotavit. Existuje několik druhý chyb, které mohou vzniknout. Pro sledování chyb je zaveden čítač chyb spojení, který se inkrementuje pokaždé, když spojení přejde do stavu zotavení kvůli chybě a nuluje při kterémkoliv resetu a při vstupu do stavu polling.nečinnost. Přijetí neočekávaných, ale jinak nepoškozených paketů je obyčejně ignorováno.
Chybějící rámec paketu záhlaví - nastává pokud je v rámci chyba ve více než jednom K-kódu či jejich pořadí. Zpožděný přechod do stavu zotavení. Chyba paketu záhlaví - kterýkoliv kontrolní součet v paketu záhlaví nesouhlasí. Opakování posílání paketu záhlaví, po třech neúspěšných pokusech přechod do stavu zotavení. 48
Chyba sekvenčního čísla záhlaví přijímače - sekvenční číslo přijatého paketu záhlaví není shodné s přijímačem očekávaným sekvenčním číslem. Přechod do stavu zotavení. Chyba ACK sekvenčního čísla záhlaví vysílače - sekvenční číslo v přijatém LGOOD_n neodpovídá ACK Sekvenčnímu Číslu. Přechod do stavu zotavení. Chyba stanovení sekvenčního čísla záhlaví - LGOOD_n nepřijat před vypršením příslušného časového limitu, paket záhlaví, LCRD_x nebo LGO_Ux přijat před LGOOD_n. Přechod do stavu zotavení. Chyba stanovení kreditu vyrovnávací paměti pro záhlaví přijímače - LCRD_x nepřijat před vypršením příslušného časového limitu, paket záhlaví nebo LGO_Ux přijat před LCRD_x. Přechod do stavu zotavení. Chyba přípravné sekvence - vypršení příslušného časového limitu při přecházení ze stavu polling nebo zotavení do U0. Přechod do Rx.detekce nebo SS.vypnutý (z polling) nebo do SS.nečinnost (ze zotavení). Následné opuštění stavu SS.nečinnost vyžaduje zásah softwaru. Nesprávný příkaz spojení - rámec příkazu spojení je platný, ale řídící slovo nebylo rozpoznáno. Příkaz spojení ignorován. Chybějící příkaz spojení - není detekován platný rámec příkazu spojení. Zpožděný přechod do stavu zotavení pokud je očekáván LGOOD_n nebo LCRD_x. Chyba 8b/10b kódování - detekováno ve fyzické vrstvě. Opravu má na starost fyzická vrstva.
8. Protokolová vrstva 8.1.Funkce protokolové vrstvy Protokolová vrstva USB SuperSpeed se stará o tok dat mezi koncovými body (hostitel a zařízení). Je založena na předpokladu zaručeného doručení některých paketů vrstvou spojení a přidává spolehlivost doručování zbývajících paketů mezi koncovými body podle typu přenosu.
8.2.Transakce v SuperSpeed Transakce jsou zahajovány hostitelem, když požaduje nebo zasílá data koncovému bodu zařízení a dokončovány, když koncový bod pošle nebo potvrdí přijetí dat. Přenos na sběrnici SuperSpeed je datový požadavek aplikace zařízení na hostitele, který pak reaguje jedním nebo více souvislými transakcemi. Hostitel může během čekání na dokončení současné transakce zahajovat další OUT transakce. v případě IN transakce však může hostitel zahájit další IN transakci pouze v případě, že přijme všechny datové pakety, NRDY nebo STALL transakční paket nebo uplyne určitá doba od posledního zaslaného ACK TP pro jiný než synchronní koncový bod. v případě synchronního koncového bodu pak může zahájit další IN transakci, pokud přijme všechny požadované datové pakety, krátký paket nebo datový paket s nastaveným polem poslední paket nebo po uplynutí určité doby od posledního zaslaného ACK TP.
49
Pro jiné než synchronní přenosy může koncový bod na platný požadavek odpovědět transakčním paketem NRDY (pokud není připraven na příjem nebo vysílání dat, následně zasílá transakční paket ERDY, když je připraven), přijetím požadavku v případě OUT transakcí (vrácením přijatého transakčního paketu ACK), odesláním datových paketů v případě IN transakce nebo odesláním transakčního paketu STALL v případě vnitřní chyby koncového bodu. Koncové body odpovídají pouze na požadavky hostitele, který je tak zodpovědný za plánování transakcí na sběrnici. Transakce neprobíhají formou broadcastu, pakety jsou směrovány po přímé trase mezi hostitelem a koncovým bodem.
8.3.Pakety a zapouzdření dat 8.3.1. Typy paketů a jejich formát Základní typy paketů byly popsány již v kapitole 5.2.2, pro zopakování se jedná o paket správy spojení (LMP), transakční paket (TP), datový paket (DP) a izochronní časovací paket (ITP). Všechny pakety protokolové vrstvy obsahují záhlaví (14 bytů) a řídící slovo spojení (2 byty), celkem tedy 16 bytů (vrstva spojení pak přidává další 4 byty viz kapitolu 7.2.1). Všechna záhlaví obsahují pole typ, které je použito hostitelem, rozbočovačem nebo zařízením při zpracování paketu. Záhlaví zahrnuje také dvoubytový kontrolní součet (CRC-16). Při dalším popisu bude těchto 16 bytů rozdělováno na různě dlouhá pole. Směrování paketů na sběrnici znamená, že rozbočovače předávají přijatý paket dále pouze na jeden sestupný port, směřující k cílovému zařízení nebo na vzestupný port směrem k hostiteli. Toto se netýká LMP, které jsou vždy zpracovány příjemcem a dále se neposílají. ITP jsou posílány pouze hostitelem a přijímány zařízeními. Při směrování TP, DP a ITP v rozbočovači se může měnit řídící slovo spojení v paketu. V případě TP a záhlaví DP obsahuje paket pole směrovací řetězec nebo adresu zařízení. První je využíván rozbočovači při přeposílání paketu na odpovídající sestupný port a druhý hostitelem při identifikaci zdroje paketu. Záhlaví DP také obsahují další informace, popisující blok dat, který následuje. Tento datový blok a jeho kontrolní součet CRC-32 je nazýván uživatelskými daty datového paketu.
8.3.1.1. Pole společná pro všechna záhlaví Všechna záhlaví mohou obsahovat rezervovaná pole a hodnoty polí mohou taktéž být rezervovanými hodnotami. Vysílač nastavuje rezervovaná pole na nulu a přijímač je ignoruje. Vysílač by neměl nastavovat žádná pole na rezervovanou hodnotu, přijímač taková pole taktéž ignoruje. Všechna záhlaví začínají polem typ, které je 5 bitů dlouhé a příjemce podle jeho hodnoty určuje, jakým způsobem paket zpracovat. Čtyři hodnoty určují LMP, TP, DP a ITP, zbytek je rezervován. Na konci záhlaví je kontrolní součet CRC-16 počítaný z předchozích 12 bytů.
50
Všechna záhlaví taktéž obsahují řídící slovo spojení definované již v kapitole 7.2.1. Jeho podoba je na obrázku 8.1.
Obrázek 8.1 - Řídící slovo spojení Řídící slovo spojení začíná sekvenčním číslem záhlaví, které nabývá hodnot 0-7 (3b). Po něm následuje rezervované pole (3b). Další je pole hloubka rozbočovače , platné pouze při nastaveném bitu odložení (DF) a identifikuje polohu rozbočovače, který vrátil TP nebo záhlaví DP (port, který měl být použit k dalšímu přeposlání paketu byl ve stavu snížené spotřeby), v hierarchii sběrnice (3b). Následují bit zpoždění (DL, při zpožděném nebo opakovaném posílání paketu) a bit odložení (nastavovaný rozbočovačem, který při směrování narazí na port v režimu snížené spotřeby). Na konci je pak kontrolní součet CRC-5 zaručující správnost předchozích 11 bitů.
8.3.2. Pakety správy spojení Všechny pakety, které mají pole typ nastavené na hodnotu paket správy spojení. Jsou používány ke správě jednoho spojení mezi dvěma porty. Neobsahují adresní informace, tudíž je není možné směrovat. Struktura je přiblížena na obrázku 8.2.
Obrázek 8.2 - Paket správy spojení Pole podtyp určuje další obsah a používání LMP. Podtypy jsou popsány v následujících podkapitolách.
8.3.2.1. Nastavení funkce spojení Používán ke změně způsobu fungování spojení bez nutnosti opuštění U0. Po poli podtyp následuje 7 bitů dlouhé pole nastavení funkce spojení. v tuto chvíli je možnost nastavit režim vynucené řízení spotřeby spojení, při kterém musí port přijmout všechny LGO_Un příkazy spojení, dokud nedojde k vypnutí tohoto režimu. Tento režim se používá v krajním případě, kdy ostatní metody přechodu do režimu snížené spotřeby selžou.
8.3.2.2. Nastavení časovače doby neaktivity U2 Tento paket slouží k nastavení doby neaktivity, po které se přechází ze stavu U1 do stavu U2. Po poli podtyp obsahuje 8 bitů dlouhé pole doba neaktivity U2, která udává tuto dobu.
8.3.2.3. Test výrobce zařízení Účel tohoto paketu je testování zařízení výrobci, v běžném provozu spojení se nepoužívá. Většina obsahu následujícím po poli podtyp se liší podle výrobce.
51
8.3.2.4. Možnosti portu Tento LMP popisuje schopnosti každého portu a je posílán oběma porty na spojení po úspěšné přípravě a inicializaci spojení, tedy okamžitě po přechodu do stavu U0 bez ohledu na předchozí stav spojení. Pokud port tento paket neobdrží před uplynutím nastaveného času, pokud má sestupnou schopnost, hlásí chybu, jinak přejde do stavu SS.vypnutý. Po poli podtyp obsahuje pole rychlost spojení (7 b, nastavený první bit značí rychlost 5 Gb/s), rezervované (16 b), velikost vyrovnávací paměti záhlaví paketů (8 b, počet míst ve vyrovnávací paměti obou směrů, podle specifikace vždy 4), rezervované (8 b), pole směr (2 b, nastaven první bit - port může být nastaven jako sestupný, druhý bit - port může být nastaven jako vzestupný, každý port alespoň jeden), OTG bit, rezervovaný bit a pole arbitr (4 b, platné pokud oba bity pole směr jsou nastaveny, určeno k rozhodnutí, který port bude sestupný a vzestupný, pokud oba mají obě možnosti).
8.3.2.5. Nastavení portu Posílaný sestupným portem druhému. Po poli podtyp obsahuje pole rychlost spojení (7b), jehož první bit udává rychlost, kterou má pracovat vzestupný port (5 Gb/s při nastaveném).
8.3.2.6. Odpověď nastavení portu Odpověď vzestupného portu na LMP nastavení portu, po poli podtyp následuje pole kód odpovědi, jehož první bit signalizuje přijetí nastavené rychlosti.
8.3.3. Transakční pakety Transakční pakety (TP) procházejí přímou cestou mezi hostitelem a zařízením, jsou používány na řízení datového toku a spojení koncových bodů. Příklad TP je na obrázku 8.3.
Obrázek 8.3 - Příklad transakčního paketu (ACK) Pole směrovací řetězec je využíváno rozbočovači při směrování paketů přijatých na sestupném portu na správný sestupný port. Pakety posílané opačným směrem (k hostiteli) mají toto pole nastavené na nulu. Následující pole adresa zařízení obsahuje adresu cílového zařízení (pokud je paket posílán hostitelem) nebo adresu zařízení, které paket posílá. Pole podtyp má stejnou funkci jako u LMP - rozlišit různé podtypy transakčních paketů.
8.3.3.1. Potvrzující (ACK) transakční paket Tento TP je používán ke dvěma účelům. Pro koncové body IN transakce je posílán hostitelem při žádání dat a potvrzení přijetí předchozích datových paketů. Pro koncové body OUT transakcí slouží k potvrzení přijetí datových paketů poslaných hostitelem a informování hostitele o zaplněnosti vyrovnávací paměti pro příjem datových paketů. 52
Bit opakování datového paketu (rty) je používán hostitelem nebo zařízením při požadování opětovného poslání chybějících nebo poškozených paketů. Bit směr (D) v TP značí směr přenosu (od hostitele k zařízení nebo naopak). Pole číslo koncového bodu (Ept Num) určuje koncový bod zařízení, který je zdrojem nebo příjemcem paketu (4b). Bit chyba hostitele (HE) je platný pouze u TP posílaných hostitelem a značí interní chybu při zpracování paketu přijatého hostitelem (nastaven spolu s rty). Pole počet paketů (NumP) indikuje počet datových paketů, které je schopna vyrovnávací paměť přijímače pojmout (5b). Pole sekvenční číslo (Seq Num) určuje sekvenční číslo dalšího očekávaného datového paketu (5b). Pole ID proudu obsahuje hodnotu 1 - 65536, pokud je cílem paketu koncový bod objemového přenosu, jinak vynulovaný (16 b). Pole SSI, WPA, DBI a NBI jsou používány pro funkci inteligentního synchronního plánování, která vylepšuje synchronní přenos dat, v jiných typech přenosů jsou neplatné (Rezervované). Bit WPA je nastaven, když hostitel před další obsluhou zařízení pošle PING TP. Bit DBI hostitel nastavuje, když už v daném sběrnicovém intervalu neplánuje další transakce. Pole počet sběrnicových intervalů (NBI) udává, po kolika sběrnicových intervalech bude hostitel opět provádět transakce pro daný koncový bod. Bit čekající pakety (PP) je nastavován pouze hostitelem, když je připraven na příjem dalších datových paketů od daného koncového bodu, případně proudu.
8.3.3.2. Nepřipraven (NRDY) transakční paket Může být poslán pouze zařízením při jiných než synchronních transakcích, slouží k informování hostitele, že koncový bod nemá volnou vyrovnávací paměť pro přijetí DP (OUT transakce) nebo nemůže poslat požadovaný DP (IN transakce). Platná jsou pouze pole typ, podtyp, adresa zařízení, směr, číslo koncového bodu a případně ID proudu.
8.3.3.3. Koncový Bod Připraven (ERDY) transakční paket Podobný předchozímu TP, posílán zařízením, když je opět připraveno na příjem nebo odesílání DP. Oproti NRDY TP obsahuje navíc pole počet paketů (v případě IN transakce udává počet paketů, které může poslat).
8.3.3.4. STATUS transakční paket Tento TP může být posílán pouze hostitelem, slouží k informování Kontrolního Koncového Bodu, že hostitel přešel do fáze status řídícího přenosu.
8.3.3.5. STALL transakční paket Posílán výhradně koncovým bodem zařízení hostiteli v případě, že operace koncového bodu jsou pozastaveny nebo řídicí přenos je neplatný.
8.3.3.6. Oznámení Zařízení (DEV_NOTIFICATION) transakční paket Tento TP posílá zařízení za účelem informování hostitele o asynchronní změně v zařízení nebo stavu rozhraní (například když funkce zařízení požaduje probuzení zařízení). Tento paket není posílán z konkrétního Koncového Bodu, ale od zařízení jako celku. Podle pole Typ Oznámení je určen druh oznámení.
53
8.3.3.7. PING transakční paket Je posílán pouze hostitelem za účelem nastavení všech spojení na cestě k zařízení do stavu U0 před zahájením synchronního přenosu. Obsahuje pouze pole směrovací řetězec, adresa zařízení, podtyp, číslo koncového bodu a směr.
8.3.3.8. PING_RESPONSE transakční paket Paket, kterým zařízení odpovídá na PING paket. Neobsahuje pole Směrovací Řetězec a pole číslo koncového bodu a směr jsou pouze okopírované z PING paketu.
8.3.4. Datové pakety Hostitel používá tento paket k posílání dat zařízení a to ho používá k posílání dat vyžádaných ACK transakčním paketem. DP se skládá ze záhlaví datového paketu a uživatelských dat datového paketu. Struktura je na obrázku 8.4.
Obrázek 8.4 - Datový paket Dále jsou popsány pole, jimiž se DP liší od ACK TP. Pole sekvenční číslo slouží k uchování sekvenčního čísla datového paketu (5b). Další pole je poslední paket (LPF) pro synchronní přenosy nebo konec spojitého přenosu (EOB) pro jiné typy přenosů. LPF identifikuje poslední paket v daném obslužném intervalu, EOB je nastavován v posledním nezkráceném paketu zařízením při IN přenosech, když pošle méně paketů, než bylo hostitelem vyžádáno. Bit nastavení (S) je určen k označení datového paketu nastavení, mění ho pouze hostitel. Pole délka dat (16b) udává počet bytů v uživatelských datech datového paketu bez kontrolního součtu. Bit čekající pakety (PP) je nastaven hostitelem v případě, že má připraveny pakety k poslání danému koncovému bodu. Datový blok (proměnlivá velikost) obsahuje uživatelská data datového paketu, jejichž délka je daná v poli délka dat. Poslední pole je kontrolní součet CRC-32, počítaný z předchozí části uživatelských dat datového paketu.
8.3.5. Izochronní časovací pakety Tyto pakety (ITP) jsou používány k synchronizaci hodin všech aktivních zařízení podle hostitele. Neobsahují adresu ani směrovací informace a rozbočovače je dále posílají na všech sestupných portech ve stavu U0. Jsou posílány hostitelem a zařízení na ně nijak neodpovídají. Tyto pakety nezpůsobují přechod spojení do stavu U0. ITP jsou hostitelem 54
posílány každý interval sběrnice (pokud je kořenové spojení ve stavu U0), co nejdříve po přechodu do stavu U0 ze stavu polling. Mohou být posílány mezi pakety ve shlukovém přenosu. Při nastaveném bitu zpoždění v řídícím slovu spojení může být zařízením kvůli nepřesnosti ignorováno. Struktura izochronního časovacího paketu je na obrázku 8.5.
Obrázek 8.5 - Izochronní časovací paket ITP po poli typ obsahuje pole izochronní časové razítko (27 bitů), které slouží k určení momentální hodnoty času z perspektivy hostitele, je rozděleno na dvě části. Prvních 14 bitů je čítač intervalů sběrnice, který obsahuje aktuální hodnotu čítače osminy milisekundy. Zbývajících 13 bitů je potom označeno jako delta, udává časový rozdíl mezi začátkem ITP a předchozí hranicí intervalu sběrnice, jednotka je specifikována. Druhým polem je řízení úpravy intervalu sběrnice (7 bitů), které obsahuje adresu zařízení, které ovládá mechanismus úpravy intervalu.
8.3.6. Adresní trojice a pole směrovacího řetězce Datové a většina transakčních paketů poskytuje přístup k určitým datovým tokům prostřednictvím trojice polí - adresa zařízení, číslo koncového bodu a směr. Při restartu a zapínání zařízení je adresa zařízení vynulována a musí být nastavena hostitelem (na 1 127). Každé zařízení pak může podporovat až 15 IN a 15 OUT koncových bodů kromě nulového koncového bodu. Pole směrovacího řetězce je 20 bitů dlouhé pole v paketech posílaných hostitelem, které využívají rozbočovače při jejich vysílání sestupným portem. Toto pole je složeno z čísel sestupného portu (4 bity - udává maximum 15 sestupných portů na rozbočovač, nula v paketech určených přímo rozbočovači), jedno pro každý rozbočovač na cestě k zařízení. Rozbočovač pak podle své hodnoty hloubky rozbočovače určí, které číslo portu použít a z něj pak který sestupný port použít při dalším posílání paketu.
8.3.7. Použití paketů Transakční pakety se používají k informování o stavu datových transakcí. Prvním použitím je při interakci mezi hostitelem a zařízením, které vrací odpověď řízení toku. Toto řízení probíhá mezi koncovým bodem a hostitelem při jiných než synchronních přenosech. Koncový bod IN transakce se dostane do stavu řízení toku když jako odpověď na ACK TP pošle NRDY TP nebo datový paket s nastaveným EOB polem. Koncový bod OUT se do tohoto stavu dostane, když odpoví na datový paket buď NRDY TP nebo ACK TP s polem počet paketů nastaveným na 0. Stav řízení toku koncový bod opustí odesláním ERDY TP. TP jsou také používány při shlukovém přenosu dat. Maximální počet paketů v jednom shluku může být kromě nastavení koncového bodu omezen hodnotou pole počet paketů
55
v posledním přijatém ACK TP. Tuto hodnotu může hostitel i zařízení měnit podle svých potřeb a možností. Každý datový paket v přenosu musí mít maximální velikost uživatelských dat. Pokud přijme hostitel nebo zařízení paket, který má v poli délka dat hodnotu menší než maximální velikost paketu daného koncového bodu, pak považuje přenos za ukončený. v případě IN přenosů zařízení po takovém paketu přestane posílat data a hostitel po jeho přijetí pošle ACK TP s polem počet paketů nastaveným na 0. v případě OUT přenosů pak hostitel také přestane posílat datové pakety. Obdobně platí tato pravidla pro shlukový přenos. Zařízení může reagovat na TP požadujícím data několika způsoby. Pokud je v tomto TP nastaven bit odložení, pak odpoví ERDY TP ve chvíli, kdy je připraveno vysílat data. Pokud tento bit nastaven není, tak buď posílá vyžádané datové pakety (je připraveno), NRDY TP (není připraveno) nebo STALL TP (koncový bod má nastavenou funkci pozastavení). Hostitel na přijatý datový paket odpovídá vždy ACK TP (pokud úspěšně přijme záhlaví DP). v případě chyby v uživatelských datech DP pak odešle ACK TP s nastaveným bitem opakování datového paketu a příslušným sekvenčním číslem. Pokud hostitel nemůže DP přijmout, odpoví stejně, navíc však s nastaveným bitem chyba hostitele. v případě úspěšného přijetí DP pak odešle ACK TP se sekvenčním číslem dalšího očekávaného paketu. Zařízení na přijatý DP reaguje obdobně jako na příjem TP požadujícího data. Pouze v případě chyby v uživatelských datech DP odešle ACK TP se sekvenčním číslem očekávaného paketu a nastaveným bitem opakování datového paketu. Když zařízení přijme DP nastavení (při speciální datové transakci, kterou hostitel může dát zařízení pokyn k vykonání příkazu), v případě nastavení bitu odložení reaguje ERDY TP. Jinak odešle ACK TP se sekvenčním číslem 1 (tím potvrzen příjem DP nastavení) a případně nastavenou hodnotou pole počet paketů. Při chybě v uživatelských datech DP pošle ACK TP se sekvenčním číslem 0 a nastaveným bitem opakování datového paketu.
8.4.Transakce Transakce se skládají z paketů v závislosti na typu koncového bodu. Ty mohou být podle typu přenosu buď řídící, objemové, s přerušením nebo synchronní.
8.4.1. Objemové transakce Je pro ně charakteristický bezchybné doručení dat mezi hostitelem a zařízením díky detekci chyb a opakovanému poslání. Používají dvoufázovou transakci skládající se z TP a DP, při určitých stavech řízení toku nebo pozastavení pak pouze TP. Objemové IN transakce začínají, když hostitel pošle ACK TP, jehož prostřednictvím informuje zařízení o sekvenčním čísle a poštu vyžadovaných paketů. Odpovědi zařízení na tento paket byly popsány v předešlé kapitole. Hostitel pak posílá ACK TP za každý úspěšně přijatý DP, na tento ACK TP zařízení nemusí čekat, avšak při přijetí paketu s bitem opakování DP (hostitel zjistil chybu v DP) musí poslat paket s tímto sekvenčním 56
číslem a všemi následujícími znovu. Sekvenční číslo roste po jedné až do hodnoty 31 a pak je nastavováno znovu od nuly. Po ukončení transakce (krátkým paketem, bitem EOB nebo odesláním všech požadovaných dat) hostitel může začít další transakci. Při objemových OUT transakcích hostitel rovnou začne posílat DP zařízení. Pokud záhlaví přijatá zařízením obsahuje platné hodnoty adresy, koncového bodu, směru a sekvenčního čísla, zařízení reaguje, jak je popsáno v předešlé kapitole. Sekvenční číslo je nastavováno hostitelem po jedné do 31 a poté znovu od nuly, pokud obdobně jako u IN transakcí neobdrží od zařízení paket s nastaveným bitem opakování DP. Transakce končí, když hostitel pošle všechna data.
8.4.1.1. Protokol objemových transakcí s proudy Vzhledem k tomu, že transakce s proudy zachovávají pravidla pro objemové transakce, proudy se nijak neprojeví na výměnách paketů při těchto transakcích. Protokol proudů je založen výhradně na manipulaci s polem ID proudu v záhlavích paketů. Stejně jako u objemových transakcí, i pro transakce s proudy může být použito shlukování, které na kanálu proudu funguje stejně, jako v běžné objemové transakci. Protokol proudů může být popsán obecným stavovým automatem (obrázek 8.6), který je platný jako pro IN, tak pro OUT transakce. Přestože se v zásadě jedná o stavy kanálu proudů, kvůli zpožděním na sběrnici se může dočasně stav obou konců lišit. Přechody mezi stavy obecně probíhají pouze při přijetí paketů bez chyb, jinak je posílání opakováno a stav se nemění. Koordinace tzv. aktivních ID proudu je realizována pomocí oddělených mechanismů (obyčejně dalšího koncového bodu) a slouží k výběru vyrovnávacích pamětí koncového bodu hostitelem a výběru dat funkce zařízením přiřazených k určitému proudu. Vypnutí - počáteční stav kanálu po jeho konfiguraci a také stav po detekci chyby v kterémkoliv jiném stavu. Po přiřazení vyrovnávací paměti koncového bodu hostitel přechází do stavu připravený kanál. Pokud se do tohoto stavu přešlo kvůli chybě, před přechodem do jiného stavu musí příčina této chyby odstraněna zásahem softwaru. Primární kanál - přechod do tohoto stavu je zahajován vždy hostitelem a informuje zařízení, že byla přidána nebo upravena vyrovnávací paměť koncového bodu. Po přechodu do jiného stavu jsou všechna aktivní ID proudu považována za připravená, kvůli omezení počtu přechodů do stavu primární kanál (jeden přechod i při více současně připravených vyrovnávacích pamětech). Nečinnost - přechod do tohoto stavu značí, že není zvoleno aktuální ID proudu (CSID), v tomto stavu se čeká na přechod do stavu primární kanál nebo pohyb dat zahájený hostitelem nebo přechod do stavu start proudu zahájený zařízením. Cílem přechodů z tohoto stavu je zahájení pohybu dat v proudu. Hostitelem zahajovaný přechod do stavu pohyb dat je označován jako HIMD, kterým jsou všechny aktivní ID proudu nastavena jako připravena.
57
Obrázek 8.6 - Obecný Stavový Automat Protokolu Proudů (SPSM) Start proudu - přechod do tohoto stavu je iniciován vždy zařízením, informuje hostitele, že zařízení chce zahájit pohyb dat na zvoleném proudu. Zařízení může iniciovat přechod do tohoto stavu vždy, když má připravená ID proudu. Pokud je zvolený proud hostitelem přijat, kanál přejde do stavu pohyb dat, pokud je odmítnut, přejde kanál zpět do stavu nečinný a zvolené ID proudu je považováno zařízením za nepřipravené. Zařízení uchovává seznam aktivních ID proudu, která mohou být buď připravena, nebo nepřipravena. Pohyb dat - v tomto stavu jsou přenášena data proudu. Aktuální ID proudu je nastaveno při přechodu do tohoto stavu. Automat přejde do stavu nečinnost po ukončení přenosu proudu nebo když hostitel nebo zařízení ukončí přenos proudu při vyčerpání prostoru vyrovnávacích pamětí nebo dat. Přechodem do stavu nečinnost se CSID stává neplatným. Pole ID proudu (16 b) je rezervované pro přenos SID mezi hostitelem a zařízením v záhlavích DP a ACK, NRDY a ERDY transakčních paketech. Toto pole může nabývat specifických hodnot. První je bez proudu(FFFFh), které znamená, že paket není přiřazen žádnému platnému proudu. Další je primární (FFFEh), použité při přechodu do a ze stavu primární kanál, stejně jako předchozí hodnota není paket přiřazen žádnému proudu. Hodnota proud n (1 až 65533) je používána k přiřazení platného ID Proudu. Proud 0 (0000h) je rezervovaná hodnota a není používána kanálem, který podporuje Proudy. Je používána u standardních objemových kanálů.
8.4.2. Řídící Transakce Řídící transakce se skládají minimálně ze dvou fází (transakcí), nastavení a stav. Mezi nimi může být navíc fáze data. Směr toku dat udává speciální pole v paketu nastavení. Pole směr je ve všech paketech řídících transakcí nastaveno na nulu. Transakce začíná posláním paketu nastavení, který je v podstatě datovým paketem, v němž má pole 58
nastavení v záhlaví hodnotu jedna a délku dat 8. Zařízení odpovídá podobně jako na běžný datový paket, tedy ACKT transakčním paketem v případě úspěšného přijetí. Pokud transakce obsahuje datovou část, ta je buď IN nebo OUT transakcí, takže má podobný formát jako objemová transakce. v případě řídícího čtení odpovídá IN transakci, hostitel vysílá ACK TP a zařízení jako odpověď posílá datové pakety. Řídící zápis pak odpovídá OUT transakci, hostitel posílá datové pakety a zařízení je potvrzuje ACK TP. Každá řídící transakce je ukončena fází status, která je identifikována transakčním paketem, jehož podtyp je STATUS. Pokud není nastaven bit odložení, zařízení reaguje podle svých možností NRDY, STALL nebo ACK TP. Po NRDY TP pak musí zařízení poslat ERDY TP, když je schopno pokračovat v transakci. Během fáze status zařízení informuje hostitele o výsledku předchozích fází řídící transakce. Zařízení buď úspěšně vykonalo řídící sekvenci (ACK TP), při vykonávání nastala chyba (STALL TP) nebo je zařízení zaneprázdněné a stále se pokouší příkaz vykonat (NRDY TP). Transakční paket STALL má tedy při řídících transakcích jiný význam než při ostatních, informuje o skutečnosti, že zařízení nemohlo splnit příkaz, nikoliv však chybu zařízení. Po odeslání tohoto paketu zařízení reaguje tímto paketem na jakékoliv další pakety, dokud nepřijme další paket nastavení.
8.4.3. Transakce s přerušením Při Transakcích s přerušením se používá termín obslužný interval, což je interval, během kterého musí být koncový bod obsloužen (nastaven v popisu koncového bodu). Naproti tomu sběrnicový interval je používán pro označení doby 125 μs. Transakce s přerušením nabízejí spolehlivý přenos dat s omezeným zpožděním. Garantují konstantní rychlost přenosu. Tyto transakce se velmi podobají objemovým, avšak jsou omezený na tři datové pakety během jednoho obslužného intervalu. Při chybě při transakci může hostitel tuto transakci opakovat až v dalším intervalu. Hostitel také posílá ACK TP, za každý přijatý datový paket. Když hostitel chce zahájit IN transakci s přerušením, pošle koncovému bodu ACK TP s očekávaným sekvenčním číslem a počtem paketů. Pokud je koncový bod schopen poslat požadovaná data, může tak učinit ve stejném obslužném intervalu. Za každý úspěšně přijatý datový paket pak hostitel posílá ACK TP, v případě chyby pak ACK TP, požadující opakování paketu (prostřednictvím sekvenčního čísla). Pokud koncový bod není připraven poslat data nebo došlo k interní chybě, pak reaguje paketem NRDY, respektive STALL. Hostitel pak opětovně může požadovat pakety až po přijetí ERDY paketu od koncového bodu. Obdobně probíhají i OUT transakce s přerušením, hostitel je zahajuje posláním prvního datového paketu. v jednom obslužném intervalu může poslat více paketů, pokud tuto možnost podporuje koncový bod. Za každý úspěšně přijatý datový paket pak koncový bod odešle ACK TP. v případě, že koncový bod není schopen momentálně přijmout datové pakety, odešle NRDY, případně STALL TP. Hostitel pak může pokračovat v transakci až po přijmutí ERDY TP.
59
8.4.1. Informace o časování hostitele Hostitel USB 3.0 na rozdíl od svého předchůdce nevysílá pakety začátku rámce (SOF) všem připojeným zařízením, ale posílá časovací informace prostřednictvím izochronních časovacích paketů (ITP), které se šíří po všech spojeních ve stavu U0. Informace o časování jsou posílány v ITP krátce po začátku sběrnicového intervalu a obsahují momentální sběrnicový interval a dobu mezi začátkem ITP a sběrnicového intervalu. Synchronní koncové body vyžadují servisní interval o délce 125 ∙ 2nμs (n je od 0 do 15). Pomocí ITP tak všechny koncové body (jejichž spojení je ve stavu U0) mají sjednocené hranice sběrnicových intervalů. Hostitel pak může uskutečňovat synchronní transakce kdykoliv během nastaveného obslužného intervalu, které však nemohou překračovat hranice tohoto intervalu.
8.4.2. Synchronní transakce Před započetím transakce hostitel pošle PING TP a čeká na PING_RESPONSE TP. Při synchronní IN transakci hostitel následně pošle ACK TP s očekávaným počtem paketů a zařízení pak požadovaná data posílá (hostitel jejich přijetí nepotvrzuje). v případě synchronní OUT transakci pak hostitel jednoduše posílá data, kdykoliv je má v nynějším obslužném intervalu k dispozici. Synchronní přenosy nepodporují opakování posílání při chybě nebo ztrátě dat. Hostitel podporuje poslání nebo přijetí až 48 datových paketů za obslužný interval (sekvenční čísla 0-31, poté znovu od 0), koncový bod pak obsahuje omezení počtu paketů ve svém deskriptoru. Poslední paket v obslužném intervalu má nastavený bit poslední paket a nemusí mít maximální délku. Když hostitel nemá data (OUT), pak nic během obslužného intervalu neposílá, koncový bod po přijetí ACK TP (IN) však odpovídá prázdným datovým paketem. Hostitel má jistou míru flexibility při provádění synchronní obsluhy během obslužného intervalu. Může poslat nebo přijmout všechny datové pakety od koncového bodu v jedné dávce nebo rozdělit tento přenos na menší dávky po jednom, dvou, čtyřech nebo osmi paketech. Navíc je pro snadnější správu vzestupného spojení zařízením zavedena funkce inteligentní synchronní plánovaní (SSI), využívající polí SSI, WPA, DBI a NBI v ACK transakčních paketech a datových paketech. Hostitel tak může naplánovat synchronní transakce pro jednotlivé koncové body během jednoho obslužného intervalu a pomocí těchto polí o plánu informovat zařízení, které tak může následně agresivněji upravovat spotřebu svého vzestupného spojení. Nastavený bit SSI (a vynulovaný LPF v DP) informuje zařízení o možnosti použití SSI. Bit WPA je nastaven, když hostitel pošle PING TP před další obsluhou koncového bodu. Bit DBI znamená, že hostitel již v současném sběrnicovém intervalu dokončil všechny plánované transakce s daným koncovým bodem (WPA má před tímto bitem prioritu). Bit NBI pak ve spojením s nastaveném DBI a vynulovaným DBI udává počet sběrnicových intervalů, po jejichž uplynutí hostitel začne provádět další transakci (bez nutnosti PING TP).
60
9. Struktura zařízení 9.1.Popis funkce obecného zařízení USB 3.0 Zařízení může být rozděleno na tři vrstvy. Spodní vrstva je rozhraní sběrnice, které vysílá a přijímá pakety. Prostřední vrstva, které se věnuje tato kapitola, zajišťuje směrování dat mezi rozhraním sběrnice a různými koncovými body zařízení. Horní vrstva je pak funkce poskytovaná konkrétním zařízením (například myš, tiskárna...). Tato kapitola popisuje vlastnosti a fungování prostřední vrstvy zařízení, které jsou používány funkčními částmi zařízení pro komunikaci s hostitelem přes rozhraní sběrnice.
Obrázek 9.1 - Stavový diagram zařízení a rozbočovačů (pouze SuperSpeed)
9.1.1. Stavy USB zařízení Zařízení se může nacházet v jednom z několika stavů. Některé z těchto stavů jsou viditelné pro sběrnici a hostitele, kromě nich však existují také stavy, které jsou interními stavy zařízení. Na obrázku 9.1 je kombinovaný stavový diagram periferních zařízení a rozbočovačů. Tento diagram je však pouze SuperSpeed částí, kromě něj je však v USB 3.0 61
zachován i stavový diagram USB 2.0, který je v zásadě totožný, obsahuje stejné základní stavy, pouze ze stavu napájeno umožňuje přecházet do stavu pozastaveno.
9.1.1.1. Připojeno Zařízení je připojeno k USB sběrnici.
9.1.1.2. Napájeno Zařízení může mít vlastní zdroj napájení a/nebo může být napájeno z USB. I zařízení s vlastním napájením je ve stavu napájeno až po připojení vodiče VBUS. Oba typy napájení může zařízení libovolně kombinovat, momentální zdroj je obsažen ve stavu zařízení. Pokud zařízení funguje v režimu USB 2.0, limity napájení se řídí specifikací USB 2.0. Porty rozbočovače jsou po nakonfigurování napájeny, aby mohly detekovat změny stavu portu (připojení, odpojení). Periferní zařízení přechází do jednoho ze stavů USB 2.0, pokud není detekováno zakončení podle specifikace USB 3.0 nebo dojde k chybě při přípravě spojení. Rozbočovač v těchto případech setrvává ve stavu napájeno. Po úspěšné přípravě spojení přechází rozbočovač i zařízení do stavu výchozí.
9.1.1.3. Výchozí Zařízení v tomto stavu je přístupné na výchozí adrese. Zařízení USB 3.0 po resetu může fungovat připojené k USB 2.0 topologii. Zařízení přechází do jednoho ze stavů USB 2.0, pokud selže nastavení portu. Rozbočovač ve stejném případě přechází do stavu připojeno, z něhož se následně může dostat pouze po odpojení a připojení VBUS.
9.1.1.4. Adresováno Všechna zařízení používají po připojení nebo resetu výchozí adresu. Pomocí této adresy pak hostitel každému zařízení přiřadí unikátní adresu, která je uchována i při pozastavení zařízení. Na výchozí adrese zařízení odpovídají i když mají přiřazenou unikátní adresu.
9.1.1.5. Konfigurováno Před použitím musí být zařízení nastaveno. z pohledu zařízení konfigurace obnáší úspěšné zpracování požadavku konfigurace s nenulovou hodnotou. konfigurace zařízení nastaví všechny hodnoty nastavení koncových bodů na výchozí hodnoty (stejně tak i sekvenční čísla).
9.1.1.6. Pozastaveno Kvůli úspoře energie zařízení automaticky přecházejí do stavu pozastaveno, když jejich vzestupné spojení přechází do stavu U3. Připojená zařízení jsou připravena přejít do stavu pozastaveno kdykoliv ze stavů výchozí, adresováno a konfigurováno. Zařízení pokračuje v činnosti, když na vzestupném portu detekuje signál k probuzení. Stejně tak zařízení může požádat hostitele o pokračování činnosti prostřednictvím funkce vzdáleného probouzení.
9.1.1.7. Chyba Do tohoto stavu se zařízení dostává po uplynutí limitu ze stavu zotavení. Ze stavu chyba se zařízení může dostat měkkým resetem nebo odpojením zakončení na vzdáleném přijímači, zařízení pak přechází do stavu napájeno. 62
9.1.2. Inventarizace sběrnice Při připojení nebo odpojení zařízení z USB používá hostitel proces nazvaný enumerace sběrnice k identifikaci a správě stavu zařízení. Tento proces se skládá z několika kroků. Rozbočovač, ke kterému je zařízení připojeno informuje hostitele o této události speciálním kanálem (zařízení je v této chvíli po resetu a ve Výchozím stavu). Hostitel následně určí přesnou povahu události dotazem na rozbočovač. Když hostitel zná port, ke kterému je zařízení připojeno, může provést opětovný reset zařízení. Zařízení, které je ve Výchozím stavu nemůže odebírat více než 150mA z VBUS a odpovídá na výchozí adrese. Hostitel přiřadí zařízení unikátní adresu. Následně informuje zařízení o synchronním zpoždění, a několika dalších parametrech. Následuje čtení všech konfigurací zařízení hostitelem a případné nastavení časovačů U1/U2 pro sestupný port, na kterém je zařízení. Na základě informací o konfiguracích a způsobu použití zařízení hostitel určí hodnoty nastavení zařízení, které se tak dostává do stavu nastaveno. Zařízení je nyní připraveno k použití. Při události odpojení zařízení je rozbočovačem posláno oznámení a hostitel může aktualizovat místní informaci o topologii.
9.1.3. Obecné operace zařízení Všechna zařízení podporují společnou množinu operací, v následujících podkapitolách je jejich výčet.
9.1.3.1. Dynamické připojení a odpojení Zařízení mohou být kdykoliv připojena nebo odpojena, rozbočovač zajišťuje přípojný bod a informuje hostitele o změnách na svých portech. Rozbočovač resetuje sestupný port a tím i zařízení, které na něj bylo připojeno, tím dojde k vynulování adresy zařízení (výchozí adresa je 0), zařízení není konfigurováno, ani pozastaveno. Při odpojení rozbočovač vypne port, ke kterému bylo odpojené zařízení připojeno a informuje hostitele o změně.
9.1.3.2. Přiřazení adresy Po připojení zařízení je hostitel zodpovědný za přiřazení unikátní adresy zařízení, předtím může zařízení znovu resetovat.
9.1.3.3. Konfigurace Zařízení musí být před použitím funkcí konfigurováno, za což je odpovědný hostitel. Součástí procesu konfigurace je výběr konfigurace zařízení, případně výběr alternativního nastavení. Každé zařízení může v rámci jedné konfigurace několik rozhraní. Rozhraní je sada koncových bodů, které pro hostitele představují jednu funkci zařízení. Každé rozhraní navíc může mít alternativní nastavení, které může měnit vlastnosti koncových bodů rozhraní.
9.1.3.4. Přenos dat Data mohou být přenášena mezi koncovými body zařízení a hostitelem jedním ze čtyř druhů přenosu, které již byly popsány v předešlých kapitolách. Koncový bod může být při různých vybraných konfiguracích používán k různým typům přenosů, v rámci jednoho
63
vybraného nastavení však může používat jen jeden z typů přenosů (objemový, řídící, s přerušením nebo synchronní).
9.1.3.5. Řízení spotřeby Hostitel během inventarizace vyhodnocuje požadavek zařízení na napájení a vybere konfiguraci, která nepřekračuje maximální dovolený odběr zařízení. Než je zařízení konfigurováno, maximální odběr je omezen na 150mA neboli jednotkové zatížení. Konfigurované zařízení pak může odebírat až 6 jednotek zatížení (900mA). Nízkovýkonová zařízení tak mohou odebírat do 150mA a vysokovýkonová pak do 900mA. Řízení spotřeby u zařízení je pak realizováno pomocí pozastavení zařízení a pozastavení funkce. Pozastavení zařízení je stav popsaný výše. Pozastavení funkce je stav jedné funkce v zařízení, pozastavení zařízení s více funkcemi pozastaví všechny funkce tohoto zařízení, avšak pozastavení všech funkcí zařízení nezpůsobí pozastavení zařízení. Zařízení, stejně jako každá funkce může požádat o opuštění stavu pozastavení posláním oznámení o této skutečnosti hostiteli (pokud je tato možnost vzdáleného probuzení povolena).
9.1.3.6. Zpracování požadavku S výjimkou nastavení adresy zařízení začíná zpracovávat požadavky hned po přijetí vyzývacího paketu a dokončit zpracování před ukončením stavové fáze. Pro operace, které vyžadují více času, může být dokončení operace signalizováno jinak než ve stavové fázi. Při zpracování požadavku jsou obvykle časové limity, které zařízení musí dodržet. Požadavky bez datové fáze například musejí skončit stavovou fázi do 50ms, s datovou fází pak 500ms na každý datový paket a 50ms na stavovou fázi po posledním datovém paketu. Všechna zařízení reagují na požadavky od hostitele na výchozím řídícím kanálu, které jsou prováděny jako řídící přenosy. Požadavek a jeho parametry jsou poslány ve Vyzývacím paketu (8B). Typ požadavku je dán prvním bytem, v druhém bytu je specifický požadavek, další čtyři byty obsahují hodnoty související s požadavkem a poslední dva obsahují počet bytů k přenosu v datové fázi. Pomocí těchto požadavků se vykonávají operace jako výběr konfigurace, přiřazení adresy zařízení nebo nastavení parametrů sběrnice.
9.1.3.7. Chyba požadavku V případě, že požadavek není v souladu se současnou konfigurací nebo jeho hodnoty nejsou platné, vzniká chyba požadavku. Na tuto chybu zařízení reaguje odesláním STALL TP jako odpověď na další datovou fázi přenosu nebo ve stavové fázi.
9.1.4. Popisovač zařízení Zařízení oznamují své vlastnosti pomocí popisovačů. Popisovač je datová struktura definovaného formátu. Každý popisovač začíná jednobytovým polem, obsahujícím počet bytů deskriptoru, následovaný jednobytovým polem, které určuje typ popisovače. Každá konfigurace může používat i popisovače nebo jejich části z jiných konfigurací. Zařízení mohou také mít speciální popisovače podle své třídy nebo výrobce. Popisovače mohou být několika typů.
64
Popisovač zařízení obsahuje obecné informace o zařízení, které platí pro zařízení a všechny jeho konfigurace. Každé zařízení má pouze jeden takový popisovač. Obsahuje vlastnosti jako verze specifikace, které zařízení odpovídá, třídu zařízení, maximální velikost paketu, identifikátor výrobce a produktu, sériové číslo nebo počet konfigurací. Binární paměť objektů zařízení (BOS) je prostředek pro přidávání a popis schopností zařízení nad rámec specifikace USB. Popisovač BOS definuje kořenový popisovač, který je podobný konfiguračnímu popisovači a je výchozím bodem pro přístup k sadě souvisejících popisovačů. Tyto popisovače se pak dále dělí na několik typů. Bezdrátové USB popisuje schopnosti zařízení pro rozhraní bezdrátového USB. Rozšíření USB 2.0 je popisovač indikující možnost rozšířeného řízení spotřeby i ve vysokorychlostním režimu USB 2.0. Schopnosti SuperSpeed USB zařízení popisující například podporu různých rychlostních režimů nebo doby přechodů ze stavů U1 a U2 do stavu U0. Posledním je ID kontejneru obsahující identifikační číslo umožňující hostiteli identifikaci zařízení bez ohledu na režim, ve kterém zařízení pracuje. Tento popisovač je povinný pro rozbočovače. Popisovač konfigurace obsahuje informace o konkrétní konfiguraci zařízení. Obsahuje jedno nebo více rozhraní, z nichž každé může mít několik koncových bodů. Pole v tomto popisovači zahrnují například číslo konfigurace (použité při výběru dané konfigurace), popis konfigurace a vlastnosti napájení (zda má zařízení vlastní napájení, možnost vzdáleného probouzení nebo maximální odběr zařízení). Při dotazu na tento popisovač zařízení vrací popisovač konfigurace následovaný popisovači rozhraní, z nichž každý následují popisovače koncových bodů, které tato rozhraní obsahují. Popisovač sdružených rozhraní slouží k popisu dvou nebo více rozhraní, které jsou přidružené k jedné funkci. Zařízení musí jej musí obsahovat pro každou dvou funkci, které vyžaduje více než jedno rozhraní. Popisovač rozhraní obsahuje informace o konkrétním rozhraní jedné z konfigurací. Rozhraní mohou obsahovat alternativní konfigurace, díky kterým je možné do jisté míry měnit nastavení koncových bodů po konfiguraci zařízení. Tento popisovač obsahuje například číslo rozhraní, počet koncových bodů a třídu rozhraní. Popisovač koncového bodu popisuje každý koncový bod rozhraní, obsahuje informace, které hostitel používá při určování šířky pásma, jen daný koncový bod požaduje. Hodnoty udávají například adresu koncového bodu, směr (IN nebo OUT), typ přenosu, maximální velikost paketu nebo obslužný interval. Popisovač koncového bodu SuperSpeed obsahuje doplňující informace o koncovém bodu SuperSpeed, u všech takových koncových bodů následuje za standardním popisovačem koncového bodu při vyžádání popisovače konfigurace. Obsažené pole udávají například maximální velikost shluku, maximální počet proudů nebo počet bytů přenesených v jednom obslužném intervalu synchronního přenosu. Řetězcové popisovače nemusí být podporované, obsahují případný textový popis některých popisovačů.
65
9.2.USB 3.0 Rozbočovač Rozbočovače poskytují elektrické propojení mezi hostitelem a zařízeními, umožňují USB být snazší k používání běžnými uživateli. Starají se o chování při připojování zařízení, řízení spotřeby, detekci selhání sběrnice a zotavení a podporu zařízení ve všech rychlostních režimech. Rozbočovač USB 3.0 obsahuje rozbočovač USB 2.0 a rozbočovač SuperSpeed. Rozbočovač SuperSpeed se dále skládá z opakovače a kontroléru rozbočovače. Opakovač slouží ke zprostředkování propojení, detekci připojení a odpojení zařízení, detekci chyb a zotavení. Kontrolér zajišťuje komunikaci mezi rozbočovačem a hostitelem, která umožňuje nastavovat rozbočovač a jeho sestupné porty. Rozbočovač USB SuperSpeed se také stará o směrování paketů, jak je popsáno v předchozích kapitolách. Rozbočovač USB 3.0 je logickou kombinací rozbočovače USB 2.0 a rozbočovače SuperSpeed, jedinou sdílenou částí je logika, starající se o řízení VBUS, jak je patrné z obrázku 9.1.
Obrázek 9.1 - Rozbočovač USB 3.0
10. Zpětná kompatibilita s USB 2.0 a napájení 10.1.
Podpora pro hostitele, rozbočovače a koncová zařízení USB 2.0
Všechny porty USB 3.0 hostitele mohou fungovat i v režimu USB 2.0, čímž je zajištěna zpětná kompatibilita. Hostitel nemusí podporovat USB 3.0 na všech svých portech, může mít kombinaci USB 3.0 portů a USB 2.0 portů. v případě, že zařízení USB 3.0 je připojeno k portu USB 2.0 nebo k portu USB 3.0 prostřednictvím rozbočovače USB 2.0, hostitel může o této skutečnosti informovat uživatele. Při připojení rozbočovače USB 3.0 k portu USB 3.0 hostitele, je na tomto spojení povolen souběžný provoz USB 3.0 a USB 2.0. Všechny porty rozbočovače (sestupné i vzestupné) USB 3.0 rovněž podporují režim USB 2.0. Pokud je k rozbočovači USB 3.0 připojen další rozbočovač USB 3.0, je na tomto spojení povolen současný provoz USB 3.0 a USB 2.0. Stejně tak u zařízení USB 3.0 je obvykle podporováno fungování v režimu USB 2.0, což umožňuje použití těchto zařízení připojených k hostiteli nebo rozbočovači USB 2.0. Tato zpětná kompatibilita je zaručena u zařízení, která běžný uživatel může odpojovat a připojovat, nemusí tak být například u vnitřních zařízení, ke kterým uživatel nemá přístup. Každé periferní zařízení však může využívat pro komunikaci s hostitelem jen jeden režim (SuperSpeed nebo USB 2.0).
66
10.2.
Možnosti napájení
USB 3.0 poskytuje napájení prostřednictvím dvou konektorů - Standardního konektoru typu A a Napájeného konektoru typu B. Napájení přes standardní konektor typu A má obdobné vlastnosti jako u USB 2.0. Opět je pro zjednodušení definováno jednotkové zatížení, v případě SuperSpeed je však proud jednotky navýšen na 150 mA. Zařízení pak může být nízkovýkonové (dovolující zatížení jedné jednotky) nebo vysokovýkonové (dovolující zatížení až šest jednotek). USB podporuje řadu zdrojů a spotřebitelů energie. Kořenové rozbočovače jsou přímo připojeny k radiči USB hostitele. Porty hostitele připojeného ke zdroji napětí musí být schopny dodávat alespoň šest jednotek zátěže (vysokovýkonové porty), porty hostitele, jehož zdrojem je baterie, mohou dovolovat maximální zatížení jedné jednotky (nízkovýkonové porty). Rozbočovače s vlastním napájením nezískávají energii potřebnou pro provoz a sestupné porty z vodiče VBUS, avšak přesto mohou odebírat až jednu jednotku zátěže ze vzestupného portu, aby tento mohl fungovat i když je zbytek rozbočovače vypnut. Každý sestupný port musí být schopen dodávat šest zátěžových jednotek. Nízkovýkonová zařízení napájená ze sběrnice získávají všechnu potřebnou energii z vodiče VBUS, v žádném okamžiku neodebírají více než jednu jednotku zátěže. Vysokovýkonová zařízení napájená ze sběrnice získávají energii z vodiče VBUS, po zapnutí nemohou v žádném okamžiku odebírat více než jednu jednotku zátěže, po nakonfigurování pak šest jednotek. Zařízení s vlastním napájením mohou odebírat maximálně jednu jednotku zátěže z vodiče VBUS, pro zajištění fungování rozhraní i v případě vypnutí zbytku funkce. Všechna ostatní energie pochází z externích zdrojů. Žádné zařízení nesmí dodávat proud na vodič VBUS vzestupného portu. Obdobně jako u USB 2.0 musí být u hostitele a rozbočovačů s vlastním napájením zajištěna ochrana proti proudovému přetížení. Případné přetížení je hlášeno řadiči hostitele. Pokud odběr skupiny sestupných portů způsobí překročení limitu (maximálně 5 A), může hostitel nebo rozbočovač omezit nebo přerušit dodávku proudu na tyto porty. Obnovení normálního fungování musí být možné bez zásahu uživatele. Zařízení v režimu pozastavení mohou odebírat maximálně 2,5 mA, konfigurovaná pak 12,5 mA. Odpojení nebo připojení rozbočovače nebo zařízení nesmí ovlivnit ostatní zařízení na ostatních segmentech sítě. Odpojení zařízení způsobí přerušení všech probíhajících transakcí mezi zařízením a hostitelem, avšak rozbočovač nebo kořenový port se musí zotavit a informovat hostitele. Dovolené úbytky napětí v ustáleném stavu obvodu vycházejí z následujících předpokladů: zdroj s nominálním napětím 5 v (hostitel nebo rozbočovač) může dosahovat napětí 4,75 v až 5,25 V napětí na konektoru rozbočovače nebo kořenových portech hostitele je 4,45 v až 5,25 V maximální úbytek napětí mezi konektory typu A a typu B na VBUS (a zemnícím vodiči) je 171 mV 67
maximální proud je 0,9 A maximální úbytek na připojeném konektoru je 27 mV všechny rozbočovače a zařízení musí být schopny poskytnout konfigurační informace i při napětí 4 v (a vyšším) Na obrázku 10.1 je pak topologie napájení sběrnice pro nejhorší scénář úbytku napětí v ustáleném stavu.
Obrázek 10.1 - Topologie sběrnice při nejvyšším úbytku napětí Napájený konektor typu B byl zaveden k umožnění zařízením jako jsou tiskárny připojení a napájení jiných zařízení, například adaptérům bezdrátového USB. Tato možnost tak eliminuje potřebu externího napájení pro adaptér. Napájená zástrčka typu B musí být schopna poskytovat napětí 5 v v celém rozsahu proudu 0 - 1 A, poskytovat ochranu proti proudovému přetížení, dodávat maximální energii bez ohledu na stav zařízení. Zařízení poskytující napájení prostřednictvím tohoto konektoru musí být nízkovýkonové a zařízení, které je tímto konektorem napájené nemůže poskytovat žádné standardní zástrčky typu A.
11. Aplikace USB 3.0 11.1.
Vývoj USB
Jak je patrné z předchozích kapitol, nová verze USB 3.0 vlastně není úplně novou sběrnicí, spíše rozšířením již existující USB 2.0. Na rozdíl od změn v USB 2.0 oproti předchozím verzím však přeci jen sběrnice doznala výraznějších změn, nejen co se týče zvýšení rychlosti přenosu dat, které bylo pravděpodobně hlavním cílem. Standard USB 3.0 byl vydán v listopadu 2008 a přestože výhody nové verze jsou značné, do běžně dostupných zařízení pronikal nový standard poměrně dlouho (první zařízení se začala objevovat v lednu 2010). Nyní již prakticky všechna nová elektronika obsahující USB nabízí poslední verzi 3.0, i když obvykle jsou na zařízení přítomny i starší USB 2.0 konektory.
11.2.
Možnosti využití USB 3.0
USB 3.0 oproti předchozí verzi doznala výrazného vylepšení. Patrně nejvýraznějším rozdílem je samozřejmě přenosová rychlost, která se zvýšila přibližně desetinásobně oproti USB 2.0. Teoreticky sběrnice nabízí rychlost až 5 Gb/s, jak je patrné z vlastností fyzické vrstvy rozhraní. Jednotkový interval (doba přenosu 1 bitu) je u SuperSpeed definován jako 200 ps. z toho lze snadno odvodit rychlost přenosu fyzické vrstvy. (6)
1
𝑏
𝑏
𝑣 = 200∙10 −12 𝑠 = 5 ∙ 109 𝑠 = 5
𝐺𝑏 𝑠
68
Samozřejmě této rychlosti u koncových přenosů dat rozhraní nemůže dosahovat. Prvním omezením je už fyzická vrstva, použité 8b/10b kódování způsobuje snížení reálné přenosové rychlosti na 8/10, tedy 4 Gb/s. Další ztráty rychlosti pak způsobuje způsob zapouzdření dat ve dvou zbývajících vrstvách modelu. Pro zjednodušení lze vypočítat tyto ztráty pro plný datový paket. v případě využití shlukového přenosu můžeme s přijatelnou nepřesností považovat transakci jako nepřerušený tok takových paketů a z toho lze odvodit přibližnou nejvyšší skutečnou rychlost přenosu. Vrstva spojení zapouzdřuje datový paket přidáním 6 bytů (řídícího slova spojení a K-kódů) k 14 bytů velkému záhlaví datového paketu a dalších 8 bytů (K-kódů) k 1028 bytům uživatelských dat datového paketu. Protokolová vrstva při zapouzdření dat přidává záhlaví datového paketu (12 bytů + 2 byty CRC-16) a kontrolní součet CRC-32 (4 byty). Po započtení těchto ztrát se tedy dostáváme k následující rychlosti. (7)
1042
1024
𝑣 = 1056 ∙ 1042 ∙ 4
𝐺𝑏 𝑠
≅ 3,88
𝐺𝑏 𝑠
Specifikace se v tomto ohledu vyjadřuje, že reálné dosahované rychlosti přenosu by se měly pohybovat nad 400MB/s, tedy 3,2Gb/s. I v dnešní době se jedná o poměrně vysokou
rychlost, kterou může USB 3.0 konkurovat většině rozhraní současnosti. Není mnoho praktických aplikací, ve kterých by bylo možné tuto rychlost smysluplně využít. Jedním z příkladů by však mohlo být využití pro připojení zařízení využívajících flash pamětí jako jsou paměťové karty, flash disky nebo aktuálně populární solid state disky, které jsou schopné využít nabízenou rychlost (ačkoliv obvykle jen velmi drahé modely, na obrázku 11.1 je USB 3.0 flash disk nabízející rychlost čtení až 225 MB/s, na obrázku 11.2 pak externí SSD s rychlostí čtení až 195 MB/s od stejného výrobce). Obrázek 11.1 - USB 3.0 flash disk Kingston
Obrázek 11.2 - Externí SSD Kingston Využití tedy USB 3.0 bude mít hlavně při přenosech velkých objemů dat. Více současně prováděných OUT transakcí spolu s jednou IN transakcí pak navíc znamená možnost současného využití sběrnice více zařízeními, přestože posílat data hostiteli může jen jedno
69
z nich. v rychlosti přenosu dat tak může lépe konkurovat rozhraní jako je eSATA, které mělo v této oblasti doposud navrch, Samozřejmě nezanedbatelnou výhodou nové verze rozhraní je jeho téměř úplná zpětná kompatibilita, starší zařízení lze zapojit do nové zástrčky a nové zařízení do staré (jedinou výjimkou jsou omezení velikostí některých konektorů). v praxi jsem otestoval fungování flash disku USB 2.0 při zapojení do portu USB 3.0. Disk bez problémů pracoval a navíc při čtení vykázal drobné zvýšení rychlosti (cca 0,5 MB/s). Dalším vylepšením je pokročilé řízení spotřeby sběrnice a zařízení na něm. v dnešní době ekologických požadavků na zařízení je to určitě užitečná vlastnost, díky směrování paketů a více úsporným stavům spojení je možné napájet jen části topologie, které jsou používány. Současně však došlo k navýšení maximálního odběru proudu ze sběrnice, což je taktéž pozitivní vlastnost (900 mA oproti 500 mA u USB 2.0). v USB 2.0 byla sběrnice výhradně řízena hostitelem, USB SuperSpeed oproti tomu nabízí možnost zařízením požádat o přenos dat bez výzvy hostitele. Navýšení rychlosti se samozřejmě týká i synchronních přenosů, což je praktické například při přenosu kvalitnějšího videa nebo zvuku (hlasu) v reálném čase například při telefonování. v této oblasti tak vyrovnává některé přednosti rozhraní FireWire, které je pro tuto oblast vhodnější. Nová verze je tak rozhodně krokem kupředu, přes zvýšení výkonu a snížení spotřeby zachovává hlavní výhody USB, tedy nízkou cenu, všestrannou použitelnost a zpětnou kompatibilitu. v poslední době se zdá, že se USB 3.0 bude pokoušet konkurovat nové rozhraní, nazvané Thunderbolt, o kterém krátce pojednává následující kapitola.
11.3.
Thunderbolt
Rozhraní, původně nazvané Light Peak, bylo vyvinuto ve spolupráci firem Intel a Apple. Poprvé se objevilo na Apple MacBooku, obdobně jako USB 3.0 rozšiřuje možnosti jeho DisplayPortu a taktéž nabízí určitou míru zpětné kompatibility. Zjednodušeně se dá říci, že Thunderbolt je v podstatě externí variantou rozhraní PCI Express, což už něco o novém rozhraní vypovídá. Hlavním prvkem je řadič Thunderbolt, který musí být na obou koncích sběrnice a v podstatě soustřeďuje data z PCI Express a DisplayPortu do jednoho kabelu (obrázek 11.3). Rozhraní mělo původně už od prvních verzí využívat optické kabely, ale nakonec se z důvodu úspory v první verzi použilo metalické vedení.
Obrázek 11.3 - Přenos dat PCIe a DisplayPort mezi kontroléry Thunderbolt I tak však rozhraní Thunderbolt v mnoha ohledech překonává USB 3.0 poměrně výrazně. Nabízí teoretickou rychlost až 10 Gb/s, podle vyjádření Intelu je praktické maximum cca 70
6,4 Gb/s (800 MB/s), což překonává USB 3.0 až dvojnásobně. Této rychlosti je dosaženo mimo jiné připojením řadiče přímo na rozhraní PCI Express x4 (které má rychlost 16 Gb/s). Teoretická propustnost řadiče je pak až 40 Gb/s díky dvěma obousměrným kanálům. Také napájení dovoluje vyšší odběr, výkon může být až 10 W (oproti 4,5 W u USB 3.0). Kabel je sice omezen na délku 3 m, avšak Thunderbolt nabízí možnost tzv. řetězení zařízení, čímž prakticky odstraňuje potřebu rozbočovačů, neboť zařízení je možné připojit k zařízení již připojenému ke sběrnici. Model architektury Thunderbolt se dá
rozdělit na vrstvy, jak je patrné na obrázku 11.4. Obrázek 11.4 - Architektura rozhraní Thunderbolt Rozhraní Thunderbolt je tak více než důstojným soupeřem USB 3.0, v této chvíli je jedinou výhodou USB jeho masivní rozšíření, avšak to se může v budoucnu změnit. Narozdíl od rozraní FireWire navíc se navíc za použití rozhraní Thunderbolt neplatí licenční poplatky a jeho budoucnost tak může USB vážně ohrozit.
12. Výukový modul 12.1.
Zásady pro tvorbu výukového modulu
Výukový modul se dá považovat za e-learningový kurz a podle toho by také měl splňovat několik požadavků. z definice se jedná o výukovou pomůcku, při které se využívá služeb sítě a počítače k ní připojené. Už jen proto není výuková pomůcka dostačujícím materiálem pro studium, ale spíše základem pro snadnější pochopení materiálu. z tohoto důvodu nejsou vhodné příliš dlouhé texty, ale spíše zkrácené definice, pojmy a jejich krátké vysvětlení. Výukový modul nenahrazuje ústní výklad, při kterém je hlavní předností možnost studentů pokládat dotazy v případě obtíží s pochopením látky. Vzhledem k tomu, že v procesu učení se jeví jako nejdůležitější vizuální paměť je vhodnou, ne-li nutnou, součástí výukového modulu také množství ilustrací a animací, pomocí kterých lze snáze objasnit danou problematiku. Vhodnou součástí výukového modulu je také případný test z probrané látky, který umožní uživateli zjistit, do jaké míry problematiku pochopil a zapamatoval. Tento test by samozřejmě měl být úspěšně zvládnutelný pouze po prostudování předchozí látky v modulu, i když to nemusí být vždy splněno.
71
Nově vytvářený výukový modul, který bude součástí již existujícího systému (například soubor modulů jednoho předmětu) by také měl brát ohled na formu a obsah již existujících částí, neobsahovat opakující se informace a vhodně navazovat na již probranou látku.
12.2.
Struktura modulu
Obsah modulu je strukturován podobně jako tento dokument, i když s jistými změnami pro snadnější pochopení a ucelení látky. Modul je rozdělen na obrazovky, což jsou v podstatě stránky, které se postupně při čtení procházejí. Jejich počet by se měl pohybovat v desítkách, neměl by přesahovat sto obrazovek. Každá obrazovka může obsahovat kombinaci textu, obrázků i animací, důraz je kladen na modulárnost, na jedné obrazovce by se nemělo objevovat více témat. Modul začíná obecným popisem nové verze rozhraní, jeho konkurenčními rozhraními a praktickým využitím. Další obrazovky se pak zabývají podrobnějším principem fungování sběrnice, architekturou sběrnice, obecně datovými přenosy. Následuje popis jednotlivých vrstev modelu, fyzickou, vrstvou spojení a nakonec protokolovou vrstvou, která je z těchto tří nejobsáhlejší. Po ní následují fyzické a elektrické vlastnosti sběrnice a krátké shrnutí. Na konci výukového modulu je obsažen test získaných znalostí.
12.3.
Animace, simulace
Animace a případné simulace jsou zařazeny u pojmů a operací, které jsou tímto způsobem snáze pochopitelné. Jak již bylo řečeno, tento způsob objasnění problematiky je preferovaný, takže vedle statických obrázků se v modulu vyskytuje i dostatečné množství animací. Samozřejmě není vhodné za každou cenu vkládat ke každému pojmu animaci. Animace byly vytvářeny ve formátu flash pomocí softwaru Adobe Flash Pro. Zahrnují principy, které jsou pomocí animace snáze pochopené, namátkou například všechny typy datových transakcí a některé nové funkce rozhraní USB 3.0 jako například funkce proudů a shlukových přenosů. Simulace jsou pak obsaženy především v části věnující se praktickému využití sběrnice, dotvářejí představu o výhodách a fungování v reálných podmínkách.
12.4.
Ostatní didaktické prvky
Samozřejmostí jsou ilustrace některých pojmů obrázky, toto se týká především statických vlastností jako architektura sběrnice nebo struktura paketů. Stejně tak je příležitostně zařazen diagram (stavový diagram), případně graf (například na obrazovkách, týkajících se elektrických vlastností rozhraní). Důležitým prvkem je také kontrolní test, zařazený na konci modulu, který je zpracován formou otázek s možnostmi, kde může být více odpovědí správných. Test obsahuje konkrétní otázky, týkající se důležitých pojmů z probrané látky. Ačkoliv forma testu nemusí nutně prověřit hloubku znalosti problematiky, slovní odpovědi by značně komplikovaly tvorbu modulu a navíc by podporovaly systém učení, kdy si student pouze zapamatuje definice a přitom skutečně nepochopí souvislosti a logiku, která se za těmito definicemi a pojmy skrývá.
72
12.5.
LMS systém
Learning management system (LMS) neboli systém pro řízení výuky softwarová aplikace určená k administraci, dokumentaci a sledování výukových programů, tříd, událostí a obsahu. Systémy pro řízení výuky se mohou lišit podle využití, od výuky studentů, přes školení zaměstnanců, po celoživotní vzdělávání. Kvalitní LMS by měl poskytovat centralizovanou administraci, rychlé seskupování a poskytování výukových prostředků, přenositelnost a podporu standardů a personalizaci obsahu. Většina LMS zahrnuje funkce pro správu uživatelů a kurzů, kalendář kurzu, studijní plán, posílání zpráv a oznámení účastníkům, testování a hodnocení a přístup k materiálům prostřednictvím internetu. LMS přizpůsobený pro výuku studentů se také jinak nazývá virtuální studijní prostředí, a jeho cílem je simulovat reálné výukové prostředí pomocí virtuálního prostředí, přístupného obvykle přes internet. Jeho cílem je snížit náklady na výuku, umožnit profesorům vytvářet online kurzy bez znalosti tvorby webu, poskytnout studentům flexibilitu (místa a času) a nabídnout možnost sdílení výukových prostředků mezi kurzy, fakultami nebo i školami. Virtuální studijní prostředí obvykle slouží více předmětům. Virtuální studijní prostředí v ideálním případě obsahuje následující prvky.
učební osnovu předmětu informace o kurzu - prerekvizity, kredity, registrace, čas a místo cvičení, ... nástěnku pro aktuální informace o kurzu základní obsah kurzů, v případě distančních veškerý obsah další zdroje formou odkazu nebo vložení kontrolní testy, obvykle strojově hodnocené možnost vkládání hodnocených dokumentů, například esejí podporu pro komunikaci, například e-mail, diskusní fórum, chat, blogy, wiki, ... správu přístupových práv nástroje pro vytváření dokumentů instruktory
Všechny tyto požadavky splňuje i virtuální studijní prostředí, pro které je tento výukový modul navržen, tedy Modulární objektově orientované dynamické výukové prostředí. Moodle (Modular object-oriented dynamic learning environment) je open source softwarová platforma, která je v dnešní době jedním z nejrozšířenějších LMS. Kromě základních funkcí virtuálního studijního prostředí umožňuje používání rozšíření, která přidávají nové funkce. Samozřejmostí je podpora SCORM.
12.6.
Balíček SCORM
Aby bylo možné použít výukové prostředky opakovaně a v různých systémech pro řízení výuky, bylo nutné vytvořit referenční model obsahující specifikace a standardy pro tvorbu obsahu kurzů, díky kterým je možné obsah používat ve všech LMS podporujících tento model. Pro tento účel vznikl SCORM (Shareable content object reference model neboli referenční model objektů sdíleného obsahu). Balíček SCORM je potom objekt obsahu, který je použitelný na různých platformách a systémech. Balíček SCORM je v podstatě archiv, ve kterém jsou zabaleny následující součástí. 73
Manifest je XML soubor, který popisuje obsah kurzu, dále se dělí na zdroje (seznam části, ze kterých se skládá kurz, mohou to být jak stránky kurzu, tak i soubory, které jsou v kurzu využity, například obrázky, animace), organizaci (logické seskupení zdrojů do hierarchické struktury, v jednom manifestu může být více organizací). Metadata mohou dále popisovat manifest nebo jeho část, jsou zaznamenána v daném formátu, taktéž v XML souboru. Řazení je nová část ve SCORM 2004, pomocí které lze stanovit pořadí částí kurzu. Obsah pak může být umístěn do složky, ale obvykle je zabalen společně s předchozími částmi do archivu pro účely SCORM nazvaných PIF (package interchange file).
12.1.
Formátování textu
Aby nebylo nutné ručně vytvářet výše popsanou strukturu, což by bylo poměrně náročné, existují nástroje, které jsou schopné daný formát vytvořit ze snáze upravitelných zdrojů. v případě tohoto výukového modulu pak z textového souboru aplikace MS Word, ve kterém jsou jednotlivé prvky obsahu formátovány na základě předem připravené šablony. Každá obrazovka výsledného kurzu má vlastní stranu, podle typu obsahu pak jsou připraveny různé styly, například styl pro běžný text, styl pro definice, styl pro vložení obrázku, atd. v současné verzi je k dispozici 25 různých stylů, tedy typů obsahu.
12.2.
Aplikace ve virtuálním studijním prostředí
Výsledná aplikace pak obsahuje kromě obvyklých částí, jako je osnova předmětu a další informace, také několik výukových modulů, obyčejně rozdělených podle lekcí nebo témat. Každý z modulů pak obsahuje libovolný počet obrazovek a poskytuje možnost testování s hodnocením na konci modulu, případně vkládání hodnocených i dobrovolných úloh studenty. Do aplikace je nutné se přihlásit a zapsat se do požadovaných kurzů.
13. Závěr Cíl práce, tedy vytvoření dokumentace a výukového modulu k rozhraní USB SuperSpeed, byl splněn. I přes poměrně zdlouhavé zpracování jsem cíle nakonec dosáhl, i když se v práci určitě najdou rezervy. Hlavní překážkou, jejíž překonání zabralo asi nejvíce času, bylo velké množství nových termínů v dokumentaci, pro něž bylo nutné nalézt vhodné české ekvivalenty. V tom však také spočívá přínos práce, byly vytvořeny základy pro další popis USB SuperSpeed a zpracována poměrně podrobná dokumentace k tomuto rozhraní v českém jazyce. Přestože se dokumentační část může zdát mírně chaotická, obsahuje všechny důležité informace o fungování rozhraní a práci s ním z pohledu pokročilejšího uživatele. Samotný výukový modul pak splňuje požadavky, které na něj byly kladeny, ačkoliv by ho taktéž bylo možné zpracovat ještě o něco lépe. Přínos této části vyplývá už z názvu, bude sloužit ke vzdělávání studentů, kteří se ve svém studijním programu věnují tomuto komunikačnímu rozhraní nebo potřebují tuto znalost k jiným účelům.
74
Práce by mohla být základem pro podrobnější popis některé z jeho částí, případně práce věnující se praktickému využití sběrnice ať už pro existující nebo nové účely.
13.1.1.1. Seznam použité literatury [1] USB.org. Universal Serial Bus 3.0 Specification. [s.l.] : [s.n.], 2011. 531 s. Dostupný z WWW:
. [2] Přispěvatelé Wikipedie Wikipedia - internetová encyklopedie [online]. 2011 [cit. 2011]. Dostupný z WWW: . [3] Wikipedia authors Wikipedia - the free encyclopedia [online]. 2011 [cit.2011]. Dostupný z WWW:. [4] MORAVEC, Jan. Výuková pomůcka pro problematiku USB. [s.l.], 2008. 45 s. Vedoucí diplomové práce Ing. Tomáš Zeman, Ph.D. [5] ALFA COMPUTER a.s. Alfa.cz ESHOP [online]. 2012 [cit. 2012-01-01]. Dostupný z WWW: . [6] K336. Info - pokyny pro psaní bakalářských prací [online]. 2012. Dostupný z WWW:. [7] Moodle Trust. moodle [online]. 2012. Dostupný z WWW:.
75