Topología USB para DMA: controladores, hubs y puertos
Cómo funcionan los controladores host, los hubs raíz y el ancho de banda compartido, y por qué usar un puerto trasero no es superstición. También enseña a leer la velocidad negociada de un puerto y cómo la suspensión selectiva de USB mata un enlace.
Respuesta corta
El USB es un árbol: cada controlador host alimenta un hub raíz, y todos los hubs externos, docks y conectores frontales que cuelgan de él comparten su ancho de banda. El sitio de una tarjeta DMA es un puerto trasero cableado a un hub raíz, sin nada más compitiendo en ese controlador.
En esta página10
- Cómo se conectan de verdad los puertos USB al ordenador
- Cuatro términos de USB que conviene tener claros
- ¿Por qué usar un puerto USB trasero?
- Deja la tarjeta sola en su controlador USB
- Cómo comprobar la velocidad negociada de un puerto
- Desactiva la suspensión selectiva de USB con powercfg
- Desactiva también el ahorro de energía de USB en el Administrador de dispositivos
- Problemas de USB habituales y cómo resolverlos
- Preguntas sobre USB
- Fuentes
Cómo se conectan de verdad los puertos USB al ordenador
Casi todo el mundo se imagina cada conector USB como una conexión independiente al ordenador, pero no funciona así. Una máquina tiene unos pocos controladores host, cada controlador es dueño de un hub raíz y cada hub raíz es dueño de un conjunto de puertos. Todo lo que enchufas en esos puertos comparte el ancho de banda, la gestión de interrupciones y el driver de ese controlador. Un hub externo o un dock añade otra capa, que a su vez comparten todos sus dispositivos. Casi todos los cortes de DMA sin explicación vienen de que ese árbol es más profundo o está más cargado de lo que el lector tolera.
Cuatro términos de USB que conviene tener claros
Con estos cuatro términos claros, la mayoría de los consejos sobre USB que vas a leer empiezan a tener sentido.
- Controlador host
- El silicio que gestiona un bus USB. En una máquina moderna es un controlador xHCI. Tiene su propio driver y puede ser el cuello de botella
- Hub raíz
- El hub virtual que está en lo alto del árbol de un controlador. Sus puertos son los conectores cableados directamente a la placa
- Hub
- Cualquier dispositivo que abre un puerto en varios: un hub externo, un dock, un monitor con puertos, una placa frontal dentro de la caja
- Velocidad negociada
- Lo que el enlace acordó de verdad, no de lo que el puerto es capaz. Un puerto USB 3 con un cable USB 2 negocia USB 2
¿Por qué usar un puerto USB trasero?
Los puertos de la E/S trasera van soldados a la placa base y cableados directos a un hub raíz. Un puerto frontal está al final de un cable interno hasta un conector de la caja y, en muchas cajas, ese conector está a su vez detrás de un hub interno. Un puerto frontal añade por tanto longitud de cable, conectores de más y a menudo una etapa de hub antes de que la señal llegue al controlador. El USB 3 a pleno rendimiento no tolera una ruta justa, que es exactamente por lo que todas las guías te dicen que uses un puerto trasero. Y es también por lo que una tarjeta que falla en un puerto frontal funciona en uno trasero sin cambiar nada más.
Consejo
Deja la tarjeta sola en su controlador USB
Compartir controlador con un teclado en reposo no cuesta nada, pero compartirlo con una webcam, un disco externo, una capturadora o un DAC USB cuesta ancho de banda real. Además añade carga de interrupciones justo en el momento en que el lector está en mitad de una transferencia. Las máquinas con varios puertos traseros suelen repartirlos entre más de un controlador. El objetivo práctico es poner la tarjeta en un puerto cuyo controlador no lleve nada más exigente, y mantener los periféricos que comen ancho de banda en otro sitio. Por lo mismo, desconectar todo lo que no haga falta antes de un test de velocidad de lectura no es un formalismo, porque cambia el resultado.
Cómo comprobar la velocidad negociada de un puerto
Hazlo en el segundo PC con la tarjeta conectada y el PC de juego encendido. El objetivo es confirmar que el enlace ha levantado como USB 3 y no ha caído sin avisar a una velocidad menor.
- Abre el Administrador de dispositivos en el segundo PC
- En el menú Ver, elige Dispositivos por conexión, que redibuja la lista como el árbol real
- Sigue el árbol desde el controlador host, pasando por el hub raíz, hasta tu dispositivo, y anota cada hub intermedio como una capa que puedes quitar
- Vuelve a poner Ver en Dispositivos por tipo y despliega Controladoras de bus serie universal (USB)
- Haz clic derecho en el dispositivo FTDI o en el puente USB, elige Propiedades y abre la pestaña Detalles
- En la lista desplegable Propiedad, selecciona Primario (Parent), que nombra el dispositivo que está justo por encima de este en el árbol USB
- Para leer la velocidad directamente, instala el Windows SDK con las Debugging Tools, ejecuta USBView y selecciona el dispositivo para ver su velocidad de bus. SuperSpeed significa que el enlace USB 3 está levantado, mientras que High significa que ha caído a USB 2
- Si la velocidad no es la que toca, cambia primero el cable, luego el puerto y luego quita todo lo que haya en medio, comprobando la velocidad otra vez después de cada cambio suelto
Desactiva la suspensión selectiva de USB con powercfg
La suspensión selectiva de USB permite al driver del hub apagar un puerto que cree inactivo. Para un teclado eso es ahorrar energía, pero para una tarjeta DMA es un dispositivo que desaparece mientras no miras. Los GUID de abajo son el subgrupo estándar de configuración de USB y el propio ajuste de suspensión selectiva, y el valor 0 lo desactiva. Ejecuta estos comandos en un símbolo del sistema como administrador y solo en el SEGUNDO PC.
powercfg /setacvalueindex SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0
powercfg /setdcvalueindex SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0
powercfg /setactive SCHEME_CURRENT
powercfg /query SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3Aviso
Desactiva también el ahorro de energía de USB en el Administrador de dispositivos
Desactivar la suspensión selectiva en el plan de energía es necesario, pero a menudo no basta. Los dispositivos Concentrador raíz USB y Concentrador USB pueden tener además su propia pestaña Administración de energía en el Administrador de dispositivos, aunque no todos los hubs la enseñan. Donde exista esa pestaña, la casilla «Permitir que el equipo apague este dispositivo para ahorrar energía» viene marcada por defecto, así que desmárcala en cada hub del recorrido. Si una tarjeta sigue desapareciendo tras un rato inactiva con los dos ajustes cambiados, sospecha del cable o del puerto antes que de la tarjeta.
Problemas de USB habituales y cómo resolverlos
Cada fila corresponde a un síntoma que la gente busca a menudo. Baja por la lista en orden, porque cada solución sale más barata que la siguiente.
| Síntoma | Causa probable | Solución |
|---|---|---|
| El dispositivo informa de velocidad High en vez de SuperSpeed | Un cable USB 2 o de solo carga, o un puerto que parece USB 3 pero no lo es | Cambia a un cable USB 3 apto para datos y luego pásate a un puerto que la placa documente como USB 3. Vuelve a mirar la velocidad después de cada cambio |
| La tasa de lectura se hunde cada vez que se activa una webcam o un disco externo | Los dos dispositivos cuelgan del mismo controlador host y se reparten su ancho de banda | Mueve el otro dispositivo a un puerto de otro controlador, o desenchúfalo durante la sesión |
| El dispositivo desaparece tras unos minutos de inactividad | La suspensión selectiva de USB, o un Concentrador raíz USB al que se le sigue permitiendo apagarse | Desactiva la suspensión selectiva de USB en el plan de energía y luego desmarca la casilla de administración de energía en cada hub del recorrido que la tenga |
| Funciona en un puerto trasero y falla en el de al lado | Los dos puertos están en controladores distintos y solo uno tiene un driver sano y presupuesto de energía suficiente | Deja la tarjeta en el puerto que funciona y marca ese puerto, porque los puertos no son intercambiables ni aunque estén uno al lado del otro |
| Estable hasta que se añade un dock o un hub en cualquier punto de la máquina | El hub ha añadido una capa y renegocia el enlace ascendente compartido cada vez que algo cambia | Saca el dock de la ruta de la tarjeta para siempre y úsalo solo para el ratón, el teclado y el monitor |
| Dispositivo USB desconocido, error en la solicitud de descriptor | El enlace está demasiado justo para completar la enumeración: normalmente el cable, a veces un conector dañado | Prueba con un cable corto que sepas que va bien en otro puerto trasero y, si un cable bueno falla en dos controladores, sospecha del conector de la tarjeta |
Preguntas sobre USB
¿Puedo usar un hub con alimentación si de verdad necesito más puertos?
Para periféricos sí, pero no para la tarjeta como opción por defecto. Si no te queda otra, usa un hub con alimentación sin nada más conectado y confirma la tasa de lectura con un test antes de fiarte.
¿Importa la longitud del cable?
Sí, porque la tolerancia de la señalización USB 3 baja con la longitud, y un cable largo y barato es una causa habitual de cortes intermitentes. Usa el cable más corto que llegue con holgura.
¿Cómo sé qué puertos comparten controlador?
En el Administrador de dispositivos, elige Ver y luego Dispositivos por conexión para ver el árbol real, donde todo lo que cuelga del mismo controlador host comparte ese controlador. USBView enseña el mismo árbol con las velocidades al lado.
¿Funcionará siquiera un puerto USB 2?
Normalmente enumerará, pero el rendimiento quedará muy recortado, así que trata un enlace USB 2 como un resultado de diagnóstico y no como un montaje con el que quedarte.
¿Sirve de algo deshabilitar otros dispositivos USB en el Administrador de dispositivos?
Pocas veces. Desenchufarlos físicamente es más fiable y fácil de revertir, mientras que deshabilitarlos te deja una máquina cuyo comportamiento tendrás que recordar más adelante.
Fuentes
Aparte de las dos referencias citadas, todo lo de los puertos traseros, los controladores compartidos y los cortes sale de las mediciones del equipo en sus propias máquinas.
- 01Windows debugging tools (Microsoft)
de dónde sale USBView, la herramienta con la que esta página comprueba la velocidad negociada de un puerto
learn.microsoft.com
- 02USB device descriptors (Microsoft Learn)
qué es un descriptor de dispositivo, que es justo la lectura que no se completa cuando falla la solicitud de descriptor
learn.microsoft.com
Sigue leyendo
¿Sigues atascado? Abre un ticket en Discord
Todas las guías