Antworten:
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
- 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.
- 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.
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.
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:
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.
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.
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.
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.
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).