Utiliser le sous-système spécialisé de Sitara pour les communications et le traitement d'automatisation industrielle

Par Stephen Evanczuk

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

La possibilité de fournir des communications fiables pour des systèmes d'automatisation industrielle présente des défis uniques pour les développeurs. Ces systèmes reposent sur plusieurs protocoles de communication conçus pour maintenir des connexions en temps réel fiables parmi les divers sous-systèmes utilisés dans un environnement industriel. Dans cet environnement, les processeurs à usage général traditionnels peuvent ne pas être en mesure de répondre uniformément aux exigences de communication en temps réel tout en exécutant le logiciel d'application.

Les développeurs ont besoin d'une plateforme de développement qu'ils peuvent facilement adapter pour répondre aux diverses demandes des applications industrielles.

Cet article montre la manière dont les développeurs peuvent utiliser un kit de développement prêt à l'emploi de Texas Instruments pour accélérer le développement de solutions de communication industrielles. Au cœur de ce kit, le processeur Sitara de Texas Instruments fournit la combinaison de ressources informatiques et de fonctionnalités de communication dédiées requise dans des applications industrielles.

Exigences en matière de communications industrielles

Compte tenu du rôle décisif qu'ils jouent dans les stratégies de fabrication avancées, les systèmes de communication industriels sont soumis à des exigences de plus en plus strictes en matière de réponse en temps réel et de fiabilité dans la liaison de groupes de capteurs, moteurs et actionneurs à des contrôleurs logiques programmables (PLC) et des interfaces homme-machine (IHM).

En plus de cette diversité de sous-systèmes, une application industrielle peut faire face à une combinaison d'exigences de performances, d'équipements spécialisés et de systèmes existants qui rendent nécessaire la prise en charge de plusieurs technologies et protocoles de mise en réseau. De ce fait, un seul environnement peut avoir besoin de prendre en charge plusieurs protocoles de bus de terrain, comme Control Area Network (CAN), Modbus et Profibus, ainsi que des protocoles de l'Ethernet industriel, comme Profinet, EtherCAT, Sercos III, etc.

Comme avec les normes de bus de terrain, chaque norme de l'Ethernet industriel a vu le jour pour répondre à un ensemble d'exigences spécifique. Chacune fournit le type de performances en temps réel qui manque à l'Ethernet conventionnel, mais qui est requis dans les communications industrielles. Les façons dont elles fournissent cette capacité peuvent être sensiblement différentes d'une norme de l'Ethernet industriel à une autre.

Par exemple, Profinet permet au contrôleur maître de communiquer avec tous les dispositifs du réseau. Les dispositifs esclaves peuvent à leur tour échanger des trames avec le contrôleur, mais ne communiquent avec les autres dispositifs que de manière acyclique. Pour les communications, ce protocole fournit un canal TCP/IP (Transmission Control Protocol/Internet Protocol) standard pour un échange de données traditionnel qui ne se fait pas en temps réel. Pour l'échange de données en temps réel, un canal en temps réel Profinet prend en charge les échanges cycliques ou acycliques entre un contrôleur et des dispositifs esclaves (Figure 1, à gauche).

