USB 2.0: Highspeed mit 480 MBit/s

Neu: Gerätekonfiguration

Im Zuge eines Connect-Ereignisses erkennt der Hub neu angeschlossene USB-Hardware und registriert deren Geschwindigkeitsklasse. Die weitere Identifikation und Konfiguration übernimmt die Host-Software.

Während der Geräteeinrichtung durchläuft das Setup mehrere Phasen: Den Beginn der Kommunikation zwischen Host und Gerät (in der USB-Nomenklatur auch Function genannt) markieren die von der Hostsoftware gesandten Kommandos Port_Enable und Port_Reset. Das USB-Gerät befindet sich danach im so genannten "default state". Das heißt, es ist Teil des Bussystems und wird über dieses mit einem maximalen Strom von 100 mA versorgt. Anschließend weist der Host der Function eine eindeutige Geräteadresse zu und bewegt das Gerät in den "address state" genannten Zustand. Im nächsten Schritt fragt der Host den allen USB-Geräten eigenen 18 Byte großen Device Descriptor ab.

Die Geschwindigkeitsklasse des Devices dokumentiert der Eintrag bcdUSB. Bei zu USB 2.0 konformen Geräten beträgt sein Wert 0200h oder höher. Anhand der im Device Descriptor enthaltenen Angaben versucht die Host-Software einen geeigneten Gerätetreiber auszuwählen.

Device Descriptor

Offset

Feldbezeichnung

Länge (Byte)

Beschreibung

0

bLength

1

Größe des Descriptors in Byte

1

bDescriptorTyp

1

Descriptortyp

2

bcdUSB

2

Version der USB-Spezifikation

4

bDeviceClass

1

Klassen-Code

5

bDeviceSubClass

1

Subklassen- Code

6

bDeviceProtocol

1

Protokoll-Code

7

bMaxPacketSize0

1

Tiefe EP0-FIFO in Byte

8

idVendor

2

Vendor-ID des Herstellers

10

idProduct

2

Produkt-ID

12

bcdDevice

2

Release-Nummer des Produkts

14

iManufacturer

1

String-Index für Hersteller

15

iProduct

1

String-Index für Produkt

16

iSerialNumber

1

String-Index für Seriennummer

17

bNumConfigurations

1

Zahl möglicher Konfigurationen

Der Host liest anschließend alle im Device Descriptor festgelegten Gerätekonfigurationen ein. Abhängig von der Bandbreitenausnutzung und der Stromaufnahme der Function weist ihr der Host eine dieser Konfigurationen zu. Dann erhebt der Host das Gerät in den "configured state". Sofern das Gerät keine eigene Stromversorgung besitzt, kann es bis zu 500 mA über den Bus aufnehmen.