目录
前言:非实时、纯软件解决方案
1.1 概述
1.2 缺点
1.3 实时性思路
方案1:非实时性能的解决方案:etherCAT优化网卡驱动程序
方案2:EtherCAT内核调度模块EcatDrv
方案3:具有硬实时性能的解决方案:EC-Win
前言:非实时、纯软件解决方案
1.1 概述
在Windows系统中,仅需使用一块标准以太网卡即可运行EtherCAT主站协议栈。即Windows系统下配置EtherCAT主站不需调用特殊的接口网卡,可以直接运行在内置于主板中的板载以太网控制器或低成本的外部标准网卡上。
1.2 缺点
Windows并不是一个实时操作系统(RTOS),这意味着用户难以确保实现EtherCAT周期时间具有的确定性、稳定性和实时快速等特性。
EtherCAT在Windows上能够实现大于10毫秒的更新频率,但即使这些相对较慢的周期时间也难以保证用户能顺利稳定地实现,也因此,通常情况下,用户无法在该系统内使用EtherCAT的分布式时钟(DC)功能。
1.3 实时性思路
一个提高Windows性能的思路是把Windows网络驱动程序替换为acontis提供的实时以太网驱动程序,通过替换驱动程序并使用acontis提供的优化驱动程序来消除Windows网络协议栈的影响。这个思路让软实时行为的实时性得到了很大改善,进而能够在系统中使用分布式时钟功能。但是,该方案仍然缺少确定性,因此,不建议在生产过程中使用。
另一个更好的思路是同时运行Windows和EC-Win。EC-Win 指的是一种使用acontis 提供的实时虚拟机管理程序的相关技术技术来同时在Windows 和 RTOS系统运行的硬实时解决方案,从而可以创建出速率快、确定性好、且基于硬实时行为的EtherCAT应用程序,其更新速率可以达到20kHz(50毫秒)。
接下来我们将为您介绍acontis在Windows的不同情况下实现EtherCAT主站协议的三种情形和结果。
方案1:非实时性能的解决方案:etherCAT优化网卡驱动程序
网络驱动程序接口规范 (NDIS) 是网络驱动程序体系结构的规范,它允许传输协议(如 TCP/IP)与底层物理网络适配器进行通信。
etherCAT可以优化驱动程序,并称为NDIS规范的一部分,该规范由微软联合开发,并在Windows中使用。
为了在Windows中发送和接收EtherCAT帧,etherCAT主站包括一个NDIS链路层(emllNdis.dll),以利用作为Windows网络协议栈一部分的以太网驱动程序。
如下图所示:
在该方案中,只对以太网驱动程序进行了优化,以更加有效、更实时支持etherCAT协议。
但该方案,在应用程序和驱动程序传送数据时,还是必须通过Windows操作系统来进行调度。
更新速率的体系结构 > = 10 毫秒(不能有效保证)。
因此,该方案,只能算是驱动层面的软实时。
实时性能以太网驱动程序(链路层)
- Windows NDIS filter driver (emllNdis)
- Intel Pro/1000 (emllI8254x)
- Realtek Gigabit (emllRTL8169)
- Beckhoff CCAT (emllCCAT)
方案2:EtherCAT内核调度模块EcatDrv
为了实现更快的更新速度,acontis提供了内核模块EcatDrv和优化的实时以太网驱动程序来取代标准的Windows调度和网络驱动程序。
EcatDrv 内核模块提供从用户空间直接访问物理网络控制器所需的权限。这样就可以发送和接收EtherCAT帧,而无需在两者之间使用任何Windows软件。
采用这种方案的结果是降低了 CPU 负载,减少了抖动,规避了其他的网络通信过程所产生的不利后果。
该方案,EtherCAT应用程序直接通过RealTime Driver发送数据,可以绕过了Window内核调度程序。
该方案,windows和实时驱动程序使用使用相同的CPU core,因此,Windows非是使用程序的负载、Windows内核本身的调度程序,都会对EtherCAT实时数据造成影响。
因此,该方案,只能算是调度层面的软实时。
更新速率的体系结构:> = 1 毫秒(难以保证)
方案3:具有硬实时性能的解决方案:EC-Win
把Linux RTOS系统和Windows系统结合起来将在Windows上获得最佳的EtherCAT性能。
Acontis提供了一个可以同时运行在Windows和实时Linux(RT-Linux)上的基于Windows的实时管理程序。
结合EC-Master,我们可以调用这套完整的解决方案来在Windows上实现EtherCAT。
借助 EC-Win,EtherCAT 主站协议栈关联的EtherCAT应用程序可在 RT-Linux 上运行,从而实现高达20 kHz(50 微秒)的更新速率的硬实时性能。
此外,acontis 还提供了为 Linux系统优化的实时以太网驱动程序,进一步提高了 EtherCAT 的整体性能。
通过acontis的实时管理程序,Windows和RT-Linux被安全地分开,从而为实时Linux应用程序(包括EtherCAT)提供保护,使其免受Windows系统故障的影响。
虽然该方案存在有操作系统层面的拆分,对于Windows上的应用程序和实时Linux系统上的应用程序,用户仍然都可以在用户更为熟悉的Microsoft的Visual Studio软件环境下进行开发与调试。
由EC-WIN负责在Windows和Linux分配非实时或实时程序或任务。
更新速率的体系结构:> = 50微秒