Warum ist die maximale Länge des USB-Kabels kürzer als bei RS232?

Warum müssen wir das USB-Signal puffern, wenn das Kabel länger als 5 m ist?
Liegt das an einem Signalspannungsabfall?
Liegt das daran, dass es Ströme treibt?

Rs232 verwendet +/-12 Volt, USB 0-5 Volt

Antworten (4)

Die Übertragungsgeschwindigkeit ist wichtig, da USB Halbduplex ist: Um eine Antwort zu übertragen, muss der Bus umgedreht und Daten in die andere Richtung übertragen werden. Der Host sendet also Daten aus und wartet auf eine Bestätigung oder Antwort. Alle Übertragungen werden vom Host kontrolliert. Das Gerät hat dann eine gewisse (ziemlich kurze) Zeit, um zu antworten. Diese Zeit entspricht ungefähr der Zeit, die für zwei Signalfahrten entlang eines 5-m-Kabels benötigt wird.

(Ich kann in dieser Sekunde keine Referenzen finden, aber die relevanten Spezifikationsdokumente sind öffentlich.)

Bearbeiten: Danke an psmears für das Finden dieses Abschnitts

Kabel und Langstreckenlösungen

  1. Warum gibt es Kabellängenbeschränkungen und welche?

A: Die Kabellänge wurde durch eine Kabelverzögerungsspezifikation von 26 ns begrenzt, damit sich Reflexionen am Sender absetzen konnten, bevor das nächste Bit gesendet wurde. Da USB Source Termination und Voltage-Mode-Treiber verwendet, muss dies der Fall sein, da sich sonst Reflexionen ansammeln und den Treiber sprengen können. Dies bedeutet nicht, dass sich die Netzspannung bis zum Ende des Bits vollständig stabilisiert hat; mit Worst-Case-Unterterminierung. Am Ende des Bits wurde jedoch ausreichend gedämpft, sodass die Reflexionsamplitude auf ein handhabbares Niveau reduziert wurde. Die Kabellänge für niedrige Geschwindigkeit wurde auf 18 ns begrenzt, um zu verhindern, dass Übertragungsleitungseffekte langsame Signale beeinflussen.

  1. Ich möchte ein Kabel länger als 5 Meter bauen, warum geht das nicht?

A: Selbst wenn Sie gegen die Spezifikation verstoßen, bringt Sie das buchstäblich nicht sehr weit. Unter Annahme der Worst-Case-Verzögerungszeiten hat ein Gerät mit voller Geschwindigkeit am unteren Ende von 5 Hubs und Kabeln eine Timeout-Marge von 280 ps. Wenn Sie diesen Spielraum auf 0 ps reduzieren, erhalten Sie nur 5 cm mehr, was die Mühe kaum wert ist.

Meine Antwort ist also nur halb richtig: Das Roundtrip-Limit gilt für eine Worst-Case-Kette von Hubs und Kabeln bei einer Gesamttiefe von 25 m.

Dan Neely hat auch recht damit, dass USB immer die kostengünstigste Lösung für "langsame" Peripheriegeräte wie Tastaturen, Mäuse, Drucker usw. sein sollte. Wenn Sie Vollduplex für mehr Geschwindigkeit und mehr Entfernung wünschen, ist 100baseT Ethernet die natürliche Wahl.

