Eine Frage der Performance: Ist es USB-Version 1.0, 1.1 oder 2.0


Thomas Wölfer
Thomas Wölfer

10. Februar 2005


Ich hatte vor einiger Zeit geschrieben das wir Virtual PC fürs herstellen unserer Installationsprogramme verwenden. Die guten virtuellen PCs kommen aber auch noch für andere Dinge zum Einsatz: Tests unserer Statiksoftware unter 'veralteten' Windows-Versionen sind ein Beispiel und ein virtueller Windows 2003 Server für Tests vor größeren Umbauten an unserer Webseite, ein anderes. Zum damit-rumspielen habe ich auch noch ein paar Linux-Distributionen in virtuellen PCs untergebracht... und so weiter und so fort.

Das ganze kostet natürlich Platz, und davon habe ich in letzter Zeit immer mehr gebraucht: So ein virtueller PC braucht zwar kein eigenes Gehäuse, kein eigenes RAM und auch sonst nicht viel - aber Platz auf der Festplatte des Hosts-Systems (im meinem Fall XP Pro) braucht man eben schon. Mein Laptop hat aber gerade mal 40 GB anzubieten, und darum sind die Images der virtuellen PCs auf einer externen Festplatte untergebracht.

(Dabei fällt mir ein: Ich habe heute eine neue gekauft - die Dinger sind ja wirklich sagenhaft günstig. Die TrekStore USB 2.0 kostet etwa 100 Euro und hat 160 GB Kapazität. Wirklich erstaunlich. Meine erste Festplatte hatte damals 10 MB(!) und kostete ungefähr halb soviel wie die erste Mondlandung. :-) )

Doch egal - mein Problem war nun, das ich externe Platten nur über USB anschliessen kann. Das ist nicht weiter dramatisch, denn mein Laptop hat 4 USB Ports, von denen erst drei belegt sind. UND: Der Laptop unterstützt sowohl USB 2.0 als auch 1.1. Das Problem: Es macht einen großen Unterschied, ob die Verbindung über 12MB/Sec (Original USB) oder mit 480MB/Sec (USB 2.0) erfolgt. Man möchte die externe Fesplatte also auf jeden Fall am USB 2.0 Port anschliessen, und die Maus am USB 1.0 Port. Welchen Port also nehmen?

Das ist gar nicht so einfach gesagt, denn der Windows Gerätemanager rückt Informationen über USB nicht so recht raus. Er unterscheidet bei den angezeigten USB-Hubs zwar zwischen normalen und 'erweiterten', so das man mitbekommen kann, ob man überhaupt USB 2.0 hat oder nicht - es wird aber nicht angezeigt, welches Gerät nun an welchem Hub hängt und mit welcher Geschwindigkeit kommunizieren kann.

Dumme Sache - Zeit für Google.

Mit ein bisschen Suchen habe ich dann dieses Tool gefunden. Astra zeigt tatsächlich an, welche USB-Version für welches Gerät verwendet wird - nur bin ich um ehrlich zu sein nicht wirklich bereit für ein Tool, das Informationen des Betriebssystems anzeigt, Geld auszugeben. (Zugegeben: Astra scheint richtig gut zu sein, und wenn ich öfter Hardware-Fragen dieser Art hätte, dann wären die 29 Dollar wohl ganz gut angelegt. In diesem Fall ist aber wohl irgendwie mein Ehrgeiz geweckt worden... :-))

Mit ein bisschen mehr Suchen landete ich dann da wo ich öfter mal lande, wenn es gilt herauszufinden, was in den Tiefen von Windows so passiert: Beim DDK (Device Driver Kit) auf MSDN. Und siehe da: Es gibt tatsächlich ein Beispielprogramm im DDK, das genau die Informationen weitergibt, die ich gesucht habe. Das Ding trägt den bezeichnenden Namen USBView. Womit gleich das nächste Problem entstand: Ich habe zwar ein DDK (im Rahmend des MSDN Abos), und ich bin auch durchaus in der Lage die Beispielprogramme zu übersetzen und dann zu nutzen - aber im Normalfall ist das DDK bei mir nicht installiert. Schliesslich stellen wir hier Statikprogramme für Bauingenieure her - und keine Gerätetreiber.

Schlimmstenfalls hätte ich mir die Installation des DDK schon angetan - aber dankbarerweise gabs dann einen einfacheren Weg: Die Firma FTDI Chip bietet eine fertig kompilierte Version von USBView auf ihrer Webseite zum download an. Runterladen, starten - und man bekommt das folgende Bild. (Nicht erschrecken: Es handelt sich bei USBView schliesslich um ein Beispielprogramm für Gerätetreiber Programmierer. In diesem Licht betrachtet ist das Ding eigentlich schon recht 'übersichtlich'.)

Im Programm kann man links das USB-Gerät anklicken und bekommt dann rechts Informationen übers Gerät. Die Angabe bcdUSB 0x200 sieht dabei schon recht vielversprechend aus: Offenbar handelt es sich hier um eine USB 2 Verbindung. Das kann man aber auch verifizieren - alles was es braucht ist die Dokumentation zum 'Device Descriptor' für USB, dessen Inhalt USBView offensichtlich anzeigt. Die findet sich auch bei MSDN und bestätigt: Die Angabe hinter bcdUSD gibt tatsächlich die USB-Version an - und 0x200 bedeutet tatsächlich 'Version 2'.

Sollte Sie also auch einmal herausfinden müssen, welches Ihrer Geräte über welche USB-Version angeschlossen ist: USBView ist ihr Freund.

Bleibt noch ein letztes anzumerken: Bei einem älterem Windows XP (mit dem Sie nicht arbeiten sollten...) hat USBView ein Problem.

Achso: Letztlich stellte sich dann heraus das es keine Rolle spielt an welchem Port ich die Platte anschliesse: Mein Laptop unterstützt auf allen vier Ports sowohl 1.1 als auch 2.0...