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

9

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?

user16307
quelle
1
Rs232 verwendet +/- 12 Volt, USB 0-5 Volt
mischnic

Antworten:

16

Die Übertragungsgeschwindigkeit ist wichtig, da USB Halbduplex ist: Um eine Antwort zu übertragen, muss der Bus umgedreht und die Daten in die andere Richtung übertragen werden. Der Host sendet also Daten und wartet auf eine Bestätigung oder eine Antwort. Alle Übertragungen werden vom Host gesteuert. Das Gerät hat dann eine bestimmte (ziemlich kurze) Zeit, um zu reagieren. Diese Zeit ist ungefähr die Zeit, die für zwei Signalauslösungen entlang eines 5 m langen 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 Auffinden 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 einstellen können, bevor das nächste Bit gesendet wird. Da USB Quellenabschluss- und Spannungsmodustreiber verwendet, muss dies der Fall sein, da sich sonst Reflexionen häufen und den Treiber sprengen können. Dies bedeutet nicht, dass sich die Netzspannung am Ende des Bits vollständig eingestellt hat. mit Worst-Case-Untergrabung. Am Ende des Bits war jedoch genügend Dämpfung vorhanden, so dass die Reflexionsamplitude auf überschaubare Werte reduziert wurde. Die Kabellänge bei niedriger Geschwindigkeit wurde auf 18 ns begrenzt, um zu verhindern, dass Übertragungsleitungseffekte die Signale bei niedriger Geschwindigkeit beeinflussen.

  1. Ich möchte ein Kabel bauen, das länger als 5 Meter ist. Warum funktioniert das nicht?

A: Selbst wenn Sie gegen die Spezifikation verstoßen würden, würde es Sie buchstäblich nicht sehr weit bringen. Unter der Annahme von Verzögerungszeiten im ungünstigsten Fall hat ein Gerät mit voller Geschwindigkeit an der Unterseite von 5 Hubs und Kabeln eine Zeitüberschreitungsspanne von 280 ps. Wenn Sie diesen Abstand auf 0 ps reduzieren, erhalten Sie nur zusätzliche 5 cm, was die Mühe kaum wert ist.

Meine Antwort ist also nur zur Hälfte richtig: Die Umlaufgrenze gilt für eine Worst-Case-Kette von Naben und Kabeln mit einer Gesamttiefe von 25 m.

Dan Neely hat auch Recht, 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.

pjc50
quelle
Hut ist man macht ein 20m USB-Kabel. was würde passieren? Sie sagen, die Spannung ändert sich nicht und die Geschwindigkeit spielt eine Rolle. Was passiert also in einem 20 m langen Kabelgehäuse und USB funktioniert nicht?
user16307
2
Der Host sendet eine Anfrage, erhält nicht rechtzeitig eine Antwort und zählt das Gerät am anderen Ende nicht auf.
pjc50
4
Bist du dir da sicher? Gemäß der USB-Spezifikation muss die Ausbreitungsverzögerung des Signals entlang des Kabels <26 ns sein (Tabelle 7-9), damit das Signal in einem Standard-5 m-Kabel weniger als 5,2 ns / m benötigt. Die Grenze für die Umlaufverzögerung liegt bei ca. 1,5 μs. Bei dieser Geschwindigkeit bleibt genügend Zeit, damit das Signal über ein Kabel von> 100 m hin- und herbewegt werden kann. Das USB Implementers Forum gibt einen anderen Grund für die 5-Meter-Beschränkung an.
Psmears
Gibt es einen Grund dafür, dass USB 1.0-2.0 seit dem ersten Tag Halbduplex statt Vollduplex ist (wie USB 3.0)? Mit anderen Worten, gibt es irgendwelche praktischen Vorteile von Halbduplex gegenüber Vollduplex?
Tigrou
1
@tigrou im weiteren Sinne umfasste USB1 überall einfache Optionen, da es billig genug sein musste, um RS232 / PS2 / LPT / Game-Ports zu konkurrieren. Silizium ist im Laufe der Jahre viel billiger geworden; Ein höherer Preis als der Mindestpreis, der für die Zielanwendungen "gut genug" sein musste, führte jedoch dazu, dass USB2 FireWire tötete. und Thunderbolt scheint zunehmend tot geboren zu sein.
Dan spielt am Feuer
10

Siehe diese Seite unter /superuser/64744/maximum-length-of-a-usb-cable .

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

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 4 m begrenzt ist. Diese Methode bietet eine Reihe von Vorteilen. Da USB für eine Desktop-Umgebung vorgesehen ist, wurden die Bereichsbeschränkungen als akzeptabel angesehen. Wenn Sie mit der Übertragungsleitungstheorie vertraut sind und weitere Informationen zu diesem Thema wünschen, lesen Sie den Abschnitt über USB-Signale in den häufig gestellten Fragen der Entwickler.

