Latencia del dispositivo USB

1

Esta es una pregunta teórica. Me gustaría saber cuál es la latencia más baja que se puede lograr al conectar un microcontrolador con una interfaz USB. Considere un host USB (computadora) que envía un byte a un dispositivo USB (microcontrolador) y espera a que responda el mismo byte. ¿Cuánto tiempo tomaría al menos esto? ¿Hay algún experimento al respecto? Cualquier información me ayudaría.

Al utilizar la comunicación en serie (RS232), la latencia mínima que puede alcanzar es de 1 ms (mediante el uso del convertidor de USB a serie). Estoy buscando una forma más rápida de comunicarme con mi microcontrolador (en términos de latencia).

    
pregunta arminb

3 respuestas

2

El USB tiene una estricta arquitectura maestro / esclavo, en la que toda la comunicación está controlada por la PC host.

Cuando el host desea enviar datos al dispositivo, y suponiendo que no hay otros dispositivos en el bus, los datos siempre pueden enviarse inmediatamente.

Cuando el host desea recibir datos del dispositivo, debe solicitarlo.
Si el controlador del host acaba de terminar de recibir un paquete anterior, generalmente solicita el siguiente paquete inmediatamente. Pero si el bus ha estado inactivo, el sondeo continuo de nuevos datos desperdiciaría mucha energía, por lo que este sondeo se realiza una vez cada milisegundo (para dispositivos de máxima velocidad).

Para obtener una latencia inferior a 1 ms, tendría que usar un protocolo con una arquitectura de igual a igual, en el que los dispositivos pueden enviar datos sin que el host se lo solicite. Incluso el simple RS-232 puede lograr esto, pero necesitaría reemplazar el convertidor USB con una tarjeta PCI (e).

    
respondido por el CL.
1

Con USB, realmente depende del punto final utilizado. USB tiene 3 tipos diferentes. Una transferencia de interrupción tendría la menor latencia, pero solo es capaz de transferencias pequeñas. El convertidor de USB a serie generalmente utiliza transferencias masivas que transmiten al concesionario pero no la latencia. Los mejores resultados serían si la pila USB se estuviera ejecutando directamente en el chip.

    
respondido por el vini_i
1

Acabo de medir la latencia de USB de nuestro dispositivo USB de velocidad completa, y obtuve alrededor de 1 ms cuando lo conecté directamente a la PC, no es de extrañar aquí.

Se vuelve interesante cuando se conecta un concentrador USB 2.0 HS entre la PC y el dispositivo: ¡la latencia se reduce a aproximadamente 0,33 ms en promedio! Mi línea de pensamiento actual es que el dispositivo se parece más a la velocidad USB alta para la PC (con la traducción del HUB), y la programación de las transferencias de alta velocidad es diferente. Por lo tanto, agregar un concentrador de alta velocidad USB 2.0 (o USB 3.0 si está disponible) podría ayudarlo un poco.

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas