Intel USB 3.0 eXtensible Host Controller - Anzahl der unterstützten Geräte überschritten?


7

Ich arbeite an einem Projekt, das 18 High-End-DSLR-Kameras verwendet, die über USB mit einem PC verbunden sind.

Während der Entwicklung lief auf dem System USB2 keine Probleme, aber als wir auf ein System mit USB 3.0 umgestiegen sind, wurde der folgende Fehler angezeigt, der dazu führte, dass nur 11 der Kameras erkannt wurden.

Geben Sie hier die Bildbeschreibung ein

Die Konfiguration sieht vor, dass die Kameras an einen USB3-Hub mit Stromversorgung ( so ähnlich ) angeschlossen werden, über den 7 Geräte angeschlossen werden können. Das System verfügt über drei davon - alle mit Strom versorgt, unterstützt jedoch nur etwa 11 der angeschlossenen Geräte (zwei und ein bisschen Hubs wert). Wir sind sicher, dass dies ein Stromproblem ist, aber alle Hubs werden mit Strom versorgt und die Kameras befinden sich auch an Netzadaptern.

Momentan müssen wir auf USB2 zurückgreifen, aber die Übertragungsrate bedeutet, dass der Fotoerfassungsprozess erheblich zugenommen hat - jede Bilddatei ist ungefähr 23 MB groß und es kann ungefähr 20 Sekunden dauern, bis alle Dateien heruntergeladen sind.

Ich hoffe, dass es bei der Intel-Hardware einen Weg gibt, diese Einschränkung zu umgehen - einen anderen Treiber oder einen anderen Controller insgesamt.

Danke im Voraus

Antworten:


13

Bei den meisten Intel XHCI-Controllern gibt es ein Hardwarelimit von 96 Endpunkten. Es würde mich nicht überraschen, wenn jede Kamera 8 Endpunkte verwendet, das ist eine ziemlich typische Zahl für komplexe, moderne Geräte. Die Hubs belegen auch Endpunkte. Sie können dies mit USBView bestätigen . Dies ist eine Einschränkung der Controller-Hardware, und daran führt kein Weg vorbei.


Danke David - daran hatten wir überhaupt nicht gedacht. Werfen Sie einen Blick auf USBView und sehen Sie, was uns das sagt
DilbertDave

1
Wenn Sie Linux zumindest zur Erkennung des Befehls USB-Geräte verwenden können (damals war es / proc / bus / usb / Geräte und USBFS gemountet) und die verschiedenen Protokolldateien zeigten uns eine große Menge an Informationen zu möglichen Problemen (Stromversorgung, Übertragung) Geschwindigkeit, Hub-Controller-Fehler und sogar Gerätefehler.)
Dennis Nolte

Das System ist Windows-basiert, aber es wird nicht schaden, wenn Sie versuchen, eine der
Kamerabänke

2

Erstens: Ich weiß nicht, ob es möglicherweise eine Fehler- / Funktionsbeschränkung für Ihren USB-Host-Controller oder eine Spezifikationsbeschränkung (bei Geräten, Hubs in Reihe) zwischen USB2 und USB3 gibt (Davids Answer scheint die Begrenzung des Intel-Controllers anzuzeigen )

Technisch gesehen ist meine Antwort USB2.0-Informationen, die ich gebe, aber es könnte Ihnen helfen, einige Ideen zu bekommen, wo Sie suchen sollten.

Stellen Sie sicher, dass Sie keine zu langen Kabel zwischen Host und Hub verwenden. Kostengünstige Kabel haben bei einer Länge von sogar 3 m eine Menge Probleme verursacht, während USB2.0-Spezifikationen 5 m Kabel zulassen, bis Sie einen "Hub" benötigen. Messen Sie die Ausgangsleistung der USB-Kabel. Die meiste Zeit, in der Sie 7 Port-Hubs erhalten, befinden sich tatsächlich 2 Hubs in der Gehäusezeile. Sie sollten also überprüfen, welcher Port Ihres Hubs mit dem "primären" und "sekundären" Hub verbunden ist.

Außerdem können Sie nicht mehr als 5 Hubs hintereinander platzieren (einschließlich Root-Hub + möglicherweise bereits ein weiterer Hub auf Ihrem Mainboard, bevor Sie überhaupt den USB-Stecker erreichen).

Bei unserem Setup waren wir auf 3 zusätzliche Hubs pro Port beschränkt. Selbst bei aktiver Stromversorgung der Hubs und guten Kabelverbindungen hatten wir Probleme, wenn wir mehr als 1 7er Hubs (= 7 Geräte) pro physischem USB-Port des Mainboards hinzufügten.

Unsere Lösung bestand darin, den Server mit 5 PCI 4x USB-Karten anzuschließen, mit denen wir 110 Geräte pro Server stapeln konnten.


Vielen Dank, Dennis. Wir hatten zwar aktive Verlängerungskabel angeschlossen, diese wurden jedoch als mögliche Ursache für das Problem entfernt. Wir haben uns gefragt, ob wir einfach eine andere Karte einwerfen könnten oder ob dies ein Treiberproblem ist - aber wenn Sie das Problem mit mehr Hardware umgehen, ist dies vielleicht unser Weg nach vorne. Der Endkunde ist vielleicht nicht glücklich darüber, dass wir seine Hardware aktualisieren, aber wenn das die Lösung ist ...
DilbertDave

1
@DilbertDave Abhängig von der tatsächlich benötigten Bandbreite müssen Sie dies möglicherweise trotzdem tun, unabhängig von Ihrem aktuellen Problem. Mit USB 2.0 hatten wir auch dieses Problem, wir brauchten bis zu 11,5 Mbit / s pro Gerät, was (selbst bei hohem USB-Overhead) zu ca. 50 (ich denke, wir haben diese Summe berechnet, aber nicht mehr sicher) Gerät pro Controller führen sollte , aber wie gesagt haben wir uns mit viel tiefer niedergelassen.
Dennis Nolte

1

Wir haben das gleiche Problem gelöst, indem wir eine interne USB 3.0 4-Port PCI-Express-Zusatzkarte mit eigener Stromversorgung eingesetzt haben. Aber nur, wenn Ihr Computer über den PCIe-Erweiterungssteckplatz verfügt. Dies fügt zusätzlichen Host-Controller hinzu, da der Intel-Controller sein Limit erreicht hat.


1
Die Frage wurde bereits vor zwei Jahren beantwortet. Diese Antwort fügt nichts hinzu, was noch nicht vorgeschlagen wurde.
Kasperd
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.