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).

内置性能测量功能

acontis EC-Master 软件已内置性能测量功能。 这可用于测量在应用程序的循环部分中调用的操作功能以及应用程序特定功能的执行时间。 此外,也可以测试在一个周期下与基准的偏差。 执行时间可以以整体统计数据(最小/平均/最大)的形式和所测量时间的直方图的形式记录。 在包含的示例应用程序中,可以使用命令行参数 (-perf) 激活性能测量。

支持在 ARM CPU 的 Xenomai 3操作系统

EC-Master V3.1.3支持在ARM平台上的实时开发框架 Xenomai v3.x (Cobalt)。 操作系统的硬实时性能保证了稳定的EtherCAT周期,并可选择使用分布式时钟 (DC)。在实施过程中使用了BeagleboneBlack Board,BeagleboneBlack Board搭载Texas Instruments Sitara™ ARM® Cortex®-A8 AM3358 MPU。

支持 Microchip LAN7430 PCIe 以太网控制器

Acontis的LAN743x以太网驱动程序支持Microchip的LAN743x PCIe以太网控制器。此LinkLayer可用于Linux、Windows和其他操作系统。

实现环境使用Microchip EVB-LAN7430 评估板进行。

支持Xilinx UltraScale+ R5内核上的FreeRTOS

EC-Master V3.1.3可以在一个ARM® Cortex-A53内核或 Xilinx UltraScale + MPSoC的一个ARM® Cortex-R5上运行。acontis GEM以太网驱动程序使用片上以太网 MAC运行EtherCAT协议。 在实时操作系统FreeRTOS的支持下,即使在R5 Core上运行4 kHz(250 us)的网络循环时间也是可能的。

支持最新的Intel Atom® x6000E系列(Elkhart Lake)

EC-Master V3.1.2支持 Intel Atom® x6000E Series (Elkhart Lake)

处理器。针于两个片上以太网 MAC,提供了专用的高性能实时以太网驱动程序(链路层)。 该解决方案适用于 Linux、Windows 等操作系统。

实现环境使用了 congatec 的conga-SA7 模块。

支持Arm® Cortex®-M7内核的NXP i.MX RT1064 Crossover MCU

EC-Master V3.1.2支持 NXP i.MX RT1064 MCU 以及带有FreeRTOS的开发环境 MCUXpresso SDK

是一个全面的软件支持包,旨在简化和加速恩智浦基于Arm® Cortex®-M的设备的应用开发。

片上以太网 MAC 由特定的以太网驱动程序(链路层)控制,该驱动程序实现了主内核和以太网控制器之间快速直接的数据交换。

实现环境使用NXP的评估板 MIMXRT1064-EVK: i.MX RT1064

支持双Arm® Cortex®-A7的STMicroelectronics STM32MP1微处理器系列的Linux操作系统

acontis实时驱动程序DW3504支持 STM32MP1 片上以太网控制器。此驱动程序取代了标准 Linux 以太网网络适配器 (MAC) 驱动程序,以供实时EtherCAT使用。 驱动程序在用户空间中运行并直接操作MAC以实现高性能循环操作。 该驱动程序需要直接访问MAC,这可以通过名为atemsys的内核模块实现,该内核模块在GPL下可用。

实现环境使用STMicroelectronics的发现套件STM32MP157D-DK1

Python编程语言接口

从EC-Master V3.1.1 开始支持用户使用 Python 编程语言开发EtherCAT应用程序。

基于提供的封装库,用户可以通过调用 EC-Master API 开发或执行面向对象的 Python 封装模块、脚本等相关应用。

和其他示例程序相同,EcMasterDemoPython 演示了如何调用 EtherCAT 主站 API。Python 例程也可以允许运行在 interactive 模式,例如设置一个 EtherCAT 网络输出等等。这个功能对于快速测试EtherCAT网络执行不同的动作非常有用。

支持 Linux 基金会的 RTOS Zephyr 操作系统

从 EC-Master V3.1.1 开始支持 ZephyrTM 实时操作系统。这是一个可以运行在资源受限的设备上的,并且具有信息安全和功能安全的一流RTOS操作系统。

在 acontis 高性能实时以太网驱动程序的帮助下,可以保证 5kHz 的刷新频率。

EcMasterDemo 包含完整的例程源码和可以在免费集成开发环境 CMake下直接运行的工程文件。

支持 ARM64 CPU 下的 VxWorks7 SR650 64-Bit

EC-Master 现在已经支持运行64-bit版本的 ARM(aarch64)上的 VxWorks 7 SR650 操作系统。

