Warum zeigt Windows die Meldung "Dieses Gerät kann schneller arbeiten" an, wenn ich es ungeschickt anschließe?

74

Ich habe festgestellt, dass ich auf Windows XP und 7 (bzw. auf 2 verschiedenen Computern) die Meldung "Dieses Gerät kann schneller arbeiten, wenn Sie es an einen Hochgeschwindigkeits-USB 2.0-Anschluss anschließen" erhalten kann, die beim Anschließen des Kabels angezeigt wird sehr langsam (oder mit nur einer Hand ein bisschen zu kämpfen). Wenn ich es schnell genug oder normal mit beiden Händen anschließe, erfolgt keine Benachrichtigung. In beiden Fällen scheinen alle diese Geräte normal zu funktionieren.

Was ich denke, passiert, dass der Kontakt zwischen den Kabeln während einer langsamen / ungeschickten Verbindung für eine ausreichende Zeit unterbrochen wird, die der USB-Controller nicht für 2.0, sondern für langsamer hält. Aber warum glaubt es das? Oder warum heißt es nicht einfach "Sie sind schlecht darin, Kabel anzuschließen, bitte ziehen Sie den Stecker heraus und versuchen Sie es erneut"?

user1306322
quelle
Ist das Gerät an einen USB-Dongle angeschlossen und nicht direkt an Ihre Box? Versuchen Sie in diesem Fall, das Gerät direkt und sozusagen nicht von einem Drittanbieter anzuschließen.
Es ist mit dem rückseitigen Kabelanschluss des Desktop-Turms verbunden, sodass zwischen dem Motherboard und dem Gerät am anderen Ende keine Verbindung bestehen sollte.
user1306322
5
Wer in aller Welt benutzt beide Hände, um ein USB-Gerät anzuschließen?
Gene
3
@ Cunningham'sLawyer: Einhand-Szenario : der usb-stecker (oder schlüssel) schiebt den laptop auf einer seite um den tisch Zweihand-Szenario : das gleiche Ausmaß an Spiegeln, aber der Sekundenzeiger hält den Laptop still.
WoJ
Warten Sie, also haben Sie USB 1-Anschlüsse an diesen Laptops? 0_0
rahuldottech

Antworten:

76

Die Meldung bezieht sich auf die Aushandlung der alten FS-Datenrate (Full Speed) von 12 Mbit / s anstelle der HS-Datenrate (High Speed) von 480 Mbit / s. Es muss wirklich schwierig sein, diesen Effekt über einen USB2-Anschluss zu erzielen. Das USB2.0-HS-Protokoll wird nach einer ziemlich komplizierten Aushandlung zwischen einem Gerät und einem Host eingerichtet, da anfangs jedes HS-Gerät als FS-Gerät fungiert.

Der normale Prozess ist wie folgt:

  1. HS-fähiges Gerät zieht die D + -Leitung nach oben, nachdem es ein VBUS-Signal mit einem Widerstand von 1-1,5 kΩ auf 3,3 V erhalten hat. Genau wie ein FS-Gerät.

  2. Der Host-Port erkennt, dass D + = high ist. Nach einer minimalen Verzögerung von 100 ms aktiviert der Host den USB_RESET-Status auf dem Bus und treibt sowohl D + als auch D- Leitungen mit 45 Ω-Treibern für 10 oder 50 ms auf Masse.

  3. Wenn das Gerät FS ist, tut es nichts und wartet bis zum Ende von USB_RESET.

  4. Wenn das Gerät HS ist, würde es mit dem HS-Treiber (18mA-Quelle) für ca. 1ms D-High fahren. Dies erzeugt einen Impuls mit einer Amplitude von etwa 800 mV (18 mA bei einer Last von 45 Ω), der als "Chirp-K" bezeichnet wird.

  5. Wenn das END von Chirp-K erkannt wird und der Host in der Lage ist, den HS-Modus zu aktivieren, wird dieses Signal zurückgeschaltet (gleiche 18 mA in die eigene 45 Ω-Last), jetzt für ca. 50 µs. Wenn es sich um einen FS-Host handelt, ignoriert er das Chirp-K und fährt als FS fort.

  6. Wenn der Host in der Lage ist, den HS-Modus zu verwenden, schaltet er sein Laufwerk wieder für 50 µs auf D + -Draht und bildet "Chirp-J".

  7. Der Host wiederholt dieses abwechselnde 50µs-Muster für die gesamte Dauer des USB_RESET-Status (10ms an Hub-Ports, 50ms an Root-Hub-Ports).

  8. Nach drei abwechselnden Chirp-K / J erkennt das Gerät, dass der Host HS ist, und wechselt selbst in den HS-Modus. Dies setzt voraus, dass die HS-Terminierung am Geräteende eingeschaltet wird, wodurch der Gesamtleitungswiderstand auf 22 Ω und die Chirpsignalamplitude auf 400 mV auf einen Standard-HS-Signalisierungspegel abfällt.

  9. Der Host fährt mit den HS-Start-of-Frame-Paketen (SOF) fort und startet den Enumerationsprozess im HS-Modus.

Nun ist es jedermanns Sache, zu erraten, welcher Teil des Wackelns dieses Protokoll verletzt und den Host veranlasst hat, den Port als FS zu markieren.