Hut ab macht man ein 20m USB Kabel. was würde passieren? Sie sagen, die Spannung ändert sich nicht und die Geschwindigkeit ist wichtig. Was passiert also in einem 20-m-Kabelgehäuse und USB funktioniert nicht?
Der Host sendet eine Anfrage, erhält nicht rechtzeitig eine Antwort und kann das Gerät am anderen Ende nicht auflisten.
Bist du dir sicher? Gemäß der USB-Spezifikation muss die Ausbreitungsverzögerung des Signals entlang des Kabels <26 ns sein (Tabelle 7-9), sodass das Signal weniger als 5,2 ns/m in einem standardmäßigen 5-m-Kabel benötigt. Die Grenze für die Round-Trip-Verzögerung liegt bei etwa 1,5 μs. Bei dieser Geschwindigkeit hat das Signal genügend Zeit, um über ein Kabel von > 100 m hin und her zu reisen. Das USB Implementers Forum gibt einen anderen Grund für die 5m-Beschränkung an.
Gibt es einen Grund dafür, dass USB 1.0-2.0 vom ersten Tag an Halbduplex statt Vollduplex ist (wie USB 3.0)? Mit anderen Worten, gibt es irgendwelche praktischen Vorteile von Halb- gegenüber Vollduplex?
tigrou: USB nutzt die 2 Datenleitungen als Differenzsignal. Für Vollduplex müssten sie 2 weitere Signalleitungen hinzufügen, was die Kosten für Stecker und Kabel erhöhen würde.
@tigrou im weiteren Sinne umfasste USB1 einfache Optionen, wo immer es möglich war, da es billig genug sein musste, um RS232/PS2/LPT/Game-Ports zu konkurrieren. Silizium ist im Laufe der Jahre viel billiger geworden; aber ein Preis, der höher als das erforderliche Minimum war, um für die angestrebten Anwendungen „gut genug“ zu sein, führte dazu, dass USB2 FireWire tötete; und Thunderbolt scheint zunehmend tot geboren zu sein.
@psmears danke für diesen Link, er unterstützt meine Erinnerungen zur Hälfte - siehe Bearbeiten.
Okay, aber was ist, wenn ich keine fünf Hubs habe?
In diesem Fall gilt die erste der genannten Antworten; Wenn ein Kabelabschnitt zu lang ist, ist es möglich, dass eine Reflexion mit dem nächsten Bit kollidiert und die Spannung an der Quelle seine Stromschienen überschreitet. Dies kann den Treiber ausbrennen. Dabei werden Worst-Case-Parameter angenommen; Wenn Sie ein hinterhältiges 25-m-Kabel mit zusätzlichem Senkenabschluss bauen, können Sie es möglicherweise die meiste Zeit zum Laufen bringen.
Ich habe eine Kette von vier USB-Verlängerungskabeln ausprobiert (von denen eines ein 8-Meter-DIY-Kabel war). Eingabegeräte funktionierten gut, Massenspeicher schaltete auf Low-Speed-Modus und Wi-Fi-Adapter funktionierte nicht.

Siehe diese Seite, https://superuser.com/questions/64744/maximum-length-of-a-usb-cable .

F1: Wie lange kann ich ein Kabel verwenden, um mein Gerät anzuschließen? A1: In der Praxis begrenzt die USB-Spezifikation die Länge eines Kabels zwischen Full-Speed-Geräten auf 5 Meter (etwas weniger als 16 Fuß 5 Zoll). Für ein Gerät mit niedriger Geschwindigkeit beträgt die Grenze 3 Meter (9 Fuß 10 Zoll).

F2: Warum kann ich kein Kabel verwenden, das länger als 3 oder 5 m ist? A2: Das elektrische Design von USB lässt dies nicht zu. Bei der Entwicklung von USB wurde die Entscheidung getroffen, die Ausbreitung elektromagnetischer Felder auf USB-Datenleitungen so zu handhaben, dass die maximale Länge eines USB-Kabels auf etwas im Bereich von 4 m begrenzt wird. Diese Methode hat eine Reihe von Vorteilen, und da USB für eine Desktop-Umgebung gedacht ist, wurden die Reichweitenbeschränkungen als akzeptabel erachtet. Wenn Sie mit der Übertragungsleitungstheorie vertraut sind und weitere Einzelheiten zu diesem Thema wünschen, werfen Sie einen Blick auf den Abschnitt USB-Signale der Entwickler-FAQ.

