Metody připojování periferií BI-MPP Přednáška 5
Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek ©2010,2011 ZS2011/12
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Agenda • USB 3.0 • USB On-The-Go • Deskriptory zařízení
BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
2
Literatura • Gook, M.: Hardwarová rozhraní – Průvodce programátora. Computer Press, Brno 2006. ISBN 80-251-1019-2 • Universal Serial Bus Specification 3.0, Revision 1.0, Listopad 2008 http://www.usb.org/developers/docs/usb_3 0_spec_092911.zip
BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
3
Univerzální sériová sběrnice (USB) • Byla vyvinuta pro připojení periferií jako náhrada za sériový a paralelní port • Ve verzi USB1.1 rychlostně pokrývala aplikační oblasti do potřeb audio přenosů • Potřeba přenášení videa a konkurence FireWire si vynutila verzi USB 2.0 s přenosovou rychlostí 480Mb/s • Nyní ve verzi USB3.0 • Dodatek On-The-Go dovoluje existenci embedded USB host zařízení BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
4
Charakteristika USB • Fyzické propojení USB zařízení má stromovou strukturu • Logicky je to sběrnice • Maximálně lze připojit 127 zařízení • Maximální vzdálenost pro přímé propojení mezi rozbočovači je daná délkou kabelu a je 5m, maximální vzdálenost od hostitelského počítače je 25m • Pro USB3.0 jsou definovány přenosové rychlosti 1.5Mb/s, 12Mb/s, 480Mb/s, 5Gb/s (oddělené linky) BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
5
Kabel USB 3.0 USB 2.0 data (1.5,12,480 Mb/s)
SuperSpeed (5Gb/s)
VBUS
VBUS
D+/D-
D+/D-
SSTX+/ SSTXSSRX+ /SSRX-
SSRX+ /SSRXSSTX+/ .SSTXGND
GND
1 2/3 4 5/6 7 8/9
červený bílý/zelený černý modrý/žlutý fialová/oranž.
10
BI-MPP Přednáška 5
VBUS D-/D+ GND SDP1-/SDP1+
Napájení +5V Datový nestíněný pár USB 2.0 Napájení 0V Datový stíněný pár SuperSpeed SDP1 stínění SDP2-/SDP2+ Datový stíněný pár SuperSpeed SDP2 stínění
Miroslav Skrbek ©2010,2011
6
Fyzické propojení vs. logické propojení Fyzické propojení
Logické propojení Počítač
Počítač Root Hub
Zařízení
Hub
Hub
Zařízení Zařízení
Zařízení 1
Zařízení 2
Zařízení 3
...
Zařízení N
Zařízení
Zařízení Zařízení
BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
7
USB On-The-Go • Dodatek k USB2.0 • Dovoluje zařízením stát se hostitelským počítačem • Protokol podporuje vzájemnou dohodu zařízení, kdo je hostitel a kdo zařízení • Dovoluje například kopírovat data z fotoaparátu na USB disk bez nutnosti počítače, tisk fotografií přímo z USB flashky, atd. • Dnes je On-The-Go řadič běžnou součástí některých typů mikropočítačů a embedded procesorů BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
8
Endpointy • Endpoint je koncový bod na USB zařízení, se kterým hostitelský počítač komunikuje • Endpoint je fyzicky hardwarově realizován a typicky obsahuje frontu pro příjem dat • Každé zařízení má povinný Endpoint 0, který se používá pro konfiguraci zařízení, ostatní endpointy tvoří rozhraní logických zařízení • Maximální počet Endpointů je 16 • Každý Endpoint má určen směr přenosu • Všechny Endpointy sdílejí společný komunikační kanál (USB kabel), číslo Endpointu je součástí komunikačního protokolu. BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
9
USB a PnP • USB zařízení jsou typu PnP (plug-andplay) • PnP informace o zařízení je uložena v deskriptorech a lze ji ze zařízení vyčíst speciálními konfiguračními požadavky (Requests) • Na základě PnP informací operační systém instaluje ovladače pro dané zařízení BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
10
Deskriptory USB zařízení • Identifikují zařízení – Jednoznačně VID a PID – Jako zařízení dané třídy
• Popisují zařízení z hlediska – Konfigurací (configuration) – Rozhraní (interface) – Endpointů
• Čtou se přes endpoint 0 – Bulk přenosem typu SETUP
• Request GetDescriptor BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
11
Typy deskriptorů • • • • •
DeviceDescriptor Configuration Descriptor Interface Descriptor EndPoint Descriptor Speciální typy – Popisující HUB – Popisující HID zařízení
BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
12
DeviceDescriptor typedef struct device_descr { byte bLength; byte bDescriptorType; word bcdUSB; byte bDeviceClass; byte bDeviceSubClass; byte bDeviceProtocol; byte bMaxPacketSize; word idVendor; word idProduct; word bcdDevice; byte iManufacturer; byte iProduct; byte iSerialNumber; byte bNumConfigurations; } device_descr_t;
BI-MPP Přednáška 5
// // // // // // // //
povinné pro všechny deskriptory verze USB třída zařízení podtřída zařízení typ protokolu velikost bufferu pro SETUP přenosy identifikátor výrobce identifikátor produktu
// // // //
index index index počet
string deskriptoru výrobce string descriptoru produktu string descriptoru ser. cisla konfigurací zařízení
Miroslav Skrbek ©2010,2011
13
VID a PID • VID (Vendor ID) je číslo, které jednoznačně identifikuje výrobce • PID (Produkt ID) je číslo, které jednoznačně identifikuje produkt daného výrobce • VID a PID se užívá pro vyhledání driveru pro konkrétní zařízení
BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
14
Class a SubClass zařízení • Class a SubClass jsou čísla, která určují druh zařízení (např. MassStorage Device, HID Device, apod.) • Zařízení, které udává třídu a podtřídu musí být s třídou těchto zařízení kompatibilní (standardizováno) • Pro zařízení v dané třídě fungují univerzální třídní ovladače a není potřeba ovladač pro konkrétní zařízení. • Typickým USB zařízením užívajícím třídní ovladače je MassStorage Device (USB klíčenka) BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
15
Indexy string deskriptorů • iManufacturer, iProduct a iSerialNumber jsou indexy (čísla) string deskriptorů. • String deskriptory obsahují textovou informaci v jednom nebo více jazycích popisující výrobce, produkt a sériové číslo. • Obsahy deskriptorů se zobrazují v os windows ve žluté bublině při zasunutí zařízení. BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
16
Configuration Descriptor typedef struct config_descriptor { byte bLength; byte bDescriptorType; word wTotalLength;
byte bNumInterface; byte bConfigurationValue; byte iConfiguration; byte bmAttributes; byte bMaxPower;
// // // // // // // // // //
celková délka včetně interface deskriptorů, které následují počet interface deskriptorů konfigurační hodnota index string deskr. Popisujici konfiguraci atributy konfigurace maximální odběr zařízení v dané konfiguraci v mA
} config_descriptor_t;
BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
17
Konfigurační deskriptor • Popisuje konfiguraci zařízení. Různé konfigurace se mohou lišit ve spotřebě, zapnutí určitých funkcionalit zařízení, různé velikosti bufferů na interfacech apod. • Konfiguračních deskriptorů může být více, podle počtu možných konfigurací • V daném okamžiku je aktivní pouze jedna konfigurace a vybírá se USB requestem na základě hodnoty v položce bConfigurationValue. BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
18
Interface Descriptor a Endpoint Descriptor typedef struct interf_descriptor { byte bLength; byte bDescriptorType; byte bInterfaceNumber; byte bAlternateSetting; byte bNumEndpoints; byte bInterfaceClass; byte bInterfaceSubClass; byte bInterfaceProtocol; byte iInterface; } interf_descriptor_t; typedef struct endpoint_descriptor { byte bLength; byte bDescriptorType; byte bEndpointAddress; byte bmAttributes; word wMaxPacketSize; byte bInterval; } endpoint_descriptor_t; BI-MPP Přednáška 5
Miroslav Skrbek ©2010,2011
19