Modes de défaillance des microcontrôleurs : Pourquoi se déclenchent-ils et comment les éviter

Créé: October 23, 2017
Mise à jour: September 23, 2021

“Tout ce qui peut mal tourner tournera mal” écrit sur un tableau blanc.

Si j'ai réussi à faire carrière dans la conception, c'est en grande partie grâce à mon université. Pas parce qu'on nous a expliqué lors des expériences en laboratoire ce qui pouvait entraîner l'explosion d'un condensateur, mais parce que nous y avons appris que la loi de Murphy peut vous frapper à chaque instant, y compris lorsque vous vous y attendez le moins. À l'époque, consacrant une grande partie de mon temps à jouer à Warcraft, j'avais tout le mal du monde à venir à bout d'une liste de travaux sans fin et mon ordinateur m'était indispensable.

Les ordinateurs avaient alors des capacités plutôt limitées et il n'était pas rare de voir s'afficher le fameux « écran bleu de la mort ». S'il était frustrant d'être interrompu en plein jeu, imaginez le sentiment de panique qui m'envahissait à l'idée de perdre des heures de travail non sauvegardé à cause d'un plantage de l'ordinateur. En tant que concepteur, c'est un sentiment qui vous sera peut-être familier si l'un de vos microcontrôleurs a déjà dysfonctionné sur le terrain.

Quel est l'impact d'une défaillance du microcontrôleur sur le système ?

Les conséquences d'une défaillance du microcontrôleur (MCU) sur le système embarqué peuvent être bien pires qu'un devoir non rendu à la date limite. Ce sont bien souvent les microcontrôleurs qui constituent le cœur d'applications comme les dispositifs de paiement, les appareils médicaux ou les systèmes de sécurité. Ces systèmes exigent une grande stabilité et résistent généralement mal aux défaillances.

La défaillance d'un microcontrôleur peut entraîner l'arrêt complet de l'appareil, ce qui peut gêner les utilisateurs voire présenter des risques de sécurité pour les systèmes les plus importants. Pour le client, un manque de fiabilité des systèmes est synonyme de capacités opérationnelles compromises et de potentielles pertes de revenus. Pour le concepteur, en plus du coup dur porté à son orgueil, des défaillances répétées sur des centaines de ses produits peuvent nuire à sa réputation.

Accuser ses collègues n'aidera pas à réparer un microcontrôleur défaillant.
Accuser ses collègues n'aidera pas à réparer un microcontrôleur défaillant.

Pourquoi un microcontrôleur tombe en panne et qui doit être responsable ?

Un système embarqué fiable est le résultat d'une collaboration réussie entre le concepteur de hardware et le programmateur de firmware. Certaines défaillances peuvent toutefois ne pas être identifiées pendant le développement et ne se dévoiler qu'une fois le système est déployé. Lorsque cela se produit, qui est le premier responsable ?

Avant de se mettre en quête du coupable, examinons les différentes causes de ces défaillances.

1. Dépassement de la capacité de mémoire

La pile de mémoire d'un microcontrôleur est un espace de la mémoire RAM interne qui est dédié à une utilisation temporaire. Sa taille est limitée et varie en fonction du microcontrôleur. Lorsque le programmateur de firmware alloue une variable supérieure à la taille de la pile, un dépassement peut se produire à l'état de fonctionnement, ce qui entraîne une défaillance du firmware.

2. Pointeurs illégaux

Lors de la programmation du firmware du microcontrôleur, un pointeur est généralement utilisé afin d'indiquer l'adresse d'une variable ou de certaines fonctions du programme. Pour déclarer et utiliser correctement ces pointeurs, le programmateur de firmware doit respecter une syntaxe stricte définie par le langage de programmation, le plus souvent en C. Lorsqu'un pointeur illégal est accidentellement introduit, le microcontrôleur peut tenter de traiter des variables ou fonctions à des adresses qui ne correspondent pas à la plage acceptée, entraînant ainsi un plantage du microcontrôleur.

3. Source de tension instable

C'est un facteur souvent négligé : un microcontrôleur a besoin d'un réseau d'alimentation stable pour fonctionner correctement. Une défaillance du microcontrôleur peut en effet se produire lorsque la source d'alimentation de ce dernier est continuellement perturbée par des interférences externes. Une chute de la tension de fonctionnement peut ainsi entraîner un fonctionnement irrégulier ou un blocage complet du microcontrôleur.

4. Interférences électriques

Une mauvaise gestion des interférences électriques, en particulier celles liées aux relais et moteurs, peut entraîner un plantage du microcontrôleur. Lors de l'un de mes tout premiers projets, fonctionnant avec un simple moteur à courant continu, mon microcontrôleur a dysfonctionné chaque fois qu'il tentait d'entraîner le moteur en sens inverse. J'ai pu résoudre le problème en augmentant l'isolation électrique à l'aide d'un amplificateur opérationnel.

5. Mauvais processus d'assemblage

Il arrive parfois que ni l'ingénieur hardware ni le programmateur de firmware ne soient responsables de la défaillance. Des joints de soudure de mauvaise qualité sur les broches du microcontrôleur peuvent aussi expliquer le comportement instable d'un microcontrôleur. Si seuls quelques-uns de vos systèmes embarqués connaissent des défaillances, commencez par contrôler la qualité des processus mis en place par votre fabricant.

Usine de production de micropuces
La qualité de votre conception dépend aussi de celle de votre fabricant.

Au lieu de se renvoyer la balle, les ingénieurs hardware et firmware ont donc tout intérêt à se concentrer sur la façon dont ils peuvent chacun assurer la fiabilité du système embarqué. Respecter les bonnes pratiques en matière de programmation et planifier avec soin l'allocation de la mémoire sont ainsi deux étapes essentielles. Pour les programmateurs, la simplicité est souvent la solution pour minimiser les problèmes de code.

Les concepteurs de hardware doivent tenir compte de l'environnement auquel sera intégré leur matériel tout en se préparant à toutes les éventualités. Ils devront pour cela respecter les bonnes pratiques en matière de conception et tirer parti de tous les outils offerts par leur logiciel de conception afin de tester leur conception. Si vous avez besoin d'accéder à un outil de conception de PCB facile à utiliser qui comprend tout ce qui est nécessaire pour construire des circuits imprimés manufacturables de haute qualité, ne cherchez pas plus loin que CircuitMaker. Non seulement il s’agit d’un logiciel de conception de circuits imprimés facile à utiliser, mais en plus 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 dans une plateforme sécurisée.

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

Ressources associées

Documentation technique liée

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