Schéma de piles Ethernet pour Profinet (à gauche) et EtherCAT (à droite)Figure 1 : Différentes piles de l'Ethernet industriel pour Profinet (à gauche) et EtherCAT (à droite) peuvent fournir des services similaires comme un protocole Ethernet traditionnel, mais utiliser des approches sensiblement différentes pour la prise en charge des communications en temps réel dans leurs protocoles de niveau plus élevé et leurs services sous-jacents MAC (contrôle d'accès au support) et DLL (couche liaison de données). (Source de l'image : Texas Instruments)

Avec EtherCAT, l'élément maître communique avec les éléments esclaves en incluant des commandes et des données pour chaque élément esclave dans une trame qui est transmise d'un nœud à un autre. Lors de la transmission de la trame, chaque nœud esclave lit les commandes et données qui lui sont dédiées, et ajoute ses propres données à la trame à mesure que cette dernière progresse. À l'instar de Profinet, EtherCAT combine un canal TCP/IP traditionnel pour les communications compatibles Ethernet avec un canal temps réel pour les communications urgentes (Figure 1, à droite).

Bien que différentes normes de l'Ethernet industriel reposent sur des mécanismes considérablement différents, elles présentent toutes la capacité de fournir le type de performances en temps réel qui manque au protocole Ethernet traditionnel, mais qui est requis dans les communications industrielles. Cependant, lors de la mise en œuvre de ces normes, les développeurs peuvent se retrouver coincés entre les limitations de performances des options de conception types et les exigences de performances en temps réel de leur application.

Les applications en temps réel dépendent de réponses à faible latence fournies pendant une période uniforme à la suite d'une commande, d'une entrée ou d'un autre stimulus de commande. Dans les processus basés sur des cycles utilisés dans les systèmes industriels, les systèmes à faible latence permettent de garantir que les processus se produisent le plus tôt possible au début de chaque cycle. La gigue ou d'autres facteurs présents dans ces systèmes peuvent provoquer une variation imprévisible dans le cycle, ce qui altère la capacité du système à gérer les processus à cadence élevée de façon fiable et uniforme.

Auparavant, les développeurs étaient souvent obligés de concevoir leurs propres solutions matérielles pour relever les défis de capacité de réponse en temps réel associés à la connectivité industrielle. Ce qui complique la plupart des approches, c'est que le logiciel et le matériel conçus pour l'informatique à usage général se concentrent sur l'optimisation des performances globales d'exécution de l'application plutôt que sur la manière de satisfaire les exigences de performances en temps réel.

Au niveau du logiciel, les développeurs d'applications industrielles ont besoin de capacités de réponse déterministe à faible latence, qui sont généralement fournies avec Linux en temps réel et, à un niveau de précision plus élevée, avec un système d'exploitation en temps réel (RTOS). En fin de compte, les performances déterministes et de latence dépendent du processeur utilisé dans la plateforme matérielle sous-jacente.

Un processeur à usage général comme le cœur Arm® Cortex®-A est idéal pour l'exécution du logiciel qui effectue les tâches de niveau plus élevé de n'importe quelle application, y compris celles nécessaires pour l'automatisation industrielle. Les processeurs à usage général typiques tirent parti des hiérarchies de mémoire cache à plusieurs niveaux et des pipelines d'instructions à plusieurs étages pour accélérer le traitement (Figure 2).

Schéma d'un processeur Arm Cortex-A qui utilise plusieurs couches d'interconnexions et de ressources pour optimiser l'exécution de diverses charges de travailFigure 2 : Dans un processeur à usage général comme l'Arm Cortex-A, l'architecture utilise plusieurs couches d'interconnexions et de ressources pour optimiser l'exécution de diverses charges de travail rencontrées lors de l'exécution de l'application. (Source de l'image : Texas Instruments)

Pour les développeurs de communications industrielles, ces mêmes fonctionnalités architecturales compliquent la possibilité d'atteindre les performances en temps réel requises par l'automatisation industrielle en général et par les systèmes Ethernet en temps réel. Chaque couche de cache, de mémoire et d'interconnexion prolonge la durée requise pour satisfaire les processus basés sur des cycles (latence). Étant donné que le degré d'utilisation de ces couches par le processeur peut varier d'un cycle à un autre, le temps de réponse peut varier considérablement.

Avant, les développeurs confrontés à ce problème implémentaient les portions essentielles liées au temps et aux performances de leurs systèmes avec un matériel dédié, des réseaux de portes programmables par l'utilisateur (FPGA) ou même des circuits intégrés spécifiques à l'application (ASIC). Par exemple, pour la prise en charge de l'Ethernet en temps réel, cette approche impliquait l'implémentation de la couche MAC et d'autres fonctionnalités en temps réel dans un FPGA ou un ASIC.

