Certains produits doivent répondre aux exigences de sécurité, déterminées par le fabricant ou pour répondre aux normes de sécurité internationales telles que la CEI 60730-1, ou l'ancienne UL1998 qui est toujours en usage aux États-Unis. La fonctionnalité de surveillance interne d'un microcontrôleur donné peut ou non être adéquate pour être utilisée. Un WDT externe peut être utilisé en combinaison avec le WDT interne dans certains cas.
Certains microcontrôleurs comme la série Hercules de TI prennent très au sérieux les applications de systèmes critiques pour la sécurité et sont plus susceptibles de répondre à des exigences strictes, mais ils peuvent ne pas être appropriés pour des applications sensibles aux coûts.
En règle générale, le WDT est l'un des nombreux moyens de réduire la probabilité d'une défaillance causant des dommages catastrophiques aux biens ou des blessures. D'autres choses telles que la protection de la mémoire pour détecter un accès inattendu à la mémoire du MCU ou des récupérations de programme à partir de la mémoire inutilisée sont généralement utilisées en conjonction avec un WDT.
Les sous-systèmes automobiles, les contrôleurs de portes de garage et les contrôleurs d'allumage au gaz (gaz naturel ou propane) utilisés dans les fours, les sécheuses et les chauffe-eau sont des exemples de produits peu coûteux qui remplissent des fonctions essentielles à la sécurité. Bien sûr, de nombreux produits médicaux et aérospatiaux sont également essentiels à la sécurité, mais il peut y avoir suffisamment de place pour la redondance et d'autres approches. Dans certains cas, il peut ne pas y avoir d'état de sécurité facilement accessible, par exemple dans un avion.
Idéalement, le temporisateur du chien de garde est très simple, indépendant du MCU (par exemple, il doit avoir sa propre source d'horloge et peut-être un moniteur d'horloge), ne peut pas être réglé (par logiciel) sur une durée plus longue que celle qui causerait des dommages par une erreur logicielle, et rendra le système dans un état sûr s'il n'est pas "caressé" à temps, soit avec une temporisation, soit sous forme de fenêtre afin que des réinitialisations trop fréquentes puissent être détectées. Par exemple, un WDT dans une application de contrôle thermique peut être défini sur quelques secondes car aucun dommage n'est possible si le microcontrôleur se verrouille pendant cette durée.
Le WDT est le plus utile dans le cadre d'une approche au niveau système de la fiabilité et de la sécurité.
Il est difficile de faire valoir que l'horloge interne du chien de garde interne est en fait indépendante de toutes les autres horloges et fonctionne toujours comme elle le devrait.
Donc, pour la certification, il est généralement beaucoup plus facile de placer un chien de garde externe sur la carte et de dire: regardez, il y a notre chien de garde, il doit être déclenché par le MCU à cet intervalle, ce qui est plus court que notre temps de défaillance, donc notre appareil est sûr comme nous l'avons défini.
Pour répondre à certains des commentaires:
Ceci est généralement prouvé par un test d'insertion de défaut, que vous présentez à un organisme de certification. Vous leur montrez donc le code où se produit votre initialisation et où se produit le déclenchement du chien de garde. Ils vous demandent généralement de modifier le code de telle manière que le déclenchement du chien de garde soit arrêté après un certain temps et de vérifier si le contrôleur est correctement réinitialisé.
Au moins sur certains contrôleurs, le chien de garde est appelé indépendant et possède sa propre source d'horloge et ne peut pas être désactivé par des moyens logiciels, seule une réinitialisation du contrôleur désactivera le chien de garde. Au moins en théorie - il est facile de montrer que vous ne pouvez pas l'arrêter par logiciel, mais difficile de prouver que l'horloge est vraiment indépendante et ne s'arrêtera pas sous EMI.
Dans ce cas, vous utilisez un chien de garde de fenêtre qui doit être déclenché à certains intervalles et si vous ne le faites pas (le déclencher trop souvent ou trop peu) réinitialisera le circuit. Le STM32 avec lequel je travaille a un chien de garde de fenêtre interne, mais il fonctionne à partir de PCLK1 qui est dérivé de l'horloge principale, donc je ne pense pas qu'il soit aussi utile qu'un chien de garde externe avec sa propre source d'horloge.
C'est certainement vrai, mais j'espère qu'un examen remettra ce génie sur sa chaise - mais bon quand j'ai commencé, c'était aussi ma première idée: D. Pendant les processus de certification auxquels j'ai participé, ils ont toujours regardé la partie chien de garde du logiciel.
la source
Les chiens de garde intégrés aux microcontrôleurs ont des propriétés particulières qui signifient qu’ils peuvent eux-mêmes échouer, contrairement à un chien de garde externe différent.
Par exemple, une conception courante consiste à utiliser une minuterie de surveillance fonctionnant à partir d'un oscillateur RC de faible puissance. Cet oscillateur peut échouer. Un chien de garde externe basé sur la décharge du condensateur plutôt que sur un oscillateur pourrait toujours réinitialiser le microcontrôleur dans de nombreux cas.
Une autre raison est que le chien de garde externe peut être plus robuste. Un microcontrôleur peut uniquement fonctionner de manière fiable sur une certaine plage de tension, et être un appareil complexe peut être sujet à un verrouillage d'une manière qui rend son propre chien de garde interne inefficace. Un chien de garde externe peut avoir une plage d'alimentation acceptable plus large et être moins sujet aux problèmes lorsqu'il est soumis à du bruit électrique.
Les chiens de garde externes offrent souvent également une gamme beaucoup plus large de valeurs de temporisation. Un microcontrôleur que j'utilise souvent, le XMEGA, a un délai maximum d'environ 7 secondes. Pour un produit, j'ai ajouté un chien de garde externe supplémentaire avec un délai d'attente de 2 heures. Cela m'a permis de réveiller le microcontrôleur une fois par heure plutôt qu'une fois toutes les quelques secondes, réduisant la consommation d'énergie dans un appareil alimenté par batterie.
Les chiens de garde externes ont parfois plusieurs fonctions, comme une minuterie et un moniteur de tension / commande de réinitialisation. Encore une fois, ceux-ci peuvent être moins puissants que le système intégré d'un microcontrôleur.
Un autre avantage intéressant d'un chien de garde externe est qu'il peut être utilisé pour réinitialiser des périphériques autres que le microcontrôleur. Par exemple, il peut contrôler la broche d'activation d'un régulateur de tension, mettant hors tension un circuit entier pour réinitialiser plusieurs appareils à la fois. En utilisant une logique simple, le signal de réinitialisation du chien de garde provenant de plusieurs sources peut être combiné, ce qui permet au chien de garde de demander à plusieurs appareils de le réinitialiser continuellement.
la source
Certaines certifications, telles que UL , peuvent nécessiter une protection contre deux points de défaillance. Une horloge de surveillance externe serait considérée comme une protection contre un premier point de défaillance, le microcontrôleur.
la source
Un chien de garde n'est vraiment pas différent à cet égard de tout autre périphérique intégré que vous trouvez dans un MCU. Les MCU sont livrés avec des temporisateurs, des RTC, des ADC, des EEPROM et des contrôleurs de réinitialisation, mais toutes ces fonctions existent également en tant que circuits intégrés séparés. Si les blocs intégrés disponibles ne répondent pas à vos besoins, vous devez utiliser des blocs externes. Ou vous pouvez essayer de trouver un MCU avec tous les bons blocs, qui peuvent ne pas exister ou être trop chers ou difficiles à porter votre code.
la source
Un chien de garde est un temporisateur et active sa sortie lorsque le CI a perdu une impulsion d'entrée pendant une période.
C'est un bloc de construction et peut être utilisé pour n'importe quelle application.
Ainsi, ils peuvent être utilisés dans n'importe quelle application, par exemple pour modifier le routage des données en mode de sécurité intégrée . Lorsque l'horloge du microcontrôleur tombe en panne, nous ne pouvons pas désactiver certaines sorties critiques.
Un chien de garde externe n'est pas lié au domaine d'horloge complexe du microcontrôleur, et certains d'entre eux ont leur synchronisation de charge RC analogique ou leur horloge interne.
Les circuits numériques sous rayonnement peuvent déclencher les sorties lorsque la charge atteint leurs bascules. Mais certains circuits analogiques sont plus sûrs car ils intègrent la charge dans un condensateur, et c'est sûr lorsque nous l'intégrons.
la source