Mattias Johansson
quelle
1
erklärt immer noch nichts viel neblige Informationen
user16307
10
Könnte für Sie neblig sein, aber es gibt keine einfache Möglichkeit, die Signaltheorie in dem Raum zu erklären, den dieses Format zulässt.
Wouter van Ooijen
5
Ich denke, dass diese Antwort bestimmte Gründe aufzeigt, warum die Einschränkungen vorhanden sind. Es ist ziemlich einfach, diese Bereiche durch eine Websuche weiter zu erkunden. Zum Beispiel zur Übertragungsleitungstheorie. Deshalb habe ich diese Antwort gepostet.
Mattias Johansson
1
Ich stimme selten ab, deshalb fühle ich mich gezwungen, es jetzt zu rechtfertigen. Entgegen dem Kommentar von Wouter van Ooijen bin ich der Meinung, dass diese Antwort nichts Konkreteres liefert als einen möglichen Vorschlag zur Suche nach "USB-Kabellängenbegrenzung". Darüber hinaus enthält die Antwort, auf die Sie sich beziehen, einen toten Link, sodass der Vorschlag zur weiteren Lektüre nicht einmal so nützlich ist. Wenn Sie die richtige Originalquelle gefunden und daraus zitiert hätten, wie es psmears und pjc50 getan haben, wäre dies eine andere Sache - denn das liefert tatsächlich Details darüber, warum diese Einschränkung besteht.
Oleksandr R.
5

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

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

Es gibt also Problemumgehungen, und keine davon beinhaltet eine einfache "Pufferung", da die Pufferung 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 zwischen dem Hub und dem Host befindet sich ein weiteres Kabel in voller Länge. Alle Anforderungen für Geräte, die nach dem Hub angeschlossen werden, werden mit zusätzlichen Verzögerungen geplant.

    1. Sie können alle 4 m des Kabels einen Single-Port-Hub mit bis zu 7 Hubs in Reihe einsetzen. Die Beschränkung beträgt 7 Hub-Ebenen vom Host bis zum endgültigen Gerät. Wenn sich also Hubs vor Ihrem Gerät befinden, müssen Sie die Anzahl der Hubs entsprechend reduzieren. Viele USB-Hosts verfügen über einen einstufigen internen Hub. Eine realistische Grenze wäre also 28 m Kabel mit 6 Hubs in Reihe. Alle Hubs bis auf den ersten müssen so tun, als wären sie autark.

    2. Sie können virtuelle Hubs mit einem kräftigeren Transceiver mit Preemphasis direkt am Stecker, der in den Host eingeht, hinzufügen 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 Ihr Empfänger die vom Standardgerät über ein langes Kabel gesendeten Daten wiederherstellen kann, sind Sie 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, sondern nur einen Identitätswechsel.

  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 realen Host (rHost), ein von ihm gesehenes emuliertes Gerät (eDev), ein langes Kabel, einen emulierten Host (eHost) und die Geräte, die es am anderen Ende des Kabels sehen (rDev) .

    Der eDev gibt zunächst vor, nicht da zu sein. Irgendwann sieht der eHost, dass ein rDev angeschlossen wurde. Er zählt es auf und leitet die Daten an den eDev weiter. Der eDev emuliert dann ein Plug-In-Ereignis und der rHost zählt es auf. Der rHost glaubt, dass er rDev sieht, aber es ist nur eDev, der da ist und so tut, als ob er es tut. In ähnlicher Weise glaubt der rDev, dass er einen rHost sieht, aber es ist nur ein eHost, der da ist und vorgibt.

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

    Für OUT-Übertragungen muss der eDev raten, wie sich rDev verhalten würde. Es gibt verschiedene Heuristiken und Verhaltensweisen, die hier versucht 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 wird rDev die Daten schließlich verbrauchen und bestätigen. Wenn dies nicht gelingt oder der rDev mit einem STALL antwortet, kann der eDev bei der nächsten Übertragung vom Host am besten auf diese Weise vorgehen. Alternativ kann der eDev die Übertragung immer NAKEN, wobei normalerweise davon ausgegangen wird, dass der Host die identische Übertragung später einfach erneut versucht. Obwohl die ursprüngliche Übertragung NAK-ed war, wird sie an eHost weitergeleitet, das die Übertragung dann mit rDev ausführt. Was auch immer die Antwort von rDev ist, wird zur Antwort des eDev, sobald es davon erfährt.

    Realistische Implementierungen beginnen mit konservativen Heuristiken, die eine vollständige Hin- und Rückfahrt zu rDev für alle Übertragungen beinhalten, die von einem NAK verschoben werden können. Während der Übertragungen kann das erwartete Verhalten von rDev gelernt und eDev weniger konservativ werden. Der "Extender" kann das Wissen über Standard-USB-Klassen und einige herstellerspezifische Klassen- / Gerätekenntnisse / Blacklists / Whitelists verwenden, um ebenfalls eine bessere Leistung zu bieten.