Même si le matériel personnalisé peut offrir une solution très efficace en termes de performances, l'augmentation considérable des coûts et de la complexité de la conception qui en résulte rend cette approche pratique uniquement pour les applications où les exigences de performances dominent tous les autres points à prendre en compte. Pour les communications industrielles, Texas Instruments fournit une solution plus pratique et rentable en tirant pleinement parti de l'architecture multiprocesseur de sa gamme de processeurs Sitara.

Sous-système de communications industrielles

La gamme de processeurs Sitara combine un processeur d'application Arm Cortex-A hautes performances avec une ou plusieurs instances de son sous-système PRU-ICSS (unité en temps réel programmable et sous-système de communication industrielle). Tandis que le processeur Cortex-A exécute l'application principale, le sous-système PRU-ICSS fournit les capacités d'E/S et de traitement en temps réel nécessaires pour les protocoles de l'Ethernet industriel et d'autres fonctions de contrôle (Figure 3).

Schéma de la gamme de processeurs Sitara de Texas InstrumentsFigure 3 : Les membres de la gamme de processeurs Sitara de Texas Instruments combinent un processeur Arm Cortex-A à usage général avec une unité en temps réel programmable spécialisée, optimisée pour fournir les performances déterministes à faible latence requises dans des applications en temps réel. (Source de l'image : Texas Instruments)

Chaque sous-système d'unité en temps réel programmable (PRU) Sitara inclut deux cœurs en temps réel de 200 mégahertz (MHz) (PRU0 et PRU1 illustrés à la Figure 3) qui s'exécutent avec un temps de cycle de cinq nanosecondes (ns) par instruction. Les cœurs sont conçus avec un petit ensemble d'instructions qui sont traitées sans pipeline d'instructions pour garantir l'exécution déterministe monocycle des instructions. Pour réduire la latence des opérations périphériques, les cœurs accèdent aux ressources partagées par le biais d'une interconnexion 32 bits dédiée qui les connecte directement à plusieurs périphériques, notamment des MDIO (entrées/sorties de données de gestion) et une interface MII (interface indépendante du support), qui sont requis pour l'Ethernet en temps réel. De plus, chaque cœur d'unité PRU se connecte directement aux broches externes du dispositif par le biais de son propre ensemble de 30 entrées et de 32 sorties (Figure 4).

Schéma des processeurs Sitara de Texas InstrumentsFigure 4 : Intégrée aux processeurs Sitara de Texas Instruments, l'unité PRU utilise son accès direct aux broches d'entrée et de sortie ainsi que d'autres ressources matérielles pour réduire la latence dans les applications industrielles. (Source de l'image : Texas Instruments)

Grâce à cette architecture périphérique étroitement couplée, les cœurs en temps réel peuvent fonctionner indépendamment et éviter les retards associés aux tâches qui passent par les diverses interconnexions et couches dans un système de traitement général type. La combinaison de l'exécution monocycle rapide et de l'accès direct aux périphériques permet au sous-système d'exécuter des processus basés sur des cycles de façon déterministe et de répondre rapidement et de manière prévisible à des événements externes. Le sous-système PRU peut ainsi effectuer des opérations d'E/S et atteindre les broches externes beaucoup plus efficacement que le processeur à usage général associé (Figure 5).

