USB (komunikace) - USB (Communications)
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)
Režim | Zkratka. | Hrubý datový tok | 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é, vysokorychlostní |
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í datová rychlost 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čů toto úzké místo překonali poskytnutím více řadičů USB 2.0 v rámci Southbridge .
Podle rutinních testů prováděných CNet mohou operace zápisu na typické vysokorychlostní pevné disky udržet rychlost 25–30 MB/s, zatímco operace čtení jsou 30–42 MB/s; to je 70% celkové dostupné šířky pásma sběrnice. Pro USB 3.0 je typická rychlost zápisu 70–90 MB/s, zatímco čtení je 90–110 MB/s. K určení kvality signálu v časové oblasti se používají testy masky, známé také jako testy očního diagramu . Jsou definovány v odkazovaném dokumentu jako součást popisu elektrického testu pro vysokorychlostní (HS) režim při 480 Mbit/s.
Podle předsedy USB-IF jde „nejméně 10 až 15 procent z uvedených špičkových 60 MB/s (480 Mbit/s) vysokorychlostního USB do režie-komunikační protokol mezi kartou a periferií. součást všech standardů konektivity “. Tabulky ilustrující limity přenosu jsou uvedeny v kapitole 5 specifikace USB.
U izochronních zařízení, jako jsou zvukové toky, je šířka pásma konstantní a 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 latenci přenosu.
- Nízká rychlost (LS) 1,5 Mbit/s je definována rozhraním USB 1.0. Je velmi podobný provozu s plnou šířkou pásma, kromě toho, že přenos každého bitu trvá 8krát déle. Je určen především k úspoře nákladů na zařízení s nízkým pásmem lidského rozhraní (HID), jako jsou klávesnice, myši a joysticky.
- Rychlost plné rychlosti (FS) 12 Mbit/s je základní datová rychlost USB definovaná rozhraním USB 1.0. Všechny USB rozbočovače mohou pracovat touto rychlostí.
- Vysokorychlostní (HS) rychlost 480 Mbit/s byla zavedena v roce 2001. Všechna vysokorychlostní zařízení se mohou v případě potřeby vrátit k provozu s plnou šířkou pásma; tj. jsou zpětně kompatibilní se standardem USB 1.1. Konektory jsou shodné pro USB 2.0 a USB 1.x.
- Rychlost SuperSpeed (SS) 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 odebrány společností NEC v květnu 2009 a první produkty využívající specifikaci USB 3.0 dorazily v lednu 2010. Konektory USB 3.0 jsou obecně zaostalé kompatibilní, ale zahrnují nové zapojení a plně duplexní provoz.
- Rychlost SuperSpeed+ (SS+) 10 Gbit/s je definována rozhraním USB 3.1 a 20 Gbit/s pomocí 2 pruhů je definována USB 3.2.
Latence transakce
Pro zařízení s nízkou rychlostí (1,5 Mbit/s) a plnou rychlostí (12 Mbit/s) je nejkratší doba pro transakci v jednom směru 1 ms. Vysoká rychlost (480 Mbit/s) využívá transakce v každém mikrorámci (125 µs), kde použití 1-bajtového paketu přerušení vede k minimální době odezvy 940 ns. 4bajtový paket přerušení má za následek 984 ns.
Elektrická specifikace
Signály USB jsou přenášeny pomocí diferenciální signalizace na datovém kabelu s kroucenou dvojlinkou s charakteristickou impedancí 90 Ω ± 15% .
- Režimy nízké rychlosti (LS) a plné rychlosti (FS) používají v polovičním duplexu jeden datový pár označený D+ a D− . Úrovně přenášeného signálu jsou 0,0–0,3 V pro logickou nízkou úroveň a 2,8–3,6 V pro logickou vysokou úroveň. Signální linky nejsou ukončeny .
- Vysokorychlostní režim (HS) používá stejný pár vodičů, ale s jiný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 Ω diferenciálu, aby odpovídaly impedanci datového kabelu.
- SuperSpeed (SS) přidává další dva páry stíněného krouceného vodiče (a nové, většinou kompatibilní rozšířené konektory). Ty jsou určeny pro plně duplexní provoz SuperSpeed. Poloviční duplexní linky se stále používají pro konfiguraci.
- SuperSpeed+ (SS+) využívá vyšší přenosovou rychlost (režim Gen 2 × 1) a/nebo přídavný pruh v konektoru typu C (režim Gen 1 × 2 a Gen 2 × 2).
Připojení USB je vždy mezi hostitelem nebo rozbočovačem na konci konektoru A a „upstream“ portem zařízení nebo rozbočovače na druhém konci.
Stav signalizace
Hostitel obsahuje na každé datové lince stahovací odpory 15 kΩ. Když není připojeno žádné zařízení, táhne to obě datové linky nízko do takzvaného nulového stavu s jedním koncem (SE0 v dokumentaci USB) a indikuje reset nebo odpojené připojení.
Stav přechodu čáry
Následující terminologie slouží k technické diskusi o signalizaci USB PHY.
Signál | Stav přechodu čáry | Popis | Nízká rychlost (D-pull-up) |
Plná rychlost (D+ pull-up) |
||
---|---|---|---|---|---|---|
D+ | D− | D+ | D− | |||
J. | Stejné jako stav nečinného řádku | K tomu dochází během přechodu přenosové linky. Případně čeká na nový paket. | nízký | vysoký | vysoký | nízký |
K | Inverzní stav J. | K tomu dochází během přechodu přenosové linky. | vysoký | nízký | nízký | vysoký |
SE0 | Jednorázová nula | D+ i D− je nízká. To může znamenat 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. Toto je považováno za chybu. | vysoký | vysoký | vysoký | vysoký |
- Klidový stav linky je, když je zařízení připojeno k hostiteli vytažením 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 s odporem 1,5 kΩ. Tento přemůže jeden z rozbalovacího odporů v hostiteli a listy datové linky v klidovém stavu s názvem J .
- U USB 1.x výběr datové linky udává, jaké rychlosti signálu je zařízení schopné:
- zařízení s plnou šířkou pásma táhnou D+ vysoko,
- zařízení s malou šířkou pásma táhnou D – high.
- Stav K má opačnou polaritu než stav J.
Stav linky (pokrývající USB 1.xa 2.x)
Stav linky/signál | Popis | Nízká rychlost | Plná rychlost | Vysoká rychlost |
---|---|---|---|---|
Odpojeno | Nebylo zjištěno žádné zařízení. Obě linky jsou staženy dolů 15 kΩ stahovacími odpory na straně hostitele. | SE0 ≥ 2 µs | ||
Připojit | Pull ups USB zařízení na D+ nebo D - probudí hostitele ze stavu odpojené linky. Tím se spustí proces sčítání USB. Tím se nastaví klidový stav. | D-pull-up | D+ vytažení | Plnou rychlostí, poté cvrkněte reset |
Nečinný / J | Hostitel a vysílač zařízení na Hi-Z. Stav snímací čáry v případě odpojeného stavu. | Jako odpojený nebo připojený stav. | ||
Synchronizace | Začátek vzoru přechodu paketové linky. | KJKJKJKK | 15 × KJ, pak KK, celkem 32 symbolů. | |
EOP | Konec přechodu vzoru paketu. | SE0, SE0, J | ||
Resetovat | Resetujte zařízení USB do známého počátečního stavu. | SE0 ≥ 2,5 ms | ||
Pozastavit | Vypněte zařízení tak, aby spotřebovalo pouze 0,5 mA z sběrnice V BUS . Ukončí tento stav pouze po přijetí signálu pro obnovení nebo reset. Aby se tomuto stavu předešlo, je dáván signál SOF paketu (vysoká rychlost) nebo udržování života (nízká rychlost). | J ≥ 3 ms | ||
Pokračovat (hostitel) | Host chce zařízení probudit. | K ≥ 20 ms poté vzor EOP | ||
Pokračovat (zařízení) | Zařízení se chce probudit. (Musí být v klidovém stavu alespoň 5 ms.) | Zařízení pohání K ≥ 1 ms Hostitel poté odešle obnovovací signál. |
||
Udržet naživu | Host chce sdělit zařízení s nízkou rychlostí, aby zůstalo vzhůru. | Vzor EOP jednou za milisekundu. | N/A |
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í kódování linky NRZI :
- 0 bit je přenášen přepínáním datových linek z J do K nebo naopak.
- 1 bit se přenáší ponecháním datových linek tak, jak jsou.
Aby se zajistilo, že existuje dostatek signálních přechodů, aby se zotavení hodin mohlo vyskytovat v bitovém toku , je na datový proud aplikována technika bitového plnění: do datového toku je vložen dalších 0 bitů po jakémkoli výskytu šesti po sobě jdoucích 1 bitů. (Tím je zajištěno, že 0 bitů způsobí přechod stavu přenosu.) Sedm po sobě přijatých 1 bitů je vždy chybou. U rozhraní USB 3.0 se ke zpracování požadovaných vyšších datových rychlostí používá další kódování přenosu dat.
Příklad přenosu na zařízení s plnou rychlostí
- Synchronizační vzor
- USB paket 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ámce USB. U vysokorychlostního USB paket začíná 32bitovou synchronizační sekvencí.
- Konec paketu (EOP)
- EOP je indikováno 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 odpory jej udržují ve stavu J (klidový). Někdy může zkosení kvůli rozbočovačům přidat až jeden bitový čas před SE0 na konci paketu. Tento extra bit může také vést k „narušení bitových věcí“, pokud je šest bitů před ním v CRC 1 s. Tento bit by měl přijímač ignorovat.
- Reset sběrnice
- Sběrnice USB je resetována pomocí prodlouženého (10 až 20 milisekund) signálu SE0.
Vysokorychlostní vyjednávání
Při vyjednávání vysokorychlostního režimu s hostitelem nebo rozbočovačem se používá speciální protokol během resetu, nazývaný cvrlikání . Zařízení, které je schopné vysokorychlostního připojení, se nejprve připojí jako zařízení s plnou rychlostí (D+ vytaženo vysoko), ale po obdržení USB RESET (D+ a D -řízené LOW hostitelem po dobu 10 až 20 ms) vytáhne D -line vysoko, známý jako chirp K. To naznačuje hostiteli, že zařízení má velkou šířku pásma. Pokud je hostitel/rozbočovač také schopen HS, cvrliká (vrací střídavé stavy J a K na linkách D− a D+), čímž zařízení ví, že rozbočovač pracuje s velkou šířkou pásma. Zařízení musí přijmout nejméně tři sady KJ cvrlikání, než se změní na vysokorychlostní zakončení a začne vysokorychlostní signalizace. Protože SuperSpeed a dále používá kabeláž, která je oddělená a doplňková k tomu, kterou používaly dřívější režimy, není takové vyjednávání šířky pásma vyžadováno.
Tolerance hodin je 480,00 ± 0,24 Mbit/s, 12,00 ± 0,03 Mbit/s a 1,50 ± 0,18 Mbit/s.
USB 3.0
USB 3 používá pocínované měděné lankové AWG-28 kabely s Impedance 90 ± 7 Ω pro vysokorychlostní diferenciální páry. Elektrická signalizace využívá posuvný registr lineární zpětné vazby a kódování 8b/10b s taktováním rozprostřeného spektra , vysílané při nominálním 1 Voltu s prahem přijímače 100 mV; přijímač používá trénink ekvalizace. Záhlaví paketů jsou chráněna CRC-16, zatímco datová část je chráněna CRC-32. Lze použít výkon až 3,6 W. Jedno jednotkové zatížení v režimu Super Speed se rovná 150 mA.
Protokolová vrstva
Během komunikace USB jsou data přenášena jako pakety . Zpočátku jsou všechny pakety odesílány z hostitele prostřednictvím kořenového rozbočovače a případně dalších rozbočovačů do zařízení. Některé z těchto paketů směřují zařízení k odeslání některých paketů jako odpověď.
Po synchronizačním poli jsou všechny pakety vytvořeny z 8bitových bajtů, nejprve přeneseny nejméně významný bit . 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. (Bajt PID obsahuje nejvýše čtyři po sobě jdoucí 1 bity, a proto nikdy nepotřebuje bitové plnění , i když je kombinováno s posledním 1 bitem v synchronizačním bajtu. Koncové 1 bity v PID však mohou vyžadovat bitové plnění během prvních několika bitů užitečného zatížení.)
Typ | PID hodnota ( MSB -první) |
Přenášený bajt ( lsb -první) |
název | Popis |
---|---|---|---|---|
Rezervováno | 0000 | 0000 1111 | ||
Žeton | 1000 | 0001 1110 | ROZDĚLIT | Rozdělená transakce s vysokou šíř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 nízkou šířkou pásma |
Podání ruky | CHYBOVAT | Chyba rozdělení transakce (USB 2.0) | ||
0010 | 0100 1011 | ACK | Datový paket přijat | |
1010 | 0101 1010 | NAK | Datový paket není přijat; prosím odešlete znovu | |
0110 | 0110 1001 | NYET | Data ještě nejsou připravena (USB 2.0) | |
1110 | 0111 1000 | STÁNEK | Přenos nemožný; proveďte obnovu chyb | |
Žeton | 0001 | 1000 0111 | VEN | Adresa pro přenos z hostitele do zařízení |
1001 | 1001 0110 | V | Adresa pro přenos ze zařízení na hostitele | |
0101 | 1010 0101 | SOF | Začátek značky rámce (odesláno každou ms) | |
1101 | 1011 0100 | ZALOŽIT | Adresa pro přenos ovládání z hostitele do zařízení | |
Data | 0011 | 1100 0011 | DATA0 | Datový paket se sudým číslem |
1011 | 1101 0010 | DATA 1 | Lichý datový paket | |
0111 | 1110 0001 | DATA2 | Datový paket pro vysokorychlostní izochronní přenos (USB 2.0) | |
1111 | 1111 0000 | MDATA | Datový paket pro vysokorychlostní izochronní přenos (USB 2.0) |
Pakety se dodávají ve třech základních typech, každý s jiným formátem a CRC ( kontrola cyklické redundance ):
Pakety podání ruky
Pole | Synchronizace | PID | EOP |
---|---|---|---|
Bity | 8 | ||
Signál | KJ KJ KJ KK | XXXX XXXX | SE0 SE0 J |
Pakety handshake se skládají pouze z jednoho bajtu PID a jsou obvykle odesílány jako odpověď 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ěné formy. Tři základní typy jsou ACK , což znamená, že data byla úspěšně přijata; NAK , což znamená, že data nelze přijmout a měla by být opakována; a STALL , 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 inicializaci zařízení).
USB 2.0 přidal dva další pakety handshake: NYET a ERR . NYET označuje, že rozdělení transakce ještě není dokončeno, zatímco handshake ERR naznačuje, že rozdělení transakce selhalo. Druhým použitím paketu NYET je sdělit hostiteli, že zařízení přijalo datový paket, ale již nemůže přijmout kvůli plným vyrovnávací paměti. To umožňuje hostiteli přepnout na odesílání malých PING tokenů, aby se informoval o připravenosti zařízení, místo aby odeslal celý nechtěný DATA paket pouze k vyvolání NAK.
Jediný paket handshake, který může hostitel USB generovat, je ACK. Pokud není připraven přijímat data, neměl by dávat pokyn zařízení k odeslání.
Žetonové balíčky
Tokenové pakety se skládají z bajtu PID následovaného dvěma bajty užitečného zatížení: 11 bitů adresy a pětbitovým CRC. Tokeny odesílá pouze hostitel, nikdy ne zařízení. Níže jsou uvedeny tokeny přítomné z USB 1.0:
-
Tokeny IN a OUT obsahují sedmbitové číslo zařízení a číslo čtyřbitové funkce (pro multifunkční zařízení) a přikazují zařízení vysílat pakety DATAx nebo přijímat následující pakety DATAx.
- IN token očekává odpověď od zařízení. Odpovědí může být odpověď NAK nebo STALL nebo rámec DATAx . V druhém případě hostitel vydá ACK handshake, je -li to vhodné.
- Za OUT tokenem bezprostředně následuje rámec
USB 2.0 také přidalo PING token a větší tříbajtový SPLIT token :
- PING se zeptá zařízení, zda je připraveno přijímat pár paketů OUT/DATA. PING obvykle odesílá hostitel při dotazování zařízení, které v poslední době odpovědělo pomocí NAK nebo NYET. Tím se vyhnete potřebě odeslat velký datový paket na zařízení, o kterém má hostitel podezření, že ho nechce přijmout. Zařízení reaguje podle potřeby pomocí ACK, NAK nebo STALL.
- SPLIT se používá k provádění rozdělených transakcí. Spíše než spojit vysokorychlostní sběrnici USB odesílající data na pomalejší zařízení USB, nejbližší rozbočovač s velkou šířkou pásma přijímá token SPLIT následovaný jedním nebo dvěma pakety USB při vysoké šířce pásma, provádí přenos dat s plným nebo nízkým -bandwidth, a poskytuje odezvu při vysoké šířce pásma, když k tomu budete vyzváni druhým tokenem SPLIT. Obsahuje sedmbitové číslo rozbočovače, 12 bitů kontrolních příznaků a pětbitový CRC.
Pakety tokenů OUT, IN, SETUP a PING
Pole | Synchronizace | PID | ADDR | ENDP | CRC5 | EOP |
---|---|---|---|---|---|---|
Bity | 8 | 7 | 4 | 5 | ||
Signál | KJ KJ KJ KK | XXXX XXXX | XXXX XXX | XXXX | XXXXX | SE0 SE0 J |
- ADDR: Adresa zařízení USB (maximálně 127 zařízení).
- ENDP: Vyberte zdrojový hardware/vyrovnávací paměť koncového bodu v zařízení. (Např. PID OUT by byl pro odesílání dat z vyrovnávací paměti hostitelského zdroje 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 rámce
Pole | Synchronizace | PID | Číslo rámce | 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é hostitel pravidelně zvyšuje, aby koncovým bodům umožňovalo identifikovat začátek rámce (nebo mikroframe) a synchronizovat hodiny vnitřního koncového bodu s hodinami hostitele.
SSPLIT a CSPLIT: Zahájení rozdělení transakce a dokončení rozdělení transakce
Režim S/C | Pole | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0, SSPLIT | Synchronizace | PID | Adresa rozbočovače |
S/C | Číslo portu |
S | E | EP | CRC5 | EOP | |
1, CSPLIT | U | ||||||||||
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, Spustit nebo dokončit:
- 0, SSPLIT, Zahájit 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í plnou rychlostí
- Bit U, U je rezervovaný/nepoužitý a musí být vynulován (0 B)
- EP, Koncový bod: typ 00, ovládání; 01, isochronní; 10, volně ložený; a 11, přerušte.
Datové pakety
Pole | Synchronizace | PID | DATA | CRC16 | EOP |
---|---|---|---|---|---|
Bity | 8 | 0–8192 | 16 | ||
Signál | KJ KJ KJ KK | XXXX XXXX | (XXXX XXXX) × počet bajtů | XXXX XXXX XXXX XXXX | SE0 SE0 J |
Datový paket se skládá z PID následovaného 0–1 024 bajty datového obsahu (až 1024 bajtů pro vysokorychlostní zařízení, až 64 bajtů pro zařízení s vysokou rychlostí a nejvýše osm bajtů pro zařízení s nízkou rychlostí) a 16bitový CRC.
Existují dvě základní formy datových paketů, Data0 a DATA1 . Datovému paketu musí vždy předcházet token adresy a obvykle za ním následuje token handshake z přijímače zpět do vysílače. Dva typy paketů poskytují 1bitové pořadové číslo požadované ARQ stop-and-wait . 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 ztracena při přenosu nebo mohla být přijata, ale odpověď na podání ruky byla ztracena.
K vyřešení tohoto problému zařízení sleduje typ paketu DATAx, který naposledy přijalo. Pokud přijme další DATAx paket stejného typu, je potvrzen, ale ignorován jako duplikát. Ve skutečnosti je přijímán pouze paket DATAx opačného typu.
Pokud jsou data během přenosu nebo přijímání poškozena, kontrola CRC se nezdaří. Když k tomu dojde, přijímač nevygeneruje ACK, což způsobí, že odesílatel paket znovu odešle.
Když je zařízení resetováno pomocí paketu SETUP, očekává další 8bajtový paket DATA0.
USB 2.0 přidalo také typy paketů DATA2 a MDATA . Používají je pouze zařízení s velkou šířkou pásma provádějící vysokorychlostní izochronní přenosy, které musí přenášet více než 1024 bajtů na 125 µs mikrorám (8 192 kB/s).
PRE paket (říká rozbočovačům, aby se dočasně přepnuly do režimu nízké rychlosti)
Rozbočovač je schopen podporovat zařízení s malou šířkou pásma smíšená s jiným zařízením rychlosti prostřednictvím speciální hodnoty PID, PRE . To je vyžadováno, protože rozbočovač USB funguje jako velmi jednoduchý opakovač, který vysílá hostitelskou zprávu všem připojeným zařízením bez ohledu na to, zda byl paket pro něj nebo ne. To znamená, že v prostředí se smíšenou rychlostí existuje potenciální nebezpečí, že by nízká rychlost mohla nesprávně interpretovat signál vysoké nebo plné rychlosti od hostitele.
Aby se toto nebezpečí odstranilo, 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 s nízkorychlostním zařízením, 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 mohl odeslat jeden nízkorychlostní paket do zařízení s nízkou rychlostí. Poté, co je odeslán nízkorychlostní paket, signál konce paketu (EOP) řekne rozbočovači, aby znovu deaktivoval všechny výstupy na zařízení s nízkou rychlostí.
Protože všechny bajty PID obsahují čtyři 0 bitů, ponechávají sběrnici ve stavu K plné šířky pásma, což je stejné jako stav J s nízkou šířkou pásma. Po něm následuje krátká pauza, během níž rozbočovače umožňují výstupy s nízkou šířkou pásma, již nečinné ve stavu J. Poté následuje paket s malou šířkou pásma, počínaje synchronizační sekvencí a bajtem PID a končící krátkým obdobím SE0. Zařízení s plnou šířkou pásma jiná než rozbočovače mohou paket PRE a jeho obsah s nízkou šířkou pásma jednoduše ignorovat, dokud konečný SE0 neuvede, že následuje nový paket.
Preambule plné rychlosti, PRE | Nastavení rozbočovače umožňuje výstup na zařízení s nízkou rychlostí. |
Příklad paketu s nízkou rychlostí | Rozbočovač deaktivuje výstup na zařízení s nízkou rychlostí. |
|||||||
---|---|---|---|---|---|---|---|---|---|---|
Pole | Synchronizace | PID (PRE) | Synchronizace | 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 | SE0 SE0 J |
Transakce
OUT transakce
OUT transakce (celkem 3 pakety) | |||
---|---|---|---|
Hostitel | Hostitel | přístroj | |
Paket PID | VEN | DATAx | ACK |
Typ paketu | Žeton | Data | Podání ruky |
Popis | Řekněte zařízení na ADDRx, aby začalo poslouchat příchozí datový paket na koncovém bodu EPx. |
Sdělte zařízení USB data, která mu chcete odeslat. | Zařízení sděluje hostiteli, že úspěšně přijalo a načtilo datovou část do vyrovnávací paměti EPx. |
IN transakce
IN transakce (celkem 3 pakety) | |||
---|---|---|---|
Hostitel | přístroj | Hostitel | |
Paket PID | V | DATAx | ACK |
Typ paketu | Žeton | Data | Podání ruky |
Popis | Řekněte zařízení na ADDRx, aby odeslalo všechna data, která má ve své vyrovnávací paměti koncových bodů EPx. |
Zařízení zkontroluje vyrovnávací paměť koncového bodu EPx a odešle požadovaná data hostiteli. | Host umožňuje zařízení vědět, že úspěšně přijalo užitečné zatížení a nahrálo užitečné zatížení do své vyrovnávací paměti EPx. |
SETUP transakce
To se používá pro výčet zařízení a správu připojení a informuje zařízení, že hostitel by chtěl zahájit výměnu řídicího přenosu.
SETUP transakce (celkem 3 pakety) | |||
---|---|---|---|
Hostitel | Hostitel | přístroj | |
Paket PID | ZALOŽIT | DATA0 | ACK |
Typ paketu | Žeton | Data | Podání ruky |
Popis | Řekněte zařízení na ADDRx, aby zahájilo režim nastavení a bylo připraveno na datový paket. |
Odeslat do zařízení 8 bajtů dlouhý instalační paket. | Zařízení potvrdí příjem dat SETUP a aktualizuje svůj stavový automat. |
- V závislosti na instalačním paketu může dojít k volitelnému datovému paketu ze zařízení na hostitele nebo hostitele na zařízení.
Instalační paket
Instalační transakce přenáší do zařízení 8bajtový instalační paket. Instalační paket kóduje směr a délku následujících datových paketů.
Pole | Ofset | Bajty | Bity | Popis |
---|---|---|---|---|
bmRequestType | 0 | 1 | 0–4 |
Příjemce: Softwarová součást USB je adresována
|
5–6 |
Typ: Používá se s bRequest byte
|
|||
7 |
Směr:
|
|||
bŽádost | 1 | 1 |
Příkaz nastavení: Když je příjemce = 0 (zařízení) a typ = 0 (standardní), definované požadavky jsou:
|
|
wHodnota | 2 | 2 | Hodnota parametru: Interpretace závisí na bRequest | |
index | 4 | 2 | Sekundární parametr: Určuje rozhraní nebo koncový bod, kterému je adresován tento požadavek. Pro popisovače řetězců (Recipient = Device) je to kód jazyka. | |
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řenosu
Výměna řídicího přenosu se skládá ze tří odlišných fází:
- Fáze nastavení: Toto je instalační příkaz odeslaný hostitelem do zařízení.
- Datová fáze (volitelně): Zařízení může volitelně odesílat data v reakci na žádost o nastavení.
- Stavová fáze: Falešná IN nebo OUT transakce, která pravděpodobně slouží k označení konce výměny kontrolního přenosu.
To umožňuje hostiteli provádět akce správy sběrnice, jako je vyjmenovávání nových zařízení USB prostřednictvím načítání nových deskriptorů zařízení 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í pro určení správného ovladače USB pro zařízení.
Po načtení deskriptoru zařízení hostitel také provede další výměnu řídicího přenosu, ale místo toho nastaví adresu zařízení USB na nový ADDRx.
Reference
- ^ a b „USB 2.0's Real Deal“ , News & Trends, PC World , 28. února 2002, archivováno z originálu 5. prosince 2010
- ^ a b „Seagate FreeAgent GoFlex Ultra-přenosný“ (recenze). CNet. Archivovány od originálu dne 14. dubna 2011 . Vyvolány 22 May 2011 .
- ^ Schwarz, Rohde (2012-05-25). „Testování masky USB 2.0“ (PDF) . Citováno 2012-07-12 .
- ^ „NEC připraven ochutnat„ první na světě “čip řadiče USB 3.0“ . Archivovány od originálu dne 23. května 2009 . Citováno 15. června 2009 .
- ^ „Kdy se produkty USB 3.0 dostanou na trh?“ . Archivovány od originálu dne 30. dubna 2009 . Vyvolány 11 May 2009 .
- ^ „Myší věci, o kterých byste měli vědět“, Městský teror , 9. srpna 2008, archiv z originálu 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" . Beyond Logic.org. Archivovány od originálu dne 20. srpna 2007 . Citováno 25. srpna 2007 .
- ^ "Technické specifikace kabelů USB 3.0 SuperSpeed" . Archivovány od originálu dne 14. dubna 2011.
- ^ "Specifikace Universal Serial Bus 3.0, Rev 1.0 12. listopadu 2008" (PDF) . Archivováno (PDF) z originálu dne 13. listopadu 2013.
- ^ a b „USB Made Simple, část 3. Tok dat“ . usbmadesimple.co.uk . 2008. Archivováno od originálu dne 5. října 2014 . Citováno 17. srpna 2014 .
- ^ a b „USB v kostce, kapitola 3. Protokoly USB“ . beyondlogic.org . 17. září 2010. Archivováno od originálu dne 5. srpna 2014 . Citováno 17. srpna 2014 .
- ^ "Část 7, vysokorychlostní transakce: protokol Ping" . usbmadesimple.co.uk . 2008. Archivováno od originálu dne 3. října 2014 . Citováno 16. srpna 2014 .
- ^ "USB v ořechové skořápce" . Kapitola 4 - Typy koncových bodů. Archivovány od originálu dne 2. září 2014 . Citováno 5. září 2014 .
- ^ "Ladění běžných problémů s USB" . Archivovány od originálu dne 15. června 2013 . Citováno 5. června 2013 .