Ha tenido problemas de latencia con su proyecto de electrónica, especialmente si usa un microcontrolador. ¿Se detuvo a preguntarle si el problema se debe a un programa mal elaborado, un circuito que no funciona, desacoplamiento o todavía la latencia? En este artículo analizaremos una de las principales causas de problemas en el funcionamiento de los circuitos que involucran procesamiento: la latencia.

La latencia existe en todos los circuitos electrónicos y puede ocurrir por hardware (en todos los circuitos), y por hardware y software en el caso de microcontroladores.

Lo que sucede es que hay un intervalo entre el instante en que un circuito recibe un comando y el instante en que proporciona una salida. Incluso en un control de relé simple, hay un tiempo entre el momento en que el sensor apaga la luz y el relé cierra sus contactos, como se muestra en el circuito de la figura 1.

 

Figura 1 - Latencia del hardware
Figura 1 - Latencia del hardware | Clique na imagem para ampliar |

 

Son solo microsegundos, pero puede significar mucho en una aplicación donde el tiempo es importante. Todos los circuitos tienen latencias, que pueden variar entre nanosegundos y microsegundos, según los componentes utilizados y el número de etapas.

Pero, el mayor problema ocurre con los microcontroladores, porque la latencia del hardware para estos componentes es pequeña, pero la latencia del software puede influir, y mucho, en su funcionamiento en un proyecto.

 

 

Latencia del Software

 

Lo que sucede es que los microcontroladores realizan sus funciones procesando un programa de forma secuencial. Es una instrucción tras otra y lleva tiempo. En algunos casos, incluso introducimos un “retraso” entre la ejecución y otro intencionalmente. Por ejemplo, si enviamos un microcontrolador a leer dos entradas donde están conectados dos sensores para comprobar si se activaron simultáneamente, lo hace de forma secuencial, primero uno y luego el otro como se muestra en la figura 2.

 

Figura 2 - Lectura secuencial
Figura 2 - Lectura secuencial

 

Bueno, vamos supongamos que, en la aplicación deseada, los dos sensores se cierran por intervalos de tiempo muy cortos, como se muestra en la figura 3. Si cuando terminamos de leer el uno al otro ya no está activado, la lectura no será al mismo tiempo, como se muestra en la figura. 3.

 

Figura 3 - Lectura de Tiempos
Figura 3 - Lectura de Tiempos

 

 

Vea para que cuando se lea desde a, el sensor esté en el nivel 1, pero cuando se tome la lectura en el sensor B, haya vuelto al nivel 0 y la comparación de los resultados el microcontrolador los tome como no simultáneo. Esto se agrava si se introduce un retraso entre una instrucción y otra. En este caso, como vimos, el retardo “delay 500” se introdujo solo al final de la ejecución del bloque (subrutina). Sin embargo, si este delay es entre una lectura y otra, el problema será mayor.

El delay 500 significa medio segundo entre una operación y otra y esto puede significar que se toma una lectura de un sensor y el otro solo medio segundo más tarde, lo que para un circuito electrónico es mucho tiempo. Si el programa que creó para su proyecto incluye demasiados “delay”, tenga cuidado, ya que pueden influir en el resultado que obtendrá.

Quizás ese funcionamiento extraño que obtuvo para su proyecto que realmente no hace lo que quiere cuando se activan los sensores, o hay un funcionamiento errático de los dispositivos controlados como motores cuando enciende su proyecto puede estar en latencias producidas en la ejecución del programa. Tenga en cuenta que tal vez un cambio en el software pueda resolver el problema. También verifique la posibilidad de solucionar el problema utilizando lógica externa o shields lógicos de entrada.

 

 

Usando hardware

 

Se puede tener la lectura simultánea de dos sensores sin depender de la ejecución secuencial del programa con circuitos externos (hardware) y algunos de ellos son simples.

Por ejemplo, un puerto NAND o AND le permite saber si dos sensores se activan simultáneamente incluso si su duración de contacto es del orden de microsegundos, como se muestra en la figura 4.

 

Figura 4 - Usando lógica externa
Figura 4 - Usando lógica externa | Clique na imagem para ampliar |

 

Vea que en este caso usamos solo una entrada del microcontrolador y por lo tanto conocemos los estados de los sensores con una lectura. Y las funciones lógicas también se pueden obtener con diodos y transistores como se describe en otro artículo sobre shields en este sitio.

 

 

Importancia de Conocer la Lógica Digital

 

Muchos desprecian el conocimiento de la electrónica digital, pensando que es suficiente saber utilizar un microcontrolador y sus programas, por lo que no se necesita ninguna función lógica externa. Sin embargo, la lógica digital es importante precisamente para los casos en los que el microcontrolador no hace todo, o tiene problemas cuando queremos que haga todo. Aquí es donde un buen conocimiento de la electrónica digital (y también analógica) puede ayudar a resolver problemas de latencia y muchos otros.

Nota: en la introducción hablamos de desacoplamiento. Este es otro problema que puede ocurrir con proyectos que involucran circuitos lógicos, analógicos y de microcontroladores que explicaremos en otro artículo.

 

 

 

 

Buscador de Datasheets



N° de Componente