¿Qué es el perro guardián en un microcontrolador y cuál es su función?
Watchdog (WDT) es un temporizador. El perro guardián se utiliza para evitar pérdidas importantes causadas por errores en el programa del microcontrolador. El principio de prueba de errores es muy simple. Es un temporizador en el hardware. Cuando se desborda, el microcontrolador se ve obligado a reiniciarse y el programa reinicia la ejecución.
En circunstancias normales, no puedes dejar que se desborde, por lo que debes establecer un valor de vez en cuando en el programa (comúnmente conocido como alimentar al perro, siempre y cuando lo alimentes normalmente). en el programa, no se desbordará.
Una vez que el programa se ejecuta, es interferido o entra en un bucle infinito, el programa no se puede ejecutar normalmente y la instrucción de alimentar al perro nunca se ejecutará, pero en este momento el temporizador es hardware. El control seguirá funcionando, por lo que si se desborda, el microcontrolador se reiniciará.
Generalmente, si los requisitos de seguridad son relativamente altos y si el sistema se escapa y causa un accidente grave, se agregará un "perro" para garantizar la seguridad.
En general, cuanto más corto sea el tiempo de desbordamiento del perro guardián, más sensible será. Cuanto más corto sea el tiempo de reinicio después de huir, más segura será la operación de alimentar al perro. frecuente.
Información ampliada:
Principio de funcionamiento del perro guardián:
Cuando se utiliza, WDT se incrementará hasta que se desborde o se agote el tiempo de espera. Un tiempo de espera de WDT obligará al dispositivo a reiniciarse a menos que esté en modo de suspensión o inactivo. Para evitar el reinicio del tiempo de espera de WDT, el usuario debe utilizar la instrucción PWRSAV o CLRWDT para borrar el temporizador de vigilancia periódicamente. Si WDT se agota en modo de suspensión o inactivo.
El dispositivo se reactivará y continuará con la ejecución del código desde donde se ejecutó la instrucción PWRSAV. En ambos casos, el bit WDTO (RCON lt; 4gt;) se establecerá en 1, lo que indica que el evento de reinicio o activación del dispositivo fue causado por un tiempo de espera de WDT. ?
Si el WDT despierta la CPU del modo de suspensión o inactivo, también establecerá el bit de estado "suspensión" (RCON lt;3gt;) o el bit de estado "inactivo" (RCON lt;2gt; ), Indica que el dispositivo estaba encendido previamente. Modo guardar.
Durante el funcionamiento normal, un tiempo de espera de WDT generará un reinicio del dispositivo. Cuando el dispositivo está en suspensión, un tiempo de espera de WDT lo reactivará para continuar con el funcionamiento normal (lo que se denomina activación de WDT). Borrar el bit de configuración de WDTE puede apagar permanentemente el WDT. La asignación del postescalador está completamente controlada por software, lo que significa que se puede cambiar en cualquier momento durante la ejecución del programa.
Para evitar un reinicio impredecible del dispositivo, se debe ejecutar la siguiente secuencia de instrucciones al cambiar de la asignación del preescalador Timer0 a la asignación del posescalador WDT. Esta secuencia de instrucciones debe ejecutarse incluso si WDT está deshabilitado.
Enciclopedia Baidu: temporizador de vigilancia