USB-Grundlagen

Verfahren und Protokoll

Der USB kennt einen isochronen Betrieb, bei dem zyklisch (typischerweise jede Millisekunde) ein Teil der Bandbreite fest für die Übertragung - zum Beispiel von Audio- und Videodaten - reserviert wird. Daneben gibt es die übliche asynchrone Übertragung.

Jede Verbindung zum Gerät wird vom Rechner (host) aufgebaut. Der Betrieb selbst wird im "Polling"-Verfahren durchgeführt mit entsprechend hoher CPU-Belastung für die dauernden Abfragen. Man benötigt damit aber nur einen einzigen Interrupt im PC für alle angeschlossenen Geräte. Das ist im PC-Betrieb auch sinnvoll, da aufgrund der veralteten Architektur die Interrupts Mangelware sind.

Die Daten laufen als Pakete über den Bus. Noch vor den Daten wird ein Token mit der Adresse des ausgewählten Teilnehmers und mit anderen internen Informationen an das Gerät gesendet. Jede Übertragung (transaction) besteht daher im Regelfall aus drei Phasen (token, data, handshake phase). Dazu wird ein virtueller Kanal (pipe) als physikalische Verbindung zwischen den Endpunkten im USB geschaltet. Speziell für die isochrone Datenübertragung wird das Zeitmultiplexverfahren (TDM ) angewendet.

Zwei Arten des Datentransportes sind definiert. Zum einen der Datenstrom (stream), der sich als eine unstrukturierte Folge von Bytes darstellt und zum anderen Meldungen (messages) mit einer im USB definierten Struktur. Die verfügbare Bandbreite wird auf die verschiedenen virtuellen Verbindungen (pipes) aufgeteilt, wobei unterschiedliche Datenraten im gemischten Betrieb am USB möglich sind.

Fehlerschutzmechanismen für Steuerinformationen und Daten sichern die Datenübertragung mit einem 5-Bit- und einem 16-Bit CRC-Polynom (Cyclic Redundancy Check). Einzel- und Doppelbitfehler sind damit korrigierbar.