24
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

USB Universal Serial Bus – univerz ální sériová sběrnice USB Implementers Forum – definice průmyslového standardu

  • Upload
    donald

  • View
    47

  • Download
    4

Embed Size (px)

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 Presentation

Citation preview

Page 1: USB Universal Serial Bus – univerz ální sériová sběrnice  USB Implementers Forum – definice průmyslového standardu

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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