USB-Endpunkte und ihre Pipes
Ein USB-Gerät verfügt über Endpunkte, die für Datenübertragungen verwendet werden. Auf der Hostseite werden Endpunkte durch Pipes dargestellt. In diesem Thema wird zwischen diesen beiden Begriffen unterschieden.
Zusammenfassung
- Endpunkt ist Hardware auf dem Gerät. pipe ist Software auf der Hostseite.
- Der Endpunkt ist nicht konfiguriert. pipe ist für Übertragungen konfiguriert.
- Der Host sendet oder empfängt Daten an oder von einer Pipe.
USB-Endpunkt
Ein Endpunkt ist ein Puffer auf einem USB-Gerät. Endpunkt ist ein Begriff, der sich unabhängig vom Hostbetriebssystem auf die Hardware selbst bezieht. Der Host kann Daten an oder aus diesem Puffer senden und empfangen. Endpunkte können in Steuerungs- und Datenendpunkte kategorisiert werden.
Jedes USB-Gerät muss mindestens einen Steuerungsendpunkt unter Adresse 0 bereitstellen, der als Standardendpunkt oder Endpunkt0 bezeichnet wird. Dieser Endpunkt ist bidirektional. Das heißt, der Host kann Daten an den Endpunkt senden und daten von diesem innerhalb einer Übertragung empfangen. Der Zweck einer Steuerungsübertragung besteht darin, dem Host zu ermöglichen, Geräteinformationen abzurufen, das Gerät zu konfigurieren oder Steuerungsvorgänge auszuführen, die für das Gerät eindeutig sind.
Datenendpunkte sind optional und werden zum Übertragen von Daten verwendet. Sie sind unidirektional, haben einen Typ (Steuerelement, Interrupt, Massenvorgang, isochron) und andere Eigenschaften. Alle diese Eigenschaften werden in einem Endpunktdeskriptor beschrieben (siehe USB-Standarddeskriptoren).
In der USB-Terminologie basiert die Richtung eines Endpunkts ( und übertragungen zu oder von ihnen) auf dem Host. Daher bezieht sich IN immer auf Übertragungen auf den Host von einem Gerät und OUT immer auf Übertragungen vom Host auf ein Gerät. USB-Geräte können auch bidirektionale Übertragungen von Steuerdaten unterstützen.
Die Endpunkte auf einem Gerät werden in funktionale Schnittstellen gruppiert, und eine Gruppe von Schnittstellen bildet eine Gerätekonfiguration. Weitere Informationen finden Sie unter USB-Gerätelayout.
Die Hostsoftware kann Endpunktinformationen anzeigen, bevor das Gerät konfiguriert wurde oder während der Auswahl einer alternativen Einstellung. Sie durchlaufen alle Schnittstellen, durchlaufen dann die Einstellungen für jede Schnittstellenliste und sehen sich die Eigenschaften der einzelnen Endpunkte oder den gesamten Satz von Endpunkten in der Einstellung an. Der Blick auf die Endpunktinformationen wirkt sich nicht auf den konfigurierten Zustand des Geräts aus.
USB-Rohre
Daten werden zwischen einem USB-Gerät und dem USB-Host über eine Abstraktion übertragen, die als Pipe bezeichnet wird. Pipes ist ein reiner Softwarebegriff. Eine Pipe kommuniziert mit einem Endpunkt auf einem Gerät, und dieser Endpunkt verfügt über eine Adresse. Das andere Ende einer Pipe ist immer der Hostcontroller.
Eine Pipe für einen Endpunkt wird geöffnet, wenn das Gerät konfiguriert wird, indem entweder eine Konfiguration und die alternative Einstellung einer Schnittstelle ausgewählt wird. Daher werden sie zu Zielen für E/A-Vorgänge. Eine Pipe verfügt über alle Eigenschaften eines Endpunkts, ist aber aktiv und wird für die Kommunikation mit dem Host verwendet.
Ein nicht konfigurierter Endpunkt wird als Endpunkt bezeichnet, während ein konfigurierter Endpunkt als Pipe bezeichnet wird.