¿Por qué Windows muestra la notificación "Este dispositivo puede funcionar más rápido" si lo conecto torpemente?


74

Me di cuenta de que tanto en Windows XP como en 7 (y en 2 computadoras diferentes respectivamente) pude lograr que la notificación "Este dispositivo puede funcionar más rápido si lo conectas a un puerto USB 2.0 de alta velocidad" aparece si conecto el cable muy lentamente (o lucha un poco haciéndolo con una sola mano). Si lo conecto lo suficientemente rápido o normalmente, con ambas manos, no hay notificación. En cualquier caso, todos estos dispositivos parecen funcionar normalmente.

Lo que creo que sucede es que el contacto entre los cables se interrumpe durante el tiempo suficiente durante una conexión lenta / torpe que el controlador USB cree que no es 2.0 sino más lento. ¿Pero por qué piensa eso? ¿O por qué no solo dice "Eres malo conectando cables, desenchufa e intenta nuevamente"?


¿El dispositivo está conectado a un dispositivo USB en lugar de directamente a su caja? Si es así, intente conectar el dispositivo directamente y no un tercero, por así decirlo.

Está conectado al puerto de cable posterior de la torre de escritorio, por lo que no debe tener nada entre la placa base y el dispositivo en el otro extremo.
user1306322

55
¿Quién demonios usa ambas manos para enchufar un dispositivo USB?
PNDA

3
@ Cunningham'sLawyer: escenario de una mano : el enchufe USB (o la llave) empuja la computadora portátil alrededor de la mesa al intentar un lado, girándola, intentando nuevamente, volviéndola para finalmente enchufarla. Escenario de dos manos : la misma cantidad de voltear pero la segunda mano mantiene quieto el portátil.
WoJ

Espera, ¿entonces tienes puertos USB 1 en esas computadoras portátiles? 0_0
rahuldottech

Respuestas:


76

El mensaje se refiere a la negociación de una velocidad de datos antigua de velocidad máxima (FS) de 12 Mbit / s, en lugar de la velocidad de datos de alta velocidad (HS) que es de 480 Mbit / s. Debe ser realmente difícil obtener este efecto desde un puerto USB2. El protocolo USB2.0 HS se establece después de una negociación bastante complicada entre un dispositivo y un host, porque inicialmente todos los dispositivos HS actúan como un dispositivo FS.

El proceso normal es el siguiente:

  1. El dispositivo con capacidad HS levanta la línea D + después de recibir la señal VBUS con una resistencia de 1-1.5kΩ a 3.3V. Justo como lo haría un dispositivo FS.

  2. El puerto del host detecta el nivel D + = alto, y después de un retraso de rebote mínimo de 100 ms, el host establece el estado USB_RESET en el bus y conduce las líneas D + y D a tierra con controladores de 45Ω durante 10 o 50 ms.

  3. Si el dispositivo es FS, no hace nada y espera hasta el final de USB_RESET.

  4. Si el dispositivo es HS, conduciría D-high utilizando el controlador HS (fuente de 18 mA) durante aproximadamente 1 ms. Esto creará un pulso con una amplitud de aproximadamente 800mV (18ma en una carga de 45Ω) llamado "Chirp-K";

  5. Al detectar el FIN de Chirp-K, si el host es capaz del modo HS, devuelve esta señal (la misma de 18 mA a su propia carga de 45 Ω), ahora por unos 50 µs. Si es un host FS, ignora el Chirp-K y procede como FS.

  6. Luego, si el host es capaz del modo HS, cambia su unidad a cable D +, formando "Chirp-J", nuevamente por 50 µs;

  7. El host repite este patrón alterno de 50 µs durante toda la duración del estado USB_RESET (10 ms en los puertos del concentrador, 50 ms en los puertos del concentrador raíz);

  8. Después de tres chirp-K / J alternos, el dispositivo reconoce que el host es HS y cambia al modo HS. Esto implica encender la terminación HS en el extremo del dispositivo, lo que hace que la resistencia total del cable sea de 22Ω, y la amplitud de la señal chirp cae a 400mV, a un nivel de señalización HS estándar.

  9. El host continúa con los paquetes de inicio de trama HS (SOF) e inicia el proceso de enumeración en modo HS.

Ahora nadie sabe qué parte del meneo rompió este protocolo e hizo que el host marcara el puerto como FS.


10
Acrónimos: FSes de "velocidad completa" (USB 1.0, 12 Mbit / s), HSes de "alta velocidad" (USB 2.0, 480 Mbit / s) y SSsería "SuperSpeed" (USB 3.0, 5 Gbit / s).
isanae

