[Internet de las cosas] Una breve discusión sobre los perros guardianes en microcontroladores

El perro guardián STM32 es un importante mecanismo de protección del sistema que puede monitorear el estado operativo del sistema y reiniciarse automáticamente en caso de falla. Tiene una amplia gama de aplicaciones en diversos campos, como la automatización industrial, equipos de comunicación y electrónica automotriz. Al configurar y controlar el temporizador de vigilancia, podemos mejorar la estabilidad y confiabilidad del sistema. En aplicaciones reales, las configuraciones correspondientes y las operaciones de alimentación de perros se realizan de acuerdo con las necesidades específicas y los modelos STM32 para garantizar el funcionamiento normal del sistema. La aplicación del perro guardián STM32 no solo puede garantizar la seguridad del sistema, sino también mejorar la confiabilidad y estabilidad de todo el sistema.



¿Qué es un perro guardián?

El perro guardián STM32 (Watchdog) es un temporizador de hardware que se utiliza para monitorear el estado de ejecución del sistema y reiniciarlo automáticamente cuando el sistema falla o se bloquea. Watchdog es un mecanismo común de protección de la confiabilidad del sistema que puede evitar que el sistema haga bucles infinitos o deje de responder debido a errores de software o fallas de hardware. 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 "vigilancia".


Cómo funciona el perro guardián STM32

El principio de funcionamiento del perro guardián STM32 se implementa mediante temporizadores y señales de reinicio. El temporizador de vigilancia cuenta periódicamente. Cuando el valor del contador alcanza el umbral preestablecido, el mecanismo de vigilancia genera una señal de reinicio para reiniciar el sistema. Para evitar que el mecanismo de vigilancia reinicie el sistema, debemos restablecer el contador de vigilancia antes de que se desborde el temporizador.

Insertar descripción de la imagen aquí

Principio de funcionamiento: después de 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á y provocará que el mecanismo de vigilancia falle. Interrupción del perro, provocando el reinicio del sistema. Por lo tanto, cuando utilice un chip con un perro guardián, preste atención a la limpieza del perro guardián.

El mecanismo de vigilancia de 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 de vigilancia antes de que expire. Si se produce un bucle infinito o el puntero de la PC no puede regresar, el microcontrolador se reiniciará después de que expire el temporizador.

El principio de la tecnología de vigilancia de software es similar a este, pero se implementa mediante software. Tomemos como ejemplo la serie 51. Sabemos que hay dos temporizadores en el microcontrolador 51 y podemos usar estos dos temporizadores para monitorear la operación. del programa principal. Podemos establecer un cierto tiempo de 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 juzga 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 se ejecuta reiniciar. Para T1, lo usamos para monitorear el funcionamiento del programa principal. Establecemos un cierto tiempo de sincronización para T1 y lo reiniciamos en el programa principal. Si no se puede restablecer dentro de un cierto tiempo, la interrupción de sincronización de T1 hará que el microcontrolador para restablecer. Aquí, el tiempo de sincronizació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.


Configuración de vigilancia STM32

En STM32, podemos configurar y controlar el perro guardián a través de registros. Los siguientes son los pasos de configuración básicos para el perro guardián STM32:

  1. Habilitar reloj de vigilancia: Dependiendo del modelo STM32 específico, necesitamos habilitar el reloj de vigilancia correspondiente.

  2. Configure el temporizador de vigilancia: configure el preescalador y recargue los valores del temporizador de vigilancia. El preescalador se usa para configurar la frecuencia del reloj del temporizador de vigilancia y el valor de recarga se usa para establecer el umbral de conteo del temporizador de vigilancia.

  3. Habilitar vigilancia: establezca el bit de activación de vigilancia en 1 para iniciar el temporizador de vigilancia.

  4. Alimente al perro con regularidad: durante el funcionamiento del sistema, debe alimentar al perro con regularidad, es decir, restablecer el contador del perro guardián para evitar que el perro guardián reinicie el sistema. El contador de vigilancia se puede restablecer mediante la instrucción de alimentación de vigilancia o escribiendo en un registro específico.

