Accueil Composants Sous pression - L'intention et le but des tests ...

Sous pression - L'intention et le but des tests de charge Ethernet industriel

Avec la version 2.3 de la spécification PROFINET, la réussite du test de charge (payload test) est devenue obligatoire pour obtenir une certification. Les microcontrôleurs intégrés peuvent-ils réussir ces tests ? Oui, si les piles et les fabricants de MCU ont fait leurs devoirs, comme le montre cet article utilisant les piles Renesas RX63N et PROFINET de port GmbH.

Il ne fait aucun doute qu'avec l'avènement de l'Ethernet industriel dans le monde de l'automatisation, les exigences en matière de puissance de calcul et de complexité de mise en œuvre ont augmenté. Alors que pour de simples appareils CANopen, un processeur 8 bits était plus que suffisant, ce n'est pas le cas pour des protocoles comme PROFINET.

Cela est en partie responsable, d'une part, des volumes importants de données et, d'autre part, de la polyvalence des services, qui, outre les protocoles Ethernet industriels, sont également proposés par les protocoles Ethernet et les protocoles étendus basés sur IP. .

Ainsi, il devient encore plus important d'examiner ces charges parallèlement à la communication de contrôle standard.

Cependant, avant d'évaluer ces défis en utilisant le RX63N comme exemple, examinons une brève introduction aux types généraux de trafic réseau et à la manière dont il est utilisé par PROFINET.

Types de trafic réseau

Afin de mieux comprendre les tests de charge, il faut d'abord considérer quelles (mauvaises) situations pourraient provoquer quels types de trafic réseau.

Trafic indirect

Le trafic de données lié au trafic indirect n'est en effet pas destiné à l'appareil testé. Cela peut impliquer des trames de diffusion (pour tous les participants), de multidiffusion (pour certains participants) ou de monodiffusion. Les trames de diffusion et de multidiffusion sur le réseau sont intégrées dans la couche Ethernet et sont donc disponibles à tout moment sur le réseau Ethernet.

Qu'est-ce qui conduit à un trafic non dirigé de trames unicast? En général, cela se produit en cas d'erreur. Normalement, un commutateur Ethernet adresse une table d'adresses interne. Si le commutateur reçoit une trame avec une adresse MAC inconnue, le port sur lequel la trame a été reçue est répertorié dans la table d'adresses. Cet "apprentissage d'adresse" permet au commutateur d'envoyer des trames unicast directement à la cible et de ne pas les inonder comme dans le cas des messages de diffusion vers tous les ports. Cependant, si la table d'adresses est pleine, tout apprentissage d'adresse futur placera le commutateur en mode de sécurité : les trames, comme dans le cas du concentrateur, seront transmises à tous les ports. Ce comportement est délibérément exploité par ce que l'on appelle le « MAC flooding » (également connu sous le nom de Switch jamming). L'attaquant transmet des tonnes de trames Ethernet avec de fausses adresses jusqu'à ce que la table de commutation soit pleine. Un port Ethernet libre suffit à cet effet. L'objectif de l'attaquant est de générer intentionnellement une surcharge ou de lire des informations sur l'ensemble du réseau.

Trafic direct

Le trafic direct traite des données de trafic prévues par l'appareil et non comme dans le cas du trafic indirect, où elles ont été transmises par erreur par l'appareil. Ces données peuvent être envoyées par unicast, broadcast ou multicast.

Dans ce trafic, les données peuvent provenir soit d'une connexion PROFINET, soit d'autres services tels qu'un serveur HTTP s'exécutant sur l'appareil. De plus, il existe également des données provenant de protocoles courants utilisés comme ARP. Ces données peuvent être subdivisées en temps réel (RT) et en temps non réel (NRT). Le trafic RT couvre tout ce qui sert à maintenir une connexion PROFINET cyclique. Le trafic NRT comprend des données du protocole PROFINET lui-même ainsi que d'autres trames Ethernet (par ex. trafic IP).

Une question d'architecture

La MCU d'un appareil PROFINET doit donc traiter un nombre relativement élevé de télégrammes. Cette charge augmente à mesure que la taille d'un réseau projeté augmente. En particulier, dans la phase initiale d'un réseau, il peut arriver fréquemment que des trames comme LLDP, ARP, etc. ils éclatent.