erklärt immer noch nichts, viele neblige Informationen
Vielleicht ist es Ihnen unklar, aber es gibt keine einfache Möglichkeit, die Signaltheorie in dem Raum zu erklären, den dieses Format zulässt.
Ich denke, dass diese Antwort auf bestimmte Gründe hinweist, warum die Einschränkungen vorhanden sind. Es ist ganz einfach, diese Bereiche durch eine Websuche weiter zu erkunden. Zum Beispiel zur Übertragungsleitungstheorie. Deshalb habe ich diese Antwort gepostet.
Ich stimme selten ab, also fühle ich mich gezwungen, es jetzt zu rechtfertigen. Entgegen dem Kommentar von Wouter van Ooijen habe ich wirklich nicht das Gefühl, dass diese Antwort etwas Konkreteres liefert als einen möglichen Vorschlag, nach "USB-Kabellängenbegrenzung" zu suchen. Darüber hinaus enthält die Antwort, auf die Sie sich beziehen, einen toten Link, sodass der Vorschlag zum Weiterlesen nicht einmal so nützlich ist. Wenn Sie die richtige Originalquelle gefunden und daraus zitiert hätten, wie es psmears und pjc50 taten, wäre dies eine andere Sache - denn dies liefert tatsächlich Details darüber, warum diese Einschränkung existiert.

Es ist nicht wirklich möglich, USB zu "puffern", zumindest nicht im üblichen Sinne des Wortes. Typischerweise bedeutet Pufferung elektrische Verstärkung und vielleicht Signalregenerierung.

Bei USB steuert der Host den gesamten Bus. Ein Host sendet eine Anfrage, und das Gerät muss eine Antwort an den Host ausgeben. Der Beginn der Antwort muss eine bestimmte Zeit nach dem Ende der Übertragung der Anfrage beim Host eintreffen. Bei einem zu langen Kabel ist die Ausbreitungsverzögerung zu lang, als dass die Antwort den Host rechtzeitig erreichen könnte.

Es gibt also Problemumgehungen, und keine davon beinhaltet einfaches "Puffern", da das Puffern zusätzliche Verzögerungen hinzufügt und wir den Host irgendwie toleranter gegenüber einer längeren Verzögerung machen müssen.

