Les robots mobiles véritablement autonomes relevaient autrefois de la science-fiction, mais les progrès récents en matière de traitement, de détection et de contrôle les ont rapprochés de la réalité. L’un des principaux obstacles auxquels cette technologie est confrontée est la capacité des robots à s’autocorriger si une erreur se produit dans leurs opérations de traitement. Cet article explique comment les microcontrôleurs MCX de NXP disposent de fonctionnalités avancées de correction d'erreurs qui améliorent la sécurité et la fiabilité des robots mobiles.
Les robots mobiles sont de plus en plus utilisés dans un large éventail d’applications, de l’automatisation industrielle à la robotique de service. Il est essentiel de garantir leur fonctionnement fiable et sûr, car ces robots assument des tâches plus complexes et opèrent dans des environnements non contrôlés.
La nouvelle gamme de microcontrôleurs MCX de NXP permet de relever ces défis. Construits sur le cœur Arm® Cortex®-M33 hautes performances, les microcontrôleurs MCX intègrent des fonctionnalités avancées de détection et de correction d'erreurs, ce qui les rend parfaitement adaptés au développement de robots mobiles nécessitant des niveaux de fiabilité et de sécurité élevés.
Préoccupations courantes de fiabilité et de sécurité des robots mobiles
Les robots mobiles s’appuient fortement sur leur électronique embarquée pour percevoir leur environnement, prendre des décisions et contrôler leurs actions. Cependant, leurs conditions de fonctionnement peuvent être difficiles en raison de divers facteurs tels que les températures extrêmes, les vibrations et les interférences électromagnétiques. Ces facteurs de stress peuvent provoquer des erreurs de bits et une corruption de la mémoire du robot au fil du temps. Il est donc nécessaire de prendre en compte la fiabilité à long terme de l’électronique, car les robots mobiles sont censés avoir une longue durée de vie opérationnelle.
AMR industriels
Les erreurs de mémoire peuvent entraîner divers problèmes de fiabilité et de sécurité dans les robots mobiles. Une inversion de bit dans le micrologiciel de commande du robot pourrait l'amener à exécuter des instructions incorrectes, entraînant des comportements inattendus. Les données corrompues des capteurs pourraient être mal interprétées, amenant le robot à prendre des décisions incorrectes. Des sorties de contrôle de moteur erronées peuvent entraîner un mouvement inattendu ou potentiellement endommager le robot ou son environnement.
Dans les applications critiques pour la sécurité, telles que les robots mobiles fonctionnant à proximité de personnes, les conséquences de tels dysfonctionnements pourraient être considérables. Les robots mobiles ont besoin de mesures de protection robustes contre les erreurs de mémoire pour garantir un fonctionnement fiable et sûr.
Fonctionnalités de correction d'erreur du MCX pour le flash et la RAM
La série de microcontrôleurs NXP MCX A intègre plusieurs fonctionnalités clés pour détecter et corriger les erreurs de mémoire. Le MCX A intègre jusqu'à 128 Ko de mémoire flash avec des capacités de codage de correction d'erreur (ECC). La série MCX N présente jusqu'à 2 Mo de mémoire flash avec codage de correction d'erreur (ECC). Chaque mot de 128 bits de mémoire flash intègre 9 bits supplémentaires de données ECC.
L'ECC est une technique de stockage de bits redondants avec chaque mot de donnée. Ces bits redondants aident à vérifier l'intégrité des données en régénérant les bits ECC et en les comparant avec l'ECC stocké à chaque opération de lecture. Si les bits ECC régénérés et stockés ne correspondent pas, cela signifie qu'il y a une erreur, que l'ECC peut être en mesure de corriger. L'ECC peut également déterminer quel bit est erroné en cas d'erreur sur un seul bit. Cependant, il ne peut détecter que les erreurs à double bit, mais pas les corriger.
Exemple de robot mobile
Si le microcontrôleur détecte une erreur ECC, le module contrôleur système (SYSCON) peut générer une erreur de bus ou utiliser une interruption pour gérer l'erreur. La gestion flexible des pannes permet aux développeurs de personnaliser leur gestion pour l'adapter au mieux à leurs applications.
Le MCX A fournit également 32 Ko de SRAM sur puce, avec un bloc de 8 Ko (RAMA0) intégrant l'ECC pour la correction d'erreur simple et la détection d'erreur double. La série MCX N fournit jusqu'à 416 Ko de RAM lorsqu'elle est configurée en ECC, dont 32 Ko peuvent être conservés en mode VBAT. Cette fonctionnalité protège les données d’exécution critiques, telles que les entrées de capteur et les variables d’état d’algorithme. Le microcontrôleur implémente un module de rapport d'erreurs (ERM) pour fournir des rapports et un contrôle complets des erreurs. L'ERM capture et enregistre les événements d'erreur de la logique ECC, offrant ainsi une visibilité sur l'état du sous-système de mémoire. Les développeurs peuvent utiliser ces informations d’erreur pour le diagnostic et la maintenance prédictive.
Pour l'autodiagnostic, le module d'injection d'erreurs (EIM) fournit des capacités d'injection d'erreurs lors de la lecture de la RAM ECC. Cette fonction d’autotest permet aux développeurs de mettre en œuvre des auto-vérifications périodiques pour garantir le fonctionnement fiable du microcontrôleur.
En plus de l'ECC, la série MCX A comprend un vérificateur de blocs de mémoire (MBC) qui fournit un contrôle de sécurité d'exécution sur les autorisations de lecture, d'écriture et d'exécution pour différentes régions de mémoire. En définissant des politiques d’accès à la mémoire, le MBC peut empêcher tout accès non autorisé à la mémoire.
Comment la correction d'erreur MCX permet une robotique fiable
Les fonctions de correction d’erreur du MCX fonctionnent ensemble pour améliorer la fiabilité et la sécurité du robot mobile. En corrigeant automatiquement les erreurs de bit unique dans la mémoire flash, le MCX maintient l'intégrité du micrologiciel de contrôle du robot. Cette intégrité empêche le robot d’exécuter une logique de contrôle erronée qui pourrait conduire à des comportements inattendus.
Le MCX est équipé pour détecter les erreurs à double bit, ce qui est crucial pour garantir la sécurité et la fiabilité de ses opérations. Bien qu’il ne soit pas possible de corriger les erreurs à double bit, leur détection permet d’éviter l’utilisation d’instructions ou de données corrompues. Lorsqu'une erreur à double bit est détectée, le robot peut être mis en sécurité, évitant ainsi les dangers ou les dysfonctionnements potentiels.
L'ECC du MCX étend ses capacités de protection de la mémoire au-delà du flash pour couvrir la SRAM. Le bloc SRAM RAMA0 de 8 Ko du MCX A intègre l'ECC, tandis que le MCX N peut réutiliser la RAMG et la RAMH pour la correction ECC, fournissant jusqu'à 416 Ko de RAM ECC. La RAM ECC permet la correction des erreurs sur un seul bit et la détection des erreurs sur deux bits pour les données d'exécution. Cette fonctionnalité protège les données critiques telles que les lectures des capteurs, les sorties de contrôle et les variables d'algorithme intermédiaires contre l'accumulation d'erreurs sur un seul bit qui pourraient autrement provoquer des incohérences dans la perception, la planification et la logique de contrôle du robot. En préservant l'intégrité de ces données d'exécution, le SRAM ECC du MCX contribue à garantir que la connaissance de la situation et la prise de décision du robot restent précises et fiables. Le MCX N fournit également jusqu'à 32 Ko de RAM ECC qui peuvent être conservés en mode VBAT, permettant aux données de rester protégées dans un état de faible consommation.
Le MBC fournit une couche de sécurité supplémentaire en appliquant des politiques de protection de la mémoire. Il peut bloquer l'accès non autorisé à la mémoire, aidant ainsi à contenir les défauts et à les empêcher de provoquer des comportements de robot incontrôlés.
Enfin, l'ERM permet une approche basée sur les données pour la maintenance des robots. En enregistrant les événements d'erreur de mémoire, l'ERM offre une visibilité sur l'état de santé de l'électronique du robot. Un taux croissant d’erreurs corrigées pourrait indiquer une défaillance imminente, permettant au robot d’être réparé de manière proactive.
Exemple de cas d'utilisation
Considérez un robot de service mobile fonctionnant dans un environnement industriel. Le robot doit naviguer de manière autonome, en évitant les obstacles et les personnes tout en effectuant des tâches.
Robot de service mobile
Cependant, l’environnement industriel peut être difficile, avec des équipements générant des interférences électromagnétiques (EMI). Au fil du temps, les EMI peuvent provoquer des erreurs de bits dans la mémoire du robot.
L'ECC du MCX détecterait et corrigerait toutes les erreurs de bit unique induites par les EMI, garantissant ainsi que le robot exécute correctement sa logique de contrôle. Si une erreur double bit plus grave se produisait, le MCX la détecterait et empêcherait l’utilisation des données corrompues. Le robot pourrait alors initier un arrêt sécurisé.
Tout au long de ces événements, l'ERM du MCX enregistrerait les occurrences d'erreur. Le personnel de maintenance pourrait surveiller ces journaux, à la recherche de toute tendance indiquant une défaillance potentielle. En entretenant le robot de manière proactive, les temps d’arrêt sont minimisés et la sécurité est maintenue.
Expérience de développement MCUXpresso
Pour un prototypage rapide avec MCX, NXP propose la plate-forme de développement FRDM à faible coût. Les cartes de développement FRDM sont livrées avec un format et des en-têtes standard, un accès facile aux E/S MCU, un débogueur MCU-Link intégré et un câble USB-C.
Le GitHub de NXP donne également accès à des exemples d'application, accessibles via le portail Application Code Hub (ACH). MCUXpresso IDE et MCUXpresso pour VS Code intègrent la navigation ACH, ce qui permet aux développeurs de rechercher facilement des démos et des exemples disponibles et de filtrer par appareil, technologie d'application ou périphérique/fonctionnalité avant de charger directement le projet pour l'utiliser.
Le hub de cartes d'extension (EBH) est une extension du site SDK Builder de NXP où les développeurs peuvent trouver une gamme de cartes complémentaires de NXP et de partenaires pour étendre les capacités de la carte d'évaluation choisie. Ce hub offre un filtrage intuitif pour trouver rapidement des cartes et localiser les logiciels de support disponibles. Les développeurs peuvent associer leur carte à différents types de protections pour évaluer et réaliser un prototypage rapide pour des cas d'utilisation ou des applications spécifiques.
NXP permet une robotique mobile fiable et sûre
À mesure que les robots mobiles deviennent plus autonomes, il est essentiel de garantir leur fonctionnement fiable et sûr. Si elles ne sont pas traitées, les erreurs de mémoire induites par des environnements d’exploitation difficiles peuvent conduire à des comportements inattendus du robot.
La gamme de microcontrôleurs MCX de NXP est bien équipée pour répondre aux besoins d'une robotique fiable grâce à ses fonctionnalités de correction d'erreurs. De la mémoire Flash et SRAM protégée par ECC au contrôle d'accès à la mémoire d'exécution et à la journalisation des événements d'erreur, le MCX offre plusieurs niveaux de protection contre les erreurs de mémoire.
Les concepteurs de robots mobiles souhaitant optimiser la fiabilité et la sécurité devraient considérer le NXP MCX. Son architecture avancée et son ensemble complet de fonctionnalités en font une plate-forme solide pour le développement de robots autonomes fiables.