Stellen Sie Monica wieder her
quelle
Könnten alternative Hubs nicht vorgeben, mit Bus betrieben zu werden? Ich denke, ein Hub mit Busantrieb kann einen Hub mit eigener Stromversorgung versorgen, nicht wahr?
Supercat
Nichts mit Bus-Strom zu tun - es ist die Gesamtverzögerung als Reaktion auf eine ACK.
pjc50
@supercat Ja, es könnte alternative Rollenspiele geben. Es spielt keine Rolle, wie Sie es tun, solange der vorgetäuschte Gerätebaum dem Host entspricht.
Stellen Sie Monica am
@ pjc50 Laut USB-Spezifikation beträgt die maximale ACK-Verzögerung ca. 400 ns. Das Zeitsignal kann 40 Meter Kupfer in beide Richtungen übertragen. Dies ist hier kein begrenzender Faktor.
ZAB
1
@ ZAB Siehe usb.org/developers/usbfaq/#cab1
pjc50
2

Die meisten Datenübertragungs-über-Kabel-Schemata haben einen anständigen international anerkannten Standard, der beschreibt, wie sie implementiert werden, einschließlich einer Spezifikation für die "charakteristische Impedanz" des Kabels (dies wird als Widerstand betrachtet, gilt jedoch für Wechselstrom), die Abschlussimpedanz (die 'Widerstand' am Ende der Verbindung, der benötigt wird, um zu vermeiden, dass Reflexionen Ihres Signals das Kabel zurück zum Sender reflektieren), häufig eine festgelegte 'Anstiegsrate' (die Zeit, die die Signale benötigen, um von a zu wechseln) 0-Zustand zu einem 1-Zustand oder umgekehrt) und damit die maximale Anzahl von Übergängen zwischen 0/1 pro Sekunde (dh kbps / Mbps / Gbps) und damit die Länge des Kabels, bevor sich die Signalintegrität verschlechtert & Sachen funktionieren nicht mehr richtig.

Im Vergleich zu USB hat RS232 alle Spezifikationen bezüglich Kabeltyp, charakteristischer Impedanz, Anstiegsgeschwindigkeit, Kabellänge und Steckertyp. Sicher, 25-polige und 9-polige D-Steckverbinder waren üblich, aber in Wirklichkeit wurde RS232 für alle Arten von Steckverbindern, Kabeln und Produkten entwickelt, ohne dass eine wirkliche Spezifikation etwas anderes zu sagen hätte. In der Praxis können Sie mit RS232 normalerweise längere Strecken zurücklegen, indem Sie auf eine niedrigere Bit-pro-Sekunde-Rate (auch als "Baud" bezeichnet) fallen. Die maximale Entfernung, die Sie erreichen können, hängt zu einem wesentlichen Teil von der Impedanz Ihres Kabels ab, unabhängig davon, ob es abgeschirmt ist oder nicht, vom Abschluss am Ende usw.

und wenn Sie RS232 mit USB vergleichen, vergleichen Sie einen "Standard" aus den 1960er Jahren, der mit 115 k2 (mit seltenen Ausnahmen) fast übertroffen wurde, mit einem aus den 1990er und 2000er Jahren, der mit 1,5 Mbit / s begann, eine Größenordnung schneller. dann 12 Mbit / s (fast 100x schneller), dann 480 Mbit / s (fast 5000x schneller), was jedoch bedeutete, dass Kabelparameter und Kabellänge eine wichtige Rolle dabei spielten, dass es zuverlässig funktioniert . Es wurde als Standard für Desktop-Peripherieanschlüsse konzipiert, sodass 5 m als akzeptabel angesehen wurden. Anschließend wurden alle Parameter der Kabel, Anschlüsse und Geschwindigkeiten festgelegt. Wenn es eine Möglichkeit gäbe, USB langsamer zu machen, könnten Sie es wahrscheinlich auf längeren Kabeln laufen lassen (ohne Repeater).

Techydude
quelle
2
RS232 ist möglicherweise bei 115 KB "aufgefüllt", aber ich erinnere mich, als es sich um eine 110- oder 300- Bit- pro-Sekunde-Verbindung zwischen einem Fernschreiber und einem Modem handelte. Die Signale waren unsymmetrisch, die Spannung schwankte von -12 V auf +12 V und es gab kein Twisted Pair oder Abschluss oder Abschirmung. Bei dieser Geschwindigkeit und über so kurze Strecken 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, die viel mehr über die Leitung als Übertragungsleitung aussagten.
Solomon Slow