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

October 27, 2019 Altium Designer

“Anything that can go wrong will go wrong” written on a whiteboard

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 à 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.

Businesspeople blaming frustrated colleague

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

Pourquoi un microcontrôleur peut-il dysfonctionner et qui est 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 de 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.

Microchip production factory

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

Au lieu de se renvoyer la balle, les ingénieurs de 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. Le logiciel CircuitStudio d'Altium s'appuie ainsi sur la technologie d'Altium Designer pour mettre à votre disposition les outils dont vous avez besoin pour concevoir des circuits imprimés professionnels.

Contactez un expert Altium afin d'identifier les causes des défaillances de votre microcontrôleur.

About the Author

Altium Designer

PCB Design Tools for Electronics Design and DFM. Information for EDA Leaders.

Visit Website More Content by Altium Designer
Previous Article
Utiliser des modèles de projet pour concevoir et développer vos cartes électroniques.
Utiliser des modèles de projet pour concevoir et développer vos cartes électroniques.

En utilisant des modèles de projet pour concevoir et développer des circuits imprimés, vous pouvez gagner e...

Next Article
Combattre vos exigences en matière d'alimentation et de transmission de données
Combattre vos exigences en matière d'alimentation et de transmission de données

En tant qu'industrie, nous avons abordé la consommation accrue de l'énergie et les exigences en matière de ...