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í

Příklad paketu negativního potvrzení přenášeného zařízením USB 1.1 s plnou rychlostí, když již není možné číst žádná data. Skládá se z následujících polí: synchronizační bajt hodin, typ paketu a konec paketu. Datové pakety by měly více informací mezi typem paketu a koncem paketu.
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í.)

USB PID bajty
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
    DATAx . Zařízení podle potřeby reaguje pomocí ACK, NAK, NYET nebo STALL.
  • SETUP funguje podobně jako OUT token, ale slouží k počátečnímu nastavení zařízení. Za ním následuje osmibajtový rámec DATA0 se standardizovaným formátem.
  • SOF (začátek rámce) Hostitel USB vysílá každou milisekundu (12 000 bitových časů plné šířky pásma) speciální token SOF (začátek rámce), který obsahuje 11bitové přírůstkové číslo rámce místo adresy zařízení. To se používá k synchronizaci isochronních a přerušení datových přenosů. Vysokorychlostní zařízení USB 2.0 přijímají sedm dalších tokenů SOF na snímek, přičemž každé zavádí 125 µs „mikroframe“ (60000 bitů šířky pásma, každý bit krát).
  • 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
    0 = Zařízení
    1 = Rozhraní
    2 = koncový bod
    3 = Ostatní
    4–31 (rezervováno)
    5–6 Typ: Používá se s bRequest byte
    0 = standardní (podporováno všemi zařízeními USB)
    1 = třída (závisí na třídě zařízení USB)
    2 = Prodejce
    3 (vyhrazeno)
    7 Směr:
    0 = hostitel do zařízení nebo žádný přenos dat (wLength == 0)
    1 = Zařízení k hostování (wLength> 0 bajtů stavu vráceno)
    bŽádost 1 1 Příkaz nastavení: Když je příjemce = 0 (zařízení) a typ = 0 (standardní), definované požadavky jsou:
    0 = GET_STATUS (čtení 2 bajtů)
    1 = CLEAR_FEATURE (0 bajtů; funkce vybraná wValue)
    3 = SET_FEATURE (0 bytů; funkce vybraná wValue)
    5 = SET_ADDRESS (0 bajtů; adresa ve wValue)
    6 = GET_DESCRIPTOR (wLength-byte read; deskriptor type & index in wValue)
    7 = SET_DESCRIPTOR (w délka-byte zápis; typ deskriptoru a index ve wValue)
    8 = GET_CONFIGURATION (čtení 1 bajtů)
    9 = SET_CONFIGURATION (0 bytů; konfigurace zvolená wValue)
    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

    1. ^ a b „USB 2.0's Real Deal“ , News & Trends, PC World , 28. února 2002, archivováno z originálu 5. prosince 2010
    2. ^ a b „Seagate FreeAgent GoFlex Ultra-přenosný“ (recenze). CNet. Archivovány od originálu dne 14. dubna 2011 . Vyvolány 22 May 2011 .
    3. ^ Schwarz, Rohde (2012-05-25). „Testování masky USB 2.0“ (PDF) . Citováno 2012-07-12 .
    4. ^ „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 .
    5. ^ „Kdy se produkty USB 3.0 dostanou na trh?“ . Archivovány od originálu dne 30. dubna 2009 . Vyvolány 11 May 2009 .
    6. ^ „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
    7. ^ OS dev - Universal Serial Bus , 1. února 2011, archivováno z původního dne 5. září 2012
    8. ^ "USB v kostce - Kapitola 2 - Hardware" . Beyond Logic.org. Archivovány od originálu dne 20. srpna 2007 . Citováno 25. srpna 2007 .
    9. ^ "Technické specifikace kabelů USB 3.0 SuperSpeed" . Archivovány od originálu dne 14. dubna 2011.
    10. ^ "Specifikace Universal Serial Bus 3.0, Rev 1.0 12. listopadu 2008" (PDF) . Archivováno (PDF) z originálu dne 13. listopadu 2013.
    11. ^ 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 .
    12. ^ 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 .
    13. ^ "Část 7, vysokorychlostní transakce: protokol Ping" . usbmadesimple.co.uk . 2008. Archivováno od originálu dne 3. října 2014 . Citováno 16. srpna 2014 .
    14. ^ "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 .
    15. ^ "Ladění běžných problémů s USB" . Archivovány od originálu dne 15. června 2013 . Citováno 5. června 2013 .