¿Cuáles son exactamente las diferencias entre un host USB y un dispositivo?

Me encontré con algunas dudas:

  1. ¿Cuáles son exactamente las diferencias entre un host USB y un dispositivo? ¿Es solo que quien impulsa el autobús?
  2. Cuando dos dispositivos se conectan, ¿cómo dice el dispositivo "oye, yo seré el host y tú el dispositivo?"
  3. ¿Puede un dispositivo actuar como host y como dispositivo? Por ejemplo, "A" debería actuar como dispositivo cuando se conecta un host USB, y "A" debería actuar como host cuando se conecta un dispositivo USB.
Esto se responde directa y claramente justo donde esperaría encontrarlo, que es la especificación USB, o incluso la mayoría de la información introductoria sobre USB. -1
Le recomendaría que lea "USB Complete" de Jan Axelson. Es una verdadera joya en este tema.
@OlinLathrop Tu comentario no es útil. La especificación USB tiene un tamaño de 75 MiB y está compuesta por 43 archivos PDF con un total de 2984 páginas.
@Stép: La especificación USB también tiene una tabla de contenido, e incluso las especificaciones anteriores y más pequeñas responden estas preguntas. Estas preguntas son muy básicas y muestran una completa falta de incluso intentar encontrar las respuestas.
@OlinLathrop Mi intento de usar Google para encontrar la respuesta a estas preguntas exactas es lo que me llevó a esta pregunta. Este fue el primer resultado de búsqueda de Google. ¡Vine aquí y vi la recomendación de leer/buscar en casi 3000 páginas! Por eso dije que el comentario no era de mucha ayuda.
Solo quería agradecer a @quantum231 por recomendarme el libro de Jan Axelson. Leí un extracto en su sitio e inmediatamente decidí comprarlo, hasta que descubrí que la última edición cuesta ~ $ 40... Pero realmente no necesitaba las últimas especificaciones con 3.1 y USB-C, así que solo compré un usado cuarta edición en rústica por 14 dólares, está lo suficientemente actualizada para mí, incluye USB 3.0 y USB OTG, que estipula el protocolo cuando un host también puede ser un dispositivo, y viceversa, lo que respondería a esta pregunta. Sé que el OP fue hace años, pero solo quería mencionar que encontré útil el material de referencia.
Un buen artículo que vale la pena leer: cdn-learn.adafruit.com/downloads/pdf/…

Respuestas (2)

¿Cuáles son exactamente las diferencias entre un host USB y un dispositivo?

El host inicia todas las comunicaciones en el bus, el dispositivo solo responde cuando el host lo solicita. Para más detalles, consulte las especificaciones en usb.org .

Cuando dos dispositivos se conectan [...]

Uno debe comportarse como host y el otro como dispositivo. Los detalles se pueden encontrar en las especificaciones de USB OTG.

¿Puede un dispositivo actuar como host y como dispositivo?

Por ejemplo, muchos teléfonos y tabletas con Android pueden (requiere Android 3+). La "magia" está en el cable/adaptador On-the-Go, que cambia el teléfono al modo de anfitrión poniendo el pin de ID en GND.

El enlace USB OTG Specs no funciona
Enlace profundo eliminado

Al igual que Stéphane, vine aquí por la respuesta. ¡Qué no encontré aquí! Con un poco de investigación esto es lo que encontré.

Con un controlador de host podrá comunicarse con todos los dispositivos USB, y con un controlador de dispositivo USB solo podrá comunicarse con un controlador de host.

El host USB es el USB en el lado de la PC en la mayoría de los casos y el dispositivo USB es el USB en su mouse, teclado, memoria flash, etc.

Todas las transacciones USB son administradas por el Host. y el Dispositivo solo responde a las transacciones del Host.

Espero que ayude.

No está claro qué estás agregando que no se haya dicho ya hace años.
Dio una respuesta un poco más completa con ejemplos concretos en lugar de enviarlo a la primera página de un documento largo y complejo. La respuesta seleccionada se podría haber al menos resumido mejor