Conseils essentiels pour la conception de PCB : Comment implémenter un timer de surveillance dans votre conception de PCB

Créé: Novembre 1, 2017
Mise à jour: Octobre 16, 2020
Boiling kettle

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.

Pourquoi les systèmes embarqués échouent à se rétablir malgré la présence d'un WDT

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.

The Community for Creative Electronics

Powerful Free ECAD Software with Online Collaboration

Error on a red screen
Ce que vous voyez lorsqu'un WDT échoue à relancer un microcontrôleur bloqué

Pourquoi un WDT pourrait ne pas fonctionner correctement

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.

Man programming at computer
Il est de bonne pratique de s'assurer que les Watchdog Timers sont correctement réinitialisés

Comment Assurer Le Fonctionnement Fiable Du WDT

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.

Easy, Powerful, Modern

The world’s most trusted PCB design system.

Commencez à utiliser CircuitMaker dès aujourd'hui et restez à l'écoute pour le nouveau CircuitMaker Pro d'Altium.

 

Découvrez Altium Designer en action...

Conception puissante de PCB

Ressources associées

Retournez à la Page d'Accueil
Thank you, you are now subscribed to updates.
Altium Need Help?