Interrupción de USB y concepto de ancho de banda de transferencia isócrono

2

Leí en la especificación de USB y otros materiales de USB en la web que a los mecanismos de transferencia de interrupción (para dispositivos como mouse / teclado) se les garantiza una 'latencia limitada'.

Mientras que las transferencias isócronas (dispositivo de medios - cámara / altavoces) tienen garantizado el ancho de banda USB y la latencia limitada también.

Si tengo un dispositivo de alta velocidad (480 Mbps), ¿qué significa la "latencia limitada" y el "ancho de banda garantizado"?

Entiendo que para los dispositivos de medios, debe existir una garantía de la velocidad del USB para no dejar caer ningún cuadro / paquete de audio / video. Pero, ¿qué ofrece la latencia limitada aquí que el ancho de banda garantizado no puede?

    
pregunta Yusuf Husainy

1 respuesta

3

En USB, el ancho de banda garantizado también implica latencia limitada, pero no al revés.

El USB se organiza en intervalos de tiempo de 1 ms. Para la transferencia de interrupción, se garantiza que el host enviará un paquete OUT al dispositivo en cada segmento. Tal vez pueda configurarse para una vez cada N cortes, no lo recuerdo. Los paquetes de interrupción son cortos, por lo que no puede transferir mucha información, pero sabe que el host vendrá y preguntará periódicamente.

Para isócronos, una parte fija de cada porción de tiempo de 1 ms se asigna al dispositivo. No solo el host enviará el paquete OUT a cada segmento, sino que también puede configurarlo para que contenga una cantidad específica de carga útil, o el paquete de respuesta IN para tener una carga útil específica. Obviamente, esto asigna parte del ancho de banda fijo a un dispositivo en particular, por lo que todos los dispositivos no pueden tener esto con datos arbitrariamente grandes. Dado que el recurso disponible es finito, el host puede rechazar su dispositivo por completo. Este es uno de los inconvenientes de insistir en un ancho de banda fijo.

También hay reglas sobre la cantidad de cada 1 ms que el host puede asignar para interrumpir y realizar transferencias isocónicas. Creo que algo como el 20% debe dejarse sin asignar, lo que significa que el host sondeará los dispositivos de transferencia masiva durante este tiempo. Puede haber cualquier cantidad de dispositivos a granel, por lo que no hay garantía de la frecuencia con la que el host se desplazará a sondear cualquier dispositivo.

En la mayoría de los casos, la interrupción y las transferencias isócronas no suman mucho, por lo que en la práctica la mayor parte del tiempo queda para los dispositivos a granel. Por lo general, el host sondeará todos los dispositivos a granel en un bucle durante cualquier tiempo restante sin asignar. Si usted es el único dispositivo en el bus, entonces la transferencia masiva le dará acceso a la mayor parte del ancho de banda, mientras que la interrupción y el isócrono aún obtienen el pequeño ancho de banda dedicado para el que están configurados.

A menos que realmente necesite un mínimo de ancho de banda o latencia, solo use transferencias masivas.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas