Serielle Kommunikation über USB 3 - Theoretische Geschwindigkeit?

0

USB 3 hat eine theoretische Geschwindigkeit von 640 Mbit / s oder 80 Megabyte pro Sekunde.

Bedeutet dies (theoretisch), dass ich pro Sekunde 80 Megabyte an Informationen über die serielle Schnittstelle von meinem Computer an ein über USB 3 angeschlossenes Gerät senden kann?

4k-Videos haben normalerweise eine Bitrate von etwa 35 Mbit / s. Die theoretische Bandbreite von USB3 beträgt 640 Mbit / s. Kann USB3 (theoretisch) "Videoausgang" unterstützen, vorausgesetzt, es gibt einen Monitor, der USB3 anstelle von HDMI akzeptiert? Warum werden HDMI-Kabel verwendet, wenn USB3 über genügend Bandbreite für 4k-Video verfügt?

John D
quelle

Antworten:

0

Zunächst einmal beträgt die Baudrate für den USB3-Superspeed-Modus 5 Gbit / s, was 640 Mbit / s und nicht 640 Mbit / s entspricht.

Zweitens, während dies die Baudrate (die Anzahl der Leitungsübergänge pro Sekunde) ist, die USB zum Übertragen von Informationen verwenden kann, hängt der Overhead für jede Byte-Sequenz von der Paketgröße ab, in der Regel jedoch nicht mehr als ein Dutzend Bytes in einem Paket von 1024 Bytes. Hier gibt es jedoch einige theoretische Engpässe.

Eine ist die Bandbreitennutzung des Busses, dh ein USB3-Transceiver kann zwar mit einer Rate von 5 Gigabaud senden oder empfangen, dies ist jedoch nicht auf unbestimmte Zeit möglich. Er muss diese Informationen in die Speicherregister schreiben und auf DMA-Aufrufe warten, um sie zu kopieren die Daten aus diesen Registern in den Systemspeicher. Die DMA-Aufrufe können von der CPU und anderen Peripheriegeräten wie der Grafikkarte, die den Bus für ihre eigenen DMAs verwenden, unvorhersehbar verzögert werden.

Die zweite ist die Laufzeitverzögerung. Alle Daten, die von einem USB-Slave (Gerät) gelesen werden, müssen vom Master (Host) angefordert werden. Diese Anforderung erfolgt in Form eines Downstream-Pakets vom Host zum Gerät. und es braucht Zeit, bis sich dieses Paket über die Länge eines Kabels ausbreitet. Die Lichtgeschwindigkeit in Kupfer beträgt ungefähr 85% der Lichtgeschwindigkeit im Vakuum, wenn ich mich recht erinnere. Als Faustregel gilt, dass diese Geschwindigkeit ungefähr 1 Fuß pro Nanosekunde beträgt. Bei einem 1 Fuß langen USB-Kabel muss das Signal also 1 Nanosekunde lang gesendet werden bevor der Tranciever überhaupt anfangen kann, es aufzunehmen (bei 5 Gbit / s reicht eine Nanosekunde aus, um 5 ganze Datenbits zu übertragen). und Sie müssen dies für jedes Paket tun (es gibt tatsächlich mehrere Handshake-Pakete, die für jede Folge von Paketen gesendet werden müssen).

Wenn das Gerät das Leseanforderungspaket vom Host empfängt, muss es einen Interrupt auslösen, den Tranciever mit seinen Daten laden und dann vom Transciever senden lassen, damit auch noch eine gewisse Bearbeitungszeit verbleibt.

Was die Verwendung von USB3 zur Videoverwaltung angeht, gibt es eine Reihe von Adaptern, die genau das ermöglichen, und USB3 ist immer noch ausreichend schnell, um dies zu erreichen. Einige haben ihre eigene Grafikkarte an Bord, andere leiten die Daten einfach über die serielle Schnittstelle eines Framebuffer-Geräts weiter. Sie können einige hier auf Newegg sehen .

SE
quelle
Gibt es eine Möglichkeit, große Mengen an Rohdaten (möglicherweise einige MB / s) an einen USB3-Anschluss zu senden, der an ein speziell angefertigtes Gerät angeschlossen ist?
John D
@John D Sicher, ein Durchsatz von ein paar MB / s ist sogar auf USB 2.0 möglich, geschweige denn auf 3.0. Sie benötigen ein Gerät mit einem USB-Tranciever, und (wenn Sie das Schreiben eines benutzerdefinierten Gerätetreibers vermeiden möchten) können Sie libusb verwenden Erhalten Sie direkten Zugriff auf USB-Endpunkte aus Ihrer Anwendung. Wenn Sie sich wirklich mit dem Innenleben von USB vertraut machen möchten, empfehle ich beyondlogic.org/usbnutshell/usb1.shtml. Es liest sich viel einfacher als die USB-Spezifikationen, die Tausende von Seiten umfassen.
SE
Vergessen Sie nicht, die Antwort anzunehmen und / oder zu bewerten, wenn es für Sie hilfreich war. Wenn nicht, lassen Sie es mich wissen, damit ich die Antwort korrigieren kann, um Ihre Frage besser beantworten zu können.
SE
0

Sie haben die Berechnungen falsch. Die Bitrate für die USB 3.0 SuperSpeed ​​Gen1-Schnittstelle beträgt 5 Gbit / s. Jedes Byte benötigt 10 Einheitsintervalle für die Übertragung, da alle Daten 8b / 10b-codiert sind. Der höchstmögliche theoretische Durchsatz von USB3.0 liegt also bei 500 MByte / s.

Praktisch jedes SS-Verbindungssegment weist mehrere Overheads auf. Einer ist der Verbindungsverwaltungsaufwand, wenn beide Richtungen regelmäßig LUP- und LDN-Pakete übertragen müssen (Verbindung aufwärts und Verbindung abwärts). Dann gibt es ITP - Asynchronous Timestamp Packets, Entsprechungen von SOF in USB2. Dann gibt es Flusskontrollpakete wie Kreditbörsen und LGOODs. Dann gibt es einen Protokoll-Overhead auf der physikalischen Ebene (IN-OUT-Transaktionspakete usw.). Cypress hat den Durchsatz von bis zu 450 MB / s in künstlichen Testumgebungen ohne Overhead auf Anwendungsebene gemeldet .

Die Laufleistung kann also variieren.

Und ja, viele Laptop-Dockingstationen verwenden einen einzigen USB3.0-Anschluss, um zwei bis drei Monitoren über USB-HDMI-Konverter eine angemessene Videoauflösung zu bieten. Siehe zum Beispiel Dell D3100 .

Ale..chenski
quelle