Standard USB (Universal Serial Bus) Jan Malinský ČVUT Praha, FEL, Katedra měření 38SS Str. 1 Jan Malinský, Katedra měření FEL ČVUT, Praha
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
Fyzická vrstva průřez kabelem Standard USB 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
Fyzická vrstva topologie strom Standard USB 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
Fyzická vrstva detekce rychlosti zařízení Low speed 38SS Str. 5 Jan Malinský, Katedra měření FEL ČVUT, Praha
Fyzická vrstva detekce rychlosti zařízení Full speed 38SS Str. 6 Jan Malinský, Katedra měření FEL ČVUT, Praha
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
Fyzická vrstva elektrický signál na sběrnici V OH (min) V IH (min) V IL (max) V OL (max) V ss rozdílová 1 (U D+ - U D- )>200mV; U D+ > U IH(min) rozdílová 0 (U D+ - U D- )<200mV; U D- < U IL(max) tvrdá 0 U D+ < U IL(max) ; U D- < U IL(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
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
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
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
Linková vrstva průběhy přenosů 38SS Str. 12 Jan Malinský, Katedra měření FEL ČVUT, Praha
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
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
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ů) PID (8 bitů) Číslo rámce (11 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
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
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
Linková vrstva pole tvořící pakety PID (8 bitů) LSB MSB PID0 PID1 PID2 PID3 PID0 PID1 PID2 PID3 ADDR (7 bitů) ENDP (4 bity) LSB MSB A0 A1 A2 A3 A4 A5 A6 LSB MSB E0 E1 E2 E3 MSB LSB MSB LSB DATA D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 byte N-1 byte N 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
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
Úloha ze cvičení (interpretace dat zachycených logickým analyzátorem na sběrnici USB Full Speed) 83.3 ns (FS 12Mb/s) Linková vrstva protokolu Fyzická vrstva protokolu Vodič D+ (FS) NRZI dekodér de bit stuffing Pole paketu Pakety Rámce 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 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 LSB 0x80 (SYNC) MSB LSB 8 bitů 8 bitů 0xA5 (PID = SOF) MSB LSB 6x log.1 11 bitů číslo rámce = 0x5FF Paket SOF (Start of frame) MSB LSB MSB CRC5 = 0x1A Rámec s pořadovým číslem 0x5FF EOP LSB 8 bitů 0x80 (SYNC) MSB Následující paket 1 ms 38SS Str. 20 Jan Malinský, Katedra měření FEL ČVUT, Praha
Koncové body (endpoints) Fyzické spojení Logické spojení HOST HOST D+ D- EP0 EP1 EP2 EP3 zařízení Multifunkční zařízení Scanner 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
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
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
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
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