Alle Bus-Transaktionen führen zur Übertragung von bis zu drei Paketen. Jede Transaktion beginnt, wenn der Host-Controller ein USB-Paket sendet, das die Art und Richtung der Transaktion sowie die Geräte-Adresse und Endpunkt-Nummer bestimmt. Dieses Paket wird als Token-Paket bezeichnet. Das
angesprochene Gerät wird bestimmt, indem jedes angeschlossene Gerät die Adress-Felder dekodiert und sich im Falle der Übereinstimmung selbst selektiert.
Bei einer bestimmten Transaktion können Daten entweder nur vom Host an ein Gerät gesendet werden oder der Host kann nur Daten eines Gerätes empfangen.
Die Datenquelle sendet im Anschluss ein Datenpaket oder zeigt dem Empfänger an, dass keine Daten zu übertragen sind. Der Empfänger antwortet dann generell mit einem Handshake-Paket, welches anzeigt, ob die Übertragung erfolgreich war oder nicht.
Das USB-Transfer-Modell zwischen Datenquelle oder -ziel Host und einem Endpunkt am Empfänger wird als Pipe (Übertragungsstück) bezeichnet. Es gibt zwei Arten von Pipes: Stream- (Datenfluß-) und Message- (Nachrichten-) Pipes. Im Gegensatz zu Message-Pipes haben Stream-Pipes keine USB-definierte Datenstruktur. Außerdem hat eine Pipe weitere bezeichnende Eigenschaften wie Daten-Bandbreite, Transfer-Art und Endpunkt-Merkmale wie Puffer-Größe.
Pipes entstehen, wenn ein USB-Gerät konfiguriert wird. Eine Message-Pipe -Kontroll-Pipe 0 - existiert, sobald das Gerät mit Strom versorgt wird und ermöglicht damit die Bereitstellung von Informationen zur weiteren Geräte-Konfiguration sowie Status- und Kontroll-Informationen.
|