USB-Gerätelayout
Ein Usb-Gerät (Universal Serial Bus) definiert seine Funktionen und Funktionen durch Konfigurationen, Schnittstellen, alternative Einstellungen und Endpunkte. Dieser Artikel enthält eine allgemeine Übersicht über diese Konzepte.
Eine USB-Konfiguration definiert die Funktionen und Features eines Geräts, hauptsächlich seine Leistungsfunktionen und Schnittstellen. Das Gerät kann mehrere Konfigurationen haben, aber nur ein Gerät ist gleichzeitig aktiv. Die aktive Konfiguration wird nicht vom USB-Treiberstapel ausgewählt, kann jedoch von einer Anwendung, einem Treiber, 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 gibt es 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 (IAD) verfügen. Eine 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 Funktion definieren, die der Schnittstelle zugeordnet ist. Zusammenfassend bilden eine Gruppe von Endpunkten eine Schnittstelle, und eine Gruppe von Schnittstellen stellt eine Konfiguration im Gerät dar.
Was bedeutet also, eine aktive Konfiguration auszuwählen? Während der Geräteinitialisierung muss der Gerätetreiber für USB-Geräte eine Konfiguration, eine oder mehrere Schnittstellen innerhalb dieser Konfiguration und eine alternative Einstellung für jede Schnittstelle auswählen. Die meisten USB-Geräte bieten nicht 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 Lernkit finden Sie unter OSR Online.
Einzelschnittstellengerät
Dieses Diagramm zeigt die Konfiguration eines Geräts mit einer einzigen 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 eine Schnittstelle zu verwenden, wählt der Clienttreiber die Schnittstelle und eine zugeordnete alternative Einstellung aus. Betrachten Sie ein multifunktionsfähiges USB-Gerät wie eine Webcam. Das Gerät verfügt über zwei Funktionen: Videoaufnahme (Kamera) und Audioeingabe (Mikrofon). Das Gerät definiert einen Endpunkt in einer Videoschnittstelle, die Video streamt. Das Gerät verfügt über einen anderen 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:
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 streaming. Bei diesem Endpunkttyp wird bei Verwendung des Endpunkts bandbreite auf dem Bus reserviert. 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 eine höhere Qualität bietet und eine höhere Busbandbreite verbraucht. Schnittstelle 1 verfügt über zwei alternative Einstellungen. Ähnlich wie schnittstelle 0 verwendet alternative Einstellung 0 keinen Endpunkt. Alternative Einstellung 1 ist für die Verwendung von Endpunkt 4 definiert.
Endpunkte können nicht zwischen zwei Schnittstellen innerhalb einer Konfiguration gemeinsam verwendet werden. Das Gerät verwendet die Endpunktadresse, um den Zielendpunkt für eine Datenübertragung oder einen Endpunktvorgang zu ermitteln, z. B. die Pipezurücksetzung. Alle diese Vorgänge werden vom Host initiiert.
Bevor Sie mit der Verwendung des Geräts beginnen, erhalten Sie Informationen zum Gerätelayout. USBView ist eine Anwendung, mit der Sie alle USB-Controller und die USB-Geräte durchsuchen können, die mit ihnen verbunden sind. Für jedes verbundene Gerät können Sie die Geräte-, Konfigurations-, Schnittstellen- und Endpunktdeskriptoren anzeigen, um eine Vorstellung über die Funktion des Geräts zu erhalten.
Weitere Informationen finden Sie unter Standard-USB-Deskriptoren.