USB (komunikace) - USB (Communications)
![]() | Tento článek je hlavní část nedostatečně shrnout klíčové body jeho obsahu. Zvažte prosím rozšíření potenciálního zákazníka na poskytnout přístupný přehled všech důležitých aspektů článku. (Dubna 2018) |
Tento článek poskytuje informace o komunikačních aspektech Universal Serial Bus, USB: Signalizace, protokoly, transakce.
Signalizace (USB PHY)
Signální rychlost (přenosová rychlost)
[1]Režim | Zkratka | Hrubá rychlost dat | Představeno v |
---|---|---|---|
Nízká rychlost | LS | 1,5 Mbit / s (187,5 KB / s) | USB 1.0 |
Plná rychlost | FS | 12 Mbit / s (1,5 MB / s) | USB 1.0 |
Vysoká rychlost Také Hi-Speed | HS | 480 Mbit / s (60 MB / s) | USB 2.0 |
Super rychlost | SS | 5 Gbit / s (625 MB / s) | USB 3.0 |
SuperSpeed + | SS + | 10 Gbit / s (1,25 GB / s) | USB 3.1 |
SuperSpeed + | SS + | 20 Gbit / s (2,5 GB / s) | USB 3.2 |
Teoretická maximální rychlost dat v USB 2.0 je 480 Mbit / s (60 MB / s) na řadič a je sdílena mezi všemi připojenými zařízeními. Někteří výrobci čipových sad osobních počítačů překonávají toto úzké místo poskytováním více řadičů USB 2.0 v systému Windows Southbridge.
Podle rutinního testování prováděného CNet, operace zápisu na typické vysokorychlostní pevné disky mohou udržovat rychlost 25–30 MB / s, zatímco operace čtení jsou na 30–42 MB / s;[2] to je 70% z celkové dostupné šířky pásma sběrnice. U USB 3.0 je typická rychlost zápisu 70–90 MB / s, zatímco rychlost čtení je 90–110 MB / s.[2] Maskové testy, také známé jako testy očního diagramu, se používají k určení kvality signálu v časové doméně. Jsou definovány v referenčním dokumentu jako součást popisu elektrického testu pro vysokorychlostní režim (HS) při 480 Mbit / s.[3]
Podle předsedy USB-IF „alespoň 10 až 15 procent z uvedeného maxima 60 MB / s (480 Mbit / s) vysokorychlostního USB jde na režii - komunikační protokol mezi kartou a periferií. součást všech standardů připojení “.[1] Tabulky ilustrující limity přenosu jsou uvedeny v kapitole 5 specifikace USB.
Pro izochronní zařízení, jako jsou zvukové streamy, je šířka pásma konstantní a je vyhrazena výhradně pro dané zařízení. Šířka pásma sběrnice má tedy vliv pouze na počet kanálů, které lze odeslat najednou, nikoli na „rychlost“ nebo latence přenosu.
- Nízká rychlost (LS) rychlost 1,5 Mbit / s je definována USB 1.0. Je to velmi podobné operaci s plnou šířkou pásma, až na to, že přenos každého bitu trvá 8krát déle. Je určen především k úspoře nákladů při malé šířce pásma zařízení lidského rozhraní (HID), jako jsou klávesnice, myši a joysticky.
- Plná rychlost (FS) sazba 12Mbit / s je základní rychlost dat USB definovaná rozhraním USB 1.0. Touto rychlostí mohou fungovat všechny rozbočovače USB.
- Vysokorychlostní (HS) rychlost 480 Mbit / s byla zavedena v roce 2001. Všechna vysokorychlostní zařízení jsou v případě potřeby schopna přejít zpět na provoz s plnou šířkou pásma; tj. jsou zpětně kompatibilní se standardem USB 1.1.[je zapotřebí objasnění ] Konektory jsou stejné pro USB 2.0 a USB 1.x.
- SuperSpeed (SS) rychlostí 5,0 Gbit / s. Písemná specifikace USB 3.0 byla vydána společností Intel a jejími partnery v srpnu 2008. První čipy řadiče USB 3.0 byly vzorkovány společností NEC v květnu 2009,[4] a první produkty využívající specifikaci USB 3.0 dorazily v lednu 2010.[5] Konektory USB 3.0 jsou obecně zpětně kompatibilní, ale zahrnují nové zapojení a plně duplexní provoz.
- SuperSpeed + (SS +) rychlost 10 Gbit / s je definována USB 3.1 a 20 Gbit / s, při použití 2 pruhů, je definována USB 3.2.
Latence transakce
U zařízení s nízkou rychlostí (1,5 Mbit / s) a plnou rychlostí (12 Mbit / s) je nejkratší doba transakce v jednom směru 1 ms.[6] Vysokorychlostní (480 Mbit / s) využívá transakce v každém mikrorámci (125 µs)[7] kde použití 1bajtového paketu přerušení vede k minimální době odezvy 940 ns. 4bajtový paket přerušení má za následek 984 ns.[Citace je zapotřebí ]
Elektrické specifikace
Signály USB jsou přenášeny pomocí diferenciální signalizace na kroucená dvojlinka datový kabel s 90 Ω ± 15% charakteristická impedance.[8]
- Nízká rychlost (LS) a Plná rychlost (FS) režimy používají jeden datový pár, označený D + a D−, v poloduplexní. Úrovně přenášeného signálu jsou 0,0–0,3 V pro logické minimum a 2,8–3,6 V pro logickou vysokou úroveň. Signální linky nejsou ukončeno.
- Vysokorychlostní (HS) režim používá stejný pár vodičů, ale s různými elektrickými konvencemi. Nižší signální napětí -10 až 10 mV pro nízké a 360 až 440 mV pro logickou vysokou úroveň a ukončení 45 Ω vůči zemi nebo 90 Ω rozdílu, aby odpovídalo impedanci datového kabelu.
- SuperSpeed (SS) přidává další dva páry stíněného krouceného drátu (a nové, většinou kompatibilní rozšířené konektory). Ty jsou určeny pro plně duplexní provoz SuperSpeed. Poloduplexní linky se stále používají pro konfiguraci.
- SuperSpeed + (SS +) používá zvýšenou rychlost přenosu dat (režim Gen 2x1) a / nebo další linku v konektoru Type-C (režim Gen 1x2 a Gen 2x2).
Připojení USB je vždy mezi hostitelem nebo rozbočovačem v síti A konec konektoru a „upstream“ port zařízení nebo rozbočovače na druhém konci.
Signalizační stav
Hostitel obsahuje na každé datové lince stahovací odpory 15 kΩ. Pokud není připojeno žádné zařízení, tahá obě datové linky nízko do tzv jednostranný nula stavu (SE0 v dokumentaci USB) a označuje resetované nebo odpojené připojení.
Stav přechodu řádku
Následující terminologie slouží k technické diskusi týkající se signalizace USB PHY.
Signál | Stav přechodu řádku | Popis | USB 1.x Nízká rychlost (1,5 kΩ pullup na D−) | USB 1.x plná rychlost (1,5 kΩ pullup na D +) | ||
---|---|---|---|---|---|---|
D + | D− | D + | D− | |||
J | Stejné jako stav nečinné linky | To je přítomno během přechodu přenosového vedení. Případně čeká na nový paket. | nízký | vysoký | vysoký | nízký |
K. | Inverzní stav J. | To je přítomno během přechodu přenosového vedení. | vysoký | nízký | nízký | vysoký |
SE0 | Jednostranný nula | D + i D− jsou nízké. To může indikovat konec paketového signálu nebo odpojené zařízení USB. | nízký | nízký | nízký | nízký |
SE1 | Jednostranný | Toto je nezákonný stav a nikdy by k němu nemělo dojít. To je považováno za chybu. | vysoký | vysoký | vysoký | vysoký |
- Stav nečinné linky je, když je zařízení připojeno k hostiteli pomocí pull-up na D + a D−, přičemž výstup vysílače na hostiteli i zařízení je nastaven na vysokou impedanci (hi-Z) (odpojený výstup).
- Zařízení USB táhne jednu z datových linek vysoko pomocí rezistoru 1,5 kΩ. To přemůže jeden z rozevíracích odporů v hostiteli a ponechá datové linky v klidovém stavu J.
- U USB 1.x volba datové linky udává, jaké rychlosti signálu je zařízení schopné:
- zařízení s plnou šířkou pásma přitahují D + vysoko,
- zařízení s malou šířkou pásma vytáhnou D− high.
- The K. stát má opačnou polaritu než J Stát.
Stav linky (pokrývající USB 1.xa 2.x)
Stav / signál linky | Popis | USB 1.x nízkorychlostní | USB 1.x Full-Speed | Vysokorychlostní USB 2.x |
---|---|---|---|---|
Oddělený | Nebylo zjištěno žádné zařízení. Obě linky jsou staženy dolů 15 kΩ stahovacími odpory na straně hostitele. | SE0 ≥ 2 µs | SE0 ≥ 2 µs | SE0 ≥ 2 µs |
Připojit | Vytažení USB zařízení na D + nebo D - probudí hostitele ze stavu odpojené linky. Tím se spustí proces výčtu USB. Tím se nastaví klidový stav. | D− je vytaženo nahoru o 1,5 kΩ na straně zařízení. | D + je vytažen o 1,5 kΩ na straně zařízení. | Speciální cvrlikající sekvence |
Idle / J | Vysílač hostitele a zařízení na Hi-Z. Stav snímací linky v případě odpojeného stavu. | Stejné jako odpojený nebo připojený stav. | Stejné jako odpojený nebo připojený stav. | |
Sync | Začátek vzoru přechodu paketové linky. | Přechody řádků: KJKJKJKK | Přechody řádků: KJKJKJKK | 15 párů KJ následovaných 2 K, tedy celkem 32 symbolů. |
EOP | Konec vzoru přechodu řádku paketu. | Přechody řádků: SE0 + SE0 + J | Přechody řádků: SE0 + SE0 + J | |
Resetovat | Resetujte zařízení USB do známého počátečního stavu. | SE0 ≥ 2,5 ms | SE0 ≥ 2,5 ms | |
Pozastavit | Vypněte zařízení tak, aby z V spotřebovalo pouze 0,5 mAAUTOBUS. Ukončí tento stav pouze po přijetí signálu obnovení nebo resetování. Aby se tomuto stavu zabránilo, je vydán paket SOF (vysokorychlostní) nebo signál udržování naživu (nízká rychlost). | J ≥ 3 ms | J ≥ 3 ms | |
Pokračovat (hostitel) | Hostitel chce zařízení probudit. | K ≥ 20 ms pak EOP vzor | K ≥ 20 ms pak EOP vzor | |
Obnovit (zařízení) | Zařízení se chce probudit. (Musí být nečinný alespoň 5 ms.) | Pohony zařízení K ≥ 1 ms Hostitel poté odešle signál obnovení. | Pohony zařízení K ≥ 1 ms Hostitel poté odešle signál obnovení. | |
Udržujte naživu (nízká rychlost) | Host chce říct zařízení s nízkou rychlostí, aby bylo vzhůru. | Vzor EOP jednou za milisekundu. | Nelze použít | Nelze použít |
Přenos
Data USB jsou přenášena přepínáním datových linek mezi stavem J a opačným stavem K. USB kóduje data pomocí NRZI kódování linky:
- 0 bit se přenáší přepínáním datových linek z J na K nebo naopak.
- 1 bit se přenáší ponecháním datových linek tak, jak jsou.
Aby bylo zajištěno, že existuje dostatek přechodů signálu pro obnovení hodin, aby došlo k bitový proud, a trochu nádivky technika je aplikována na datový proud: do datového proudu je vložen další 0 bit po jakémkoli výskytu šesti po sobě jdoucích 1 bitů. (Takto je zajištěno, že je zde 0 bit, který způsobí přechod stavu přenosu.) Sedm po sobě jdoucích 1 bitů je vždy chyba. U USB 3.0 se používá další kódování přenosu dat, aby bylo možné zvládnout vyšší požadované rychlosti přenosu dat.
Příklad přenosu na zařízení USB 1.1 s plnou rychlostí

