Damit der Bus korrekt initialisiert werden kann, besitzen alle Geräte eine festverdrahtete Hardwarekennung - bestehend u.a. aus Herstellerangaben, Seriennummer und Produktkennung - und Mikrochips mit gespeicherten Konfigurations-Informationen, welche neben der Geräteklasse auch die Stromversorgung, sowie die (Default-)Transfer-Modi definieren.
Beim Initialisieren speichert der Host ebenenweise die Informationen aller Geräte und weist jedem eine eindeutige ID zu. USB ist ein sogenannter "Polling-Bus", d.h. alle Aktivitäten gehen zunächst vom Host aus, 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.
Der Host "fragt" in regelmäßigen Abständen alle Geräte, ob aktuell Daten zu senden sind, und prüft dann - entsprechend der bei der Initialisierung erhaltenen Informationen - ob ausreichend Bandbreite zur Verfügung steht. Ist dies gewährleistet, so wird eine Pipe etabliert, die Daten werden übertragen und anschließend die Bandbreite wieder freigegeben. Wenn nicht, dann muss die Transferanfrage abgelehnt werden. Existierende Pipes werden nicht unterbrochen. Geräte, die gerade keine Daten übertragen, können diese im Puffer sammeln, bis ein versandfertiges Paket bereit liegt, das im nächsten Service-Intervall abgeholt werden kann.
Jede Übertragung besteht aus drei Phasen (token (Adressinformationen), data (effektive Daten), handshake (die Eingangsbestätigung des Empfängers) phase).
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 Pipes aufgeteilt. Dabei richtet sich die Bandbreite von Pipes nach der vom Gerät bereitgestellten Puffergröße.
Fehlerschutzmechanismen sichern die Datenübertragung mit einem 5-Bit- und einem 16-Bit CRC-Polynom (Cyclic Redundancy Check). Einzel- und Doppelbitfehler sind damit korrigierbar.
|