Hardware Reference
In-Depth Information
werden sogar bereits vom Basic Input/Output System (BIOS) des Computers
akzeptiert, noch bevor ein Betriebssystem gebootet wird. Das ist sehr nützlich, weil
sie damit im BIOS selbst verwendet werden können, wenn der Anwender z. B. Ein-
stellungen verändern möchte. In einer idealen Computerwelt würde dieses Erken-
nungsprinzip für USB-Geräte aller Klassen funktionieren - aber noch ist es nicht
soweit. Damit dieses Ziel jedoch prinzipiell erreichbar ist, hat das USB Implemen-
ters Forum (USB-IF) in gesonderten Dokumenten festgelegt, welche grundlegen-
den Funktionen die klassenspezifischen Schnittstellen der Geräte bereitstellen müs-
sen. Auf diese Weise können die Entwickler beider Seiten unabhängig voneinander
ihreSoftwareschreiben.DerEntwickleraufderComputerseite(Host)kannGeräte-
treiber und Anwendungsprogramme entwerfen, und der Entwickler des Geräts
(Device) kann den passenden USB-Treiber für seine Firmware erfinden, ohne dass
sich die beiden untereinander absprechen müssten. Jeder Entwickler muss sich
lediglich an die Vereinbarungen halten, die vom USB-IF im Device Class Document
festgeschrieben wurden. Im USB 2.0 Praxisbuch wird daher Folgendes geschrieben:
Nur wenn sich keine Klasse für die gewünschte Funktionalität finden lässt, sollte ein
Interface außerhalb der vorhandenen USB-Klassen definiert werden “[USB2.0Pra-
xisbuch: 9.4.4]. Der aktuelle Stand der Definition von Klassencodes kann unter
www.usb.org/developers/defined_class eingesehen werden. Eine direkte Zusam-
menarbeit zwischen Geräteanbietern, Betriebssystemanbietern und USB-IF ist
prinzipiell nur dann notwendig, wenn eine neue Geräteklasse eingeführt werden
soll. In der entsprechenden Klassendokumentation ist ersichtlich, wer hier zusam-
mengearbeitet hat, weil die Beteiligten namentlich erfasst sind. In diesem Buch geht
es nicht um dieses grundlegende Thema, deshalb soll an dieser Stelle lediglich in
tabellarischer Form ein Überblick über die Geräteklassen gegeben werden, die zum
Zeitpunkt des Schreibens dieses Buchs feststanden. Ausnahme ist die Test & Mea-
surement Class, die später vollständig beschrieben werden wird, denn sie ist ja der
Kern dieser Abhandlung. Die Auflistung der Geräteklassen muss zum besseren Ver-
ständnis mit einer kurzen Erklärung zu den Gerätecodes eingeleitet werden. Alle
USB-Geräte haben eins gemeinsam, den Device Descriptor. Hierbei handelt es sich
um eine Datensammlung, die grundlegende Informationen zum USB-Gerät ent-
hält. Der Device Descriptor wird vom Host gelesen, wenn er ein USB-Gerät detek-
tiert, weil es eingeschaltet oder angeschlossen wurde. Der Device Descriptor enthält
unter anderem drei aufeinanderfolgende Bytes mit den Datenfeldbezeichnungen
bDeviceClass, bDeviceSubClass und bDeviceProtocol. Die Daten in diesen drei
Feldern bilden zusammen die vollständige Klassifizierung eines Geräts, sofern
bDeviceClass nicht den Wert 0x00 hat. Hat bDevice Class den Wert 0x00, müssen
die beiden folgenden Datenfelder bDeviceSubClass und bDeviceProtocol diesen
ebenfalls haben. In diesem Fall erfolgt die Klassifizierung des Geräts nicht über den
Device Descriptor, sondern über die Interface Deskriptoren, andere Datensamm-
Search WWH ::




Custom Search