Conception de robots mobiles fiables et sûrs avec les fonctionnalités de correction d'erreurs de MCX
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é. Un obstacle majeur pour cette technologie est cependant la capacité des robots à s’auto-corriger en cas d’erreur dans leurs opérations de traitement. Cet article explore comment les MCX MCUs de NXP disposent de fonctionnalités avancées de correction d’erreurs qui rendent les robots mobiles plus sûrs et plus fiables.
Les robots mobiles sont de plus en plus utilisés dans une large gamme d'applications, allant de l'automatisation industrielle à la robotique de service. Garantir leur fonctionnement fiable et sûr est crucial à mesure que ces robots accomplissent des tâches plus complexes et évoluent dans des environnements non contrôlés.
La nouvelle gamme de microcontrôleurs MCX de NXP aide à relever ces défis. Basés sur le cœur haute performance Arm® Cortex®-M33, les microcontrôleurs MCX intègrent des fonctionnalités avancées de détection et de correction d'erreurs, ce qui les rend particulièrement adaptés au développement de robots mobiles exigeant des niveaux élevés de fiabilité et de sécurité.
Préoccupations communes en matière de fiabilité et de sécurité des robots mobiles
Les robots mobiles dépendent fortement de leur électronique embarquée pour percevoir leur environnement, prendre des décisions et contrôler leurs actions. Cependant, leurs conditions d'exploitation 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 entraîner des erreurs de bits et des corruptions dans la mémoire du robot au fil du temps. Par conséquent, nous devons prendre en compte la fiabilité à long terme de l'électronique, car les robots mobiles sont censés avoir une durée de vie opérationnelle prolongée.
AMRs industriels
Figure 1
Les erreurs de mémoire peuvent entraîner divers problèmes de fiabilité et de sécurité chez les robots mobiles. Un retournement de bit dans le firmware de contrôle du robot pourrait le conduire à exécuter des instructions incorrectes, entraînant des comportements inattendus. Des données de capteurs corrompues pourraient être mal interprétées, amenant le robot à prendre des décisions incorrectes. Des sorties de contrôle moteur erronées pourraient provoquer des mouvements imprévus ou potentiellement endommager le robot ou son environnement.
Dans les applications critiques pour la sécurité, telles que les robots mobiles opérant à proximité des personnes, les conséquences de tels dysfonctionnements pourraient être considérables. Les robots mobiles nécessitent des mesures de protection robustes contre les erreurs de mémoire pour garantir un fonctionnement fiable et sécurisé.
Fonctionnalités de correction d'erreur MCX pour flash et RAM
La série de microcontrôleurs NXP MCX A intègre plusieurs fonctionnalités clés pour détecter et corriger les erreurs mémoire. Le MCX A intègre jusqu'à 128 Ko de mémoire flash avec des capacités de codage de correction d'erreurs (ECC). La série MCX N offre jusqu'à 2 Mo de mémoire flash avec ECC. Chaque mot de 128 bits de mémoire flash intègre 9 bits supplémentaires de données ECC.
ECC est une technique de stockage de bits redondants avec chaque mot de données. 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 capable de corriger. ECC peut également déterminer quel bit est erroné en cas d'erreur sur un seul bit. Cependant, il ne peut que détecter les erreurs sur deux bits, sans pouvoir les corriger.
Exemple de robot mobile
Figure 2
Si le microcontrôleur détecte une erreur ECC, le module System Controller (SYSCON) peut générer une faute de bus ou utiliser une interruption pour gérer l'erreur. La gestion flexible des fautes permet aux développeurs de personnaliser leur gestion afin de mieux répondre aux besoins de leurs applications.
Le MCX A offre également 32 Ko de SRAM intégrée, avec un bloc de 8 Ko (RAMA0) intégrant la ECC pour la correction d'erreurs simples et la détection d'erreurs doubles. 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 critiques en temps d'exécution, telles que les entrées des capteurs et les variables d'état des algorithmes. Le microcontrôleur implémente un module de rapport d'erreurs (ERM) pour fournir un reporting complet et un contrôle des erreurs. L'ERM capture et enregistre les événements d'erreur provenant de la logique ECC, offrant une visibilité sur l'état de santé du sous-système mémoire. Les développeurs peuvent utiliser ces informations d'erreur pour le diagnostic et la maintenance prédictive.
Pour les autodiagnostics, le module d'injection d'erreurs (EIM) offre des capacités d'injection d'erreurs lors de la lecture de la RAM ECC. Cette fonctionnalité d'autotest permet aux développeurs de mettre en œuvre des contrôles périodiques afin de garantir que le microcontrôleur fonctionne de manière fiable.
En plus de l'ECC, la série MCX A inclut un vérificateur de bloc de mémoire (MBC) qui offre un contrôle de sécurité en temps d'exécution concernant les autorisations de lecture, d'écriture et d'exécution pour différentes régions de mémoire. En définissant des règles d'accès à la mémoire, le MBC peut empêcher les accès non autorisés à la mémoire.
Comment la correction d'erreurs MCX permet une robotique fiable
Les fonctionnalités de correction d'erreurs de la MCX travaillent ensemble pour améliorer la fiabilité et la sécurité des robots mobiles. En corrigeant automatiquement les erreurs d'un bit dans la mémoire flash, la 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 pouvant entraîner des comportements inattendus.
Le MCX est équipé pour détecter les erreurs à deux bits, ce qui est essentiel pour garantir la sécurité et la fiabilité de ses opérations. Bien qu'il ne soit pas possible de corriger les erreurs à deux bits, leur détection aide à éviter l'utilisation d'instructions ou de données corrompues. Lorsqu'une erreur à deux bits est détectée, le robot peut être mis en état de sécurité de manière contrôlée, évitant ainsi les risques potentiels ou les dysfonctionnements.
L'ECC du MCX étend ses capacités de protection de la mémoire au-delà de la flash pour couvrir la SRAM. Le bloc SRAM RAMA0 de 8KB du MCX A intègre l'ECC, tandis que le MCX N peut réaffecter RAMG et RAMH pour la correction ECC, offrant jusqu'à 416KB de RAM ECC. La RAM ECC permet la correction des erreurs à un bit et la détection des erreurs à deux bits pour les données en cours d'exécution. Cette fonctionnalité protège les données critiques telles que les mesures des capteurs, les sorties de contrôle et les variables intermédiaires des algorithmes, des erreurs à un bit accumulées qui pourraient autrement entraîner 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 en cours d'exécution, l'ECC SRAM du MCX aide à garantir que la perception situationnelle et la prise de décision du robot restent précises et fiables. Le MCX N offre également jusqu'à 32KB de RAM ECC qui peut être conservée en mode VBAT, permettant ainsi de protéger les données même en état de faible consommation d'énergie.
Le MBC offre une couche de sécurité supplémentaire en appliquant des politiques de protection de la mémoire. Il peut bloquer les accès mémoire non autorisés, aidant à contenir les défaillances et à empêcher qu'elles ne provoquent des comportements incontrôlés du robot.
Enfin, l'ERM permet une approche basée sur les données pour la maintenance des robots. En enregistrant les événements d'erreur mémoire, l'ERM offre une visibilité sur l'état de santé des composants électroniques du robot. Un taux croissant d'erreurs corrigées pourrait indiquer une panne imminente, permettant d'effectuer une maintenance proactive du robot.
Exemple d'utilisation
Considérez un robot mobile de service opérant dans un environnement industriel. Le robot doit naviguer de manière autonome, éviter les obstacles et les personnes tout en effectuant des tâches.
Robot de service mobile
Figure 3
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 pourraient provoquer des erreurs de bits dans la mémoire du robot.
Le ECC du MCX détecterait et corrigerait toute erreur d'un seul bit induite par les EMI, garantissant que le robot exécute correctement sa logique de contrôle. En cas d'une erreur plus grave à deux bits, le MCX la détecterait et empêcherait l'utilisation des données corrompues. Le robot pourrait alors initier un arrêt en toute sécurité.
Au cours de ces événements, l'ERM du MCX consignerait les occurrences d'erreurs. Le personnel de maintenance pourrait surveiller ces journaux, en recherchant des tendances indiquant une défaillance potentielle. En entretenant le robot de manière proactive, le temps d'arrêt est minimisé et la sécurité est préservée.
Expérience développeur MCUXpresso
Pour un prototypage rapide avec MCX, NXP propose la plateforme de développement FRDM à faible coût. Les cartes de développement FRDM sont fournies avec un facteur de forme standard et des connecteurs, un accès facile aux E/S du MCU, un débogueur MCU-Link intégré et un câble USB-C.
Le GitHub de NXP fournit également un accès à des exemples d'applications, accessibles via le portail Application Code Hub (ACH). MCUXpresso IDE et MCUXpresso pour VS Code intègrent la navigation ACH, permettant ainsi aux développeurs de rechercher facilement les démonstrations et exemples disponibles, et de les filtrer par dispositif, technologie d'application ou périphérique/fonctionnalité avant de charger directement le projet pour utilisation.
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 ses partenaires pour étendre les capacités de la carte d'évaluation choisie. Ce hub propose 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 shields pour évaluer et réaliser des prototypes rapides pour des cas d'utilisation ou des applications spécifiques.
NXP permet une robotique mobile fiable et sécurisée
À mesure que les robots mobiles deviennent plus autonomes, garantir leur fonctionnement fiable et sécurisé est essentiel. Si elles ne sont pas traitées, les erreurs de mémoire induites par des environnements d'exploitation difficiles peuvent entraîner des comportements inattendus des robots.
La gamme de microcontrôleurs MCX de NXP est bien équipée pour répondre aux besoins des robots fiables grâce à ses fonctionnalités de correction d'erreurs. De la mémoire flash et SRAM protégées par ECC au contrôle d'accès mémoire en temps d'exécution et à la journalisation des événements d'erreur, le MCX offre plusieurs couches de protection contre les erreurs de mémoire.
Les concepteurs de robots mobiles souhaitant optimiser la fiabilité et la sécurité devraient envisager le NXP MCX. Son architecture avancée et son ensemble de fonctionnalités complet en font une plate-forme solide pour développer des robots autonomes fiables.
Services de programmation de dispositifs
Fournir des services de programmation de dispositifs de qualité à grande échelle.
Étiquettes d'article
