基于Windows系统的EtherCAT主站软件

EtherCAT and Windows

今天,EtherCAT已经是世界上最受欢迎的实时以太网解决方案之一。
EtherCAT技术团队(ETG)负责确保开放EtherCAT技术给所有的潜在用户。同时,ETG是世界上会员人数最多的现场总线技术组织,在ETG的主页上展示有会员名单

在Windows系统中,仅需使用一块标准以太网卡即可运行EtherCAT主站协议栈。即Windows系统下配置EtherCAT主站不需调用特殊的接口网卡,可以直接运行在内置于主板中的板载以太网控制器或低成本的外部标准网卡上。

当然,Windows并不是一个实时操作系统(RTOS),这意味着用户难以确保实现EtherCAT周期时间具有的确定性、稳定性和实时快速等特性。虽然EtherCAT在Windows上能够实现大于10毫秒的更新频率,但即使这些相对较慢的周期时间也难以保证用户能顺利稳定地实现,也因此,通常情况下,用户无法在该系统内使用EtherCAT的分布式时钟(DC)功能。

一个提高Windows性能的思路是把Windows网络驱动程序替换为acontis提供的实时以太网驱动程序,通过替换驱动程序并使用acontis提供的优化驱动程序来消除Windows网络协议栈的影响。这个思路让软实时行为的实时性得到了很大改善,进而能够在系统中使用分布式时钟功能。但是,该方案仍然缺少确定性,因此,不建议在生产过程中使用。

另一个更好的思路是同时运行Windows和EC-Win。EC-Win 指的是一种使用acontis 提供的实时虚拟机管理程序的相关技术技术来同时在Windows 和 RTOS系统运行的硬实时解决方案,从而可以创建出速率快、确定性好、且基于硬实时行为的EtherCAT应用程序,其更新速率可以达到20kHz(50毫秒)。

接下来我们将为您介绍acontis在Windows的不同情况下实现EtherCAT主站协议的三种情形和结果。

没有实时性能的解决方案:Windows NDIS 滤波器驱动程序

网络驱动程序接口规范 (NDIS) 是网络驱动程序体系结构的规范,它允许传输协议(如 TCP/IP)与底层物理网络适配器进行通信。该规范由微软联合开发,并在Windows中使用。因此,为了在Windows中发送和接收EtherCAT帧,EC-Master包括一个NDIS链路层(emllNdis.dll),以利用作为Windows网络协议栈一部分的以太网驱动程序。

更新速率的体系结构> = 10 毫秒(不能有效保证):

具有软实时性能的解决方案:Acontis 以太网驱动程序

为了实现更快的更新速度,我们用acontis内核模块EcatDrv和优化的实时以太网驱动程序来取代标准的Windows网络驱动程序。EcatDrv 内核模块提供从用户空间直接访问物理网络控制器所需的权限。这样就可以发送和接收EtherCAT帧,而无需在两者之间使用任何Windows软件。

采用这种方案的结果是降低了 CPU 负载,减少了抖动,规避了其他的网络通信过程所产生的不利后果。

更新速率的体系结构:> = 1 毫秒(难以保证):

具有硬实时性能的解决方案:EC-Win

把RTOS系统和Windows系统结合起来将在Windows上获得最佳的EtherCAT性能。Acontis提供了一个可以同时运行在Windows和实时Linux(RT-Linux)上的基于Windows的实时管理程序。结合EC-Master,我们可以调用这套完整的解决方案来在Windows上实现EtherCAT。(EC-Win

借助 EC-Win,EtherCAT 主站协议栈关联的EtherCAT应用程序可在 RT-Linux 上运行,从而实现高达20 kHz(50 微秒)的更新速率的硬实时性能。此外,acontis 还提供了为 Linux系统优化的实时以太网驱动程序,进一步提高了 EtherCAT 的整体性能。通过acontis的实时管理程序,Windows和RT-Linux被安全地分开,从而为实时Linux应用程序(包括EtherCAT)提供保护,使其免受Windows系统故障的影响。虽然该方案存在有操作系统层面的拆分,对于Windows上的应用程序和实时Linux系统上的应用程序,用户仍然都可以在用户更为熟悉的Microsoft的Visual Studio软件环境下进行开发与调试。

实时性能以太网驱动程序(链路层)

  • Windows NDIS filter driver (emllNdis)
  • Intel Pro/1000 (emllI8254x)
  • Realtek Gigabit (emllRTL8169)
  • Beckhoff CCAT (emllCCAT)

More Information