Support for latest Intel Atom® x6000E Series (Elkhart Lake)

EC-Master V3.1.2 supports out-of-the-box the Intel Atom® x6000E Series (Elkhart Lake) processor. For the two on chip Ethernet MACs an dedicated high performance real-time Ethernet driver (Link Layer) is provided. The solution is available for the operating systems Linux, Windows and others.

For the implementation the module conga-SA7 from congatec was used.

Support for NXP i.MX RT1064 Crossover MCU with Arm® Cortex®-M7 Core

EC-Master V3.1.2 supports out-of-the-box the NXP i.MX RT1064 MCU together the development environment MCUXpresso SDK with FreeRTOS .

The MCUXpresso SDK is a comprehensive software enablement package designed to simplify and accelerate application development with Arm® Cortex®-M-based devices from NXP.

The on chip Ethernet MACs is controlled by a specific Ethernet driver (Link Layer) which realizes the fast and direct exchange of data between the master core and the Ethernet controller.

For the implementation the evaluation board MIMXRT1064-EVK: i.MX RT1064 from NXP was used.

Support for STMicroelectronics STM32MP1 microprocessor series with dual Arm® Cortex®-A7 on Linux

The STM32MP1 on chip Ethernet Controller is supported by the acontis Real-time Driver DW3504. This driver replaces the standard Linux Ethernet network adapter (MAC) driver for real-time EtherCAT usage. The driver runs in User Space and handles the MAC directly for high performance cyclic operation. The driver requires direct access to the MAC that is made possible by Kernel Module called atemsys which is available under GPL.

The reference implementation is based on the discovery kit STM32MP157D-DK1 from STMicroelectronics.

Interface for Programming Language Python

EC-Master V3.1.1 enables customers to program an EtherCAT application in the Python programming language.

Based on a wrapper library which provides the EC-Master APIs for object oriented access and the Python wrapper module, scripts can be developed and executed.

Similar to the other example applications the EcMasterDemoPython example app shows how to use the EtherCAT Master API. The python demos can also run in an interactive mode to, for example, set an output of the EtherCAT network. This is very useful to quickly test different behaviors of the EtherCAT network like with the new acontis EC-Simulator.

Support for Linux Foundation Zephyr Project RTOS

EC-Master V3.1.1 supports the Zephyr Project out-of-the-box. Zephyr is an open-source real-time operating system (RTOS) for connected resource-constrained devices, built to be secure and safe.

Assisted by the acontis high performance real-time Ethernet drivers (link layers) an update rate of 5 kHz can be guaranteed.

The EcMasterDemo example application includes the complete source code and a ready-to-run project file for the free integrated development environment CMake.

Support for VxWorks 7 SR650 64-Bit on ARM64 CPUs

EC-Master is now available out-of-the-box for systems running the VxWorks 7 SR650 on 64-bit versions of ARM (aarch64).

A specially developed real-time Ethernet driver (link layer) is also used on this architecture, which realizes the fast and direct exchange of data between the master core and the Ethernet controller.

The freely available evaluation version contains a sample application which, in conjunction with an EtherCAT network configuration (ENI) file, can set any EtherCAT network into the operational (OP) state. The complete source code of the sample application, along with detailed documentation, is also included.

Linux Device tree support: Out-of-the-box support for many customer specific boards

The Linux operating system provides drivers for most common Ethernet controllers and the related physical transceivers (PHY). The manufacturer specific PHY circuit is handled by a dedicated kernel driver.
To make use of this infrastructure, the acontis kernel module atemsys has to be included in the Linux device tree as an official driver for the Ethernet controller. As a result atemsys can interact with Linux drivers.
Depending on the hardware architecture, atemsys can grant access to the MDIO bus to the Linux drivers, or request MDIO operations by Linux drivers.
The PHY “OS Driver” functionality is configured exclusively through the Linux device tree and doesn’t required any additional configuration at the application level.

Refactored Example Applications

The structure and content of the EC-Master example applications have been fundamentally revised for the Master Version 3.1. The goals of the conversion were, among other things, to provide a better overview, to make the main function more understandable and to get rid of identical files in several folders.

This was achieved by implementing a dedicated main file (EcDemoMain.cpp) for each operating system. This file is now available specifically for Windows, Linux, QNX, VxWorks and all other operating systems that are supported out-of-the-box. This makes it possible to completely dispense with #ifdef instructions, which means that the individual files are significantly shorter and, overall, more understandable for the user. Furthermore, common files that are used by the various sample applications have been moved to the new folder (Examples\Common). This causes that these files are only available once, which simplifies maintenance.

The new structure thus makes it easier to get started with EC master programming and, thanks to the clear, modular structure, allows certain modules to be used easily in your own EtherCAT application.

Software-in-the-loop EtherCAT network simulation

Starting with EC-Master V3.1 the network simulation software EC-Simulator can be loaded as a link layer. This enables the simulation of a complete EtherCAT network including all slaves on the master system without any additional external hardware. The EtherCAT frames are transferred directly from the master core to the simulator, processed there and then returned to the master core.

The application may use various EC-Simulator functions, e.g., esGetProcessImageInputPtr() and esGetProcessImageOutputPtr() to access the process data in the simulator. Additional functions are available for implementing test cases for error scenarios, e.g., a slave can be switched off and on again by using the API esPowerSlave().

NDIS Filter Module on Windows

The Network Driver Interface Specification (NDIS) is the specification for a network driver architecture that allows transport protocols like TCP/IP to communicate with an underlying physical network adapter. For sending and receiving EtherCAT frames in Windows, EC-Master previously made use of the well-known Windows packet capture library, WinPcap. However, WinPcap was based on the NDIS 5.x driver model, and development there has ceased. The latest versions of Windows 10 do not support the old NDIS 5.x version anymore, so now EC-Master V3.1 includes a new NDIS Link Layer (emllNdis.dll) so it is possible for EC-Master to work without WinPcap on all Windows 10 versions.

Support for CMSIS on STMicroelectronics STM32H7

EC-Master is now out-of-the-box available for systems using the CMSIS hardware abstraction layer for Arm® Cortex® based processors. The CMSIS defines generic tool interfaces and enables consistent device support.

The reference implementation is based on the STM32H747I-DISCO kit from STMicroelectronics.

The link layer uses the driver library CMSIS-Driver Ethernet (Driver_ETH.h) and thus supports numerous controllers from different STM32 series.

For the widely used Integrated Development Environments STM32CubeIDE from STMicroelectronics and µVision MDK5 from ARM ready-to-run project files are supplied.

Support for QNX 7 64-Bit on ARM64 CPUs

EC-Master is now available out-of-the-box for systems running the QNX SDP 7.0 on 64-bit versions of ARM (aarch64). The reference implementation is based on the Zynq UltraScale+ MPSoC ZCU102 evaluation kit.

A specially developed real-time Ethernet driver (link layer) is also used on this architecture, which realizes the fast and direct exchange of data between the master core and the Ethernet controller.

On the one hand, this reduces the computing power required and, on the other hand, the jitter of the outgoing EtherCAT frames is significantly smaller. This means that cycle times below one millisecond are possible.