Hardware Reference
In-Depth Information
Adressen in lokalen Netzwerken vergeben werden, kann man machen, was man
will. Kaufen muss man sie erst, wenn die Produkte Zugang zum World Wide Web
haben könnten. Im Beispielgerät dieses Buchs ist die Vendor ID deshalb im über-
schreibbaren, aber nichtflüchtigen EEPROM-Speicherbereich abgelegt, und es gibt
eine einfache Methode, die Vendor ID nach Belieben zu ändern. Dasselbe trifft
nebenbei auch auf die Produkt-Identifikationsnummer (PID) und die Geräte BCD-
Nummer (Device BCD) zu. Zunächst wird als VID ein Wert eingetragen, der laut
aktueller Liste des USB-IF nicht verkauft ist. Das traf beim Verfassen dieses Buchs
auf die VID 0x0123 zu. Ebenfalls werkseitig voreingestellt sind die Produkt-Identi-
fikationsnummer 456 und die Gerätenummer 789. Auch die drei String-Deskrip-
toren, für die im Device Descriptor Indexadressen eingetragen sind, liefern die
werkseitige Grundeinstellung mit „Manufacturer“ als Herstellername, „Product“ als
Produktbezeichnung und „SerialNumber“ als Seriennummer des Geräts. Alle diese
Einträge lassen sich kundenspezifisch verändern, wie später in Abschnitt 11.6
erklärt wird.
Der letzte Eintrag im Device Descriptor (Number of configurations device sup-
ports) zeigt, dass das Gerät nur eine Konfiguration unterstützt. Die Produktbe-
zeichnung „Product“ ist der vom Windows USB Host Driver erkannte String Des-
criptor, der in der Sprechblase „Neue Hardware gefunden Product“ beim Plug-in
des Beispielgeräts gemeldet wurde.
Als nächster Test wird noch einmal der Device Descriptor gelesen. Zuvor wird das
Gerät jedoch entkonfiguriert, indem ihm die Konfiguration 0 zugewiesen wird.
Gemäß dem Statusdiagramm befindet es sich dann im Zustand „Adressiert“. Das
Ergebnis ist dasselbe wie im vorigen Test, also gibt es wegen der unzulässigen VID
auch hier wieder einen Abbruch mit der Warnung „Failed to get vendor informa-
tion for VendorID :123”. Das ergibt in derSummeamEndedesHTML-Filesdiefol-
gende Meldung:
Summary
INFO
Summary Log Counts [ Fails (0); Aborts (2); Warnings (2) ]
Als Nächstes wird zweimal der Configuration Descriptor gelesen, zunächst wieder
für ein konfiguriertes und danach für ein adressiertes Gerät. Beide Durchläufe pro-
duzieren wieder dasselbe Ergebnis. In diesem Protokoll ist gut zu erkennen, dass der
eigentliche Configuration Descriptor 9 Bytes, der vollständige Descriptor mit allen
Untereinträgen dagegen 27 Bytes lang ist. Ferner ist zu entnehmen, dass das Gerät
nur über ein USB-Interface verfügt und das dessen Name USBTMC ist. Außerdem
wird mitgeteilt, dass das Gerät nicht über die Remote Wakeup Fähigkeit verfügt und
dass es maximal 200 mA Strom aus V BUS aufnimmt.
Search WWH ::




Custom Search