Schéma de sous-système PRU intégré aux processeurs Sitara de TIFigure 5 : Avec son exécution d'instructions monocycle et son accès direct aux broches du dispositif, le sous-système d'unité en temps réel programmable (PRU) intégré aux processeurs Sitara de TI doit parcourir bien moins de couches pour lire ou écrire des signaux destinés aux broches d'un dispositif (à droite), ce qui permet des opérations périphériques plus rapides qu'avec le processeur Arm Cortex-A associé (à gauche). (Source de l'image : Texas Instruments)

La combinaison d'E/S haute vitesse et d'une durée de cycle de 5 ns disponible avec les cœurs PRU fournit la capacité de performances déterministes à faible latence requise pour les communications industrielles. À un niveau plus élevé, cette architecture fournit des mécanismes flexibles conçus pour optimiser l'utilisation coordonnée du processeur Arm Cortex-A et du sous-système PRU afin de renforcer les performances des applications industrielles.

Grâce à une utilisation adéquate des ressources dédiées et partagées, les divers cœurs peuvent fonctionner à un niveau de performances maximal, que ce soit individuellement ou ensemble, pour l'exécution de tâches complexes en temps réel. Les tâches adaptées à un cœur individuel peuvent s'exécuter indépendamment sur ce dernier, tandis que les tâches en temps réel plus exigeantes peuvent partager la charge de traitement sur différents cœurs étroitement couplés. La capacité des cœurs PRU à accéder directement aux ressources du cœur Cortex-A garantit une exécution hautes performances des opérations en temps réel et des interactions périphériques, quel que soit le mode de fonctionnement.

Pour optimiser l'affectation et la gestion des ressources dans le cadre d'une exécution étroitement couplée, l'architecture système Sitara fournit des mécanismes de coordination à la fois pour le matériel et le logiciel. Au niveau du matériel, les fonctionnalités de communication interprocesseur, notamment les boîtes de réception basées sur le matériel et les registres de verrouillage de ressources, contribuent à assurer la synchronisation du processeur Cortex-A et du sous-système PRU-ICSS.

Au niveau du logiciel, la prise en charge des services de traitement multiple de Linux fournit un environnement de fonctionnement standard pour coordonner l'exécution des tâches en mode étroitement couplé. Lors de l'exécution, le noyau du système d'exploitation qui s'exécute sur le cœur Arm Cortex-A coordonne les opérations du système PRU à l'aide d'une commande RemoteProc (processus distant) standard et de services rpmsg (messagerie de processus distant) avec ses propres pilotes et les pilotes correspondants dans le micrologiciel du système PRU. Tandis que les services RemoteProc gèrent le chargement du micrologiciel PRU et les opérations de traitement qui s'ensuivent, la structure rpmsg permet l'échange de messages depuis l'application vers le système PRU grâce à l'interface de virtualisation virtio (entrées/sorties virtuelles) (Figure 6).

Schéma des processeurs Sitara de Texas InstrumentsFigure 6 : Les processeurs Sitara de Texas Instruments prennent en charge un ensemble de services standard pour l'interaction avec l'application, et la coordination du processeur hôte Arm Cortex-A et du sous-système PRU. (Source de l'image : Texas Instruments)

Les avantages de cette architecture deviennent particulièrement évidents grâce à sa capacité à simplifier le développement et à stimuler les performances des options de connectivité industrielle allant des interfaces de communication série, comme l'interface SPI, aux protocoles complexes de l'Ethernet industriel. Les processeurs Sitara de TI peuvent exécuter efficacement des protocoles Ethernet en temps réel, comme Profinet, grâce à une combinaison de piles logicielles de protocoles qui s'exécutent sur le processeur Cortex-A et de services en temps réel gérés par le micrologiciel du système PRU (Figure 7).

Schéma d'un processeur Sitara de Texas Instruments capable de répondre aux exigences d'un protocole Ethernet industrielFigure 7 : En coordonnant l'exécution du logiciel dans son processeur hôte Arm Cortex-A et l'exécution du micrologiciel dans son sous-système PRU, un processeur Sitara de Texas Instruments peut répondre aux exigences de traitement à usage général et en temps réel d'un protocole Ethernet industriel comme Profinet. (Source de l'image : Texas Instruments)

Cette approche fournit une solution simple pour la prise en charge de plusieurs protocoles dans une seule application. Il suffit aux développeurs d'exécuter la pile et le micrologiciel requis pour chaque protocole simultanément dans le processeur Sitara (Figure 8).

Image du processeur Sitara de Texas Instruments qui fournit une prise en charge simultanée des protocoles et des interfaces de communication industrielleFigure 8 : L'efficacité de l'exécution du micrologiciel du système PRU et les performances d'exécution du logiciel de son processeur Arm Cortex-A permettent au processeur Sitara de Texas Instruments de fournir une prise en charge simultanée pour plusieurs protocoles et interfaces de communication industrielle. (Source de l'image : Texas Instruments)

