Les Timers Watchdogs
Introduction
Un «timer watchdog » littéralement un « minuteur chien de garde », est un mécanisme de sécurité qui réinitialise un système en cas de blocage (plantage / gel). En d’autres termes, c’est un dispositif automatique qui pourrait se traduire par : « Avez-vous essayé de l’éteindre et de le rallumer ? ».
Dans un monde idéal, un timer watchdog ne devrait jamais être nécessaire car, la plupart du temps, son objectif est de récupérer un système bloqué à cause de bogues de programmation. Cependant, il peut également rétablir des systèmes après des dysfonctionnements causés par des pics de tension, des interférences électromagnétiques (EMI), une alimentation instable, de l’électricité statique, voire des radiations.
Comment ils fonctionnent ?
Le fonctionnement des timers watchdog est très simple : s’ils ne sont pas réinitialisés dans un délai prédéfini, ils réinitialisent le système (comme si l’on appuyait sur le bouton de « reset »). En d’autres termes, si le timer watchdog n’est pas activé à temps, il déclenche l’alarme (réinitialise le système).
De nombreux microcontrôleurs intègrent des timers watchdog, mais il existe également des puces de temporisation externes dédiées. Celles-ci possèdent une sortie qui se connecte à la broche « Reset » d’un autre circuit intégré ou d’un composant similaire (par exemple, un transistor qui contrôle l’alimentation du système).
Configuration :
Les timers watchdog sont généralement activés dans le code au démarrage du système et réinitialisés à la fin de la boucle principale. Le délai d’expiration du timer watchdog doit évidemment être fixé à une valeur supérieure au temps maximum d’itération de la boucle principale. Si le code se bloque dans une sous-routine, le timer interviendra et réinitialisera le système. Il est important de ne pas placer trop d’appels de réinitialisation du timer à divers endroits dans le code (ou dans une routine d’interruption), car le système pourrait potentiellement se bloquer dans une sous-boucle incluant un appel de réinitialisation, ce qui annulerait l’objectif du mécanisme de surveillance.
Les timers watchdog sont habituellement alimentés par une source d’horloge distincte de l’horloge principale du système, afin d’assurer une plus grande indépendance et robustesse.
Pour le débogage en circuit (ICD), la plupart des microcontrôleurs incluent une fonction permettant de « mettre en pause » le timer watchdog lors du débogage.
Pour les microcontrôleurs avec des timers intégrés, un indicateur (bit en mémoire) est généralement disponible après le processus de réinitialisation, permettant de savoir si une réinitialisation du timer a eu lieu.
Temporisateur de Surveillance avec Fenêtre :
Certains microcontrôleurs intègrent également un type de timer watchdog dit avec fenêtre. Ce type de timer doit être réinitialisé non seulement pas trop tard, mais aussi pas trop tôt. Il est généralement destiné à être utilisé dans des systèmes incorporant un système d’exploitation en temps réel (RTOS).
Résumé :
Les timers watchdog sont indispensables pour tout système ayant des exigences de fiabilité, même modérées, et constituent généralement une fonctionnalité précieuse à intégrer lorsque le temps le permet.
Copyright Labcenter Electronics Ltd. 2024
Traduction française
Copyright Multipower France 2024