
Lorsque vous travaillez depuis chez vous, il y a certains avantages à ce mode de travail. Vous pouvez préparer vos propres repas, faire une lessive pendant la pause déjeuner, et boire tout le thé que vous voulez. J'utilise une bouilloire à poser sur le feu pour faire bouillir de l'eau pour mon thé, donc quand je suis dans ma zone d'écriture, je compte sur son sifflement aigu pour me dire quand c'est prêt.
Parfois, par négligence, je ne place pas correctement le couvercle. En conséquence, la bouilloire reste silencieuse malgré le fait que l'eau liquide à l'intérieur se transforme rapidement en gaz. Mon comportement négligent dans ce scénario signifie seulement que je boirai moins de thé, mais dans les systèmes embarqués, les conséquences sont bien plus graves si vous ne savez pas comment utiliser un Watchdog Timer (WDT). Lorsque votre minuterie échoue à fonctionner, un microcontrôleur bloqué restera bloqué et fera en sorte que votre système embarqué reste hors service. Examinons comment fonctionne un timer watchdog, comment implémenter un circuit de timer watchdog, et comment les faire fonctionner correctement dès le premier essai afin d'éviter ce scénario.
Le Watchdog Timer est une fonction de sécurité simple en électronique qui aide à redémarrer un microcontrôleur en cas de crash du circuit de surveillance matériel ou logiciel. Les Watchdog Timers STM32 sont disponibles soit comme un circuit intégré (CI) séparé, soit comme une fonction intégrée au sein même du microcontrôleur. Ne pas utiliser un WDT dans la conception de systèmes embarqués est souvent considéré comme une faute impardonnable.
Le fonctionnement des Watchdog Timers est simple. Il est programmé pour décompter sur un intervalle de temps défini. En fonctionnement normal, le microcontrôleur rafraîchit périodiquement le compteur à rebours pour l'empêcher d'expirer. Si le microcontrôleur ne répond pas, alors il ne rafraîchira pas le Watchdog Timer. En conséquence, lorsque les Watchdog Timers expirent, ils déclenchent une impulsion ou un signal pour réinitialiser le microcontrôleur. Cette fonction simple compense les erreurs de conception ou les facteurs environnementaux qui peuvent provoquer un crash du microcontrôleur.
Pourtant, si votre WDT échoue, il est peu probable que votre système embarqué se rétablisse de son état erroné. C'est pourquoi il est important de déterminer la cause pour laquelle un Watchdog Timer pourrait ne pas réussir à réinitialiser le microcontrôleur. La réponse la plus évidente est que les puces du Watchdog Timer sont défectueuses. Cependant, si vous avez répétitivement des systèmes embarqués dans plusieurs unités qui échouent à se rétablir, alors il pourrait y avoir un problème avec vos conceptions.
En fait, au cours de mes nombreuses années de conception et de déploiement de centaines de dispositifs basés sur des microcontrôleurs, je n'ai jamais rencontré un seul cas de défaillance d'un Timer de Surveillance (Watchdog Timer) STM32. La cause principale est souvent simplement une erreur humaine.
Pour les systèmes embarqués utilisant un WDT interne, un code incontrôlé peut désactiver le Timer de Surveillance si les bits de configuration sont réécrits involontairement. Les puces de Timer de Surveillance externe rencontrent des problèmes totalement différents. Dans ce cas, il est courant d'avoir une broche de cavalier qui peut déconnecter le signal de réinitialisation du Timer de Surveillance externe lorsque les ingénieurs en logiciel développent et déboguent un programme. Souvent, ces broches de cavalier doivent être connectées manuellement avant que les unités ne soient déployées sur site. Si ce n'est pas fait, alors les signaux de réinitialisation du WDT resteront déconnectés et échoueront à réinitialiser le microcontrôleur.
Une raison plus courante pour laquelle les Timers de Surveillance (Watchdog Timers) ne fonctionnent pas est due à des erreurs de codage. Si les fonctions qui rafraîchissent les timers WDT sont placées dans la mauvaise partie du programme, elles ne fonctionneront pas au moment où elles le devraient. Le firmware pour microcontrôleurs devient compliqué lorsqu'il y a plusieurs tâches avec différentes priorités dans un Système d'Exploitation Temps Réel (RTOS). Les tâches du circuit de surveillance de priorité supérieure peuvent continuer à s'exécuter même lorsque les tâches de priorité inférieure sont dans une boucle infinie anormale. Si le rafraîchissement du circuit du Timer de Surveillance est la tâche de plus haute priorité, alors le microcontrôleur ne sera pas rafraîchi lorsqu'il ne fonctionne pas correctement.
Assurer que le WDT fait son travail implique le développeur de firmware, l'installateur système et le concepteur du matériel de surveillance. Les développeurs de firmware devraient appliquer les meilleures pratiques de programmation pour éviter les dépassements de code qui désactivent le WDT interne. Les développeurs de firmware doivent avoir une bonne compréhension de l'architecture mémoire du microcontrôleur et comment utiliser correctement les pointeurs de mémoire et l'allocation dans le code.
En outre, la structure du programme doit être conçue de manière à ce que les Timers de surveillance (Watchdog Timers) soient rafraîchis aux endroits appropriés dans le programme. Cela signifie que le programme déclenchera une réinitialisation du Watchdog si une boucle infinie se développe à un moment quelconque du programme. Vous pouvez également développer un utilitaire de test pour vérifier la fonctionnalité du WDT sur site. Cela élimine également le risque de manquer des broches de cavalier déconnectées entre un Timer de surveillance externe et le microcontrôleur.
Lorsque vous avez besoin d'accéder à un outil de conception de PCB facile à utiliser qui inclut tout le nécessaire pour construire des cartes de circuits de haute qualité manufacturables, ne cherchez pas plus loin que CircuitMaker. En plus d'un logiciel de conception de PCB facile à utiliser, tous les utilisateurs de CircuitMaker ont accès à un espace de travail personnel sur la plateforme Altium 365. Vous pouvez télécharger et stocker vos données de conception dans le cloud, et vous pouvez facilement visualiser vos projets via votre navigateur web sur une plateforme sécurisée.
Commencez à utiliser CircuitMaker dès aujourd'hui et restez à l'écoute pour le nouveau CircuitMaker Pro d'Altium.