TI fournit des piles de protocoles complètes pour plusieurs protocoles de communication série, protocoles de bus de terrain et protocoles Ethernet en temps réel différents, notamment EtherCAT, Profinet et Sercos III. En combinant des piles de protocoles sur le même système basé sur Sitara, les développeurs peuvent prendre en charge les diverses exigences de connectivité pour un contrôleur logique programmable (PLC) typique ou un commutateur industriel qui doit, par exemple, prendre en charge un protocole Ethernet industriel comme Profinet du côté hôte, ainsi qu'un bus de terrain comme Profibus ou IO-Link du côté périphérique.

Les packs Ethernet industriel standards sont fournis sous forme de binaires de boîte noire, mais TI fournit aux développeurs de nombreux exemples de services de communication industrielle. Pour le développement d'applications, un kit de développement logiciel spécifique aux processeurs de TI (Processor-SDK), comme le kit Processor SDK pour les processeurs Sitara AM437x, fournit une interface de programmation d'application (API) pour la gamme de processeurs correspondante. Avec des fonctionnalités spécifiques à une gamme, ces API fournissent des abstractions intuitives pour les opérations de bas niveau, comme les transactions GPIO ou IO-Link (Liste 1).

Copier /* GPIO LED toggling*/ ...
Board_init(boardCfg); GPIO_init(); While(1) { GPIO_write(Board_LED1, GPIO_PIN_VAL_HIGH); Delay(); GPIO_write(Board_LED1, GPIO_PIN_VAL_LOW); Delay(); } /* IO-LINK status */ ...
Board_init(boardCfg); ...
IOLINK_socGetFwCfg(peripheralNum, &iolink_cfg); ...
IOLINK_socSetFwCfg(peripheralNum, &iolink_cfg); ...
IOLINK_init(); ...
iolinkHandle = IOLINK_open(peripheralNum, &iolinkParams); ...
status = IOLINK_control(iolinkHandle, iolinkCmd, &iolinkCmdArg); ... 

Liste 1 : Comme ces fragments de code le démontrent, l'API Processor SDK de Texas Instruments pour chaque gamme Sitara permet aux développeurs de se concentrer sur les abstractions fonctionnelles au lieu de perdre du temps avec la manipulation de bits de bas niveau ou l'accès aux registres. (Source du code : Texas Instruments)

Développement accéléré

Outre le code et les outils proposés par TI pour l'implémentation de protocoles de communication industrielle sur les processeurs Sitara, les développeurs peuvent accélérer le développement de leur propre logiciel de communication industrielle grâce aux protocoles, aux pilotes et au micrologiciel PRU dans les packs complémentaires de TI et de fournisseurs de pile de protocoles tiers. De la même façon, le kit de développement industriel (IDK) TMDSIDK437X de TI accélère le développement en fournissant une plateforme matérielle complète basée sur Sitara pour les applications industrielles (Figure 9).