在该体系架构下同样可以使用定制开发的实时以太网驱动(link layer),用于主站内核与以太网控制器之间实现快速直接的数据交换。

免费提供的评估版本包含应用程序示例,示例与 EtherCAT 网络配置(ENI文件)一起,可以将任何 EtherCAT 网络切换到 OP 状态。评估版中还包括示例应用程序的完整源代码以及详细文档。

支持 Linux 设备树:货架产品可以支持大部分客户定制硬件板

Linux 操作系统提供大多数常见的以太网控制器和相关收发器(PHY)驱动。供应商特定的 PHY 电路通过专用的内核驱动程序处理。

为了能够利用这个基本架构,需要将 acontis 内核模块 atemsys 作为以太网控制器的官方驱动程序包含在 Linux 设备树中。这样 atemsys 就可以与 Linux 驱动程序交互。

根据具体硬件体系结构,atemsys 可以授予 Linux 驱动程序对 MDIO 总线的访问权,或者向 Linux 驱动程序发送 MDIO 操作请求。

PHY “OS-Driver” 功能是通过 Linux 设备树专门配置的,不需要在应用程序层面进行任何额外的配置。

重构示例程序

EC-Master示例程序的内容和结构在主站3.1版本上已基本修订。修订的目的是提供更合理的框架,使主站功能更易懂,并删除多个文件夹中相同的文件。

新版本中通过为每个操作系统实现一个专用的主文件(EcDemoMain.cpp)适于每个操作系统。该文件可以用于Windows、Linux、QNX、VxWorks和所有其他现有支持的操作系统。这样就可以完全不依赖执行ifdef成为可能,这也意味着单个文件内容大大缩短,总体上用户也更容易理解。此外,各种示例应用程序使用的共用文件已经移动到新文件夹(Examples\Common)下。因为这些文件只使用一次,简化了维护工作。

因此,新架构使得EC-Master程序设计更容易入门。并且模块结构清晰,某些模块可以在用户自己的EtherCAT应用程序中轻松使用。

EtherCAT软件在环网络仿真

从EC-Master V3.1开始,网络仿真软件EC-Simulator可以作为一个link layer加载。这样就可以模拟一个完整的EtherCAT网络,模拟包括主站上的所有从站设备,而不需要任何额外的外部硬件。EtherCAT数据帧直接从主站核心传输到模拟器上,处理完成后再返回主站核心。

应用程序可以使用各种EC-Simulator功能,例如:esGetProcessImageInputPtr() 和esGetProcessImageOutputPtr()函数访问从站模拟器中的过程数据。其他函数可以用于实现一些故障场景的测试用例。例如,通过使用esPowerSlave()可以实现关闭和再次打开服务器功能。

Windows上的NDIS过滤模块

网络驱动程序接口的规范(NDIS)是网络驱动程序体系架构的规范,它允许TCP/IP等传输协议与底层物理网卡通信。对于在Windows中发送和接收EtherCAT数据帧,EC-Master以前使用著名的Windows数据包捕捉库—WinPcap。然而WinPcap基于NDIS 5.x驱动程序模型,该模型已经停止开发。最新版本的Windows10不再支持就的NDIS 5.x。所以现在EC-Master V3.1包含了最新的NDIS LinkLayer(emllNdis.dll)。这样EC-Master在所有Windows10版本上都不需要安装WinPcap。

支持STMicroelectronics STM32H7的CMSIS

现在,EC-Master可以使用基于Arm® Cortex®处理器的CMSIS硬件抽象层。CMSIS定义通用的工具接口,并能够提供很好的兼容性。

实现方案基于STMicroelectronics STM32H747I-DISCO开发套件。

Link layer使用CMSIS驱动程序库的以太网驱动(Driver_ETH.h),因此可以支持STM32系列更多的控制器。

对于广泛使用的集成开发环境STMicroelectronics 的 STM32CubeIDE 和 ARM 的 µVision MDK5 ,提供了可立即运行的项目文件。

支持ARM64 CPUs的 QNX 7 64-Bit

现在,对于运行在64位ARM(aarch64)上的QNX SDP 7.0的系统,EC-Master可以提供完整的解决方案。该方案基于Zynq UltraScale+ MPSoC ZCU102评估开发套件。

该体系结构使用了一种专门开发的实时以太网驱动程序(link layer),实现了主站核心与以太网控制器之间的数据快速、直接的交换。

一方面,这降低了计算资源占用,另一方面,发送EtherCAT帧的抖动明显变小。这意味着,可以使周期循环时间远远低于1ms。