Configurer rapidement des installations d'automatisation industrielle avec des débogueurs de microcontrôleurs à distance

Par Bill Giovino

Avec la contribution de Rédacteurs nord-américains de DigiKey

Les installations d'automatisation industrielle ont de plus en plus recours à des ordinateurs monocartes (SBC) basés sur des microcontrôleurs pour contrôler les opérations afin d'accroître le rendement et d'améliorer la productivité. Les SBC utilisés sont souvent une combinaison de SBC prêts à l'emploi avec un micrologiciel configurable et de SBC personnalisés avec un micrologiciel personnalisé. Toutefois, pour les nouvelles installations industrielles ou pour les installations existantes qui viennent d'être reconfigurées, il peut être nécessaire de modifier le micrologiciel du SBC pour améliorer le fonctionnement ou corriger des bogues dans le code.

Cet article traite du rôle des SBC et des raisons pour lesquelles le débogage à distance devient de plus en plus important dans les environnements industriels. Il présente ensuite des débogueurs à distance et les logiciels associés de MikroElektronika et explique comment ils peuvent être connectés à un réseau Wi-Fi pour déboguer à distance les microcontrôleurs Arm® dans la plupart des SBC.

SBC dans les ordinateurs industriels

Les installations d'automatisation industrielle modernes font face à la pression d'accroître la productivité par une meilleure gestion des processus grâce à une plus grande précision. Cela peut impliquer l'utilisation de capteurs haute résolution pour fournir des données plus précises au micrologiciel de contrôle. De plus, des actionneurs tels que des moteurs et des solénoïdes peuvent être transformés en actionneurs capables de bouger par incréments beaucoup plus fins.

Une fois que ces capteurs et actionneurs à plus haute précision et plus haute résolution sont installés, le micrologiciel de contrôle des SBC qui gère ces dispositifs doit être modifié pour tirer parti de la résolution accrue. Si la mise à jour du micrologiciel ne peut pas être gérée par le SBC actuel, un nouveau SBC doit être installé. Dans tous les cas, le nouveau micrologiciel est typiquement testé et débogué sur le banc d'essai avant d'être installé dans l'installation industrielle. Après les tests initiaux, le nouveau système est mis en service.

Toutefois, pour les processus plus complexes, le débogage et la programmation peuvent ne pas s'arrêter là. Le fonctionnement en système peut révéler des problèmes non découverts lors de ces tests de pré-production, et dans de nombreux cas, la seule façon d'optimiser le micrologiciel est de le déboguer pendant que le SBC fonctionne.

Les nouvelles installations d'automatisation industrielle peuvent être confrontées aux mêmes problèmes. Cela est particulièrement vrai pour les systèmes hautes performances dans lesquels les boucles de commande des micrologiciels doivent être réglées avec précision pour répondre aux exigences de rendement. Que l'installation industrielle soit neuve ou modernisée, les temps d'arrêt sont coûteux et doivent être réduits au minimum. Cela signifie que les SBC doivent être débogués et programmés directement dans le système.

Déboguer des systèmes industriels embarqués à distance

Le débogage des SBC utilisés dans les systèmes industriels n'est pas différent du débogage de tout système basé sur microcontrôleur. Un débogueur doit être physiquement connecté par câble, du port de débogage du microcontrôleur au PC exécutant un logiciel de débogage. Un technicien, sur le PC, examine et débogue ensuite le micrologiciel pendant qu'il fonctionne. Cela peut s'avérer fastidieux si de nombreux SBC doivent être débogués sur site, car les techniciens doivent se rendre à l'emplacement physique de chaque SBC. Cela peut même être compliqué si certains SBC se trouvent dans des environnements difficiles, ou dans des endroits physiquement éloignés ou inaccessibles. De plus, il est fréquent que seul un nombre limité de techniciens soit familiarisé avec le micrologiciel personnalisé, de sorte que ces techniciens doivent déboguer de nombreux systèmes en peu de temps, ce qui complique la procédure et retarde le processus.

La solution consiste à utiliser des débogueurs à distance qui sont physiquement connectés aux SBC mais dont les capacités de débogage sont fournies par un PC en réseau situé à un autre emplacement. Les débogueurs à distance peuvent être branchés sur le port de débogage du microcontrôleur du SBC tout en étant connectés au réseau d'une installation via Wi-Fi. Un PC sur le même réseau, situé à un emplacement pratique, peut être utilisé pour accéder à n'importe lequel des débogueurs à distance. Le technicien dispose alors d'une capacité de débogage complète sur le PC à distance.

Pour effectuer ce débogage à distance, les ingénieurs peuvent utiliser le CodeGrip de Mikroe, des débogueurs à distance pouvant se connecter via Wi-Fi à un PC distant pour prendre en charge la programmation et le débogage de nombreux microcontrôleurs Arm. Le débogueur Wi-Fi CodeGrip MIKROE-3460 peut être utilisé sur la plupart des microcontrôleurs Arm dotés d'un port JTAG (Figure 1). Il prend également en charge le port de débogage à un fil SWO (Serial Wire Output) présent sur la plupart des microcontrôleurs Arm Cortex-M3, Cortex-M4 et Cortex-M7.

Image du débogueur à distance CodeGrip MIKROE-3460 de MikroElektronikaFigure 1 : Le débogueur à distance CodeGrip MIKROE-3460 est physiquement connecté au port de débogage JTAG ou SWO d'un SBC. Il est accessible à distance via Wi-Fi pour programmer ou déboguer le micrologiciel du microcontrôleur Arm. (Source de l'image : Mikroe)

Le CodeGrip MIKROE-3460 de Mikroe est installé à l'emplacement physique du SBC basé sur Arm. Il dispose d'un port pour la connexion au port JTAG ou SWO disponible sur le connecteur de la carte. Il est ensuite temporairement connecté à un ordinateur portable via USB afin de configurer initialement l'unité CodeGrip pour le microcontrôleur en cours de débogage. Pour les systèmes hautes performances, l'unité CodeGrip dispose d'un connecteur USB-C. Cela est particulièrement utile dans les situations exiguës et permet d'économiser du temps et de réduire la frustration, car contrairement aux connecteurs USB précédents, les connecteurs USB-C n'ont pas d'orientation supérieure ou inférieure.

L'ordinateur portable connecté à l'unité CodeGrip doit exécuter la suite CodeGrip de Mikroe pour la configuration initiale de l'unité CodeGrip. L'état de l'unité CodeGrip est signalé grâce à cinq LED (Figure 2). Cela permet de fournir à un technicien sur site des informations essentielles sur l'état de fonctionnement de l'unité sans avoir à connecter un ordinateur portable. Lorsque l'unité est correctement alimentée, la LED verte est allumée. Pendant le fonctionnement normal de l'unité CodeGrip, la LED rouge active est également allumée. Si la LED verte est allumée et que la LED rouge est éteinte, cela peut indiquer une connexion médiocre ou une absence de connexion au port JTAG/SWO ; il s'agit d'une information importante pour un technicien local, indiquant que le câble de débogage peut avoir besoin d'être réinstallé ou remplacé.

Schéma de l'unité CodeGrip de MikroElektronika (cliquez pour agrandir)Figure 2 : L'unité CodeGrip fournit des informations d'état critiques via cinq LED, permettant un retour visuel rapide sur le terrain sans avoir à connecter un ordinateur portable. (Source de l'image : Mikroe)

Une fois connecté via USB à un ordinateur portable, l'unité CodeGrip indique une connexion réussie en allumant la LED jaune USB-LINK sur l'unité. L'utilisateur exécute ensuite la suite CodeGrip pour configurer l'unité CodeGrip via la connexion USB.

Configuration de CodeGrip

La suite CodeGrip peut souvent détecter automatiquement le microcontrôleur Arm sur le SBC, mais elle peut aussi être configurée manuellement avec le type de cœur, la taille de la mémoire Flash et la configuration de la RAM. Cependant, toutes les gammes de produits Arm ne peuvent pas être facilement configurées avec le même débogueur. Pour la gamme Arm STM32 de STMicroelectronics, Mikroe fournit l'unité CodeGrip MIKROE-3461. La gamme Kinetis de NXP Semiconductors est prise en charge par l'unité CodeGrip MIKROE-3462. Le fonctionnement de l'unité CodeGrip et de la suite CodeGrip est identique pour toutes les gammes.

Une fois connectée et configurée, la suite CodeGrip peut effectuer des opérations de programmation et de débogage sur le terrain. Lors de tout transfert de données vers l'unité CodeGrip, la LED bleue de données clignote, indiquant que les données sont en cours de transfert entre l'unité CodeGrip et la suite CodeGrip. Cela signale que l'unité CodeGrip fonctionne correctement et qu'elle est en train de programmer ou de déboguer le SBC.

Pour le débogage à distance, l'unité CodeGrip peut être configurée pour se connecter via Wi-Fi à un PC distant qui exécute également la suite CodeGrip. Pour des raisons de sécurité et de performances, le réseau Wi-Fi utilisé pour se connecter aux unités CodeGrip doit être séparé des autres réseaux Wi-Fi utilisés dans l'installation industrielle. L'envoi d'un gros fichier .bin ou .hex à l'unité CodeGrip via Wi-Fi équivaut au téléchargement d'un gros fichier sur un PC, ce qui peut ralentir l'ensemble du réseau. Si un PC distant se connecte avec succès à l'unité CodeGrip, la LED orange NET-LINK sur l'unité CodeGrip s'allume, indiquant une connexion réussie. Une fois l'unité CodeGrip configurée, l'ordinateur portable connecté via USB peut être déconnecté.

La suite CodeGrip peut lire, programmer et effacer toute la mémoire Flash du microcontrôleur cible. Elle peut également comparer le contenu de la mémoire Flash du microcontrôleur avec un fichier source pour vérifier que le micrologiciel est authentique et n'a pas été altéré. Cela peut également être utile lors d'un audit de sécurité pour vérifier la sécurité du micrologiciel sans avoir à se déplacer jusqu'à l'emplacement physique de chaque SBC.

La suite CodeGrip peut également effectuer une réinitialisation matérielle du microcontrôleur cible. Cela peut être utile en cas de dysfonctionnement du SBC ou si l'on soupçonne une faille de sécurité. Normalement, un SBC réinitialisé exécute un autotest intégré (BIST) au démarrage qui inclut des contrôles de sécurité, vérifiant que l'appareil fonctionne correctement et n'a pas été altéré.

Une puissante fonctionnalité de l'unité CodeGrip de Mikroe est sa prise en charge du port de débogage en temps réel SWO Arm. La broche SWO diffuse en continu des informations de débogage sur l'état du microcontrôleur Arm et peut être utilisée pour fournir, en temps réel, des informations d'état et de suivi sur le fonctionnement du micrologiciel. Mikroe fournit une bibliothèque SWO avec des fonctions qui peuvent améliorer les capacités de débogage de la suite CodeGrip (Figure 3). Le micrologiciel du microcontrôleur peut ainsi être facilement surveillé et débogué à distance.

Image de la suite CodeGrip de MikroElektronika pouvant fournir des informations de débogage et de suivi en temps réelFigure 3 : La suite CodeGrip peut fournir des informations de débogage et de suivi en temps réel pour un microcontrôleur Arm en diffusant des données en continu sur le port SWO. Les informations de débogage sont codées par couleur pour référence aisée. (Source de l'image : Mikroe)

Les messages SWO sont divisés en trois catégories : info, avertissement et erreur. CodeGrip peut afficher une ou toutes ces catégories de messages. Les messages affichés sont codés par couleur pour référence aisée : bleu pour les informations, jaune pour les avertissements et rouge pour les erreurs. Cela permet aux utilisateurs de décider rapidement du type de contenu à consulter, et de donner facilement la priorité aux messages d'erreur par rapport aux avertissements et aux informations.

Conclusion

Le débogage des SBC en fonctionnement dans les installations industrielles peut prendre du temps, surtout si de nombreux SBC doivent être programmés et débogués. En outre, il n'est pas toujours pratique de se rendre à chaque emplacement individuel. Comme illustré, le débogage à distance via Wi-Fi à l'aide de dispositifs comme CodeGrip et son logiciel associé permet de gagner du temps tout en améliorant la productivité.

DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Image of Bill Giovino

Bill Giovino

Bill Giovino est un ingénieur en électronique titulaire d'un BSEE de l'Université de Syracuse, et l'une des rares personnes à avoir réussi à passer de l'ingénierie de conception à l'ingénierie des applications sur le terrain et au marketing technologique.

Depuis plus de 25 ans, Bill œuvre à la promotion des nouvelles technologies devant un public technique et non technique pour de nombreuses entreprises, notamment STMicroelectronics, Intel et Maxim Integrated. Chez STMicroelectronics, Bill a contribué aux premiers succès de l'entreprise dans l'industrie des microcontrôleurs. Chez Infineon, Bill a orchestré les premiers succès de l'entreprise en matière de conception de microcontrôleurs dans l'industrie automobile américaine. En tant que consultant marketing pour son entreprise CPU Technologies, Bill a aidé de nombreuses entreprises à transformer des produits sous-performants en réussites.

Bill a été l'un des premiers à adopter l'Internet des objets, notamment en mettant la première pile TCP/IP complète sur un microcontrôleur. Bill pense que les ventes passent par l'éducation et accorde une importance croissante à une communication claire et bien écrite pour la promotion des produits en ligne. Il est modérateur du groupe populaire LinkedIn Semiconductor Sales & Marketing et parle couramment le B2E.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey