"¿Cómo podría determinar la latencia"?
Uso un osciloscopio para determinar las latencias típicas.
Investigo el código fuente y el hardware para obtener una estimación conservadora de la latencia más desfavorable.
latencia típica
Si tuviera que medir la latencia típica de transmisión y recepción de alguna configuración particular, comenzaría con la medida más simple: el típico retardo de ida y vuelta.
Quizás algo como esto sería relativamente fácil de configurar:
- El software en el Arduino enciende un LED, y luego envía un mensaje de inmediato a la UART
- tiene las clavijas UART conectadas al IC de cambio de nivel apropiado conectado a su convertidor de USB a EIA-485.
- El software en la PC espera una entrada en serie y luego envía un breve mensaje de respuesta
- El software en el Arduino espera la entrada en serie, y luego enciende de inmediato otro LED.
-
El software en el Arduino espera un tiempo aleatorio, apaga todos los LED, espera un tiempo más aleatorio, y luego vuelve a encender el primer LED.
-
conecta el o'scope a los 2 LED y mide el retraso típico entre el encendido del primer LED y el encendido del segundo LED.
- recompila con diferentes tamaños de mensajes; Haz una gráfica del tamaño del mensaje frente al retraso típico.
latencia en el peor de los casos
Un sistema en tiempo real debe haber limitado la latencia en el peor de los casos.
Lamentablemente, eso no parece posible con Windows, incluso si pudiera obtener el código fuente para Windows, un parche de controlador de dispositivo la próxima semana podría agregar otros 2 milisegundos de latencia en el peor de los casos.
Algunos sistemas operativos en tiempo real admiten USB, en particular, EMC que se ejecuta en Linux ejecutándose en RTAI es compatible con USB - hidcomp , dispositivo de entrada USB personalizado con emc , etc.
El USB tiene "transferencias isócronas" y "transferencias de interrupción" que parecen ser útiles para limitar la latencia en el peor de los casos.
Por desgracia, nadie parece confiar en USB para tareas en tiempo real:
Hardware compatible con EMC2 ,
¿Control USB en tiempo real? ,
Problemas de USB , etc.
Por lo tanto, EMC2 aún usa puertos paralelos para obtener la latencia más desfavorable conocida;
otros protocolos de comunicación de baja latencia utilizan una variedad de hardware, incluido el hardware de Ethernet.