EtherCAT Master Raspberry Pi 4

EC-Master V3.1.4 now supports the BROADCOM® System-on-Chip (SoC) BCM2711 as found on the Raspberry Pi Compute Module 4 (CM4). This new acontis Real-time Ethernet Driver (Broadcom BcmGenet) currently offers support for Linux on ARM 32-bit and ARM 64-bit architectures. More information is available in our recent blog article.

Test Ethernet Network Communications (Hardware and Software)

The new EC-Master function emSelfTestScan() sends a burst of numerous frames and analyzes the slave connections. After deactivating the job task, frames will be sent as fast as the acontis Ethernet driver (Link Layer) can send them. The size of the frames increases and decreases between the defined limits. The API BadConnectionsDetect will analyze the slave connections based on the parameters that are specified.

New Simple Demo Application Available (EcMasterDemoMinimal)

The existing example applications (EcMasterDemo and EcMasterDemoDc) demonstrate numerous capabilities of the EC-Master stack and this can be overwhelming for new users new to EtherCAT and to EC-Master. Therefore, we decided to offer an additional example application that is a more simple demo to ease into the EC-Master code. The new simple demo focuses just on the necessary APIs and functions to startup the EC-Master EtherCAT Master along with the attached network and bring everything into Operational state (OP).

Built-in Performance Measurement

The acontis EC-Master software has a built-in performance measurement capability. This can be used to measure the execution times of the job functions that are called within the cyclic part of the application, as well as application specific functions. In addition, it is possible to measure the location of benchmarks within a cycle. Execution times can be recorded in form of overall statistics (min/avg/max) and in form of histograms of all measured times. In the included example application, performance measurements can be activated using the command line parameter (-perf).

Out-of-the box support for Xenomai 3 on ARM CPUs

EC-Master V3.1.3 supports out-of-the-box the real-time development framework Xenomai v3.x (Cobalt) on ARM systems. The hard real-time performance of the operating system guarantees a stable EtherCAT cycle with the optional usage of Distributed Clocks (DC). For the implementation a BeagleboneBlack Board equipped with the Texas Instruments Sitara™ ARM® Cortex®-A8 AM3358 MPU was used.

Support for Microchip LAN7430 PCIe Ethernet Controller

The acontis Ethernet Driver LAN743x supports Microchip´s LAN743x PCIe Ethernet Controller. The link layer is available for Linux, Windows and other operating systems.

For development and testing the Microchip evaluation board EVB-LAN7430 is used.

Support for FreeRTOS on Xilinx UltraScale+ on R5 Core

EC-Master V3.1.3 can either run on one ARM® Cortex-A53 Core or on one ARM® Cortex-R5 of the Xilinx UltraScale + MPSoC. The acontis Ethernet Driver GEM uses one of the on-chip Ethernet MACs to run the EtherCAT protocol. Powered by the Real-time operating system FreeRTOS, even on the R5 Core network update rates of 4 kHz (250 us cycle time) are possible.

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 out-of-the-box available 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 transfer any EtherCAT network into the 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 an 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 grants 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.