Algunos productos deben cumplir con los requisitos de seguridad, ya sea determinados por el fabricante o para cumplir con los estándares internacionales de seguridad como IEC 60730-1, o el UL1998 más antiguo que todavía está en uso en los EE. UU. La funcionalidad de vigilancia interna en cualquier microcontrolador dado puede o no ser adecuada para ser utilizada. Se puede usar un WDT externo en combinación con el WDT interno en algunos casos.
Ciertos microcontroladores, como la serie Hercules de TI, toman muy en serio las aplicaciones de sistemas críticos de seguridad y tienen más probabilidades de cumplir requisitos estrictos, sin embargo, pueden no ser apropiados para aplicaciones sensibles al costo.
Típicamente, el WDT es una de varias maneras de reducir la probabilidad de que una falla cause daños catastróficos a la propiedad o lesiones a la vida. Otras cosas, como la protección de la memoria para detectar el acceso inesperado a la memoria MCU o las recuperaciones de programas de la memoria no utilizada, generalmente se usan junto con un WDT.
Ejemplos de productos económicos que realizan funciones críticas para la seguridad son subsistemas automotrices, controladores de puertas de garaje y controladores de ignición de gas (gas natural o propano) utilizados en hornos, secadores y calentadores de agua. Por supuesto, muchos productos médicos y aeroespaciales también son críticos para la seguridad, pero puede haber suficiente espacio para la redundancia y otros enfoques. En algunos casos, puede no haber un estado seguro fácilmente accesible, por ejemplo, en una aeronave.
Idealmente, el temporizador de vigilancia es muy simple, independiente de la MCU (por ejemplo, debe tener su propia fuente de reloj y quizás un monitor de reloj), no se puede configurar (por software) a un tiempo más largo que el que causaría daños por cualquier error de software, y hará que el sistema esté en un estado seguro si no se "acaricia" a tiempo, ya sea con un tiempo de espera o en una ventana, de modo que se puedan detectar restablecimientos demasiado frecuentes. Por ejemplo, un WDT en una aplicación de control térmico puede configurarse en unos segundos porque no es posible dañar si el microcontrolador se bloquea durante ese período de tiempo.
El WDT es más útil como parte de un enfoque a nivel de sistema para la confiabilidad y seguridad.
Es difícil argumentar que el reloj interno del perro guardián interno es en realidad independiente de todos los demás relojes y siempre funciona como debería.
Por lo tanto, para la certificación, generalmente es mucho más fácil colocar un perro guardián externo en el tablero y decir: miren que está nuestro perro guardián, debe ser activado por la MCU en ese intervalo, que es más corto que nuestro tiempo de falla, por lo que nuestro dispositivo es seguro como lo definimos.
Para abordar algunos de los comentarios:
Esto generalmente se prueba mediante una prueba de inserción de fallas, que usted presenta a un organismo de certificación. Entonces les muestra el código donde ocurre su inicialización, y donde ocurre la activación del perro guardián. Por lo general, le solicitan que modifique el código de tal manera que se detenga la activación del perro guardián después de un cierto tiempo y que verifique si el controlador se reinicia correctamente.
Al menos en algunos controladores, el watchdog se llama independiente y tiene su propia fuente de reloj y no puede desactivarse por software, solo un reinicio del controlador desactivará el watchdog. Al menos en teoría, es fácil demostrar que no puede detenerlo con el software, pero es difícil demostrar que el reloj es verdaderamente independiente y no se detendrá bajo EMI.
Para ese caso, utiliza un watchdog de ventana que debe activarse a ciertos intervalos y, si no lo hace (activarlo con demasiada frecuencia o con menos frecuencia) reiniciará el circuito. El STM32 con el que estoy trabajando tiene una ventana de vigilancia interna, pero se ejecuta desde PCLK1 que se deriva del reloj principal, por lo que no creo que sea tan útil como una vigilancia externa con su propia fuente de reloj.
Eso ciertamente es cierto, pero espero que una revisión vuelva a poner a ese genio en su silla, pero bueno, cuando comencé, esa fue mi primera idea también: D. Durante los procesos de certificación en los que he participado, siempre observaron la parte de vigilancia del software.
fuente
Los perros guardianes integrados en los microcontroladores tienen propiedades particulares que significan que ellos mismos pueden fallar de una manera que un perro guardián externo diferente no podría.
Por ejemplo, un diseño común es usar un temporizador de vigilancia que se ejecuta desde un oscilador RC de baja potencia. Ese oscilador puede fallar. Un perro guardián externo basado en la descarga del condensador en lugar de un oscilador podría reiniciar el microcontrolador en muchos casos.
Otra razón es que el perro guardián externo puede ser más robusto. Un microcontrolador solo puede funcionar de manera confiable en un cierto rango de voltaje, y ser un dispositivo complejo puede estar sujeto a engancharse de manera que su propio perro guardián interno sea ineficaz. Un perro guardián externo puede tener un rango de suministro aceptable más amplio y ser menos propenso a problemas cuando se somete a ruido eléctrico.
Los perros guardianes externos a menudo también ofrecen una gama mucho más amplia de valores de tiempo de espera. Un microcontrolador que uso con frecuencia, el XMEGA, tiene un tiempo de espera máximo de alrededor de 7 segundos. Para un producto, agregué un perro guardián externo adicional con un tiempo de espera de 2 horas. Eso me permitió activar el microcontrolador una vez por hora en lugar de una vez cada pocos segundos, reduciendo el consumo de energía en un dispositivo con batería.
Los perros guardianes externos a veces tienen múltiples funciones, como un temporizador y un monitor de voltaje / control de reinicio. Una vez más, estos pueden ser de menor potencia que el sistema integrado de un microcontrolador también.
Otra ventaja interesante de un perro guardián externo es que puede usarse para restablecer dispositivos que no sean el microcontrolador. Por ejemplo, podría controlar el pin de activación de un regulador de voltaje, desactivando un circuito completo para restablecer múltiples dispositivos a la vez. Usando una lógica simple, el reinicio de watchdog señal de de múltiples fuentes se puede combinar, lo que permite que el watchdog requiera que varios dispositivos continuamente.
fuente
Ciertas certificaciones, como UL , pueden requerir protección contra dos puntos de falla. Un temporizador de vigilancia externo se consideraría protección contra un primer punto de falla, el microcontrolador.
fuente
Un watchdog no es realmente diferente a este respecto de cualquier otro periférico incorporado que encuentre en una MCU. Las MCU vienen con temporizadores, RTC, ADC, EEPROM y controladores de reinicio, aunque todas estas funciones también existen como circuitos integrados separados. Si los bloques incorporados disponibles no cumplen con sus requisitos, debe usar los externos. O puede intentar encontrar una MCU con todos los bloques correctos, que pueden no existir o ser demasiado costosos o difíciles de transferir su código.
fuente
Un perro guardián es un temporizador y activa su salida cuando el IC pierde un pulso de entrada durante un período.
Es un bloque de construcción y se puede utilizar para cualquier aplicación.
Por lo tanto, se pueden usar en cualquier aplicación, por ejemplo, cambiar el enrutamiento de datos en prueba de fallas . Cuando falla el reloj del microcontrolador, no podemos desactivar algunas salidas críticas.
Un perro guardián externo no está relacionado con el dominio de reloj complejo del microcontrolador, y algunos de ellos tienen su temporización de carga RC analógica o reloj interno.
Los circuitos digitales en radiación pueden activar las salidas cuando la carga golpea sus flip-flops. Pero algunos circuitos analógicos son más seguros porque integran la carga en un condensador, y es seguro cuando lo integramos.
fuente