Qu’est-ce qu’un chien de garde (informatique) ?
Un chien de garde (WDT) est un circuit électronique qui détecte les opérations anormales de divers dispositifs exploités par un programme et émet un signal d’interruption. Dans un soucis de lisibilité le sigle WDT sera souvent utilisé ci-après.
Les WDT sont généralement intégrés dans des microcontrôleurs qui exécutent des programmes de contrôle.
Utilisations des chiens de garde (informatique)
Une grande variété d’appareils sont contrôlés par des microcontrôleurs, qu’il s’agisse d’appareils numériques tels que les smartphones, d’appareils ménagers tels que les climatiseurs, d’équipements industriels tels que les robots, ou encore d’automobiles.
Comme le contenu du fonctionnement de ces appareils équipés de microcontrôleurs est déterminé en fonction de leur utilisation prévue, le système fonctionne selon un programme fixe débogué. Toutefois, le système peut se comporter de manière anormale dans de rares cas qui n’ont pas été prévus lors du débogage, ou en raison de dysfonctionnements des périphériques.
En cas de fonctionnement anormal sous le contrôle du microcontrôleur, le système doit être réinitialisé à son état normal. En particulier, le fonctionnement anormal des microcontrôleurs qui contrôlent les véhicules, les avions et les équipements industriels peut entraîner des accidents graves.
Les WDT peuvent être utilisés dans de tels cas pour détecter un état de fonctionnement anormal et appliquer une interruption au microcontrôleur pour le réinitialiser, rétablissant ainsi le système dans son état normal.
Principe du chien de garde (informatique)
Le chien de garde compte un temps prédéterminé, et s’il reçoit un signal de réinitialisation du processeur central dans ce laps de temps, il recommence à compter depuis le début. Si aucun signal de réinitialisation n’est reçu dans ce délai, le microcontrôleur est considéré comme étant dans un état anormal et le signal d’interruption du chien de garde est transmis au circuit d’interruption pour réinitialiser le fonctionnement du microcontrôleur.
Du côté du logiciel, le programme est conçu de manière à ce que le signal de réinitialisation du chien de garde soit émis périodiquement. Cela garantit que le WDT est réinitialisé tant que le programme fonctionne comme prévu, et que tout écart par rapport à l’état prévu ne réinitialisera pas le WDT et sera détecté comme une anomalie.
En plus du réglage numérique de la durée de la minuterie, il existe également une méthode analogique de réglage de la durée de la minuterie. Dans ce cas, la durée de réglage peut être ajustée en modifiant la capacité externe.
Comment choisir un chien de garde (informatique) ?
Les WDT sont généralement intégrés dans les microcontrôleurs, mais si la fiabilité requise du système est très élevée, il convient d’opter pour une configuration externe.
Le WDT est un système de détection des comportements anormaux du microcontrôleur, donc s’il est intégré au microcontrôleur, il ne pourra pas détecter les anomalies si elles se produisent avant que le WDT ne soit activé.
Dans les systèmes tels que les avions, où un fonctionnement anormal pourrait conduire à un accident grave, un WDT externe doit être utilisé en conjonction avec le microcontrôleur afin de fournir une protection à sécurité intégrée en cas de défaillance.
Autres informations sur les chiens de garde (informatique)
Modes de fonctionnement du chien de garde (informatique)
Le WDT dispose de trois modes de fonctionnement pour détecter diverses anomalies dans le microcontrôleur :
1. Mode “timeout”
Il s’agit du mode le plus standard. Si le microcontrôleur n’émet pas de signal de réinitialisation pendant un certain temps, il est considéré comme étant dans un état anormal et un signal d’interruption est émis.
Bien qu’il s’agisse d’un mode de fonctionnement standard, il ne peut pas être utilisé pour détecter un état anormal si, par exemple, une boucle infinie est rencontrée pendant la routine de traitement de réinitialisation du WDT, car le WDT est réinitialisé périodiquement.
2. Mode fenêtre
Le mode fenêtre est un mode qui permet également de détecter des conditions anormales telles que la boucle infinie décrite ci-dessus. En plus du fonctionnement de base du mode temporisation, un état anormal peut être détecté si un signal est entré plus d’un nombre spécifié de fois au cours d’une certaine période (double impulsion).
En mode fenêtre, comme en mode temporisation, un signal d’interruption est émis non seulement lorsque la limite supérieure de la temporisation est dépassée, mais aussi lorsqu’une limite inférieure est fixée et qu’un signal de réinitialisation est reçu dans cette limite inférieure.
De cette manière, l’état entre les limites inférieure et supérieure (fenêtre) est considéré comme normal, ce qui signifie que le réglage de ces valeurs et le traitement de la réinitialisation dans le programme doivent être soigneusement déterminés, mais cela permet également une détection avancée des anomalies. Les WDT en mode fenêtre sont nécessaires pour les systèmes où des vies humaines sont en jeu et les utilisations qui requièrent une plus grande sécurité.
3. Mode questions-réponses
En mode questions-réponses, des données prédéterminées sont envoyées au DTG, qui décide alors si le signal envoyé par le microcontrôleur correspond à celui attendu et détermine s’il est normal ou anormal.
Comme ce type de traitement est effectué en fonction des besoins dans le programme, une détection très précise des anomalies est possible, mais le degré de difficulté de l’écriture du programme est élevé.