EC-Master V3.2: Neue Features
New Features Version 3.2.2
- Support for NVIDIA Jetson Orin computer
- Real-time Ethernet Driver supporting EtherCAT Open Mode (EOM)
- Real-time Ethernet Driver for Linux based on eXpress Data Path (XDP) socket
- Real-time Ethernet Driver for Linux based on Data Plane Development Kit (DPDK) software
New Features Version 3.2.1
Neue Features der Version 3.2.0
- Support für Beckhoff CU2508 Ethernet Port Multiplier Device
- Echtzeit Ethernet Treiber für CPUs von Rockchip
- DC Master Synchronisationsmodus: Master als Referenz Zeitgeber
Support for NVIDIA Jetson Orin computer
EC-Master V3.2.2 supports out-of-the-box the powerful NVIDIA Jetson Orin™ embedded AI computers for generative AI, computer vision, and advanced robotics.
For on-chip Ethernet controller a dedicated high performance real-time Ethernet driver (Link Layer) is provided. The solution is available for the Linux operating system. The implementation is already tested on the NVIDIA Jetson Orin Nano Super Developer Kit.
EC-Master performance measurements on this platform have demonstrated very high CPU performance and excellent real-time capability. This allows even highly demanding EtherCAT applications with numerous SubDevices and a short cycle time of 250 us (4 kHz) to be implemented. The results are described in this blog.
Real-time Ethernet Driver supporting EtherCAT Open Mode (EOM)
EtherCAT Open mode is particularly useful when integrating EtherCAT networks into larger, shared IT environments. One or several EtherCAT segments may be connected to a standard (existing) switching device. Further information about EtherCAT Open Mode (EOM) is available in this blog.
In Open Mode, EtherCAT frames can be transmitted using either the communication type RAW or UDP. To reach the corresponding EtherCAT network segment in the frames, the destination MAC address must be set, and for UDP, also the destination IP address must be set.
Beside this, additional fields may need to be defined in the frame. These tasks are handled by the EOM Driver Layer, which is located above the acontis Real-time Ethernet drivers. The EOM Driver Layer can, of course, also operate multiple EtherCAT network segments. This means that only one physical Ethernet interface is required on the MainDevice.
Linux Network Driver based on XDP sockets
In this approach, the EC-Master stack communicates with the SubDevices by sending and receiving EtherCAT frames via the Linux XDP kernel driver that controls the Ethernet network adapter (MAC).
The Linux kernel includes different network drivers for different adapter types. The Linux network driver can be used by means of an abstracted network adapter type independent interface called AF_XDP to send and receive frames. The XDP sockets interface has a better performance compared to the RAW sockets, but the Linux operating system must be designed for it and configured accordingly:
- The kernel must be at least V5.3 or newer
- The network driver must have XDP support (DRV mode) and be up-to-date
- CONFIG_XDP_SOCKETS must be enabled in the kernel configuration
- Required components: libxdp and libbpf
Linux Network Driver based DPDK
In this approach, the EC-Master stack communicates with the SubDevices by sending and receiving EtherCAT frames via the Data Plane Development Kit (DPDK) that controls the Ethernet network adapter (MAC). Data Plane Development Kit (DPDK) is a Linux Foundation project that consists of libraries to accelerate packet processing workloads running on a wide variety of CPU architectures.
The acontis real-time Ethernet driver emlldpdk uses DPDK libraries with an optimized packet processing path for fast transmission of EtherCAT frames. The library librte_eal provides the foundational API for DPDK, facilitating access to hardware resources such as memory, timers, and logs and is mainly used during initialization. The library librte_mbuf handles packet buffers that are crucial for packet transmission and reception. The library librte_ethdev offers an API for configuring and querying Ethernet devices. It supports various operations, including sending and receiving packets.
The system requirements and the kernel configuration for using DPDK on Linux are available here. The kernel must be at least V5.1 or newer.
DPDK does not use the standard Linux Ethernet drivers but provides its own drivers for a variety of different Ethernet controllers, including Intel Gigabit, NXP ENETFEC, etc. The complete list is available here.
Detailed instructions for using the real-time Ethernet driver emlldpdk can be found in the user documentation.
Real-time Ethernet Driver for TI TDA4 JacintoTM CPUs
EC-Master V3.2.1 supports out-of-the-box the Texas Instruments TDA4VM Jacinto™ 7 processors.
For on-chip Ethernet controllers an dedicated high performance real-time Ethernet driver (Link Layer) is provided. The solution is available for the Linux operating system.
The implementation is already tested on the TI boards SK-TDA4VM, J721EXCPXEVM and J784s4.
Running QNX 8 on NXP® i.MX 8 Series
EC-Master V3.2.1 supports out-of-the-box the NXP® i.MX 8 Series Applications Processors powered by QNX® SDP 8.0. For the implementation the Toradex Apalis iMX8 Computer on Module together with the Ixora Carrier Board was used.
For chip Ethernet MACs the acontis Real-time Ethernet driver FSLFEC guarantees fast EtherCAT network update rates with low jitter.
Support für Beckhoff CU2508 Ethernet Port Multiplier Device
Der Beckhoff-Echtzeit-Ethernet-Port-Multiplier CU2508 ermöglicht den Anschluss von bis zu acht unabhängigen 100-MBit-EtherCAT-Netzwerksegmenten. Der CU2508 ist über einen Gigabit-Uplink (X9) mit der Master-Steuerung verbunden.
Die neue acontis-Treiberschicht emllMultipler ist für das Routing der EtherCAT-Frames an den jeweiligen Port verantwortlich.
Jedes Netzwerksegment hat seine eigene Konfiguration (ENI-Datei). Alle Segmente können von einem einzigen Anwendungsprozess bedient werden und mit gleichen oder unterschiedlichen Zykluszeiten (Updateraten) laufen.
Eine präzise Synchronisation auf Basis von Distributed Clocks (DC) wird in allen Netzwerksegmenten unterstützt. Jedes Netzwerk verfügt über einen eigenen Referenz Zeitgeber.
Echtzeit Ethernet Treiber für CPUs von Rockchip
Die neue Version des EC-Master für Linux bietet out-of-the-box Unterstützung für mehrere CPUs des Herstellers Rockchip.
Der acontis Echtzeit-Ethernet-Treiber für Synopsys DesignWare® implementiert High-Speed- und Low-Jitter-EtherCAT-Unterstützung für den On-Chip-Ethernet-Controller.
Die folgenden Boards wurden bereits erfolgreich getestet:
- Pine64 Rock64 mit RK3328 (Quad Cortex A53)
- Orange Pi 4 mit RK3399 (Dual Cortex-A72 + Quad Cortex-A53)
- Orange Pi 5 mit RK3588s (Quad core Cortex-A76 + Quad-core Cortex-A55)
- Radxa Rock3 mit RK3568 (Quad-Core ARM Cortex-A55)
DC Master Synchronisationsmodus: Master als Referenz Zeitgeber
Die Prinzipien der Synchronisation eines EtherCAT-Netzwerks mit Distributed-Clocks (DC) werden auf dieser Seite erklärt https://www.acontis.com/en/dcm.html
Während die Modi "DCM Master Shift" und "DCM Bus Shift" einen Regelkreis im Master erfordern, um die EtherCAT-Systemzeit mit der Master-Controller-Zeit zu synchronisieren, wird im Modus "DCM Master is Refclock" die Systemzeit vom Master selbst bereitgestellt. Daher ist kein DCM-Controller im Master erforderlich. Dies spart CPU-Zeit und reduziert die Komplexität in der Master-Implementierung.
Dieser Systemzeitwert (64-Bit) wird in jedem Zyklus-Frame mit dem Kommando BWR an alle Slaves im Register 0x910 verteilt. Der Zeitwert selbst wird von einer Callback-Funktion übernommen, die mit der API ecatDcmConfigure() registriert wird. Es ist wichtig, dass die gleiche Zeitbasis für die Terminierung der zyklischen JobTask verwendet wird und dass die Auflösung hoch genug ist.