Ale..chenski
quelle
10
Akronyme: FS ist "full-speed" (USB 1.0, 12 Mbit / s), HS ist "high-speed" (USB 2.0, 480 Mbit / s) und SS wäre "SuperSpeed" (USB 3.0, 5 Gbit / s).
isanae
4
Seit 16 Jahren beschäftige ich mich mit USB-Geräten und muss zugeben, dass ich den Rückgang von HS auf FS zum ersten Mal sehe. Das normale Protokoll auf Treiberebene verwendet mindestens zwei weitere Versuche, um USB_RESET während der Aufzählung zu aktivieren. Es ist der schlimmste Fall, dass beim ersten Einstecken ein oder zwei zusätzliche USB_RESETs vorhanden sind, die dem beschriebenen Protokoll folgen, sodass das Zurückfallen auf Benutzerebene niemals auftritt. Einige moderne Hosts verwenden jedoch eine "spannungsgesteuerte" Signalisierung anstelle einer klassischen stromgesteuerten, sodass alle klassischen Kombinationen verschiedener Schwellenwerterkennungsstufen fehlerhaft sind und möglicherweise Probleme auftreten.
Ale..chenski
21
@isanae Ich frage mich, wann Entwickler von Gerätespezifikationen die Voraussicht haben werden, etwas als "langsame Geschwindigkeit" zu bezeichnen.
wizzwizz4
7
@wizzwizz4 wenn sie absichtlich und absichtlich wollen, dass ihr Produkt aufgrund eines schlechten Verbraucherempfangs versagt.
Dan Neely
10
@isanae - USB 1.0 unterstützt auch "Low-Speed" mit 1,5 Mbit / s.
Michael Karas
32

Wenn Sie ein Gerät an einen USB2-Anschluss anschließen, versucht der Computer zunächst, eine Verbindung über das USB2-Datenprotokoll herzustellen.
Wenn dies fehlschlägt, wird erneut versucht, das USB1-Datenprotokoll zu verwenden.

Ich vermute, dass die physische Verbindung (aufgrund des Wackelns der Kontakte) während der USB2-Aushandlung noch nicht stabil ist. Es wird also auf USB1 zurückgegriffen, obwohl es sich bei dem Gerät um ein USB2-Gerät handelt.

Witzigerweise erkennt Windows, dass das Gerät USB2-fähig sein sollte (Informationen, die es vom Treiber erhält), und Windows gelangt zu dem Schluss, dass der USB-Anschluss, an den Sie es angeschlossen haben, ein langsamer USB1-Anschluss war. Windows scheint nicht zu prüfen, ob der Port selbst USB2-fähig ist.
Und deshalb kommt die etwas irreführende Fehlermeldung.

P.S. Habe es gerade selbst mit einem Windows 10 Rechner ausprobiert: Gleicher Effekt da.

Tonny
quelle
Dasselbe passiert gelegentlich mit einem USB3-Gerät an einem USB3-Anschluss ...
davidbak
1
Nein. Die Geschwindigkeit des USB-Anschlusses wird von der Hardware bestimmt, BEVOR ein Datenprotokoll erstellt wird.
Ale..chenski
3
@AliChen Wie wird es bestimmt?
gronostaj
Siehe meine vollständige Antwort. Die Software leitet den Befehl zum Zurücksetzen des Ports nur ein, wenn das Bit "Port Connect" angezeigt wird (Interrupt von diesem Bit). Der Rest wird in Hardware erledigt.
Ale..chenski
Aus Wikipedia: "USB 2.0-Geräte verwenden beim Zurücksetzen ein spezielles Protokoll, das als Chirping bezeichnet wird, um den Modus für hohe Bandbreite mit dem Host / Hub auszuhandeln. Ein Gerät, das HS [USB 2.0] -fähig ist, wird zuerst als FS [USB 1.0] -Gerät verbunden ( D + hochgezogen), aber beim Empfang eines USB-RESET (sowohl D + als auch D− LOW vom Host für 10 bis 20 ms) wird die D− -Leitung hochgezogen, was als Chirp K bekannt ist.
Nathan Osman
0

Möglicherweise haben Sie es langsam genug eingefügt, dass Windows den Handshake-Vorgang mit dem Controller bereits beendet hat und sich die für die USB 2.0-Kommunikation benötigten Kontakte zu diesem Zeitpunkt nicht berührten. Dies könnte möglicherweise dazu führen, dass Windows ein USB 2.0-Gerät als 1.1-Gerät verwechselt Gerät, da es auf den als nur auf USB 2.0 und höher gekennzeichneten Schienen keine Antwort geben würde.

Stefan
quelle
Ist dies eine häufige Situation für USB-Geräte der Version & lt; 2.0, in der die Verbindung weiterhin erkannt wird und kein Fehler auftritt?
user1306322
8
Dies kann bei USB3-Geräten an einem USB3-Port passieren, an dem die USB1 / 2-Pins zuerst angeschlossen werden. Aber ich weiß nicht, wie das mit USB1 / USB2 passieren kann. Beide verwenden nur 4 Pins, ein Paar für die Stromversorgung und ein Paar für die Daten.
Hennes
@hennes Ich stimme zu. Es gibt keine physikalische Unterscheidung zwischen USB 1 und 2.
Tonny
1
@Tonny Ich bin mir ziemlich sicher, dass ich einige Unterschiede bei einigen obskuren USB 1.1- und 2.0-Geräten gesehen habe. Aber ich gebe zu, ich liege wahrscheinlich falsch.
Stefan
1
@Stefan In den Anfängen von USB gab es viele billige Abreißkupplungen mit schlechten Abmessungen für die Kontakte. Ich habe einige gesehen, bei denen jeder der 4 Stifte im Stecker eine andere Länge und Dicke hatte. Ich habe immer noch ein paar im Büro, um den Leuten zu zeigen, wann wir eine Diskussion über die Vor- und Nachteile der Bestellung von billigen Nachahmungskabeln haben.
Tonny