34 votos

¿Cómo USB 2.0 evitar colisiones?

Mirando los pines del USB 3.0 receptáculos, puedo ver que hay diferentes transmisión y recepción de pares, sin embargo para USB 2.0 no es sólo uno de los "datos" pin par. ¿Cómo USB 2.0 asegúrese de que los dispositivos no están comunicando simultáneamente?

68voto

ShaneB Puntos 1384

USB es estrictamente maestro-esclavo. El dispositivo no transmitir, a menos que el anfitrión le dice que se va a transmitir.

Incluso los llamados "interrumpir" el modo es realmente de votación: por ejemplo, cada 8 milisegundos (o menos si tienes a un jugador del ratón), el PC pide el ratón "¿cuál es su posición" y el ratón respuestas.

Mismo si usted tiene un puerto USB-interfaz serial, por ejemplo. Cuando la interfaz recibe los datos en la línea de serie, no va a transmitir a la PC. En lugar de eso se va a esperar para el PC para iniciar la transacción y solicitar los datos.

Esta página web tiene una buena explicación acerca de los paquetes que se intercambian. Básicamente, tenga en cuenta que el USB se llevó a cabo para permitir que el más tonto y el más barato de lo posible periférica a la función, lo que significa que la mayoría de la inteligencia está en el host, host controlador usb, el sistema operativo y los controladores. Esto es muy evidente cuando la lectura de la especificación.

Firewire (por ejemplo) tiene una completamente diferente de la filosofía, es mucho más potente, multi-master, de forma que los dispositivos pueden comunicarse entre sí sin la ayuda de un host/master. En realidad, es mucho más estrecha en su filosofía a algo como token ring con isócrono transferencias dio una palmada en la parte superior, que a USB. Sin embargo, el "multi maestro" significa que se requiere de un potente microcontrolador en los dispositivos, con un complejo de la pila de software. Por lo tanto, es más caro, y por lo tanto limitado a productos caros como videocámaras y rápido carcasas de disco duro. Un firewire ratón no tiene sentido, sería demasiado caro. Esa es una de las razones por las que FireWire fallado.

18voto

Liza Puntos 548

En USB marco dispositivos no pueden comunicarse simultáneamente, porque no sólo "hablar" cuando host USB "permite" que ellos hablen. Y host USB le permite a otro dispositivo para "hablar" sólo cuando la secuencia de transacción protocolo con el primer dispositivo se ha completado. Y los dispositivos USB no tiene ningún medio para "hablar" por su propia cuenta, no hay ningún activo mecanismo de interrupción en el USB. En breve, el mecanismo de aplicación de esta disciplina es la siguiente.

Después de USB 2.0 dispositivos están conectados, host enumera mediante la asignación de direcciones únicas para cada dispositivo.

Cada transacción en el bus es iniciado por el USB host.

Los encabezados de cada USB transacción llevar específico de la dirección del dispositivo. Incluso cuando las transacciones se transmiten sobre la totalidad de la USB árbol (en el controlador de host de la instancia), sólo los dispositivos con direcciones coincidentes respondería a la operación, y tomar los datos, o responder con los datos.

El enlace de "socios", a continuación, se enviará un acuse de recibo de la dirección desde la que recibe los datos correctamente. Toda la transacción sigue el protocolo establecido con secuencia definida de fichas, tiempo fuera, y códigos de corrección de errores, para garantizar la integridad de la transacción.

Todos los otros dispositivos que están escuchando y haciendo caso omiso de que el tráfico no está dirigido a ellos.

De eso se trata, es de "half-duplex" de la interfaz.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X