¿Qué significa "vigilancia" en la industria electrónica?

Watchdog, también llamado temporizador de vigilancia, es un circuito temporizador. Generalmente, hay una entrada, llamada alimentación de perro, y una salida al terminal RST de la MCU. Cuando la MCU está funcionando normalmente, emite. cada dos terminales se envía una señal al terminal de alimentación del perro para borrar el WDT. Si el perro no es alimentado durante más del tiempo especificado (generalmente cuando el programa se agota) y el tiempo de espera del WDT excede, se enviará una señal de reinicio. a la MCU, que es el reinicio de la MCU. Evitar que la MCU se bloquee. La función del perro guardián es evitar que el programa tenga un bucle infinito o que el programa se ejecute.

Principio de funcionamiento: una vez que el sistema está en funcionamiento, se inicia el contador de vigilancia y comienza a contar automáticamente. Si el mecanismo de vigilancia no se borra después de un cierto período de tiempo, el contador de vigilancia se desbordará. provocando una interrupción del mecanismo de vigilancia y provocando un reinicio del sistema. Por lo tanto, cuando utilice un chip con un perro guardián, preste atención al perro guardián.

El perro guardián del hardware utiliza un temporizador para monitorear la ejecución del programa principal. Es decir, durante la ejecución del programa principal, debemos restablecer el temporizador antes de que expire si ocurre un error. Bucle infinito o el puntero de la PC no puede regresar. Luego, el microcontrolador se reiniciará cuando expire el temporizador. Chips WDT de uso común, como MAX813, 5045, IMP 813, etc., con precios que oscilan entre 4 y 10 yuanes.

El principio de la tecnología de vigilancia de software es similar a este, pero se implementa mediante software. Todavía tomando la serie 51 como ejemplo, sabemos que hay dos temporizadores en el microcontrolador 51 y podemos usar estos dos temporizadores para monitorear el funcionamiento del programa principal. Podemos establecer un cierto tiempo para T0 y asignar un valor a una variable cuando ocurre una interrupción de tiempo. Esta variable ya tiene un valor inicial al comienzo del programa principal. El valor de tiempo que queremos establecer aquí debe ser menor que. El tiempo de ejecución del programa principal, de modo que el valor de la variable se juzgue al final del programa principal. Si el valor cambia como se esperaba, significa que la interrupción T0 es normal. Si no hay cambios, el programa es. reiniciar. Para T1, lo usamos para monitorear el funcionamiento del programa principal. Establecemos un cierto tiempo de temporización para T1 y lo reiniciamos en el programa principal. Si no se puede restablecer dentro de un cierto tiempo, la interrupción de temporización de T1 provocará que el microcontrolador. para restablecer. Aquí, el tiempo de temporización de T1 debe establecerse mayor que el tiempo de ejecución del programa principal, dejando un cierto margen para el programa principal. Si la interrupción de T1 es normal o no será monitoreada por la subrutina de interrupción temporizada T0. Esto es suficiente para formar un ciclo, T0 monitorea a T1, T1 monitorea el programa principal y el programa principal monitorea T0, asegurando así el funcionamiento estable del sistema.

La serie 51 tiene un temporizador de vigilancia dedicado, que divide y cuenta la frecuencia del sistema. Cuando el temporizador se desborda, provocará un reinicio. El mecanismo de vigilancia puede configurar la tasa de desbordamiento y también se puede utilizar solo. un uso del temporizador.

El perro guardián de Lingyang 61 es relativamente simple. Uno es el tiempo único. El segundo es que en el uso real de la función, simplemente agregue la instrucción de perro claro en el bucle. DE ACUERDO.

El microcontrolador C8051Fxxx también tiene un temporizador de 21 bits que utiliza el reloj del sistema. Este temporizador detecta el intervalo de tiempo entre dos operaciones de escritura específicas en su registro de control. Si este intervalo de tiempo excede el límite programado, se generará un reinicio de WDT.

------------------------------------------- ----- -------------------------------------

Notas Sobre el uso del mecanismo de vigilancia: La mayoría de los microcontroladores de la serie 51 tienen un mecanismo de vigilancia. Cuando el mecanismo de vigilancia no se borra periódicamente, se producirá un reinicio. Esto evita que los programas se escapen. El diseñador debe conocer el tiempo de desbordamiento del mecanismo de vigilancia para decidir cuándo borrarlo en el momento adecuado. No debe borrar el mecanismo de vigilancia con demasiada frecuencia, de lo contrario se desperdiciarán recursos. Cuando el programa se ejecuta normalmente, el software configura el temporizador a intervalos regulares (menos que el período de desbordamiento del temporizador) para evitar reinicios falsos causados ​​por interrupciones de desbordamiento.

Aplicación Watchdog: Watchdog es un administrador de monitoreo efectivo que restablece el funcionamiento normal del sistema (tiene la función de bloquear la unidad óptica y cualquier programa específico) y puede usarse en casa para evitar que los niños jueguen. juegos sin control, navegar por Internet, ver vídeos), etc. Tiene muy buen valor de aplicación.

Las ideas de diseño del software del sistema "watchdog":

1. Configuración de. Temporizador de vigilancia T0. Configure el modo de trabajo de T0 en el bloque de inicialización y habilite las funciones de interrupción y conteo. Sistema Fosc = 12 MHz, T0 es un contador de 16 bits, el valor de conteo máximo es (2 elevado a la décima potencia) -1 = 65 535 y la frecuencia de conteo de entrada T0 es. Fosc/12, el período de desbordamiento es (65 535+1)/1=65 536 (μs).

2. Calcule el tiempo que tarda el programa de control principal en realizar un ciclo. Teniendo en cuenta cada módulo funcional del sistema y sus tiempos de ciclo, el tiempo de ejecución del programa de control principal de este sistema es de aproximadamente 16,6 ms. El sistema configura el temporizador "watchdog" T0 durante 30 ms (el valor inicial de T0 es 65 536-30 000 = 35 536). Cada ciclo del programa de control principal actualizará el valor inicial de T0. Si el programa entra en un "bucle infinito" y el valor inicial de T0 no se actualiza en 30 ms, entonces el temporizador "vigilante" T0 se desbordará y solicitará una interrupción.

3. Diseñar la rutina del servicio de interrupción correspondiente al desbordamiento T0. Esta subrutina requiere solo una instrucción, que consiste en escribir un comando de "transferencia incondicional" en la dirección del vector de interrupción (000BH) correspondiente a T0, arrastrar la computadora de regreso a la primera línea de todo el programa, reinicializar el microcontrolador y obtener el secuencia de ejecución correcta.