Sobre la interferencia en el funcionamiento del programa
La aplicación del circuito de vigilancia permite que el microcontrolador funcione continuamente en un estado desatendido. Su principio de funcionamiento es que el chip de vigilancia está conectado a un pin de E/S del microcontrolador, y el programa controla el pin de E/S para enviar regularmente un nivel alto (o nivel bajo) al pin de vigilancia. Esta declaración de programa se encuentra dispersa entre otras declaraciones de control del microcontrolador. Una vez que el microcontrolador queda atrapado en el segmento del programa debido a interferencias y entra en un estado de bucle infinito, el programa que escribe el pin de vigilancia no se puede ejecutar. En este momento, el circuito de vigilancia enviará una señal de reinicio en el pin conectado al pin de reinicio del microcontrolador para reiniciar el microcontrolador, es decir, comenzará a ejecutar el programa desde la posición inicial de la memoria del programa, realizando así el reinicio automático. del microcontrolador.
Un perro guardián, también llamado temporizador de vigilancia, es un circuito temporizador. Normalmente, tiene una entrada, llamada kickdog o servicedog, y una salida al lado RST de la MCU. Cuando la MCU funciona normalmente, envía una señal al terminal de alimentación para perros de vez en cuando para restablecer el WDT. Si el perro no es alimentado dentro del tiempo especificado (generalmente debido a una desviación del programa), cuando el temporizador WDT excede, se enviará una señal de reinicio a la MCU. Este es un reinicio de la MCU para evitar que falle. La función del perro guardián es evitar que el programa se repita infinitamente o se desvíe.
Principio de funcionamiento: una vez que el sistema se está ejecutando, el contador de vigilancia comienza y el vigilancia comienza a contar automáticamente. Si el mecanismo de vigilancia no se borra después de un período de tiempo, el contador de vigilancia se desbordará, lo que provocará que la vigilancia interrumpa y reinicie el 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 el tiempo programado. Si se produce un bucle infinito o el puntero de la PC no puede regresar. Luego, cuando se acabe el tiempo, el microcontrolador se reiniciará. Los chips WDT de uso común incluyen MAX813, 5045, IMP 813, etc. , los precios oscilan entre 4 y 10 yuanes.
El principio de la tecnología de vigilancia de software es similar a este, pero todo se implementa a través de software. Tomemos como ejemplo la serie 51. Sabemos que hay dos temporizadores en el microcontrolador 51 y podemos usarlos para monitorear el funcionamiento del programa principal. Podemos establecer un cierto tiempo para T0 y asignar un valor a una variable cuando ocurre la interrupción programada. Esta variable tiene un valor inicial cuando el programa principal comienza a ejecutarse. El valor de tiempo que queremos establecer aquí es menor que el tiempo de ejecución del programa principal, de modo que el valor de la variable pueda juzgarse cuando finalice el programa principal. Si el valor cambia como se esperaba, significa que la interrupción T0 es normal, si no hay cambios, el programa se reinicia. Para T1, lo usamos para monitorear el funcionamiento del programa principal. Establecemos un tiempo determinado para T1 y lo reiniciamos en el programa principal. Si no se puede restablecer dentro de un cierto período de tiempo, la interrupción del temporizador de T1 restablecerá el microcontrolador. Aquí, el tiempo de sincronización de T1 debe establecerse más largo que el tiempo de ejecución del programa principal, dejando un cierto margen para el programa principal. La subrutina de interrupción del temporizador T0 controlará si la interrupción T1 es normal. Esto es suficiente para formar un ciclo. T0 monitorea T1, T1 monitorea el programa principal y el programa principal monitorea T0 para garantizar un funcionamiento estable del sistema.
La serie 51 tiene un temporizador de vigilancia dedicado que cuenta el sistema frecuencia por frecuencia. Cuando el temporizador se desborde, provocará un reinicio. El mecanismo de vigilancia puede establecer la tasa de desbordamiento o puede usarse como un temporizador independiente.
El perro guardián de Lingyang 61 es relativamente simple. Uno es que el tiempo es único y el otro es que solo necesita agregar el comando clear dog en el bucle y la función se puede usar.
La MCU C8051Fxxx también tiene un temporizador de 21 bits que utiliza el reloj del sistema para detectar 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 WDT.
-
Nota sobre el uso de perros guardianes: la mayoría de los microcontroladores de la serie 51 tienen perros guardianes y una limpieza irregular provocará un reinicio. Esto evita que el programa se salga de control. El diseñador debe conocer el tiempo de espera del mecanismo de vigilancia para decidir cuándo borrarlo.
El perro guardián no se puede limpiar 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 para restaurar el funcionamiento normal del sistema (tiene la función de bloquear la unidad óptica y cualquier programa específico, y se puede usar en casa para evitar que los niños jueguen). juegos, navegar por Internet y ver vídeos sin restricciones), tiene un valor de aplicación muy bueno.
La idea de diseño del software del sistema "watchdog";
1. Configuración del 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 16) -1 = 65 535 y la frecuencia de conteo de entrada de T0 es. fosc/12, el período de desbordamiento es (65535+65435).
2. Calcular el consumo de tiempo de un ciclo del programa de control principal. 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 de vigilancia T0 en un tiempo de 30 ms (el valor inicial de T0 es 65 536-30 000 = 35 536). El valor inicial de T0 se actualiza en cada ciclo del programa principal. Si el programa entra en un "bucle infinito" y el valor inicial de T0 no se actualiza en 30 ms, el temporizador de vigilancia T0 se desbordará y solicitará una interrupción.
Perro guardián En un sistema de microcomputadora compuesto por una microcomputadora de un solo chip, el trabajo de la microcomputadora de un solo chip a menudo se ve interferido por campos electromagnéticos externos, lo que hace que el programa pierda el control, caiga en un bucle infinito y interrumpir el funcionamiento normal del programa. El sistema controlado por el microcontrolador no puede seguir funcionando, lo que provocará que todo el sistema se estanque, con consecuencias desastrosas. Por lo tanto, para monitorear el estado de ejecución del microcontrolador en tiempo real, se produjo un chip utilizado específicamente para monitorear el estado de ejecución del programa del microcontrolador, comúnmente conocido como "vigilante".
La aplicación del circuito de vigilancia permite que el microcontrolador funcione continuamente en un estado desatendido. Su principio de funcionamiento es que el chip de vigilancia está conectado a un pin de E/S del microcontrolador, y el programa controla el pin de E/S para enviar regularmente un nivel alto (o nivel bajo) al pin de vigilancia. Esta declaración de programa se encuentra dispersa entre otras declaraciones de control del microcontrolador. Una vez que el microcontrolador queda atrapado en el segmento del programa debido a interferencias y entra en un estado de bucle infinito, el programa que escribe el pin de vigilancia no se puede ejecutar. En este momento, el circuito de vigilancia enviará una señal de reinicio en el pin conectado al pin de reinicio del microcontrolador para reiniciar el microcontrolador, es decir, comenzará a ejecutar el programa desde la posición inicial de la memoria del programa, realizando así el reinicio automático. del microcontrolador.
Un perro guardián, también llamado temporizador de vigilancia, es un circuito temporizador. Normalmente, tiene una entrada, llamada kickdog o servicedog, y una salida al lado RST de la MCU. Cuando la MCU funciona normalmente, envía una señal al terminal de alimentación para perros de vez en cuando para restablecer el WDT. Si el perro no es alimentado dentro del tiempo especificado (generalmente debido a una desviación del programa), cuando el temporizador WDT excede, se enviará una señal de reinicio a la MCU. Este es un reinicio de la MCU para evitar que falle. La función del perro guardián es evitar que el programa se repita infinitamente o se desvíe.
Principio de funcionamiento: una vez que el sistema se está ejecutando, el contador de vigilancia comienza y el vigilancia comienza a contar automáticamente. Si el mecanismo de vigilancia no se borra después de un período de tiempo, el contador de vigilancia se desbordará, lo que provocará que la vigilancia interrumpa y reinicie el 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 el tiempo programado. Si se produce un bucle infinito o el puntero de la PC no puede regresar. Luego, cuando se acabe el tiempo, el microcontrolador se reiniciará. Los chips WDT de uso común incluyen MAX813, 5045, IMP 813, etc. , los precios oscilan entre 4 y 10 yuanes.
El principio de la tecnología de vigilancia de software es similar a este, pero todo se implementa a través de software. Tomemos como ejemplo la serie 51. Sabemos que hay dos temporizadores en el microcontrolador 51 y podemos usarlos para monitorear el funcionamiento del programa principal. Podemos establecer un cierto tiempo para T0 y asignar un valor a una variable cuando ocurre la interrupción programada. Esta variable tiene un valor inicial cuando el programa principal comienza a ejecutarse. El valor de tiempo que queremos establecer aquí es menor que el tiempo de ejecución del programa principal, de modo que el valor de la variable pueda juzgarse cuando finalice el programa principal.
Si el valor cambia como se esperaba, significa que la interrupción T0 es normal, si no hay cambios, el programa se reinicia. Para T1, lo usamos para monitorear el funcionamiento del programa principal. Establecemos un tiempo determinado para T1 y lo reiniciamos en el programa principal. Si no se puede restablecer dentro de un cierto período de tiempo, la interrupción del temporizador de T1 restablecerá el microcontrolador. Aquí, el tiempo de sincronización de T1 debe establecerse más largo que el tiempo de ejecución del programa principal, dejando un cierto margen para el programa principal. La subrutina de interrupción del temporizador T0 controlará si la interrupción T1 es normal. Esto es suficiente para formar un ciclo. T0 monitorea T1, T1 monitorea el programa principal y el programa principal monitorea T0 para garantizar un funcionamiento estable del sistema.
La serie 51 tiene un temporizador de vigilancia dedicado que cuenta el sistema frecuencia por frecuencia. Cuando el temporizador se desborde, provocará un reinicio. El mecanismo de vigilancia puede establecer la tasa de desbordamiento o puede usarse de forma independiente como temporizador.
El perro guardián de Lingyang 61 es relativamente simple. Uno es una sola vez y el otro es que solo necesita agregar un comando de perro claro al bucle y la función se puede usar.
La MCU C8051Fxxx también tiene un temporizador de 21 bits que utiliza el reloj del sistema para detectar 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.
-
Nota sobre el uso de perros guardianes: la mayoría de los microcontroladores de la serie 51 tienen perros guardianes y una limpieza irregular provocará un reinicio. Esto evita que el programa se salga de control. El diseñador debe conocer el tiempo de espera del mecanismo de vigilancia para decidir cuándo borrarlo. El perro guardián no debe limpiarse 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 eficaz para restaurar el funcionamiento normal del sistema (puede bloquear la unidad óptica y cualquier programa específico, y puede usarse en casa para evitar que los niños jueguen, naveguen Internet y ver vídeos sin control). Tiene muy buen valor de aplicación.
La idea de diseño del software del sistema "watchdog";
1. Configuración del 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 16) -1 = 65 535 y la frecuencia de conteo de entrada de T0 es. fosc/12, el período de desbordamiento es (65535+65435).
2. Calcular el consumo de tiempo de un ciclo del programa de control principal. 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 de vigilancia T0 en un tiempo de 30 ms (el valor inicial de T0 es 65 536-30 000 = 35 536). El valor inicial de T0 se actualiza en cada ciclo del programa principal. Si el programa ingresa en un "bucle infinito" y no excede el valor inicial de T0 dentro de 30 ms, el temporizador de vigilancia T0 se desbordará y solicitará una interrupción.
3. Diseñar la rutina del servicio de interrupción correspondiente al desbordamiento T0. Esta subrutina solo necesita 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 la instrucción correcta. secuencia de ejecución.
Materiales de referencia:
/view/280158.html? wtp=tt
Materiales de referencia:
/view/280158.html? wtp=tt