Artikel-ID: 323594 - Geändert am: Freitag, 16. Juni 2006 - Version: 3.0

Grundlegende Informationen zu USB-Gerätetreiberentwicklung

SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
323594  (http://support.microsoft.com/kb/323594/EN-US/ ) The basics about universal serial bus (USB) device driver development
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Auf dieser Seite

Alles erweitern | Alles schließen

Zusammenfassung

Mit der wachsenden Beliebtheit von USB (Universal Serial Bus) müssen viele Hardwarelieferanten eine USB-Schnittstelle für Geräte anbieten, die momentan nur serielle oder parallele Schnittstellen unterstützen.

Dieser Artikel behandelt die folgenden Themen:
  • Wichtige Unterschiede zwischen USB-Schnittstellen und seriellen und parallelen Schnittstellen
  • Warum Benutzermodus-Anwendungen keinen direkten Zugriff auf USB-Geräte bieten
  • Grundlegende Ressourcen, die zur Entwicklung von Treibern für ein neu entwickelte USB-Geräts benötigt werden

Weitere Informationen

Komplexität

Im Vergleich zu seriellen oder parallelen Anschlüssen handelt es sich bei USB um einen komplexen Bustyp. So erhält jedes Gerät, das an diesen Bus angeschlossen ist, eine Adresse, und es werden Datenpakete zwischen dem Host-Computer und dem adressierten Gerät ausgetauscht. Außerdem können die Geräte Übertragungen bei verschiedenen Geschwindigkeiten durchführen, und die Verbindung zu dem Bus kann vorübergehend unterbrochen werden, falls die Geräte keine Hochgeschwindigkeitsübertragung unterstützen. Im Allgemeinen ist die Datenübertragung über USB sehr viel komplexer und erfordert ein genau definiertes Protokoll, das in gewisser Hinsicht einem Netzwerkprotokoll auf niedriger Ebene ähnelt.

Daher verfügen USB-Geräte über eine gewisse "Intelligenz" und können Datenpakete, die über USB ausgetauscht werden, korrekt verarbeiten. Eine USB-Schnittstelle kann im Allgemeinen nicht durch Verwendung diskreter Elektronikbauteile oder kleinerer/mittelgroßer integrierter Schaltungen implementiert werden, wie dies bei seriellen und parallelen Schnittstellen der Fall ist. Vielmehr wird zur Abwicklung der Kommunikation über USB normalerweise ein Microprozessor im Gerät verwendet.

Da ein USB-Gerät sehr komplex ist, kann es von einer Anwendung im Benutzermodus aus nicht einfach geöffnet werden und es kann auch nicht einfach darauf zugegriffen werden. Auf Hardware-Ebene bietet ein USB-Gerät verschiedene Endpunkte. Der Host kann eine Pipe-Verbindung herstellen, die den einzelnen Endpunkten verbunden ist, und so mit dem Gerät kommunizieren. Dieser Vorgang muss im Kernel-Modus durchgeführt werden. Ein USB-Gerät muss daher über einen zugehörigen Treiber verfügen. Die Plug & Play-Architektur erfordert ebenfalls einen Treiber, da das System sofort versucht, einen passenden Treiber zu finden, sobald Sie das Gerät angeschlossen haben.

Beispieltreiber

Der Beispieltreiber BulkUSB (DDKdir\src\wdm\usb\bulkusb) aus dem Windows DDK ermöglicht einer Anwendung im Benutzermodus Ursprungsdaten direkt im Endpunkt des USB-Geräts zu lesen und zu schreiben. Die grundlegende Aufgabe des Beispieltreibers ist das Kopieren von Daten aus und in die Anwendung und den Endpunkt. Sie können diesen Beispieltreiber an fast alle USB-Geräte ohne Probleme anschließen. Jedoch muss bei professionellen Geräten folgendes beachtet werden:
  • Sie müssen über einen vollständigeren Gerätetreiber verfügen, der die Funktionalität abstrahiert.
  • Sie müssen eine hochwertigere Programmierschnittstelle zur Anwendung im Benutzermodus bieten.
  • Sie müssen einer Schnittstellenklasse für bestimmte Geräte entsprechen (falls es sich bei dem Gerät um einen üblichen Peripherietyp handelt).
Insgesamt gibt es nur eine beschränkte Anzahl an Szenarien, in denen der Beispieltreiber ohne oder nur mit geringer Anpassung verwendet werden kann.
  • Für Testzwecke
  • Um Sie mit Aspekten der USB-Treiberentwicklung vertraut zu machen
  • Für sehr einfache Geräte, von denen vorab bereits bekannt ist, dass auf sie nur von einem bestimmten Programm aus zugegriffen wird

Übertragbarkeit

Ein USB-Gerätetreiber, der für Windows XP und Windows 2000 entwickelt wurde und lediglich WDM (Windows Driver Model)-Funktionen verwendet, ist auf Windows Millennium Edition und Windows 98 übertragbar, wobei im Allgemeinen gar keine oder nur geringe Änderungen erforderlich sind. Weitere Informationen zur Übertragung von WDM-Treibern von Windows XP oder Windows 2000 auf Windows Millennium Edition oder Windows 98, finden Sie im Abschnitt "Informationsquellen" (siehe Anhang A in dem Buch von Walter Oney).

Fremdanbieter-Ressourcen

Einige Fremdanbieter stellen vorgefertigte Chipsets zur Verfügung, die zur Implementierung der USB-Schnittstelle verwendet werden können. Viele Hersteller bieten auch Hardware-Entwicklungskits an, mit denen Sie Prototypen zu den Chipsets herstellen können. Weitere Informationen finden Sie im Abschnitt "Informationsquellen" (Kapitel 11 im Buch von Walter Oney).

Einige Fremdanbieter stellen generische USB-Treiber zur Verfügung, die mithilfe von Datendateien anpasst werden können, ohne dass dabei eine Programmierung im Kernel-Modus erforderlich ist. Einige Unternehmen bieten für den Zugriff auf ihre Treiber von OLE-Automatisierungsclients, beispielsweise Microsoft Visual Basic, auch ActiveX-Komponenten (z. B. OCX) an.

Informationsquellen

  • Universal Serial Bus System Architecture 2nd Edition, Don Anderson/Dave Dzatko, Mindshare Inc, Addison Wesley, ISBN 0-201-30975-0.
  • Windows Driver Development Kit, System Support for Buses, USB, Design Reference (Entwicklungskit für Windows-Treiber, Systemunterstützung für Busse, USB, Design-Referenz)
Weitere Informationen zur Entwicklung eigener Produkte aus Fremdanbieter-Chipsets und zur Übertragung von WDM-Treibern finden Sie in dem folgenden Buch:
  • Programming the Microsoft Windows Driver Model, Walter Oney, Microsoft Press, ISBN 0-7356-0588-2. (Dieser Artikel verweist vor allem auf Kapitel 11 und Anhang A.)

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows XP Driver Development Kit
  • Microsoft Win32 Device Driver Kit for Windows 2000
  • Microsoft Windows Server 2003 Driver Development Kit
Keywords: 
kbinfo KB323594
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.