Es gibt zwei Klassen von Problemumgehungen:

  1. Problemumgehungen, die physische oder virtuelle Hubs einfügen. Wenn ein Host einen Hub auf dem Bus auflistet, fügt der Hub selbst eine zusätzliche Verzögerung hinzu, und es gibt ein weiteres Kabel mit potenziell voller Länge zwischen dem Hub und dem Host. Alle Anforderungen für Geräte, die stromabwärts vom Hub angeschlossen werden, werden mit zusätzlichen Verzögerungen geplant.

    1. Sie können alle 4 m des Kabels einen Single-Port-Hub einfügen, mit bis zu 7 Hubs in Reihe. Die Beschränkung liegt bei 7 Hub-Ebenen vom Host bis zum endgültigen Gerät. Wenn Ihrem Gerät also Hubs vorgeschaltet sind, müssen Sie die Anzahl der Hubs entsprechend reduzieren. Viele USB-Hosts verfügen über einen internen Hub auf einer Ebene, sodass eine realistische Grenze bei 28 m Kabel mit 6 Hubs in Reihe liegt. Alle Hubs außer dem ersten müssen so tun, als wären sie selbst mit Strom versorgt.

    2. Sie können virtuelle Hubs mit einem kräftigeren Transceiver mit Preemphasis direkt am Stecker hinzufügen, der in den Host geht, und dann den USB-Verkehr über ein längeres Kabel übertragen. Solange die vom Gerät am Ende eines solchen verlängerten Kabels empfangenen Signale innerhalb der Spezifikation liegen und solange Ihr Empfänger die vom Standardgerät über ein langes Kabel gesendeten Daten wiederherstellen kann, ist alles in Ordnung. Die virtuellen Hubs werden hinzugefügt, damit der Host die lange Verzögerung zulässt – aber natürlich gibt es keine physischen Hubs, nur eine Nachahmung von ihnen.

  2. Problemumgehungen, die ein Gerät emulieren, das auf einer höheren Protokollebene „langsam“ erscheint. So funktionieren einige Cat-5-USB-„Extender“. Hier gibt es fünf Partner: den echten Host (rHost), ein emuliertes Gerät, das von ihm gesehen wird (eDev), ein langes Kabel, ein emulierter Host (eHost) und die Geräte, die es am anderen Ende des Kabels sehen (rDev). .

    Zunächst gibt der eDev vor, nicht da zu sein. Irgendwann sieht der eHost, dass ein rDev angeschlossen wurde. Er listet es auf und leitet die Daten an das eDev weiter. Das eDev emuliert dann ein Plug-In-Ereignis und der rHost listet es auf. Der rHost glaubt, dass er rDev sieht, aber es ist nur eDev, das da ist und vorgibt. In ähnlicher Weise denkt der rDev, dass er einen rHost sieht, aber es ist nur ein eHost, der vorgibt, dort zu sein.

    Schließlich möchte der rHost einige Transfers an das rDev ausgeben, von dem er glaubt, dass es dort ist, um es zu nutzen. Bei IN-Transfers gibt der eDev vor, keine Daten zu haben (antwortet mit einem NAK). Die Übertragungsanfrage wird an den eHost weitergeleitet, der sie mit rDev erneut ausführt. Die Ergebnisse davon werden an eDev zurückgesendet, das die Ergebnisse verwendet, wenn der Host das nächste Mal versucht, die Übertragung durchzuführen.

    Für OUT-Übertragungen muss der eDev erraten, wie sich rDev verhalten würde. Es gibt verschiedene Heuristiken und Verhaltensweisen, die hier ausprobiert werden können. Eine Möglichkeit besteht darin, dass eDev die Daten immer empfängt und mit einem ACK antwortet. Die Übertragung wird an eHost weitergeleitet, der die Übertragung dann an rDev wiedergibt. Im Idealfall konsumiert rDev die Daten schließlich und bestätigt sie. Gelingt dies nicht oder antwortet das rDev mit einem STALL, so kann das eDev bestenfalls bei der nächsten Übertragung vom Host so vorgehen. Alternativ kann der eDev die Übertragung immer mit NAK versehen, mit der normalerweise korrekten Annahme, dass der Host die identische Übertragung später einfach erneut versuchen wird. Obwohl die ursprüngliche Übertragung NAK-ed war, wird sie an eHost weitergeleitet, der dann die Übertragung mit rDev ausführt. Was auch immer die Antwort von rDev ist, wird die Antwort von eDev, sobald es davon erfährt.

    Realistische Implementierungen beginnen mit konservativen Heuristiken, die einen vollständigen Roundtrip zu rDev für alle Übertragungen umfassen, die durch eine NAK verschoben werden können. Während die Übertragungen fortschreiten, kann das erwartete Verhalten von rDev erlernt werden, und eDev kann weniger konservativ werden. Der „Extender“ kann das Wissen über Standard-USB-Klassen und einige herstellerspezifische Klassen-/Gerätekenntnisse/Blacklists/Whitelists verwenden, um auch eine bessere Leistung zu bieten.

Könnten alternative Hubs nicht vorgeben, über den Bus mit Strom versorgt zu werden? Ich denke, ein busbetriebener Hub kann einen Hub mit eigener Stromversorgung mit Strom versorgen, oder nicht?
Nichts mit Stromversorgung über den Bus zu tun - es ist die Gesamtverzögerung als Antwort auf ein ACK.
@supercat Ja, es könnte alternative vorgetäuschte Hubs geben. Es spielt keine Rolle, wie Sie es tun, solange der vorgetäuschte Gerätebaum für den Host konform erscheint.
@pjc50 laut USB-Spezifikation beträgt die maximale ACK-Verzögerung etwa 400 ns. Das Zeitsignal kann 40 Meter Kupfer in beide Richtungen zurücklegen. Es ist hier kein limitierender Faktor.