Cuando se utiliza el perro guardián STM32, generalmente es necesario configurar y controlar el temporizador del perro guardián y alimentar al perro regularmente durante el funcionamiento del sistema. A continuación se muestra un ejemplo sencillo que muestra cómo configurar y utilizar el mecanismo de vigilancia en STM32.

#include "stm32f4xx.h"

void WWDG_Configuration(void)
{
    
    
    // 使能看门狗时钟
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);

    // 配置看门狗定时器
    WWDG_SetPrescaler(WWDG_Prescaler_8); // 设置预分频为8,时钟频率为PCLK1/8
    WWDG_SetWindowValue(0x7F);           // 设置看门狗窗口值
    WWDG_Enable(0x7F);                    // 使能看门狗,设置计数器的初始值为0x7F
}

void Feed_WWDG(void)
{
    
    
    // 定期喂狗,重置看门狗计数器
    WWDG_SetCounter(0x7F);
}

int main(void)
{
    
    
    // 初始化系统时钟和其他外设

    WWDG_Configuration();

    while (1)
    {
    
    
        // 系统正常运行,定期喂狗
        Feed_WWDG();

        // 其他系统任务
    }
}

En el ejemplo anterior, primero llamamos WWDG_Configurationa la función para configurar el temporizador de vigilancia. En esta función habilitamos el reloj de vigilancia y configuramos los valores del preescalador y de la ventana. El preescalador se usa para configurar la frecuencia del reloj del temporizador de vigilancia y el valor de la ventana se usa para establecer el umbral de conteo del temporizador de vigilancia. Luego llamamos a WWDG_Enablela función para iniciar el temporizador de vigilancia y establecer el valor inicial del contador en el valor de la ventana.

En mainla función, utilizamos un bucle infinito para simular el funcionamiento normal del sistema. Dentro del bucle, llamamos Feed_WWDGa una función para alimentar periódicamente al perro guardián, es decir, restablecer el contador del perro guardián. De esta manera, siempre que el sistema esté funcionando normalmente y el perro sea alimentado regularmente antes de que expire el temporizador de vigilancia, el perro guardián no reiniciará el sistema.


Escenarios de aplicación del perro guardián STM32

El perro guardián STM32 se usa ampliamente en campos que necesitan garantizar la confiabilidad y estabilidad del sistema, especialmente sistemas integrados y sistemas en tiempo real. A continuación se muestran algunos escenarios de aplicación comunes:

  1. Sistema operativo en tiempo real (RTOS): en un sistema operativo en tiempo real, se puede utilizar un perro guardián para monitorear el estado de ejecución de las tareas y reiniciar el sistema en caso de un bloqueo de tareas o condiciones anormales.

  2. Automatización industrial: en el campo de la automatización industrial, los perros guardianes se pueden utilizar para monitorear el estado operativo del sistema de control y reiniciar automáticamente cuando el sistema falla.

  3. Equipos de comunicación: en los equipos de comunicación, los perros guardianes se pueden utilizar para monitorear el estado de las conexiones de red y reiniciar el equipo cuando la red falla.

  4. Electrónica automotriz: en los sistemas electrónicos automotrices, los perros guardianes se pueden usar para monitorear el estado operativo del vehículo y garantizar la seguridad del vehículo en caso de falla del sistema.


Resumir

El perro guardián STM32 es un importante mecanismo de protección de la confiabilidad del sistema que puede monitorear el estado operativo del sistema y reiniciarse automáticamente cuando el sistema falla. Al configurar y controlar el guardián, podemos mejorar la estabilidad y confiabilidad del sistema. En aplicaciones prácticas, debemos seleccionar los parámetros de configuración del perro guardián adecuados según las necesidades específicas y las características del sistema, y ​​alimentar al perro con regularidad para garantizar el funcionamiento normal del sistema.

Supongo que te gusta

Origin blog.csdn.net/Goforyouqp/article/details/133543255
Recomendado
Clasificación