Share via


USB-Gerätelayout

Ein USB-Gerät (Universal Serial Bus) definiert seine Funktionen und Features über Konfigurationen, Schnittstellen, alternative Einstellungen und Endpunkte. Dieser Artikel bietet eine allgemeine Übersicht über diese Konzepte.

Eine USB-Konfiguration definiert die Funktionen und Features eines Geräts, vor allem seine Energiefunktionen und Schnittstellen. Das Gerät kann mehrere Konfigurationen aufweisen, aber nur eine ist gleichzeitig aktiv. Die aktive Konfiguration wird nicht vom USB-Treiberstapel ausgewählt, sondern kann von einer Anwendung, einem Treiber und dem Gerätetreiber initiiert werden. Der Gerätetreiber wählt eine aktive Konfiguration aus.

Eine Konfiguration kann über eine oder mehrere USB-Schnittstellen verfügen, die die Funktionalität des Geräts definieren. In der Regel besteht eine 1:1-Korrelation zwischen einer Funktion und einer Schnittstelle. Bestimmte Geräte machen jedoch mehrere Schnittstellen verfügbar, die sich auf eine Funktion beziehen. In diesem Fall kann das Gerät über einen Schnittstellenzuordnungsdeskriptor (Interface Association Descriptor, IAD) verfügen. Ein IAD gruppiert Schnittstellen, die zu einer bestimmten Funktion gehören.

Jede Schnittstelle enthält einen oder mehrere Endpunkte, die zum Übertragen von Daten an und vom Gerät verwendet werden. Darüber hinaus enthält die Schnittstelle alternative Einstellungen , die die Bandbreitenanforderungen der der Schnittstelle zugeordneten Funktion definieren. Zusammenfassend bildet eine Gruppe von Endpunkten eine Schnittstelle, und eine Gruppe von Schnittstellen stellt eine Konfiguration im Gerät dar.

Was bedeutet es also, eine aktive Konfiguration auszuwählen? Während der Geräteinitialisierung muss der Gerätetreiber für das USB-Gerät eine Konfiguration, eine oder mehrere Schnittstellen innerhalb dieser Konfiguration und eine alternative Einstellung für jede Schnittstelle auswählen. Die meisten USB-Geräte verfügen nicht über mehrere Schnittstellen oder mehrere alternative Einstellungen. Beispielsweise verfügt das OSR USB FX2 Learning Kit-Gerät über eine Schnittstelle mit einer alternativen Einstellung und drei Endpunkten. Weitere Informationen zum Learning Kit finden Sie unter OSR Online.

Gerät mit nur einer Schnittstelle

Dieses Diagramm zeigt die Konfiguration eines Geräts mit einer einzigen Schnittstelle:

Diagramm eines USB-Gerätelayouts für ein Gerät mit einer einzelnen Schnittstelle.

In diesem Beispiel zeigt das Diagramm Endpunkt 0, der als Standardendpunkt bezeichnet wird. Alle USB-Geräte müssen über einen Standardendpunkt verfügen, der für Steuerungsübertragungen verwendet wird (siehe USB-Steuerungsübertragung). Konfiguration 0 verfügt über eine Schnittstelle: Schnittstelle 0 mit einer alternativen Einstellung. Alternative Einstellung 0 verwendet alle drei Endpunkte in der Schnittstelle.

Gerät mit mehreren Schnittstellen

Für Multifunktionsgeräte verfügt das Gerät über mehrere Schnittstellen. Um eine bestimmte Funktion oder Schnittstelle zu verwenden, wählt der Clienttreiber die Schnittstelle und eine zugeordnete alternative Einstellung aus. Betrachten Sie ein Usb-Gerät mit mehreren Funktionen, z. B. eine Webcam. Das Gerät verfügt über zwei Funktionen: Videoaufnahme (Kamera) und Audioeingang (Mikrofon). Das Gerät definiert einen Endpunkt in einer Videoschnittstelle, die Video streamt. Das Gerät verfügt über einen weiteren Endpunkt in einer separaten Schnittstelle, die Audioeingaben über das Mikrofon übernimmt. Die Konfiguration des Geräts umfasst beide Schnittstellen.

Dieses Diagramm zeigt die Konfiguration des Webcamgeräts:

Diagramm eines Gerätelayouts für ein Gerät mit mehreren Schnittstellen.

In diesem Beispiel zeigt das Diagramm den Standardendpunkt. Konfiguration 0 verfügt über zwei Schnittstellen: Schnittstelle 0 und Schnittstelle 1. Schnittstelle 0 verfügt über drei alternative Einstellungen. Nur eine der alternativen Einstellungen ist zu einem bestimmten Zeitpunkt aktiv. Beachten Sie, dass alternative Einstellung 0 keinen Endpunkt verwendet, während alternative Einstellungen 1 und 2 Endpunkt 1 verwenden. In der Regel verwendet eine Videokamera einen isochronen Endpunkt für das Streaming. Bei diesem Endpunkttyp ist die Bandbreite auf dem Bus reserviert, wenn der Endpunkt verwendet wird. Wenn die Kamera kein Video streamt, kann der Clienttreiber alternative Einstellung 0 auswählen, um Bandbreite zu sparen. Wenn die Webcam Video streamt, kann der Clienttreiber entweder zu Alternative Einstellung 1 oder Alternative Einstellung 2 wechseln, was ein höheres Qualitätsniveau bietet und die Busbandbreite erhöht. Schnittstelle 1 verfügt über zwei alternative Einstellungen. Ähnlich wie Interface 0 verwendet Alternative Einstellung 0 keinen Endpunkt. Alternative Einstellung 1 ist für die Verwendung von Endpunkt 1 definiert.

Endpunkte können nicht zwischen zwei Schnittstellen innerhalb einer Konfiguration freigegeben werden. Das Gerät verwendet die Endpunktadresse, um den Zielendpunkt für eine Datenübertragung oder einen Endpunktvorgang zu bestimmen, z. B. pipe reset. Alle diese Vorgänge werden vom Host initiiert.

Bevor Sie mit der Verwendung des Geräts beginnen, rufen Sie Informationen zum Gerätelayout ab. USBView ist eine Anwendung, mit der Sie alle USB-Controller und die mit ihnen verbundenen USB-Geräte durchsuchen können. Für jedes verbundene Gerät können Sie die Geräte-, Konfigurations-, Schnittstellen- und Endpunktdeskriptoren anzeigen, um eine Vorstellung von der Funktion des Geräts zu erhalten.

Weitere Informationen finden Sie unter Standard-USB-Deskriptoren.