Die meisten Systeme zur Datenübertragung über Kabel haben einen anständigen international anerkannten Standard, der beschreibt, wie sie zu implementieren sind, einschließlich einer Spezifikation für die "charakteristische Impedanz" des Kabels (stellen Sie sich dies als Widerstand vor, gilt aber für Wechselstrom), die Abschlussimpedanz (die 'Widerstand' am Ende der Verbindung, der benötigt wird, um Reflexionen Ihres Signals zu vermeiden, die das Kabel zurück zum Sender zurückprallen), häufig eine bestimmte 'Anstiegsgeschwindigkeit' (die Zeit, die das Signal/die Signale benötigen, um von a 0-Zustand in einen 1-Zustand oder umgekehrt) und damit die maximale Anzahl von Übergängen zwischen 0/1 pro Sekunde (d. h. kbps / Mbps / Gbps) und somit wie lange das Kabel sein kann, bevor die Signalintegrität abnimmt & Zeug funktioniert nicht mehr richtig.

Im Vergleich zu USB hat RS232 alle Spezifikationen zu Kabeltyp, charakteristischer Impedanz, Anstiegsgeschwindigkeit, Kabellänge und Steckertyp. Sicher, 25-polige und 9-polige D-Anschlüsse waren üblich, aber in Wirklichkeit wurde RS232 in alle Arten von Anschlüssen, Kabeln und Produkten eingebaut, ohne dass eine wirkliche Spezifikation etwas anderes sagen könnte. In der Praxis können Sie mit RS232 normalerweise größere Entfernungen zurücklegen, indem Sie auf eine niedrigere Bit-pro-Sekunde-Rate (auch als "Baud" bezeichnet) fallen. Die maximale Entfernung, die Sie erreichen können, wird auch zu einem erheblichen Teil von der Impedanz Ihres Kabels bestimmt, ob es abgeschirmt ist oder nicht, Abschluss am Ende und so weiter.

und wenn Sie RS232 mit USB vergleichen, vergleichen Sie einen "Standard" aus den 1960er Jahren, der bei 115 k2 (mit seltenen Ausnahmen) so ziemlich seinen Höhepunkt erreichte, mit einem aus den 1990er und 2000er Jahren, der bei 1,5 Mbit / s begann , eine Größenordnung schneller, dann 12Mbps (fast 100x schneller), dann 480Mbps (fast 5000x schneller), was aber bedeutete, dass Kabelparameter und Kabellänge eine wichtige Rolle spielten, damit es zuverlässig funktionierte . Es wurde als Standard für Desktop-Peripherieverbindungen entwickelt, daher wurden 5 m als akzeptabel erachtet, und dann wurden alle Parameter der Kabel, Anschlüsse und Geschwindigkeiten von diesem Punkt an festgelegt. Wenn es eine Möglichkeit gäbe, USB langsamer zu machen, könnten Sie es wahrscheinlich mit längeren Kabeln (ohne Repeater) betreiben.

RS232 hat vielleicht bei 115K "übertroffen", aber ich erinnere mich, als es eine 110- oder 300 - Bit -pro-Sekunde-Verbindung zwischen einem Fernschreiber und einem Modem war. Die Signale waren unsymmetrisch, die Spannung schwankte von -12 V auf +12 V, und es gab keine verdrillte Doppelleitung oder Terminierung oder Abschirmung. Bei dieser Geschwindigkeit und über so kurze Entfernungen bedeuteten die Eigenschaften des Drahtes nichts. Später, als die Leute mit höheren Geschwindigkeiten über Hunderte von Metern senden wollten, bekamen wir RS422 und RS485, was viel mehr über die Draht-als-Übertragungsleitung aussagt.