Image du kit IDK TMDSIDK437X de Texas InstrumentsFigure 9 : Le kit de développement industriel TMDSIDK437X de Texas Instruments combine un processeur Sitara, une mémoire et un ensemble complet de périphériques, d'interfaces et de canaux de communication, fournissant ainsi aux développeurs une plateforme pour l'évaluation de protocoles de communication industrielle et le développement rapide d'applications d'automatisation industrielle. (Source de l'image : Texas Instruments)

La carte de développement industriel TMDSIDK437X de TI inclut 1 gigaoctet (Go) de mémoire vive (RAM) DDR3, une mémoire Flash NOR SPI quadruple et un processeur Sitara AM4379 de TI. Le processeur AM4379 combine un processeur Arm Cortex-A9 avec deux sous-systèmes PRU, qui contiennent chacun deux cœurs PRU.

Dans un réseau d'automatisation industrielle typique, le Sitara AM4379 peut jouer plusieurs rôles. En plus d'une utilisation dans des systèmes multiprotocoles comme des contrôleurs logiques programmables, des commutateurs et des passerelles, les processeurs Sitara AM4379 peuvent être utilisés dans les équipements finaux qui nécessitent la prise en charge d'une interface IHM grâce à leurs sous-systèmes graphiques et d'affichage intégrés.

Outre plusieurs périphériques et ports de communication, la carte de développement industriel inclut des puces d'interface Ethernet, notamment l'émetteur-récepteur PHY 10/100 Mbit/s TLK105 de Texas Instruments pour des connexions Ethernet industrielles et l'émetteur-récepteur PHY Gigabit (Gbit) KSZ9031RNXIA-TR de Microchip Technology pour des connexions Ethernet traditionnelles.

L'implémentation d'une application de communication industrielle avec ce kit est simple : il suffit d'une alimentation de 24 volts et d'une connexion par câble Ethernet au système de développement.

L'ensemble de logiciels industriels PRU-ICSS de TI fournit des packs logiciels pour les protocoles de communication industrielle mentionnés plus tôt. En utilisant l'environnement de développement intégré (IDE) Code Composer Studio de TI, les développeurs peuvent charger, créer et exécuter rapidement des applications d'exemple fournies avec les packs comme point de départ, ou les utiliser pendant la production pour leurs propres applications.

Grâce au logiciel de TI et aux packs de logiciels industriels PRU-ICSS, les développeurs peuvent implémenter rapidement des systèmes d'automatisation industrielle sophistiqués, comme un contrôleur d'entraînement moteur connecté au protocole Ethernet (Figure 10).

Schéma du kit IDK TMDSIDK437X de Texas Instruments et du logiciel de Texas InstrumentsFigure 10 : La combinaison du kit de développement industriel TMDSIDK437X de Texas Instruments et du logiciel de Texas Instruments fournit une plateforme de développement particulièrement efficace pour une implémentation rapide de systèmes industriels, comme le contrôleur moteur connecté au protocole EtherCAT illustré ici. (Source de l'image : Texas Instruments)

Pour l'application du contrôleur d'entraînement moteur, le sous-système PRU collecte les données de position du moteur à l'aide de l'interface du convertisseur analogique-numérique (CAN) de la carte TMDSIDK437X ou de son interface de codeur bidirectionnel numérique EnDat. Le processeur Arm Cortex-A peut alors utiliser ces données pour exécuter un algorithme de commande à flux orienté (FOC) afin de créer un ensemble de paramètres de commande moteur à acheminer par l'intermédiaire d'un canal à modulation de largeur d'impulsion (PWM) Sitara. Enfin, un variateur moteur DRV8313 de TI inclus sur la carte TMDSIDK437X génère les paramètres moteur ajustés.

Les développeurs peuvent utiliser la carte matérielle du kit TMDSIDK437X avec le logiciel de TI pour implémenter rapidement des applications d'automatisation industrielle connectées via divers protocoles de communication et interfaces. Pour les applications personnalisées, le kit sert de conception de référence complète permettant d'accélérer le développement matériel. Combinés à cette base matérielle, le kit Processor SDK et le pack logiciel industriel PRU-ICSS de TI fournissent une plateforme de développement capable de répondre aux exigences des applications émergentes reposant sur divers protocoles de communication industrielle.

Conclusion

Au sein d'un ensemble d'exigences en constante évolution, l'exécution hautes performances de protocoles de communication industrielle est essentielle à la création de systèmes d'automatisation industrielle avancés. Si des processeurs à usage général sont requis pour exécuter des algorithmes et des processus de plus haut niveau dans ces systèmes, des dispositifs spécialisés sont généralement nécessaires pour fournir les performances déterministes à faible latence requises pour prendre en charge les protocoles de communication industrielle en temps réel pour les bus de terrain et la connectivité Ethernet industrielle.

Comme indiqué ici, la gamme Sitara de Texas Instruments fournit à la fois les unités de traitement à usage général et en temps réel requises pour répondre à ces diverses exigences. En utilisant un kit de développement industriel basé sur Sitara de Texas Instruments ainsi que des piles de protocoles de communication préconfigurées, les développeurs peuvent déployer rapidement des applications d'automatisation industrielle sophistiquées capables de prendre en charge un large éventail d'options de communication industrielle.

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 Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey