Standard USB
Standard USB (Universal Serial Bus)
Jan Malinský ČVUT Praha, FEL, Katedra měření 38SS
Str. 1
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Základní vlastnosti USB: sériové rozhraní přenosové rychlosti (včetně režijních bitů) jsou: • 1,5 Mb /s (Low speed) – USB v.1.1 (délka kabelu 3m) • 12 Mb /s (Full speed) – USB v.1.1 (délka kabelu 5m) • 480 Mb /s (High speed) – USB v.2.0 (délka kabelu 5m)
možnost napájení zařízení přímo z USB konektoru až 127 zařízení plug & play
38SS
Str. 2
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Fyzická vrstva – průřez kabelem
diferenciální sběrnice D+ a D- (odolnost proti souhlasnému rušení) napájecí vodiče
38SS
Str. 3
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Fyzická vrstva – topologie strom
přístupová metoda – výzva (polling) od hostitele rozbočovač – rozšíření sběrnice o další přípojné body až do 5 vrstev u USB v 1.1 nebo až 7 vrstev u USB 2.0 38SS
Str. 4
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Fyzická vrstva – detekce rychlosti zařízení Low speed
38SS
Str. 5
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Fyzická vrstva – detekce rychlosti zařízení Full speed
38SS
Str. 6
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Fyzická vrstva – detekce rychlosti zařízení High speed Hardwarová detekce stejná jako u Full speed High speed zařízení zpočátku pracuje jako Full speed Přepnutí do režimu High speed se děje softwarově
38SS
Str. 7
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Fyzická vrstva –elektrický signál na sběrnici
VOH(min) VIH(min) VIL(max) VOL(max) Vss
rozdílová 1 (UD+ - UD-)>200mV; UD+ > UIH(min) rozdílová 0 (UD+ - UD-)<200mV; UD- < UIL(max) “tvrdá” 0 UD+ < UIL(max) ; UD- < UIL(max) logická 1 (stav J) = rozdílová 1 (FS); = rozdílová 0 (LS) logická 0 (stav K) = rozdílová 0 (FS); = rozdílová 1 (LS)
38SS
Str. 8
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Fyzická vrstva –stavy na sběrnici datová logická 1 (tzv. stav J) = rozdílová 1 (FS); = rozdílová 0 (LS) datová logická 0 (tzv. stav K) = rozdílová 0 (FS); = rozdílová 1 (LS) Klidový stav sběrnice – budiče v stavu high Z, je udržován stav J pomocí rezistorů (viz. slide detekce rychlosti zařízení) Počátek paketu (SOP) – přechod z klidového stavu do stavu K Konec paketu (EOP) – stav SE0 – „tvrdá“ nula (po dobu 2 bity) a následně stav K (po dobu 1bit) Odpojení zařízení – host detekuje stavu SE0 nejméně po dobu 2,5ms (doba trvání jednoho bitu je 83,3ns – FS 12Mb/s) Připojení zařízení – host detekuje klidový stav nejméně po dobu 2ms Reset zařízení – host zaručí stav SE0 po dobu nejméně 10ms
38SS
Str. 9
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Fyzická vrstva – úprava dat před vysláním na sběrnici vkládaní bitů (bitstufing) – po šesti po sobě jdoucích log. 1 je vložena jedna log. 0 NRZI kódování – každá log. 0 způsobí změnu stavu na sběrnici (J na K nebo opačně podle toho v jakém předchozím stavu sběrnice byla); log.1 zachová stav na sběrnici z předchozího bitu
38SS
Str. 10
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Linková vrstva – rámec
periodické opakování časových rámců (LS, FS - 1ms, HS – 125ms) informace se přenášejí v tzv. paketech na počátku každého rámce je vždy speciální paket SOF (start of frame) řazení paketů v rámci není přesně dáno – určuje ho hostitel podle typu přenosu 38SS
Str. 11
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Linková vrstva – průběhy přenosů
38SS
Str. 12
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Typy přenosů Řídící přenosy (control) • konfigurace zařízení hostitelem (max. 10% rámce) • potvrzovaný přenos • např. požadavek na změnu adresy setAddress Časované přenosy dat (Interupt) • až 90% rámce • pro potřebu častého dotazování • potvrzovaný přenos • přenos malého objemu dat s vysokou prioritou • klávesnice, myš
38SS
Str. 13
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Typy přenosů Izochronní přenosy (izochronous) • nepotvrzovaný přenos • až 90% rámce • Pro přenos dat v reálném čase bez nároku na zabezpečení přenosu • Pro přenos obrazu, zvuku
Přenos objemných dat (Bulk) • potvrzováno přijetí, popř. je přenos datového paketu opakován • přenáší se pouze pokud zbývá v rámci místo (malá priorita) • není zaručeno zpoždění s jakým budou data doručena • Přenos dat bez velkých nároků na rychlost, ale s požadavkem na zabezpečení vůči chybám • např. pro scanner, tiskárnu 38SS
Str. 14
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Linková vrstva – pověřovací pakety (SOF, IN, OUT, SETUP) Pověřovací paket SOF (start of frame) – oznamuje začátek rámce (32bitů) SYNC (8 bitů)
Číslo rámce (11 bitů)
PID (8 bitů)
CRC5 (5 bitů)
Pověřovací paket – IN, OUT, SETUP (32 bitů) SYNC (8 bitů)
PID (8 bitů)
ADDR (7 bitů)
ENDP (4 bitů)
CRC5 (5 bitů)
Pověřovací pakety vysílá pouze hostitel Paket SOF oznamuje začátek rámce, číslo rámce (PID = 0xA5), Paket OUT – hostitel oznamuje zařízení (ADDR-127, ENDP–16(FS)3(LS)), že mu v následujícím paketu pošle data – datový paket Paket IN – hostitel si tímto vyžádá data od zařízení Paket SETUP – oznámení o vysílání konfiguračních dat od hostitele v následujícím paketu 38SS
Str. 15
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Linková vrstva – datové pakety (DATA0, DATA1) Datový paket – DATA0, DATA1 (32 – 1055 bitů) SYNC (8 bitů)
PID (8 bitů)
DATA (0 -1023 B)
CRC16 (16 bitů)
Datové pakety může vysílat host i zařízení zaleží na předchozím pověřovacím paketu Paket DATA0 (PID = 0xC3) - sudý datový paket Paket DATA1 (PID = 0x4B) – lichý datový paket V případě vysílání více datových paketu za sebou dochází ke střídání DATA0 a DATA1
38SS
Str. 16
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Linková vrstva – potvrzovací pakety (ACK, NAK, STALL) Potvrzovací paket – ACK, NAK, STALL (16 bitů) SYNC (8 bitů)
PID (8 bitů)
Paket ACK (PID = 0xD2) značí kladné potvrzení může vysílat hostitel i zařízení záleží na počátečním pověřovacím paketu (SETUP, IN, OUT) Paket NAK (PID = 0x5A) značí zápornou odpověď, posílá ji zařízení jenž nemohlo přijmout data poslaná hostitelem nebo není schopno data hostiteli poslat
38SS
Str. 17
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Linková vrstva – pole tvořící pakety LSB
PID (8 bitů)
PID0
MSB PID1
PID2
PID3
PID0
PID1
LSB
ADDR (7 bitů)
A0
DATA
E0
PID3
MSB A1
A2
A3
A4
A5
A6
MSB
LSB
ENDP (4 bity)
PID2
E1
E2
MSB
LSB
D5 D6 D7
E3
MSB
D0 D1 D2 D3 D4 D5 D6 D7
byte N-1
byte N
LSB D0 D1 D2
byte N+1
Každé z polí je přenášeno od LSB směrem MSB !!! 38SS
Str. 18
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Linková vrstva – synchronizační pole SYNC Povinné první pole každého paketu Hodnota 0x80 Vyšle se od LSB tj. 0000 0001 Po NRZI kódování se ve skutečnosti na sběrnici vyšle K J K J K J K K Střídání stavu J a K s frekvencí bitových hodin Synchronizační účel
38SS
Str. 19
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Úloha ze cvičení (interpretace dat zachycených logickým analyzátorem na sběrnici USB – Full Speed)
Vodič D+ (FS) NRZI dekodér
Idle
K J K J K J K K K J J K J J K K K K K K K J J J J J K K J J K K K SE0 J Idle K J K J K J K K
0 0 0 0 0 0 0 1 1 01 0 0 1 0 1 1 11 1 1 0 1 1 1 1 0 1 0 1 0 1 1
1
0 0 00 0 0 0 1
1
0 0 00 0 0 0 1
Pakety
Rámce
číslo rámce = 0x5FF
CRC5 = 0x1A
LSB
11 bitů
MSB
MSB LSB
8 bitů 0xA5 (PID = SOF)
MSB LSB
8 bitů 0x80 (SYNC)
MSB LSB
Pole paketu
0 0 0 0 0 0 0 1 1 01 0 0 1 0 1 1 11 1 1 0 1 1 1 1 0 1 0 1 0 1 1
EOP
8 bitů 0x80 (SYNC)
MSB
6x log.1 de bit stuffing
LSB
Linková vrstva protokolu Fyzická vrstva protokolu
83.3 ns (FS 12Mb/s)
Následující paket
Paket SOF (Start of frame)
Rámec s pořadovým číslem 0x5FF 1 ms
38SS
Str. 20
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Koncové body (endpoints) Fyzické spojení
Logické spojení
HOST
D+
D-
zařízení
HOST
EP0
EP1
Multifunkční Scanner zařízení
EP2
EP3
Tiskárna
Fax
Jedno fyzické spojení může mít více logických spojení (pipe) Endpoint 0 je povinný pro všechna zařízení – probíhají přes něj řídící přenosy LS zařízení max. 3 koncové body FS zařízení max. 16 koncových bodů 38SS
Str. 21
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Základní deskriptory (popis zařízení)
Deskriptor zařízení (Device Descriptor) – 14 položek • Je pouze jeden • Základní informace o zařízení a použité specifikaci USB, podle které se zařízení chová • Identifikace výrobce a výrobku – na základě těchto informací vybírá operační systém vhodný ovladač • Velikost paměti brány 0 (min 8B a max 64B) – host se podle toho musí přizpůsobit • Počet možných konfigurací zařízení • Je vyčítán Hostitelem jako první při připojení zařízení Deskriptor konfigurace (Configuration Descriptor) – 9 položek • Každé zařízení může mít více konfigurací • Informace o režimu napájení, max. velikosti odebíraného proudu 38SS
Str. 22
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Základní deskriptory (popis zařízení)
Deskriptor rozhraní (Interface Descriptor) – 9 položek • Popisuje rozdělení bran pro jednu funkci zařízení (tiskárna, fax, scanner) • Informace o počtu koncových bodů (endpoints) patřícím k rozhraní • Každý koncový bod patří pouze k jednomu rozhraní, vyjma endpoint 0 – ten patří celému zařízení Deskriptor koncového bodu (Endpoint Descriptor) – 7 položek • Určuje typ přenosu • Velikost paměti koncového bodu
38SS
Str. 23
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Enumerace zařízení
host nebo hub detekuje připojené zařízení sledováním stavu na vodičích D+ (FS, HS) a D- (LS) hub informuje host, že je připojeno nové zařízení na port host tento port aktivuje a resetuje zařízení má dočastně adresu 0 se kterou komunikuje host si přečte deskriptor zařízení (device descriptor) – požadavek GET_DESCRIPTOR host přiřadí zařízení unikátní adresu (požadavek SET_ADDRESS) host vyčte ostatní deskriptory
38SS
Str. 24
Jan Malinský, Katedra měření FEL ČVUT, Praha
Standard USB
Požadavek nastavení unikátní adresy nově připojenému zařízení Řídící přenos přes endpoint 0 Formát dalších požadavku je možno nalézt ve specifikaci
38SS
Str. 25
Jan Malinský, Katedra měření FEL ČVUT, Praha