Le matériel et les logiciels doivent être correctement conçus pour assurer une communication fiable même dans ces situations. Pour un exemple pratique, il faut d'abord considérer quelle séquence d'opérations est nécessaire pour traiter une communication PROFINET cyclique.

La figure 1 montre un extrait d'un chronogramme de la pile PROFINET de port GmbH sur un Renesas RX63N. Les données ont été obtenues à l'aide du cadre de suivi intégré dans la pile. Montre chronologiquement les étapes du processus principal pour transmettre une trame RT.

Sur les plates-formes embarquées sans système d'exploitation, la pile utilise une routine de minuterie dans laquelle toutes les minuteries utilisées sont surveillées à des intervalles de microsecondes pour leur expiration. Dans la figure 1, le OAL_timer illustre cela avec une ligne verte. Tout d'abord, le temporisateur pour le traitement cyclique des paquets est exécuté. Ceci est illustré dans la figure 1 par Cyclic avec la ligne jaune. Dans Cyclic, la prochaine trame à transmettre est compilée et transmise au pilote Ethernet. Lorsque Cyclic est terminé, le reste des temporisateurs peut être traité. Dans ce cas, la prochaine trame LLDP à transmettre est traitée. LLDP (Link Layer Discovery Protocol) est un protocole de couche 2 qui gère la détection de voisinage, et il n'est pas seulement utilisé dans PROFINET. La trame est générée sur la ligne marquée LLDP et transmise via le pilote Ethernet. Une fois que le temporisateur a terminé sa tâche, deux interruptions Ethernet peuvent encore être identifiées. Cela implique une confirmation que les deux trames (cyclique et LLDP) ont été transmises. La lecture du "marqueur" dans le coin supérieur droit de la figure 1 (surligné par un rectangle rouge) montre que l'action entière est effectuée en seulement 119 μs. Si la commutation d'interruption avait également été prise en compte, le temps serait d'environ 125 µs. L'interruption de minuterie est déclenchée environ toutes les 1 ms. Avec cela, le RX63N peut encore prendre beaucoup de temps de calcul sur le processus de communication PROFINET pour gérer les prochaines données à envoyer. De plus, pendant cette période, d'autres services tels que TCP pour un serveur HTTP peuvent être traités.

Il s'agit d'un exemple simple sans données de trafic supplémentaires. Comment le système aurait-il agi lorsque des données supplémentaires auraient été reçues ?

A cet effet, à l'aide de l'outil « tcpreplay », des paquets ARP préenregistrés sont en outre renvoyés au réseau le plus rapidement possible. Ceci est illustré à la Figure 2. Les paquets ARP peuvent être reconnus comme une interruption Ethernet fréquemment déclenchée (ligne rouge). Cependant, comme on peut le voir sur la figure, le trafic supplémentaire affecte gravement la communication cyclique. Comment cela peut-il être expliqué? Tout d'abord, pour cette réalisation, vous avez besoin d'un MCU qui permet la hiérarchisation et l'interruption des interruptions. Cette fonctionnalité est correctement implémentée dans le Renesas RX63. Le traitement ou la génération de trames cycliques est la partie la plus importante de l'appareil, c'est pourquoi l'interruption du temporisateur a reçu la priorité la plus élevée. Par conséquent, il est déclenché même lorsque l'appareil est occupé à traiter un paquet dans la routine d'interruption Ethernet et l'interrompt.

Deuxièmement, une fonctionnalité intelligente du RX63N, qui peut considérablement soulager la charge sur le processeur, en particulier lors d'une charge de données dense sur le réseau Ethernet, joue ici un rôle important. Le RX63N est équipé de son propre contrôleur DMA (EDMAC) pour le contrôleur Ethernet (ETHERC). Ceci libère le CPU de la tâche de copier les trames Ethernet à envoyer ou à recevoir. Au moyen des descripteurs, le CPU pointe la zone mémoire dans laquelle se trouve le paquet à transmettre ou dans laquelle le paquet reçu doit être stocké. Le CPU peut alors traiter les paquets. Par conséquent, il est possible de traiter un paquet pendant que l'EDMAC reçoit ou transmet déjà d'autres paquets.

