usb universal serial bus – univerz ální sériová sběrnice usb implementers forum – definice...
DESCRIPTION
USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu specifikace se zabývá mechanickou, elektrickou, spojovou a transportní vrstvou a komunikačním protokolem tři verze: 1.0, 1.1, 2.0 zdarma dostupné, nepatří mezi IEEE - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/1.jpg)
1
USB• Universal Serial Bus – univerzální sériová sběrnice• USB Implementers Forum – definice průmyslového standardu• specifikace se zabývá mechanickou, elektrickou, spojovou a transportní vrstvou a komunikačním protokolem• tři verze: 1.0, 1.1, 2.0• zdarma dostupné, nepatří mezi IEEE• www.usb.org• smrz.chrudim.cz/usb/usbspec.zip
![Page 2: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/2.jpg)
2
Vlastnosti USB• sériová poloduplexní sběrnice• 1,5 Mbaud (low speed), 12Mbaud (full speed), 480Mbaud (high-speed USB 2.0)• diferenciální vedení, galvanické spojení s napájením (Vbus) a zemí (GND)• zařízení mohou být napájena přes Vbus a GND, I<500mA, nutný sleep mode• linková vrstva používá NRZI kanálové kódování a bit stuffing• pakety chráněny cyklickou redundantní kontrolou CRC16 nebo CRC5• spojení hostitele (host, hub) a zařízení (device)• de facto se nejedná o sběrnici, ale o propojení PTP (point-to-point)• síťová topologie stromového typu, v každém uzlu přepínač (switch, zván hub) • z pohledu transportní vrstvy se vše jeví jako roury mezi odesílatelem a příjemcem• zařízení max. 16 rour (pipe)• enumerace – počáteční vyjednávání, Plug and Play• max. 127 zařízení připojitelných ke kořenovému přepínači
![Page 3: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/3.jpg)
3
Elektrická vrstva• nositelem informace je rozdíl napětí mezi vodiči D+ a D-• volba low-speed a full-speed se děje pull-up rezistorempull up D+ pull up D-
low-speed - 1,5k
full-speed 1,5k -
D+ D- počáteční stav D+
low-speed 0V 3,3V 0
full-speed 3,3V 0V 1
![Page 4: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/4.jpg)
4
Elektrická vrstva
Impedanční přizpůsobení
Galvanické spojení D+, D-, Vbus, GND
![Page 5: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/5.jpg)
5
Kanálové kódování• NRZI – Non-Return to Zero Invert• lidsky: odesíláš-li nulu, invertuj linku• sousední úrovně se liší: logická 0• sousední úrovně jsou stejné: logická 1
![Page 6: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/6.jpg)
6
Bit stuffing – bitová výplň• po šesti jedničkách dat musí přijít nula• zabraňuje klidu na lince (1 se v NRZI kóduje jako neaktivita)
![Page 7: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/7.jpg)
7
SYNC – synchronizace na začátku paketu• před začátkem paketu je linka v klidovém stavu (log. 1)• start paketu začíná odesláním bytu 0x80 (LSb first)• 0x80 (LSb first 0000 0001) po provedení NRZI je 1010 1011• tím se synchronizují hodiny vysílače a přijímače
![Page 8: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/8.jpg)
8
End of Packet – konec paketu• vysílač musí dát přijímači jasně najevo, že končí přenos• signalizace musí být jednoznačná• nesmí se předpokládat porozumění datům (tím by se porušila vrstvená hierarchie)• EOP = na obou linkách je elektricky zem (GND)
![Page 9: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/9.jpg)
9
Řazení proudových filtrů• na každou operaci s daty máme bitový proudový filtr
serializer bit stuffing NRZI zesilovač
invertor
EOP
D+
D-
CRC16
Vysílač
deserializerbit unstuffingdeNRZIZesilovač
komparátorEOP CRC16
D+
D-
čistá
data
CRC OKPřijímač
![Page 10: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/10.jpg)
10
Souhrn a porovnání• zatím se USB jeví jako sériová linka• používá dva kroucené vodiče D+ a D-• přidává kanálové kódování NRZI a bit stuffing• dovede přenést neomezený počet bitů• start bit je nahrazen sekvencí 0x80• stop bit je nahrazen EOP signálem (SE0 – single ended 0)• nemáme vyřešen směr komunikace a přepínání• zatím nemáme prostředek, jak oddělit data od příkazů• musíme ještě definovat protokol (příkazy)
![Page 11: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/11.jpg)
11
Obecný formát paketu• pakety dělíme na 16 druhů, nejdůležitější jsou:• DATA – přenos dat• IN, OUT – řízení směru komunikace• SETUP – podobné jako OUT, následující data jsou příkaz• ACK, NAK – handshake pakety pro vzájemné potvrzováníTyp paketu je určen číslem PID (Packet IDentifier).Komunikace je řízená hostitelem. Zařízení odesílá data pouze po výslovné žádosti hostitele (IN paket).
![Page 12: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/12.jpg)
12
Datový paketSYNC
0x80
PID
0x4B
DATA CRC16
2 byty
EOP
(SE0)
SYNC
0x80
PID ADRESA
7 bitů
CRC5
5 bitů
EOP
(SE0)
IN, OUT, SETUPENDPOINT
4 bity
SYNC
0x80
PID
0xD2
EOP
(SE0)
ACK, NAK
![Page 13: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/13.jpg)
13
CRC 16• Cyklická redundantní kontrola• generuje se z čistých dat pomocí posuvného registru• vznikne-li v datech kumulovaná chyba (16 bit), je odhalena• má-li vzniknout neodhalitelná chyba, musí být poruchy v určitém vztahu, což je u náhodných jevů nepravděpodobné
![Page 14: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/14.jpg)
14
CRC 16• posuvný registr má délku 16 bitů a počáteční hodnotu 0• generující polynom je binární číslo o stejné délce jako registr• jednička se nasouvá zleva do registru• pokud je datový bit a vysunutý bit shodný, provede se XOR generujícího polynomu a registru• CRC spočítaný z dat a správného CRC je konstantní!
var crc:word; {pocatecni hodnota je 0}procedure crcpipe(bit:byte);var lsb:byte;begin
lsb:=crc and 1;crc:=(crc shr 1) or $8000;if lsb=bit then crc:=crc xor $A001;
end;
![Page 15: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/15.jpg)
15
Konečná délka přenosu• stále řešíme stejný problém – MTU (maximum transfer unit)• připravíme si čistá data do bufferu a chceme je přenést na druhý konec linky• opatříme data začátkem, koncem a eventuelně potvrzením správého přenosu (handshake)• nutnost rozdělit data na menší části, protože médium není ochotno velké kusy přenést• po rozdělení na menší části musíme každou z nich též opatřit začátkem, koncem a potvrzením
![Page 16: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/16.jpg)
16
Konečná délka přenosu• koncové signály musejí být jednoznačné (jako je EOP)• malé části – pakety, obsahují začátek (SYNC), konec (SE0) a potvrzení (ACK packet od příjemce)• pakety mají MTU 8, 16, 32, 64 až 4096 bytů• velké části – transakce – po jejich ukončení jsou data od odesílatele úspěšně přenesena k příjemci v původní podobě• transakce iniciují prvním OUT nebo IN paketem nebo též SETUP paketem• transakce se ukončují DATA paketem bez dat
![Page 17: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/17.jpg)
17
Přenos paketu a jeho potvrzení
![Page 18: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/18.jpg)
18
Transakce• setup stage – žádost o data (SETUP vs. SYNC 0x80)• data stage – přenos dat (konec při data<MTU vs. EOP)• status stage – potvrzení (zero DATA vs. ACK)
![Page 19: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/19.jpg)
19
Příkazy• Get Descriptor – vyčtení informací o zařízení• Set Address – nastavení adresy zařízení• Set Configuration – volba jedné z více konfigurací• Set Interface – výběr rozhraní (složené z rour endpointů)• třídně specifické požadavky (HID, Mass Storage, …)
![Page 20: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/20.jpg)
20
Deskriptory• Device Descriptor – základní údaje o zařízení, verzi protokolu• Configuration Descriptor – kolik má zařízení možných konfigurací (napájené z Vbus, externě)• Interface Descriptor – různá rozhraní• Endpoint Descriptor – více rour k cílové aplikaci2 endpointy – levé a pravé sluchátko2 interface – sluchátka nebo reproduktory2 konfigurace – provoz z baterie nebo ze sítě
![Page 21: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/21.jpg)
21
Hierarchie deskriptorů• při žádosti o Configuration descriptor se vrátí celý podstrom prohledaný do hloubky
![Page 22: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/22.jpg)
22
Enumerace• inicializace po připojení zařízení k počítači• vyčte se prvních 8 bytů Device Descriptoru• provede se reset (SE0 po dobu 10ms)• nastaví se adresa zařízení (Set Address)• provede se vyčtení celého Device Descriptoru• následuje čtení Configuration Descriptoru (prvních 8 bytů)• hostitel přečte celý Configuration Descriptor
![Page 23: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/23.jpg)
23
Hostitel ZařízeníSETUP packetsync 2d 00 10 eopDATA0 packet - Get Device Descriptor requestsync c3 80 06 00 01 00 00 40 00 dd 94 eop
ACKsync d2 eop
IN packetsync 69 00 10 eop
DATA1 packet - Device Descriptorsync 4b 12 01 00 01 00 00 00 08 13 e7 eop
ACKsync d2 eopOUT packetsync e1 00 10 eopDATA1 packet - Transaction Completesync 4b 00 00 eop
ACKsync d2 eop
![Page 24: USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu](https://reader035.vdocuments.pub/reader035/viewer/2022062814/56816867550346895ddecdf4/html5/thumbnails/24.jpg)
24
Shrnutí• USB poskytuje dostatečný rozptyl rychlostí (1,5Mbaud až 480MBaud)• data jsou chráněna proti rušení (diferenciální vedení, CRC)• nativně PnP, power management, variabilita interface• největší přínos je PnP a 5V napájení• téměř žádná z vymožeností se nepoužívá• nesnadná implementace, drahé převodníky• overhead, přílišný počet Deskriptorů• inženýrská ignorance, USB se degraduje na sériovou linku