Der USB besteht damals wie heute aus vielen Punkt-zu-Punkt-Verbindungen, die sternförmig angeordnet sind. An keiner Stelle ist ein busähnlicher Zugriff möglich. Das nehmen aber die Marketingstrategen nicht so genau. Der Begriff „Bus“ steht nach wie vor hoch im Kurs und „seriell“ erst recht.
Die Spezifikation der USB-Version 3.0 wurde – wie die früheren Versionen – für die Peripherieseite vollständig offengelegt. USB 3.0 und die weiterhin zwingend notwendige Spezifikation USB 2.0 sind auf über 1000 Seiten dokumentiert. Dazu kommen weitere referenzierte Standards und Spezifikationen, die zu berücksichtigen sind.
Bevor es in die Details von USB geht, werden zunächst die zentralen Begriffe geklärt, zumal mit USB 3.0 neue Fachbegriffe hinzukommen. So wird z.B. ein (virtueller) Kanal als Pipe und ein Gerät (device) als Knoten (node) bezeichnet. Der (Bus-)Teilnehmer ist eine Funktion (function) oder ein Knoten (node). Diese Begriffe sind gleich am Anfang der USB-2.0-Spezifikation aufgeführt. Device und Function waren unter USB 2.0 oft austauschbare Begriffe. Unter 3.0 ist eine Function eine logische Einheit in einem Device. Es gibt zwei Arten von Devices: Hub Devices (Leitungsmultiplexer) und Peripheral Devices (Endgeräte).
Der Bus, der keiner ist, kann als hierarchischer Sternverteiler oder als Pyramide mit mehreren Ebenen dargestellt werden (Bild 1). Die Punkt-zu-Punkt-Verbindungen laufen sternförmig in einem Hub zusammen, der ggfs. wiederum mit einer Leitung am hierarchisch nächsthöheren Hub angeschlossen ist bis zur Spitze der Pyramide. Dort sitzt der PC als einziger Root Hub (mit Root Port) oder Master und steuert den USB. Eine Ringverbindung ist nicht erlaubt. Der übliche USB-Steckverbinder am PC wird als „USB-Standard A connector“ bezeichnet. Der geräteseitige „B“-Steckverbinder ist mechanisch unterschiedlich zur A-Variante, damit eine Vertauschung oder eine Ringverbindung verhindert werden.
Ein Hub (Multiplexer) ist ein Zwischenverteiler mit Signalverstärker ohne eigene logische Funktionen zur Auffächerung der Verbindungsstrecken auf mehrere Geräte und zur Geräteparameterabfrage. Aus der Sicht der Geräte ist der Hub ein Konzentrator, wobei Port 00h die Verbindung zur nächsthöheren Hierarchieebene in Richtung zum Rechner herstellt. Ein USB-3.0-Hub enthält neben der Logik für USB 3.0 zusätzlich einen kompletten Hub für USB 2.0. Dadurch lassen sich USB-2.0- und USB-3.0-Geräte mischen. Die Übertragungen laufen auf verschiedenen Wegen zwischen den Geräten.
USB 2.0 erlaubt es einem Gerät, mit 1,5 Mbit/s, 12 Mbit/s oder mit 480 Mbit/s Daten zu übertragen. Der effektive Datendurchsatz liegt wegen des Protokoll-Overheads deutlich niedriger. Bei aktuellen Systemen bleibt eine nutzbare Datenrate in der Größenordnung von 320 Mbit/s (40 Mbyte/s). Bei SuperSpeed beträgt die Brutto-Übertragungsrate 5 Gbit/s. Damit werden vermutlich etwa 300 bis 400 Mbyte/s für die Nutzdatenübertragung erreicht.
Übertragungsverfahren und Protokoll
Der USB kennt einen isochronen Betrieb, bei dem zyklisch ein Teil der Bandbreite fest für die Übertragung z.B. von Audio- und Videodaten reserviert wird. Die kontinuierliche Versorgung an den Endpunkten geschieht über entsprechende Pufferspeicher. Daneben gibt es die üblichen asynchronen Ein-/Ausgabefunktionen. 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. Damit wird aber insgesamt nur ein einziger Interrupt im PC für alle angeschlossenen Geräte benötigt. Das ist im PC-Betrieb auch notwendig, weil aufgrund der veralteten Architektur nur wenige Interrupts vorhanden sind.
Zwei Arten des Datentransports sind definiert. Ein Datenstrom (stream) ist eine unstrukturierte Folge von Bytes. Meldungen (messages) haben eine definierte Struktur. Die verfügbare Bandbreite wird auf die verschiedenen virtuellen Verbindungen (pipes) aufgeteilt. Unterschiedlichen Datenraten im gemischten Betrieb sind am USB möglich. Bei den Pipes unterscheidet man vier Arten: bulk, control, interrupt und isochronous. Unter USB 3.0 wird der Bulk-Betrieb erweitert. Die neue Übertragungsart „Streams“ erlaubt die gleichzeitige Übertragung von mehreren Datenströmen über eine Bulk-Pipe.
Während bei USB 2.0 die Datenpakete im Polling-Verfahren an alle Geräte übertragen werden (broadcast), werden die Pakete unter USB 3.0 asynchron an die Zielgeräte adressiert (explicitely routed). In beiden Fällen liegt die Steuerung beim Rechner. Die Zahl der maximal an USB anschließbaren Geräte bleibt mit 127 unverändert.
Unter USB 3.0 gibt es den Zustand „verbunden, aber nicht aktiv“. Eine solche Verbindung wird mit „Low Frequency Periodic Signaling“ (LFPS) in einer Art Bereitschaftszustand gehalten. Damit wird elektrische Energie gespart, die Verbindung aber logisch aktiv gehalten. Somit kann bei Bedarf ohne Initialisierungsaufwand sofort in den aktiven Datentransfer gewechselt werden.
Peripheriegeräte für USB 3.0 müssen zusätzlich eine Minimalfunktion als USB-2.0-Gerät enthalten, damit das Gerät identifiziert werden kann. Es muss zwischen USB 2.0 und USB 3.0 umschalten können. Gleichzeitiger Betrieb im Peripheriegerät ist nicht erlaubt. USB-3.0-Hubs müssen beide Verbindungs- und Betriebsarten beherrschen. Zum PC hin (upstream) wird jeder USB-3.0-Hub als Doppelgerät mit getrennten Kanälen für SuperSpeed und USB 2.0 betrieben. Ein USB-Host (USB-Steuerung) muss gleichzeitig USB-2.0- und Super-Speed-Betrieb bedienen können (Bild 2).
Die Protokollarchitekturen für USB 2.0 und SuperSpeed sind gleich. Es gibt aber interne Unterschiede, allein schon weil unter SuperSpeed zwei getrennte Kanäle für Senden und Empfangen gleichzeitig vorhanden sind. Unter SuperSpeed können Synchronisiersignale und Pakete vom Host auf direktem Wege durch die Verbindungstopologie zum Ziel-Endgerät übertragen werden. Pakete von Endgeräten zum Host werden von den Hubs ohne explizite Adressierung immer zum eigenen Upstream-Port weitergeleitet. Die Stromversorgung kann bei USB 3.0 in jedem Gerät, Hub und Host individuell gesteuert werden. Andere Protokollunterschiede sind an den relevanten Stellen in dieser Beschreibung aufgeführt.
Kabel und Steckverbinder
Für die Verbindung der Geräte wird unter USB 2.0 ein vieradriges Kabel verwendet. Zwei Adern sind verdrillt und übertragen das Datensignal D+ und D– in symmetrischer Form (differenzial) in einem 3,3-V-System. Für die Stromversorgung (5 V nominell) wird das andere Drahtpaar (unverdrillt) verwendet. Bei USB 3.0 kommen für jede Übertragungsrichtung ein zusätzliches differenzielles Kabelpaar mit eigener Abschirmung hinzu sowie eine weitere Abschirmung des gesamten Kabels (Bild 3).
Die Stromversorgung eines Gerätes kann über das Kabel oder lokal erfolgen. Der erlaubte Maximalstrom wurde bei USB 3.0 von 500 mA auf 900 mA angehoben. Beim Einschalten/Einstecken dürfen alle Geräte nur max. 100 mA (150 mA bei USB 3.0) verbrauchen. Wenn genügend Leistung verfügbar ist, darf nach der Identifikation auf den höheren Verbrauch umgeschaltet werden.
Eine einzelne Kabelstrecke darf unter USB 2.0 maximal 5 m lang sein. Für insgesamt sechs zugelassene Kabelstrecken hintereinander beträgt die größte Entfernung somit 30 m. Die Spezifikation USB 3.0 definiert die Länge der Kabel nicht. Ein Kabel für USB 3.0 kann jede beliebige Länge haben, solange es alle Anforderungen erfüllt. Die Signalqualität wird sichergestellt durch de-emphasis am Sender und equalization am Empfänger sowie bit-scrambling und 8B/10B-coding auf der Übertragungsstrecke. Auf der elektrischen Ebene wird mit einer Fehlerrate von 10–12 gerechnet. Das wäre weniger als ein Fehler in etwa 200 Sekunden. Weiterhin sind noch mehrere Fehlerkorrektur-Mechanismen (CRC u.a.) auf den höheren Ebenen vorhanden, um einen in der Praxis für den Anwender fehlerfreien Betrieb zu garantieren.
Die Steckverbinder eines USB-Kabels sind verpolungs- und vertauschungssicher gestaltet. Der flache Typ-A-Steckverbinder am PC erhält in einer zweiten Ebene fünf zusätzliche Kontakte nebeneinander (Bild 4). Das sind je Richtung eine Doppelader für Daten und eine Masseleitung im hinteren Bereich des Steckers. Bei USB 3.0 muss also der Stecker immer bis zum Anschlag in die Buchse geschoben werden, weil sonst ein USB-3.0-Gerät nur als USB-2.0-fähig erkannt wird. Auf der B-Seite ist der mechanische Unterschied deutlicher zu sehen (Bild 5). Der quadratische B-Stecker erhält einen Aufbau mit den fünf Kontakten für USB 3.0. Mit dieser Technik können herkömmliche A- oder BStecker in die neuen Buchsen der jeweils gleichen Art gesteckt werden. So lassen sich „alte“ USB-Geräte an neuen Schnittstellen betreiben. Für besonders kompakte Geräte gibt es auch wieder einen Mini-Steckverbinder vom Typ B (Bild 6).
Treiber-Software
Die USB-Steuerlogik im Host benötigt eine Treiber-Software, um den gesamten USB-Betrieb zu steuern und zu überwachen. Aus historischen Gründen gibt es dazu mehrere Software-Pakete.