44
Al tratar con dispositivos USB durante los últimos 16 años, tengo que admitir que veo la caída de HS a FS por primera vez. El protocolo normal de nivel de controlador utiliza al menos dos intentos más para afirmar USB_RESET en el proceso de enumeración. En el peor de los casos de meneo en la primera inserción, habrá uno o dos USB_RESET adicionales siguiendo el protocolo descrito, por lo que el retroceso nunca ocurre a nivel de usuario. Sin embargo, algunos hosts modernos están utilizando señalización "impulsada por voltaje" en lugar de la clásica impulsada por corriente, por lo que toda combinación clásica de varios niveles de detección de umbral se atornilla y pueden suceder cosas.
Ale..chenski

21
@isanae Me pregunto cuándo los creadores de la especificación del dispositivo tendrán la previsión de llamar a algo "velocidad lenta".
wizzwizz4

77
@ wizzwizz4 cuando quieren intencional y deliberadamente que su producto falle debido a la mala recepción del consumidor.
Dan Neely

10
@isanae: USB 1.0 también admite "baja velocidad" como 1.5 Mbits / s.
Michael Karas

32

Cuando conecta un dispositivo en un puerto USB2, la computadora primero intenta negociar una conexión utilizando el protocolo de datos USB2.
Cuando eso falla, vuelve a intentarlo utilizando el protocolo de datos USB1.

Mi mejor suposición es que la conexión física (debido a la agitación de los contactos) aún no es estable durante la negociación de USB2. Por lo tanto, vuelve a USB1, a pesar de que el dispositivo es un dispositivo USB2.

Curiosamente, Windows se da cuenta de que el dispositivo debe ser capaz de alcanzar la velocidad USB2 (información que obtiene del controlador), por lo que Windows concluye que el puerto USB al que lo conectó era un puerto USB1 lento. Windows no parece verificar si el puerto en sí es compatible con USB2.
Y es por eso que obtienes el mensaje de error algo engañoso.

PD: solo lo probé con una máquina con Windows 10: el mismo efecto allí.


Lo mismo sucede ocasionalmente con un dispositivo USB3 en un puerto USB3 ...
davidbak

1
No. La velocidad del puerto USB se determina por el hardware ANTES de participar en cualquier protocolo de datos.
Ale..chenski

3
@AliChen ¿Cómo se determina?
gronostaj

Mira mi respuesta completa. El software solo inicia el comando de restablecimiento de puerto al ver el bit de "conexión de puerto" (interrumpirlo); El resto se hace en hardware.
Ale..chenski

De Wikipedia: "Los dispositivos USB 2.0 usan un protocolo especial durante el reinicio, llamado chirping, para negociar el modo de ancho de banda alto con el host / hub. Un dispositivo que es capaz de HS [USB 2.0] se conecta primero como un dispositivo FS [USB 1.0] ( D + ha subido), pero al recibir un RESET USB (D + y D-LOW bajo por el host durante 10 a 20 ms) tira de la línea D a lo alto, conocido como chirp K. "
Nathan Osman el

0

Es posible que lo haya insertado lo suficientemente lento como para que Windows ya haya finalizado el proceso de saludo con el controlador y que en ese momento los contactos necesarios para la comunicación USB 2.0 no se estén tocando, lo que podría hacer que Windows confunda un dispositivo USB 2.0 como un 1.1 dispositivo ya que no habría respuesta en los rieles marcados como solo presentes en USB 2.0 y superiores.


¿Es esta una situación común para dispositivos USB de versión <2.0 que todavía reconoce la conexión y no elige fallar?
user1306322

8
Eso puede suceder con dispositivos USB3 en un puerto USB3 donde los pines USB1 / 2 se conectan primero. Pero no veo cómo puede suceder eso con USB1 / USB2. Ambos solo usan 4 pines, un par para la alimentación, un par para los datos.
Hennes

@hennes estoy de acuerdo. No hay distinción física entre USB 1 y 2.
Tonny

1
@Tonny Estoy bastante seguro de que vi algunas diferencias en algunos dispositivos USB 1.1 y 2.0 de marca oscura, pero admito que probablemente estoy equivocado.
Stefan

1
@Stefan En los primeros días de USB había muchos conectores baratos que tenían malas dimensiones para los contactos. He visto algunos en los que cada uno de los 4 pines del enchufe tenía una longitud y grosor diferentes. Todavía tengo un par en la oficina para mostrarle a la gente cuando tenemos una discusión sobre los pros y los contras de pedir cables baratos.
Tonny el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.