Watchdog Timer
El perro guardián (WDT: Watchdog Timer) es un recurso disponible en muchos microcontroladores. La figura 13 muestra el esquema básico de un perro guardián. Consta de un oscilador y un contador binario de N bits. El oscilador puede ser el principal del microcontrolador, aunque se prefiere un oscilador independiente. La salida de la última etapa del contador está conectada al circuito de reinicio del microcontrolador. Sin embargo, no se puede borrar (poner un 0) desde el programa.
El funcionamiento del perro guardián es como sigue. El oscilador envía sus pulsos de forma periódica y permanentemente a la entrada del reloj El contador llega a los N pulsos, se desborda, su salida se activa y produce el reinicio del microcontrolador El objetivo del programador es evitar el desbordamiento del perro guardián. Dado que una vez inició el conteo, el perro guardián no se pudo detener, la única forma de evitar su desbordamiento, y el reinicio del microcontrolador, es poner a 0 el contador del perro guardián desde el programa, y hacerlo a intervalos de tiempo cortos que el tiempo que se tarda en contar los N pulsos. Para conseguirlo, el programador debe distribuir a lo largo del programa las instrucciones que borran el perro guardián. Si el programa se realiza correctamente, el perro guardado nunca se desborda antes de haberlo hecho oportunamente desde el programa. En cambio, si el microcontrolador se pierde y el programa se deja de ser ejecutado en la secuencia correcta, el perro guardián no se toma tiempo, se desporta y produce el reinicio del microcontrolador, con lo que es posible retomar el control y reconducir El programa por el camino correcto.
No comments:
Post a Comment