USB-Topologie für DMA: Controller, Hubs und Ports
Wie Host-Controller, Root-Hubs und geteilte Bandbreite zusammenhängen und warum ein hinterer Port kein Aberglaube ist. Dazu, wie du die ausgehandelte Geschwindigkeit eines Ports abliest und wie selektives USB-Energiesparen eine Verbindung killt.
Kurze Antwort
USB ist ein Baum: Jeder Host-Controller versorgt einen Root-Hub, und jeder externe Hub, jede Dockingstation und jeder Front-Panel-Anschluss darunter teilt sich dessen Bandbreite. Eine DMA-Karte gehört an einen hinteren Port, der an einem Root-Hub hängt, und auf diesem Controller sollte ihr nichts anderes Konkurrenz machen.
Auf dieser Seite10
- Wie USB-Ports wirklich am Rechner hängen
- Vier USB-Begriffe, die du kennen solltest
- Warum ein hinterer USB-Port?
- Lass der Karte ihren eigenen USB-Controller
- Wie du die ausgehandelte Geschwindigkeit eines Ports prüfst
- Selektives USB-Energiesparen per powercfg abschalten
- Schalte das USB-Energiesparen auch im Geräte-Manager ab
- Häufige USB-Probleme und ihre Lösungen
- Fragen zu USB
- Quellen
Wie USB-Ports wirklich am Rechner hängen
Die meisten stellen sich jede USB-Buchse als eigene, unabhängige Verbindung zum Rechner vor, aber so ist das nicht gebaut. Eine Maschine hat eine überschaubare Zahl von Host-Controllern, jeder Controller besitzt einen Root-Hub, und jeder Root-Hub besitzt eine Gruppe von Ports. Alles, was an diesen Ports steckt, teilt sich Bandbreite, Interrupt-Behandlung und Treiber dieses Controllers. Ein externer Hub oder eine Dockingstation hängt eine weitere Ebene darunter, die sich wiederum alle daran angeschlossenen Geräte teilen. Fast jeder unerklärliche DMA-Abbruch kommt daher, dass dieser Baum tiefer oder voller ist, als der Reader verträgt.
Vier USB-Begriffe, die du kennen solltest
Sobald diese vier Begriffe sitzen, ergeben die meisten USB-Ratschläge, die du liest, plötzlich Sinn.
- Host-Controller
- Die Elektronik, die einen USB-Bus betreibt. Auf einer modernen Maschine ist das ein xHCI-Controller. Er hat einen Treiber und er kann der Engpass sein
- Root-Hub
- Der virtuelle Hub an der Spitze des Baums eines Controllers. Seine Ports sind die Buchsen, die direkt auf der Platine verdrahtet sind
- Hub
- Jedes Gerät, das aus einem Port mehrere macht: ein externer Hub, eine Dockingstation, ein Monitor mit Ports, eine Front-Panel-Platine im Gehäuse
- Ausgehandelte Geschwindigkeit
- Worauf sich die Verbindung tatsächlich geeinigt hat, nicht wozu der Port fähig wäre. Ein USB-3-Port mit einem USB-2-Kabel handelt USB 2 aus
Warum ein hinterer USB-Port?
Die Ports am hinteren I/O-Feld sind aufs Mainboard gelötet und direkt an einen Root-Hub verdrahtet. Ein Anschluss am Front-Panel sitzt am Ende eines internen Kabels zu einem Gehäuseanschluss, und bei vielen Gehäusen hängt dieser Anschluss selbst hinter einem internen Hub. Ein vorderer Port fügt dem Weg also Kabellänge, zusätzliche Steckverbinder und oft eine Hub-Stufe hinzu, bevor das Signal den Controller erreicht. USB 3 bei voller Rate verträgt keinen grenzwertigen Pfad, und genau deshalb sagt dir jede Anleitung, du sollst einen hinteren Port nehmen. Aus demselben Grund läuft eine Karte, die vorne scheitert, hinten einwandfrei, ohne dass sich sonst etwas geändert hätte.
Tipp
Lass der Karte ihren eigenen USB-Controller
Sich einen Controller mit einer untätigen Tastatur zu teilen, kostet nichts; ihn sich mit einer Webcam, einer externen Festplatte, einer Capture-Karte oder einem USB-DAC zu teilen, kostet echte Bandbreite. Und es bringt zusätzliche Interrupt-Last genau in dem Moment, in dem der Reader mitten in einer Übertragung steckt. Maschinen mit mehreren hinteren Ports verteilen diese meist auf mehr als einen Controller. Praktisches Ziel ist es, die Karte an einen Port zu stecken, auf dessen Controller nichts anderes Anspruchsvolles liegt, und bandbreitenhungrige Peripherie woanders unterzubringen. Aus demselben Grund ist es keine Formalie, vor einem Test der Leserate jedes überflüssige Gerät abzuziehen — es verändert das Ergebnis.
Wie du die ausgehandelte Geschwindigkeit eines Ports prüfst
Mach das am Zweit-PC, mit angeschlossener Karte und eingeschaltetem Gaming-PC. Ziel ist der Nachweis, dass die Verbindung als USB 3 hochgekommen ist und nicht still auf eine niedrigere Geschwindigkeit zurückgefallen ist.
- Öffne am Zweit-PC den Geräte-Manager
- Wähl im Menü „Ansicht“ den Punkt „Geräte nach Verbindung“ — damit wird die Liste als der tatsächliche Baum gezeichnet
- Verfolg den Baum vom Host-Controller über den Root-Hub bis zu deinem Gerät und merk dir jeden Hub dazwischen als eine Ebene, die du entfernen kannst
- Stell „Ansicht“ zurück auf „Geräte nach Typ“ und klapp „USB-Controller“ auf
- Klick mit der rechten Maustaste auf das FTDI- oder USB-Brückengerät, wähl „Eigenschaften“ und öffne den Reiter „Details“
- Wähl in der Auswahlliste „Eigenschaft“ den Eintrag „Übergeordnetes Element“ — er nennt das Gerät, das im USB-Baum direkt über diesem liegt
- Für eine direkte Anzeige der Geschwindigkeit installier das Windows SDK mit den Debugging Tools, starte USBView und wähl das Gerät aus, um seine Bus-Geschwindigkeit abzulesen. „SuperSpeed“ heißt, die USB-3-Verbindung steht; „High“ heißt, sie ist auf USB 2 zurückgefallen
- Stimmt die Geschwindigkeit nicht, tausch zuerst das Kabel, dann den Port, und entfern dann alles, was dazwischen hängt — und prüf die Geschwindigkeit nach jeder einzelnen Änderung neu
Selektives USB-Energiesparen per powercfg abschalten
Selektives USB-Energiesparen (USB selective suspend) erlaubt dem Hub-Treiber, einen Port abzuschalten, den er für untätig hält. Bei einer Tastatur spart das Strom, bei einer DMA-Karte heißt es: ein Gerät, das verschwindet, während du nicht hinsiehst. Die GUIDs unten sind die Standard-Untergruppe der USB-Einstellungen und der Parameter selective suspend; der Wert 0 schaltet ihn ab. Führ diese Befehle in einer Eingabeaufforderung als Administrator aus, und zwar nur auf dem ZWEIT-PC.
powercfg /setacvalueindex SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0
powercfg /setdcvalueindex SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0
powercfg /setactive SCHEME_CURRENT
powercfg /query SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3Achtung
Schalte das USB-Energiesparen auch im Geräte-Manager ab
Selektives Energiesparen im Energieplan abzuschalten ist nötig, reicht aber oft nicht. Auch die Geräte „USB-Root-Hub“ und „USB-Hub“ können im Geräte-Manager einen eigenen Reiter „Energieverwaltung“ haben, wobei ihn nicht jeder Hub anzeigt. Wo es den Reiter gibt, ist der Haken bei „Computer kann das Gerät ausschalten, um Energie zu sparen“ standardmäßig gesetzt — entfern ihn an jedem Hub auf dem Weg. Verschwindet eine Karte trotz beider geänderter Einstellungen nach einer Leerlaufphase, verdächtige das Kabel oder den Port, bevor du die Karte verdächtigst.
Häufige USB-Probleme und ihre Lösungen
Jede Zeile steht für ein Symptom, nach dem oft gesucht wird. Arbeite die Liste von oben nach unten ab, denn jede Lösung ist günstiger als die darauf folgende.
| Symptom | Mögliche Ursache | Lösung |
|---|---|---|
| Das Gerät meldet „High“ statt „SuperSpeed“ | Ein USB-2- oder reines Ladekabel, oder ein Port, der wie USB 3 aussieht, aber keiner ist | Wechsel auf ein echtes USB-3-Datenkabel, dann auf einen Port, den das Board als USB 3 ausweist. Prüf die gemeldete Geschwindigkeit nach jeder Änderung neu |
| Die Leserate bricht ein, sobald eine Webcam oder eine externe Festplatte aktiv ist | Beide Geräte hängen am selben Host-Controller und teilen sich dessen Bandbreite | Häng das andere Gerät an einen Port an einem anderen Controller, oder zieh es für die Sitzung ab |
| Das Gerät verschwindet nach ein paar Minuten ohne Aktivität | Selektives USB-Energiesparen, oder ein USB-Root-Hub, der weiterhin abschalten darf | Schalte selektives USB-Energiesparen im Energieplan ab und entfern dann an jedem Hub auf dem Weg, der ihn anzeigt, den Haken in der Energieverwaltung |
| Läuft an einem hinteren Port, scheitert am Port daneben | Die beiden Ports hängen an verschiedenen Controllern, und nur einer hat einen gesunden Treiber und genug Leistungsbudget | Lass die Karte an dem Port, der funktioniert, und markier diesen Port — Ports sind nicht austauschbar, auch wenn sie nebeneinander sitzen |
| Stabil, bis irgendwo an der Maschine eine Dockingstation oder ein Hub dazukommt | Der Hub hat eine Ebene hinzugefügt und handelt die geteilte Upstream-Verbindung neu aus, sobald sich etwas ändert | Nimm die Dockingstation dauerhaft aus dem Weg der Karte und nutz sie nur für Maus, Tastatur und Monitor |
| „Unbekanntes USB-Gerät, Fehler beim Anfordern der Gerätebeschreibung“ | Die Verbindung ist zu grenzwertig, um die Enumeration abzuschließen — meist das Kabel, manchmal eine beschädigte Buchse | Probier ein kurzes, bekannt gutes Kabel an einem anderen hinteren Port; scheitert ein bekannt gutes Kabel an zwei Controllern, verdächtige die Buchse der Karte |
Fragen zu USB
Kann ich einen Hub mit eigener Stromversorgung nehmen, wenn ich wirklich mehr Ports brauche?
Für Peripherie ja, für die Karte aber nicht als Normalfall. Wenn du keine andere Wahl hast, nimm einen Hub mit eigener Stromversorgung, an dem sonst nichts hängt, und bestätige die Leserate mit einem Test, bevor du ihm traust.
Spielt die Kabellänge eine Rolle?
Ja, denn die Signaltoleranz von USB 3 sinkt mit der Länge, und ein billiges langes Kabel ist eine häufige Ursache für sporadische Abbrüche. Nimm das kürzeste Kabel, das bequem reicht.
Woran erkenne ich, welche Ports sich einen Controller teilen?
Wähl im Geräte-Manager „Ansicht“ und dann „Geräte nach Verbindung“, um den echten Baum zu sehen: Alles unter demselben Host-Controller teilt sich diesen Controller. USBView zeigt denselben Baum samt Geschwindigkeiten.
Funktioniert ein USB-2-Port überhaupt?
Meist wird das Gerät erkannt, aber der Durchsatz ist stark gedrosselt. Behandel eine USB-2-Verbindung deshalb als Diagnoseergebnis und nicht als Aufbau, den du behältst.
Hilft es, andere USB-Geräte im Geräte-Manager zu deaktivieren?
Selten. Sie physisch abzuziehen ist zuverlässiger und leicht rückgängig zu machen, während du dir beim Deaktivieren später merken musst, warum sich die Maschine so verhält.
Quellen
Abgesehen von den beiden genannten Quellen stammt alles zu hinteren Ports, geteilten Controllern und Abbrüchen aus den Messungen unseres Teams an eigenen Maschinen.
- 01Windows debugging tools (Microsoft)
woher USBView kommt — das Werkzeug, mit dem diese Seite die ausgehandelte Geschwindigkeit eines Ports abliest
learn.microsoft.com
- 02USB device descriptors (Microsoft Learn)
was ein Gerätedeskriptor ist — genau dessen Auslesen scheitert, wenn die Anforderung der Gerätebeschreibung fehlschlägt
learn.microsoft.com
Weiterlesen
Kommst du nicht weiter? Ticket auf Discord öffnen
Alle Anleitungen