perspectives

Il ne fait aucun doute que dans les futurs tests de charge, cela fera partie de chaque test de version, voire de chaque certification. Ici, il est important non seulement de vérifier la communication, mais également de simuler les conditions d'erreur du réseau.

Dans PROFINET, les tests de charge feront bientôt partie de la certification. Dans les tests de charge du réseau, outre les données RT, différents protocoles sont également introduits dans le trafic réseau par monodiffusion, diffusion et également par multidiffusion. De cette manière, différents niveaux de charge, du trafic réseau normal à la surcharge du réseau, sont simulés. Cela se fait en fonction de la classe de performance souhaitée (classe de charge du réseau).

D'un autre côté, les fabricants de MCU et de piles doivent également faire leurs devoirs. Le logiciel et le matériel doivent être préparés pour gérer d'éventuelles erreurs, comme c'est le cas avec le RX63N.

Que devez-vous faire pour commencer ?

Pour un utilisateur inexpérimenté, les sections précédentes peuvent sembler relativement compliquées. Pour faire les premiers pas, il est recommandé d'utiliser un RSK (Renesas Starter Kit) RX63N car, avec la pile PROFINET de port GmbH, une solution "Ready-To-Go" est proposée qui permet de réaliser rapidement le développement d'applications et avec agilité. Le débogueur Renesas E1 JTAG et l'environnement de développement e2Studio sont disponibles en tant qu'outils de développement. L'environnement de développement e2Studio intègre tous les outils nécessaires pour écrire et déboguer le logiciel. L'application de démonstration comprend tous les fichiers nécessaires au projet pour contribuer ainsi à un démarrage en douceur du kit de démarrage.

Le RSK intègre un MCU RX63N avec 2 Mo de Flash sur puce et 128 Ko de RAM sur puce. Ce groupe de produits avec 165 DMIPS et 100 MHz CPU et fonctionnement flash atteint des performances de calcul élevées. Afin de pouvoir l'utiliser dans une grande variété de produits avec des profils et des exigences différents, ce groupe de produits est hautement évolutif. Les RX63N sont disponibles dans des versions de mémoire flash allant de 512 Ko à 2 Mo et des tailles de RAM allant de 128 Ko à 256 Ko. En ce qui concerne les packages, il existe des versions dans différentes variantes : LQFP, LGA et BGA. En plus de l'interface compatible Ethernet IEEE 802.3 MAC avec Media Independent Interface (MII) et Reduced Media Independent Interface (RMII) pour une connexion simple à un PHY, ces composants offrent des interfaces CAN (Controller Area Network) 2.0B avec jusqu'à trois canaux ( ici, une solution CANopen de port GmbH est également disponible), deux hôtes pleine vitesse USB (Universal Serial Bus), USB OTG et des fonctions d'appareil. Les RX sont conçus pour fournir une densité d'intégration élevée et un coût de structure attractif, combinés à une technologie Flash embarquée extrêmement rapide. Par conséquent, ils sont le bon choix pour les applications nécessitant des piles de communication puissantes, comme dans le domaine PROFINET avec des solutions à puce unique pour éviter l'utilisation de mémoires externes. Des informations détaillées à ce sujet peuvent être téléchargées sur Internet et sont bien sûr incluses dans le kit de démarrage.

Une bonne combinaison

Dans le cadre du programme RXMAX de Renesas, la combinaison du microcontrôleur Renesas RX32N 63 bits et de la pile de ports PROFINET offre un démarrage particulièrement attrayant dans le domaine des applications PROFINET. Le MCU Renesas RX63N peut fonctionner avec le port PROFINET sans restrictions, permettant le développement de dispositifs d'E/S PROFINET puissants et économiques (CC-A, RT-1).

L'avantage de coût peut s'étendre grâce à la structure de réseau simplifiée aux intégrateurs et à leurs clients.

En principe, des solutions telles que CANopen, EtherNet/IP, POWERLINK et EtherCAT sont possibles sous la même plate-forme.