Configurer rapidement des installations d'automatisation industrielle avec des débogueurs de microcontrôleurs à distance
Avec la contribution de Rédacteurs nord-américains de DigiKey
2021-03-03
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.
Figure 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é.
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.
Figure 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é.
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é.




