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"?
Antworten:
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:
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.
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.
Wenn das Gerät FS ist, tut es nichts und wartet bis zum Ende von USB_RESET.
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.
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.
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".
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).
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.
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.
quelle
FS
ist "full-speed" (USB 1.0, 12 Mbit / s),HS
ist "high-speed" (USB 2.0, 480 Mbit / s) undSS
wäre "SuperSpeed" (USB 3.0, 5 Gbit / s).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.
quelle
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.
quelle