- Synchronizační vzor: Paket USB začíná 8bitovou synchronizační sekvencí 00000001₂. To znamená, že po počátečním klidovém stavu J datové řádky přepínají KJKJKJKK. Poslední 1 bit (opakovaný stav K) označuje konec synchronizačního vzoru a začátek rámečku USB. U USB s velkou šířkou pásma paket začíná 32bitovou synchronizační sekvencí.
- Konec balíčku (EOP): EOP je indikován vysílačem, který řídí 2 bitové časy SE0 (D + a D− oba pod max.) A 1 bitový čas stavu J. Poté vysílač přestane pohánět linky D + / D− a výše uvedené pull-up rezistory ho drží ve stavu J (nečinnosti). Někdy může zkosení způsobené rozbočovači přidat až jeden bitový čas před SE0 na konci paketu. Tento bit navíc může mít za následek „narušení bitů“, pokud šest bitů před ním v CRC je 1 s. Tento bit by měl přijímač ignorovat.
- Reset sběrnice: Sběrnice USB se resetuje pomocí prodlouženého (10 až 20 milisekund) signálu SE0.
Vyjednávání rychlosti USB 2.0
Zařízení USB 2.0 používají během resetu speciální protokol, tzv cvrlikání, vyjednat režim vysoké šířky pásma s hostitelem / rozbočovačem. Zařízení, které je schopné USB 2.0 High Speed, se nejprve připojí jako Full Speed zařízení (D + vytáhlo vysoko), ale po přijetí USB RESETU (D + i D-řízený LOW hostitelem po dobu 10 až 20 ms) vytáhne D-linku vysoká, známá jako cvrlikání K. To znamená, že hostitel má velkou šířku pásma. Pokud hostitel / rozbočovač podporuje také HS, cvrliká (vrací střídavé stavy J a K na linkách D− a D +) a informuje zařízení, že rozbočovač pracuje na vysoké šířce pásma. Zařízení musí přijmout alespoň tři sady pípnutí KJ, než se změní na zakončení s velkou šířkou pásma a zahájí signalizaci s velkou šířkou pásma. Protože USB 3.0 používá kabeláž, která je oddělená a doplňující kabeláž používanou USB 2.0 a USB 1.x, takové vyjednávání o šířce pásma není nutné.
Tolerance hodin je 480,00 ± 0,24 Mbit / s, 12,00 ± 0,03 Mbit / s a 1,50 ± 0,18 Mbit / s.
Ačkoli se zařízení s velkou šířkou pásma běžně označují jako „USB 2.0“ a inzerují se jako „až 480 Mbit / s“, ne všechna zařízení USB 2.0 mají velkou šířku pásma. The USB-IF certifikuje zařízení a poskytuje licence na používání speciálních marketingových log pro „základní šířku pásma“ (nízkou a plnou) nebo vysokou šířku pásma po absolvování testu shody a zaplacení licenčního poplatku. Všechna zařízení jsou testována podle nejnovější specifikace, takže nedávno vyhovující zařízení s nízkou šířkou pásma jsou také zařízení 2.0.
USB 3.0
USB 3 používá pocínované měděné splétané kabely AWG-28 s 90±7 Ω impedance pro jeho vysokorychlostní diferenciální páry a posuvný registr lineární zpětné vazby a Kódování 8b / 10b vysíláno s napětím 1 V nominálně s prahovou hodnotou 100 mV přijímače; přijímač používá ekvalizaci.[9] SSC hodiny a přesnost 300 ppm. Záhlaví paketů jsou chráněna CRC-16, zatímco datové užitečné zatížení je chráněno CRC-32.[10] Lze použít výkon až 3,6 W. Zátěž jedné jednotky v režimu Super Speed se rovná 150 mA.[10]
Vrstva protokolu
Během USB komunikace jsou data přenášena jako balíčky. Zpočátku jsou všechny pakety odesílány z hostitele prostřednictvím kořenového rozbočovače a případně více rozbočovačů do zařízení. Některé z těchto paketů směřují zařízení k odeslání některých paketů v odpovědi.
Po synchronizačním poli jsou všechny pakety vytvořeny z 8bitových bajtů přenášených nejméně významný bit jako první. První bajt je bajt identifikátoru paketu (PID). PID je ve skutečnosti 4 bity; bajt se skládá ze 4bitového PID následovaného jeho bitovým doplňkem. Tato redundance pomáhá detekovat chyby. (PID bajt obsahuje maximálně čtyři po sobě jdoucí 1 bity, a proto jej nikdy nepotřebujete bit-nádivka, i když je kombinován s posledním 1 bitem v synchronizačním bajtu. Koncový 1 bit v PID však může vyžadovat plnění bitů během prvních několika bitů užitečného zatížení.)
Typ | Hodnota PID (msb -za prvé) | Přenesený bajt (lsb -za prvé) | název | Popis |
---|---|---|---|---|
Rezervováno | 0000 | 0000 1111 | ||
Žeton | 1000 | 0001 1110 | ROZDĚLIT | Rozdělená transakce s velkou šířkou pásma (USB 2.0) |
0100 | 0010 1101 | PING | Zkontrolujte, zda koncový bod může přijímat data (USB 2.0) | |
Speciální | 1100 | 0011 1100 | PŘED | Preambule USB s malou šířkou pásma |
Potřesení rukou | CHYBOVAT | Chyba rozdělené transakce (USB 2.0) | ||
0010 | 0100 1011 | ACK | Datový paket přijat | |
1010 | 0101 1010 | NAK | Datový paket nebyl přijat; prosím opakujte přenos | |
0110 | 0110 1001 | NYET | Data ještě nejsou připravena (USB 2.0) | |
1110 | 0111 1000 | STÁNEK | Převod nemožný; obnovit chyby | |
Žeton | 0001 | 1000 0111 | VEN | Adresa pro přenos z počítače na zařízení |
1001 | 1001 0110 | V | Adresa pro přenos ze zařízení na hostitele | |
0101 | 1010 0101 | SOF | Začátek značky rámečku (odesílá se každý ms) | |
1101 | 1011 0100 | ZALOŽIT | Adresa pro přenos řízení z hostitelského zařízení | |
Data | 0011 | 1100 0011 | ÚDAJE0 | Sudý datový paket |
1011 | 1101 0010 | ÚDAJE 1 | Lichý datový paket | |
0111 | 1110 0001 | ÚDAJE 2 | Datový paket pro izochronní přenos s velkou šířkou pásma (USB 2.0) | |
1111 | 1111 0000 | MDATA | Datový paket pro izochronní přenos s velkou šířkou pásma (USB 2.0) |
Pakety přicházejí ve třech základních typech, každý s jiným formátem a CRC (kontrola cyklické redundance ):
Pakety handshake
Pole | Sync | PID | EOP |
---|---|---|---|
Bity | 8 | ||
Signál | KJ KJ KJ KK | XXXX XXXX | 00J |
Pakety handshake se skládají pouze z jednoho bajtu PID a obvykle se odesílají v reakci na datové pakety. Detekce chyb je zajištěna přenosem čtyř bitů, které představují typ paketu dvakrát, v jednom bajtu PID pomocí doplněno formulář. Tři základní typy jsou ACK, což znamená, že data byla úspěšně přijata; NAK, což znamená, že data nelze přijímat a měla by být opakována; a STÁNEK, což znamená, že zařízení má chybový stav a nemůže přenášet data, dokud nedojde k nějaké nápravné akci (například k inicializaci zařízení).[11][12]
USB 2.0 přidalo dva další balíčky handshake: NYET a CHYBOVAT. NYET naznačuje, že rozdělená transakce ještě není dokončena, zatímco ERR handshake naznačuje, že rozdělená transakce selhala. Druhým použitím paketu NYET je sdělit hostiteli, že zařízení přijalo datový paket, ale kvůli plným vyrovnávacím pamětům již nemůže přijmout. To umožňuje hostiteli přejít na odesílání malých tokenů PING, aby se informoval o připravenosti zařízení, místo aby odeslal celý nechtěný DATA paket, jen aby vyvolal NAK.[11][12]
Jediným paketem handshake, který může hostitel USB generovat, je ACK. Pokud není připraveno přijímat data, nemělo by zařízení vyzvat k odeslání.
Tokenové pakety
Pakety tokenů se skládají z bajtu PID následovaného dvěma bajty užitečného zatížení: 11 bitů adresy a pětibitovým CRC. Tokeny jsou odesílány pouze hostitelem, nikdy zařízením. Níže jsou tokeny přítomné z USB 1.0:
- V a VEN Tokeny obsahují číslo sedmibitového zařízení a číslo čtyřbitového funkce (pro multifunkční zařízení) a příkaz zařízení, aby vysílalo pakety DATAx nebo přijímalo následující pakety DATAx.
- V token očekává odpověď ze zařízení. Odezvou může být odpověď NAK nebo STALL nebo a DATAx rám. V druhém případě vydá hostitel ACK handshake, pokud je to vhodné.
- VEN za tokenem okamžitě následuje a DATAx rám. Zařízení reaguje podle potřeby ACK, NAK, NYET nebo STALL.
- ZALOŽIT funguje podobně jako OUT token, ale používá se pro počáteční nastavení zařízení. Za ním následuje osmibajtový rámec DATA0 se standardizovaným formátem.
- SOF (začátek snímku) Každou milisekundu (12 000 bitwidů s plnou šířkou pásma) vysílá hostitel USB speciální SOF Token (začátek rámce), který obsahuje 11bitové zvyšující se číslo rámce namísto adresy zařízení. Slouží k synchronizaci izochronních a přerušení datových přenosů. Vysokorychlostní zařízení USB 2.0 přijímají dalších sedm tokenů SOF na snímek, z nichž každý zavádí „mikrosnímek“ 125 µs (každý s šířkou pásma 60 000 krát).
- USB 2.0 také přidal a PING Token a větší tříbajtový token SPLIT
- PING zeptá se zařízení, zda je připraveno přijmout pár paketů OUT / DATA. PING je obvykle odesílán hostitelem při dotazování zařízení, které naposledy odpovědělo pomocí NAK nebo NYET. Tím se vyhnete nutnosti odesílat velký datový paket do zařízení, u kterého má hostitel podezření, že jej není ochoten přijmout.[13] Zařízení odpovídá podle potřeby ACK, NAK nebo STALL.
- ROZDĚLIT se používá k provádění rozdělených transakcí. Spíše než svázat vysokorychlostní sběrnici USB odesílající data na pomalejší zařízení USB, nejbližší rozbočovač schopný vysoké šířky pásma obdrží token SPLIT následovaný jedním nebo dvěma pakety USB při vysoké šířce pásma, provádí přenos dat na plnou nebo nízkou -bandwidth a poskytuje odezvu při vysoké šířce pásma, když vás vyzve druhý token SPLIT. Obsahuje sedmibitové číslo rozbočovače, 12 bitů řídicích příznaků a pětibitový CRC.
Pakety tokenů OUT, IN, SETUP a PING
Pole | Sync | PID | ADDR | ENDP | CRC5 | EOP |
---|---|---|---|---|---|---|
Bity | 8 | 7 | 4 | 5 | ||
Signál | KJ KJ KJ KK | XXXX XXXX | XXXX XXX | XXXX | XXXXX | 00J |
- ADDR: Adresa zařízení USB (maximálně 127 zařízení).
- ENDP: Vyberte hardwarový zdroj koncového bodu / vyrovnávací paměť zařízení na zařízení. (Např. PID OUT by byl pro odesílání dat z vyrovnávací paměti zdroje hostitele do vyrovnávací paměti jímky zařízení USB.)
- Ve výchozím nastavení musí všechna zařízení USB podporovat alespoň vyrovnávací paměť koncového bodu 0 (EP0). Důvodem je, že EP0 se používá pro ovládání zařízení a informace o stavu během výčtu a normálního provozu.
SOF: Začátek snímku
Pole | Sync | PID | Číslo rámečku | CRC5 | EOP |
---|---|---|---|---|---|
Bity | 8 | 11 | 5 | ||
Signál | KJ KJ KJ KK | XXXX XXXX | XXXX XXXX XXX | XXXXX | SE0 SE0 J |
- Číslo rámce: Toto je číslo rámce, které je hostitelem pravidelně zvyšováno, aby umožnilo koncovým bodům identifikovat začátek rámce (nebo mikrorámce) a synchronizovat vnitřní hodiny koncového bodu s hodinami hostitele.
SSPLIT a CSPLIT: Start-split transakce a kompletní split transakce
Režim S / C. | Pole | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 = SSPLIT | Sync | PID | Adresa centra | S / C. | Číslo portu | S | E | ET | CRC5 | EOP | |
1 = CSPLIT | Sync | PID | Adresa centra | S / C. | Číslo portu | S | U | ET | CRC5 | EOP | |
Bity | 8 | 7 | 1 | 7 | 1 | 1 | 2 | 5 | |||
Signál | KJ KJ KJ KK | XXXX XXXX | XXXX XXX | X | XXXX XXX | X | X | XX | XXXXX | SE0 SE0 J |
- S / C: Začátek dokončen
- 0 = SSPLIT: Zahájí dělenou transakci
- 1 = CSPLIT: Kompletní rozdělená transakce
- S: 1 = nízká rychlost, 0 = vysoká rychlost
- E: Konec užitečného zatížení plné rychlosti
- U: U bit je rezervován / nepoužíván a musí být vynulován (0 B)
- EP: Typ koncového bodu (00 = kontrola), (01 = izochronní), (10 = hromadný) a (11 = přerušený)
Datové pakety
Pole | Sync | PID | DATA | CRC16 | EOP |
---|---|---|---|---|---|
Bity | 8 | 0-8192 | 16 | ||
Signál | KJ KJ KJ KK | XXXX XXXX | (XXXX XXXX) * byteCount | XXXX XXXX XXXX XXXX | SE0 SE0 J |
Datový paket se skládá z PID následovaného 0–1024 bajty datové zátěže dat (až 1024 bajtů pro vysokorychlostní zařízení, až 64 bajtů pro zařízení s plnou rychlostí a maximálně osm bajtů pro zařízení s nízkou rychlostí),[14] a 16bitový CRC.
Existují dvě základní formy datových paketů, ÚDAJE0 a ÚDAJE 1. Datovému paketu musí vždy předcházet token adresy a po něm obvykle následuje tok handshake z přijímače zpět do vysílače. Dva typy paketů poskytují 1bitové pořadové číslo požadované zastavit a počkat ARQ. Pokud hostitel USB neobdrží odpověď (například ACK) na data, která přenesl, neví, zda byla data přijata nebo ne; data mohla být při přenosu ztracena nebo mohla být přijata, ale došlo ke ztrátě odpovědi handshake.
K vyřešení tohoto problému zařízení sleduje typ paketu DATAx, který naposledy přijal. Pokud přijme další paket DATAx stejného typu, je potvrzen, ale ignorován jako duplikát. Ve skutečnosti je přijat pouze paket DATAx opačného typu.
Pokud jsou data při přenosu nebo příjmu poškozena, kontrola CRC selže. Když k tomu dojde, přijímač negeneruje ACK, což způsobí, že odesílatel znovu odešle paket.[15]
Když je zařízení resetováno pomocí paketu SETUP, očekává další 8bajtový paket DATA0.
USB 2.0 přidáno ÚDAJE 2 a MDATA typy paketů také. Používají je pouze zařízení s velkou šířkou pásma provádějící izochronní přenosy s velkou šířkou pásma, která musí přenášet více než 1024 bajtů na 125 µs mikrorámce (8 192 kb / s).
Paket PRE (řekne hubům, aby dočasně přepnuli do režimu nízké rychlosti)
Rozbočovač je schopen podporovat zařízení s nízkou šířkou pásma smíchaná s jinými rychlostními zařízeními prostřednictvím speciální hodnoty PID, PŘED. To je vyžadováno, protože rozbočovač USB funguje jako velmi jednoduchý opakovač, který vysílá hostitelskou zprávu na všechna připojená zařízení bez ohledu na to, zda paket byl nebo nebyl. To znamená, že v prostředí smíšené rychlosti existuje potenciální nebezpečí, že nízká rychlost by mohla nesprávně interpretovat signál vysoké nebo plné rychlosti z hostitele.
Chcete-li toto nebezpečí vyloučit, pokud rozbočovač USB detekuje kombinaci vysokorychlostních nebo plných a nízkorychlostních zařízení, ve výchozím nastavení zakáže komunikaci se zařízením s nízkou rychlostí, pokud neobdrží požadavek na přepnutí do režimu nízké rychlosti. Při příjmu paketu PRE však dočasně znovu povolí výstupní port pro všechna zařízení s nízkou rychlostí, aby hostitel umožnil odeslat jeden paket s nízkou rychlostí do zařízení s nízkou rychlostí. Po odeslání paketu s nízkou rychlostí oznámí signál konce paketu (EOP) rozbočovači, aby znovu deaktivoval všechny výstupy pro zařízení s nízkou rychlostí.
Protože všechny bajty PID obsahují čtyři 0 bitů, opouštějí sběrnici ve stavu K s plnou šířkou pásma, což je stejné jako ve stavu J s malou šířkou pásma. Následuje krátká pauza, během níž rozbočovače aktivují své výstupy s malou šířkou pásma, které jsou již ve stavu J na volnoběh. Poté následuje paket s malou šířkou pásma, počínaje synchronizační sekvencí a PID bajtem a konče krátkou periodou SE0. Zařízení s plnou šířkou pásma jiná než rozbočovače mohou jednoduše ignorovat paket PRE a jeho obsah s malou šířkou pásma, dokud konečný SE0 neukáže, že následuje nový paket.
Plná rychlost PRE preambule | Povolení výstupu rozbočovače na zařízení s nízkou rychlostí. | Příklad paketu s nízkou rychlostí | Výstup deaktivace rozbočovače na zařízení s nízkou rychlostí. | |||||||
---|---|---|---|---|---|---|---|---|---|---|
Pole | Sync | PID (PRE) | Sync | PID | ADDR | ENDP | CRC5 | EOP | ||
Bity | 8 | 8 | 7 | 4 | 5 | |||||
Signál | KJ KJ KJ KK | XXXX XXXX | KJ KJ KJ KK | XXXX XXXX | XXXX XXX | XXXX | XXXXX | 00J |
Transakce
OUT transakce
OUT transakce (celkem 3 pakety) | |||
---|---|---|---|
Hostitel | Hostitel | přístroj | |
Paket PID | VEN | DATAx | ACK |
Typ paketu | Žeton | Data | Potřesení rukou |
Popis | Řekněte zařízení zapnuto ADDRx začít poslouchat příchozí datový paket v koncovém bodě EPx. | Řekněte zařízení USB data, která chcete na něj odeslat. | Zařízení řekne hostiteli, že úspěšně přijal a načetl datovou část dat do vyrovnávací paměti EPx. |
V transakci
V transakci (celkem 3 pakety) | |||
---|---|---|---|
Hostitel | přístroj | Hostitel | |
Paket PID | V | DATAx | ACK |
Typ paketu | Žeton | Data | Potřesení rukou |
Popis | Řekněte zařízení zapnuto ADDRx odeslat všechna data, která má ve své vyrovnávací paměti koncového bodu EPx. | Zařízení zkontroluje svou vyrovnávací paměť koncového bodu EPx a odešle požadovaná data hostiteli. | Hostitel informuje zařízení, že úspěšně přijalo užitečné zatížení a načítalo užitečné zatížení do své vyrovnávací paměti EPx. |
NASTAVENÍ transakce
Používá se pro výčet zařízení a správu připojení a informuje zařízení, že hostitel chce zahájit výměnu řízení přenosu.
NASTAVENÍ transakce (celkem 3 pakety) | |||
---|---|---|---|
Hostitel | Hostitel | přístroj | |
Paket PID | ZALOŽIT | ÚDAJE0 | ACK |
Typ paketu | Žeton | Data | Potřesení rukou |
Popis | Řekněte zařízení zapnuto ADDRx spustit režim nastavení a být připraveni na datový paket. | Odešlete do zařízení 8 bajtů dlouhý instalační paket. | Zařízení potvrzuje příjem dat SETUP a aktualizuje svůj stavový stroj nastavení. |
- V závislosti na instalačním paketu může nastat volitelný datový paket ze zařízení na hostitele nebo hostitele na zařízení.
Instalační paket
Instalační transakce přenese do zařízení 8bajtový instalační paket. Instalační paket kóduje směr a délku všech následujících datových paketů.
Pole | Ofset | Bajty | Bity | Popis |
---|---|---|---|---|
bmRequestType | 0 | 1 | 0–4 | Příjemce: Je adresována softwarová součást USB
|
5–6 | Typ: Používá se s bRequest bajtem
| |||
7 | Směr:
| |||
bŽádost | 1 | 1 | Příkaz pro nastavení: Když příjemce = 0 (zařízení) a typ = 0 (standardní), definované požadavky jsou:
| |
wValue | 2 | 2 | Hodnota parametru: Interpretace závisí na bRequest | |
index | 4 | 2 | Sekundární parametr: Určuje rozhraní nebo koncový bod, kterému je tento požadavek adresován. U řetězcových deskriptorů (Příjemce = Zařízení) se jedná o jazykový kód. | |
wDélka | 6 | 2 | Délka přenosu dat: Počet bytů, které mají být přeneseny po instalačním paketu. |
Ovládejte výměnu převodů
Výměna kontrolního přenosu se skládá ze tří odlišných fází:
- Fáze nastavení: Toto je příkaz nastavení odeslaný hostitelem do zařízení.
- Datová fáze (volitelně): Zařízení může volitelně odesílat data v reakci na požadavek na nastavení.
- Stavová fáze: Dummy IN nebo OUT transakce, což je pravděpodobně pro indikaci konce výměny kontrolního přenosu.
To umožňuje hostiteli provádět akce správy sběrnice, jako je výčet nových zařízení USB prostřednictvím načítání nového zařízení deskriptory zařízení. Načtení deskriptorů zařízení by zejména umožnilo určit třídu USB, VID a PID, které se často používají k určení správného ovladače USB pro zařízení.
Po načtení deskriptoru zařízení hostitel také provede další výměnu řízení, ale místo toho nastaví adresu zařízení USB na novou ADDRx.
Reference
- ^ A b „Skutečná nabídka USB 2.0“ Novinky a trendy, PC svět, 28. února 2002, archivovány od originál dne 5. prosince 2010
- ^ A b „Přenosný počítač Seagate FreeAgent GoFlex Ultra“ (Posouzení). CNet. Archivováno z původního dne 14. dubna 2011. Citováno 22. května 2011.
- ^ Schwarz, Rohde (25.05.2012). „Testování masky USB 2.0“ (PDF). Citováno 2012-07-12.[trvalý mrtvý odkaz ]
- ^ „NEC připraveno ochutnat„ první “čip řadiče USB 3.0 na světě“. Archivováno z původního dne 23. května 2009. Citováno 15. června 2009.
- ^ „Kdy se produkty USB 3.0 dostanou na trh?“. Archivováno z původního dne 30. dubna 2009. Citováno 11. května 2009.
- ^ "Myšové věci, o kterých bys měl vědět", Městský teror, 9. srpna 2008, archivováno z původního dne 11. října 2014
- ^ OS dev - Universal Serial Bus, 1. února 2011, archivováno z původního dne 5. září 2012
- ^ „USB v kostce - Kapitola 2 - Hardware“. Kromě Logic.org. Archivováno z původního dne 20. srpna 2007. Citováno 25. srpna 2007.
- ^ „Technické specifikace kabelů USB 3.0 SuperSpeed“. Archivováno z původního dne 14. dubna 2011. 100717 usb3.com
- ^ A b „Specifikace Universal Serial Bus 3.0, rev. 1. 12. 12. 2008“ (PDF). Archivováno (PDF) z původního dne 13. listopadu 2013. 100717 usb3.com
- ^ A b „USB Made Simple, část 3. Tok dat“. usbmadesimple.co.uk. 2008. Archivováno z původního dne 5. října 2014. Citováno 17. srpna 2014.
- ^ A b „USB v kostce, Kapitola 3. USB protokoly“. beyondlogic.org. 17. září 2010. Archivováno z původního dne 5. srpna 2014. Citováno 17. srpna 2014.
- ^ „Část 7, Vysokorychlostní transakce: Protokol Ping“. usbmadesimple.co.uk. 2008. Archivováno z původního dne 3. října 2014. Citováno 16. srpna 2014.
- ^ „USB v ořechové skořápce“. Kapitola 4 - Typy koncových bodů. Archivováno z původního dne 2. září 2014. Citováno 5. září 2014.
- ^ „Ladění běžných problémů s USB“. Archivovány od originál dne 15. června 2013. Citováno 5. června 2013.