IP sin procesar, tiempo de respuesta de Ethernet en un microcontrolador basado en cortex-m3 [cerrado]

-2

¿Cuál es el tiempo de respuesta mínimo en el procesador basado en cortex-m3 (m4) (como fujitsu MB9BD10S / T) a la IP sin procesar o la solicitud de Ethernet sin procesar?

La solicitud es lo más simple posible para cumplir con estas condiciones:

  1. El microcontrolador valida la dirección y el CRC del paquete
  2. Agregue algunos datos simples preparados de antemano (como IO analógicas / digitales), aproximadamente 100 bytes como máximo.
  3. Cambie la dirección de origen, configure el nuevo CRC y envíe a otro destino.

El tiempo de respuesta que supongo que es el tiempo entre la recepción del último byte del paquete en el microcontrolador y la transmisión del primer byte desde sí mismo.

¿Qué condiciones adicionales deben cumplirse para obtener un tiempo de respuesta mínimo?

¿Existe otra alternativa de microcontrolador de bajo costo para obtener un tiempo de respuesta Ethernet mínimo?

¿Qué pila de ip de software libre sería mejor usar?

    
pregunta shin

2 respuestas

2

Esto depende completamente de su frecuencia operativa, el código que ejecutará, tal vez la velocidad de acceso a la memoria (a veces, Flash tiene tiempos de espera) y la velocidad del puerto de comunicación que está utilizando.

Hipotéticamente, supongamos 144 MHz (máximo en la hoja de datos), que puede realizar todas las tareas requeridas en 100 instrucciones y que está recibiendo bits a la velocidad del reloj del procesador. Si recibe un encabezado IP de 480 bits, se necesita el mismo 480/(144,000,000) seconds , para enviarlo se necesita lo mismo, y necesita procesar alrededor de 100 instrucciones, por lo que es otro 100/(144,000,000) seconds que le da un total aproximado de 1100/(144,000,000) ~ 8 microseconds . Esta es una suposición basada en tu información totalmente subjetiva.

Sin embargo, esto no significa que su retraso de propagación sea de 8 microsegundos. El retardo de propagación sería más como <receival time> + <processing time> = (100 + 480)/(144,000,000) que es de 4 microsegundos.

    
respondido por el nonsensickle
1

No puedo responder por ese micro en particular. Personalmente uso un pic32 a 80 mhz con dp83848 externo y una pila MC. Yo también estaba muy preocupado por la latencia. Mi bucle de control realiza un ping y 4 paquetes UDP con una carga útil de < 20 bytes, recuperando 4 paquetes UDP con una carga útil de aproximadamente 600 bytes. Este bucle toma alrededor del rango de 5-7 milisegundos e incluye los tiempos de respuesta de los 4 comandos del dispositivo externo.

La mayoría de los dispositivos que probé hacen ping alrededor de 0,3 milisegundos, quizás una combinación de demora de conmutación y administración de tareas internas.

    
respondido por el Erik Friesen

Lea otras preguntas en las etiquetas