acontis EtherCAT Master pour Linux
- Protocoles : ETHERCAT
- Produits / Services : Logiciels
- Fournisseur : acontis
acontis propose une solution EC-Master pour Linux permettant des performances temps réel sans compromis.
EtherCAT et Linux
Aujourd'hui, EtherCAT est devenu l'une des solutions Ethernet temps réel les plus populaires au monde. Alors que sur les PC x86, le système d'exploitation dominant reste Microsoft Windows, les systèmes d'exploitation utilisés dans les systèmes embarqués sont beaucoup plus nombreux et variés. Au cours des dernières années, la complexité croissante des microcontrôleurs haut de gamme sur base ARM a réduit considérablement cette diversification et aujourd'hui, Linux Temps Réel est de loin l’OS temps réel le plus populaire pour ces MCU embarqués. Pour plus d’informations sur l'utilisation des systèmes d'exploitation notamment dans le domaine EtherCAT, cliquez ici.
Compte tenu de ces tendances, l'utilisation d'un EtherCAT Master sous Linux est devenue essentielle dans de nombreuses applications. Mais l'utilisation de Linux présente quelques défis qui doivent être surmontés. Bien qu'il faille tenir compte de la GPL (GNU General Public License) qui apparaît lors de l'utilisation de la technologie brevetée EtherCAT, la performance reste le principal défi technique.
Compte tenu de ces tendances, l'utilisation d'un EtherCAT Master sous Linux est devenue essentielle dans de nombreuses applications. Mais l'utilisation de Linux présente quelques défis qui doivent être surmontés. Bien qu'il faille tenir compte de la GPL (GNU General Public License) qui apparaît lors de l'utilisation de la technologie brevetée EtherCAT, la performance reste le principal défi technique.
EC-Master d’acontis, stack EtherCAT Master pour Linux
L'architecture logicielle de la pile Master EtherCAT d'acontis a été approuvée par l'OSADL (Open Source Automation Development Lab) comme étant conforme aux règles de la GPL, étant donné que tous les logiciels s'exécutent en mode utilisateur et qu'il n'y a donc pas de conflit de brevets. En outre, cette architecture, associée à des pilotes en mode utilisateur en temps réel, garantit des performances temps réel déterministes les plus élevées possibles.
Le logiciel EC-Master prend en charge les architectures Linux x86, x64, ARM, AArch64/ARM64 et PowerPC. En plus de la prise en charge de nombreux processeurs et contrôleurs Ethernet différents, acontis propose des solutions Linux EtherCAT prêtes à l'emploi pour de nombreux contrôleurs différents.
En raison de son évolutivité et de sa conception modulaire, EC-Master peut fonctionner sur des systèmes bas de gamme comme un contrôleur Cortex-M7, ainsi que sur des CPU haut de gamme, comme le Core-i7 d’Intel.
Le code maître est conçu pour fonctionner uniquement dans l'espace utilisateur Linux. Cela permet un processus de développement rapide et pratique et est également conforme à la licence publique générale GNU (GPL). Pour atteindre les taux de mise à jour extrêmement rapides (temps de cycle courts) qui font la réputation d'EtherCAT, la mise en œuvre ne nécessite pas de fonctions de noyau bloquant (API) dans la partie cyclique.
Le logiciel EC-Master prend en charge les architectures Linux x86, x64, ARM, AArch64/ARM64 et PowerPC. En plus de la prise en charge de nombreux processeurs et contrôleurs Ethernet différents, acontis propose des solutions Linux EtherCAT prêtes à l'emploi pour de nombreux contrôleurs différents.
En raison de son évolutivité et de sa conception modulaire, EC-Master peut fonctionner sur des systèmes bas de gamme comme un contrôleur Cortex-M7, ainsi que sur des CPU haut de gamme, comme le Core-i7 d’Intel.
Le code maître est conçu pour fonctionner uniquement dans l'espace utilisateur Linux. Cela permet un processus de développement rapide et pratique et est également conforme à la licence publique générale GNU (GPL). Pour atteindre les taux de mise à jour extrêmement rapides (temps de cycle courts) qui font la réputation d'EtherCAT, la mise en œuvre ne nécessite pas de fonctions de noyau bloquant (API) dans la partie cyclique.
Architecture utilisant le pilote réseau Linux
La pile EC-Master communique avec les dispositifs esclaves en envoyant et en recevant des trames EtherCAT à l'aide d'un adaptateur réseau Ethernet standard (MAC). Le système d'exploitation Linux comprend des pilotes réseau pour les différents adaptateurs de différents fabricants. Ces pilotes réseau Linux peuvent être utilisés par une application comme la pile EC-Master via une couche d’abstraction « socket » de base indépendante, appelée SOCK_RAW pour envoyer et recevoir des trames. Toutefois, les performances risquent d’être médiocres et il pourra être impossible de maintenir les contraintes en temps réel car la pile réseau Linux intégrée et le code des pilotes ne sont pas optimisés pour des opérations cycliques à hautes performances.
L'interface « socket » de base étant généralement disponible sur le noyau de chaque distribution Linux, l'application de démonstration précompilée fournie avec EC-Master (EcMasterDemo) prend en charge SOCK_RAW et peut donc être utilisée pour évaluer les fonctionnalités générales de la bibliothèque EC-Master sans avoir à compiler de fichiers pour le système hôte.
Pour certains dispositifs esclaves, comme ceux qui mettent en œuvre et utilisent des horloges distribuées, des contraintes en temps réel doivent être maintenues. Dans ce cas, l'option socket de base n'est probablement pas en mesure d'envoyer et de recevoir des trames assez rapidement, et les dispositifs EtherCAT ne fonctionneront pas correctement. Par conséquent, SOCK_RAW ne doit être utilisé qu'à des fins d'évaluation initiale et doit être remplacé par le pilote temps réel acontis dans une application industrielle.
L'interface « socket » de base étant généralement disponible sur le noyau de chaque distribution Linux, l'application de démonstration précompilée fournie avec EC-Master (EcMasterDemo) prend en charge SOCK_RAW et peut donc être utilisée pour évaluer les fonctionnalités générales de la bibliothèque EC-Master sans avoir à compiler de fichiers pour le système hôte.
Pour certains dispositifs esclaves, comme ceux qui mettent en œuvre et utilisent des horloges distribuées, des contraintes en temps réel doivent être maintenues. Dans ce cas, l'option socket de base n'est probablement pas en mesure d'envoyer et de recevoir des trames assez rapidement, et les dispositifs EtherCAT ne fonctionneront pas correctement. Par conséquent, SOCK_RAW ne doit être utilisé qu'à des fins d'évaluation initiale et doit être remplacé par le pilote temps réel acontis dans une application industrielle.
Architecture avec le pilote temps réel acontis
Le pilote temps réel acontis remplace le pilote standard MAC (Linux Ethernet network adapter) pour une utilisation EtherCAT en temps réel. Le pilote fonctionne dans l'espace utilisateur et gère directement le MAC pour un fonctionnement cyclique haute performance. Le pilote nécessite un accès direct au MAC qui est rendu possible par le module du noyau appelé atemsys disponible sous licence GPL. Le module de noyau atemsys doit être compilé pour correspondre au noyau en cours d'exécution. Pour compiler le module du noyau, vous pouvez vous référer aux méthodes disponibles dans la documentation de la distribution Linux. De plus, acontis inclut une méthode de compilation pour Yocto Linux.
Le pilote en temps réel n'est pas disponible sous licence GPL et doit être fourni par acontis, et le module du noyau atemsys doit être chargé sur la cible Linux pour pouvoir fonctionner. Une fois ce module en place, le pilote a accès au HW MAC et peut fonctionner très rapidement sur les trames d'envoi et de réception car il contourne complètement la pile réseau de Linux. Il est à noter qu'il n'est pas possible d'utiliser le pilote standard de l'adaptateur réseau Linux en même temps que le pilote temps réel d'acontis sur la même interface. Il est nécessaire de détacher l'instance de l'adaptateur réseau en retirant le pilote du système et en détachant l'instance à l'aide du sys-fs virtuel, ou en modifiant l'arborescence des périphériques Linux si l'on utilise un système embarqué.
Le module atemsys est livré avec EC-Master et est mis à jour lorsque EC-Master est mis à jour.
Le module atemsys est livré avec EC-Master et est mis à jour lorsque EC-Master est mis à jour.
Pilotes Ethernet temps réel disponibles
- Pilote réseau Linux (emllSockRaw) : x86, x64, ARM, AArch64, PPC
- Intel Pro/100 (emllI8255x) : x86
- Intel Pro/1000 (emllI8254x) : x86, x64, ARM, AArch64
- Intel Cyclone V (emllDW3504) : ARM
- Realtek 100MBit (emllRTL8139) : x86
- Realtek Gigabit (emllRTL8169) : x86, x64, ARM, AArch64
- Renesas RZ/G1E (emllSHEth) : ARM
- STMicroelectronics STM32MP1 (emllDW3504) : ARM
- Texas Instruments AM33xx, AM43xx, AM57xx (emllCPSW) : ARM
- Texas Instruments AM33xx, AM57xx (emllICSS) : ARM
- Contrôleur NXP TSEC/eTSEC, LS1021A (emllETSEC) : ARM, PPC
- NXP i.MX6, i.MX7, i.MX8 (emllFslFec) : ARM
- Xilinx Zynq-7000 , UltraScale (emllGEM) : ARM, AArch64
- CCAT Beckhoff (emllCCAT) : x86, x64, ARM
- Nvidia, Jetson TX2 (emllI8254x) : AArch64
Versions et distributions du noyau
EC-Master peut être utilisé avec toute distribution Linux récente supportant la compilation de modules de noyau personnalisés comme Ubuntu, Debian, etc. Le module du noyau atemsys gère les anciennes versions du noyau jusqu'à la 2.6.18. Les drives en particulier ont généralement besoin d'un support en temps réel qui doit être pris en charge par le matériel et le noyau (CONFIG_PREEMPT_RT ou Xenomai).