EtherCAT主站协议栈性能测试:速度与效率的完美结合

描述

在使用EtherCAT技术作为现场总线时,性能往往起着决定性的作用。但是,性能的真正含义是什么呢?在大多数情况下,性能等同于速度。在EtherCAT网络中,这通常意味着需要快速的周期时间,大约1kHz或更快,以实现快速的控制周期。然而,高性能也可能意味着处理大量数据,或者从一个控制器上操作多个设备。

 

在EtherCAT网络中,这些性能考虑因素都归结为EtherCAT主站。因此,EtherCAT主站软件应满足以下所有要求:

  • 支持较短的周期时间,实现快速的设备更新率
  • 支持处理大量循环过程数据
  • 能够处理许多EtherCAT设备

 

此外,所有这些都必须在控制器上以尽可能低的负载来实现。对于高性能的EtherCAT网络部署,不应在功能、错误检查、诊断选项和出现问题时的可靠性方面妥协。基于此,本文将提出一种测量方法并给出结果,便于您对EC-Master协议栈的性能有更多了解。

测量方法

为了支持控制硬件的选择,或者为了能够对现有硬件在EtherCAT方面的可能性做出声明,可以利用现有的性能值进行新的测量。在应用的关键循环处理区域中,正确且精确地测量 EtherCAT协议栈建立的主站软件运行的所有处理路径的计算时间消耗,这一点非常重要。近年来,盟通科技合作伙伴acontis在具有不同操作系统和相同参考网络配置的不同系统上进行了大量的性能测量。此数据可用于粗略评估给定处理器上可实现的性能。

 

然而,最可靠的值当然是通过在运行所需操作系统和实际所需网络配置的真实硬件上进行实时测量而获得的。这些测量不需要任何特殊的专业知识或额外的设备,并且可以通过EC-Master中包含的示例应用程序进而非常容易地执行:EcMasterDemo和EcMasterDemoDc。在这些演示应用程序中,各个主作业函数的执行时间(最小值、最大值和平均值)以及周期时间被计算并保存到日志文件中(或打印到控制台)。

示例应用程序中的内置测量函数

在acontis的EtherCAT主站软件协议栈中,应用程序与循环部分的主站集成是通过同步调用某些功能来实现的,每个函数都完成一项特定的任务。这些函数是从高优先级任务中调用的,用于控制网络计时。在许多情况下,高优先级任务已存在于客户应用程序中,因此可以简单地从此现有任务中调用函数。这些作业是在应用程序的上下文中调用的,因此应用程序不会与其他任务进行交互。因此,通过测量这些函数的计算时间消耗,可以非常简单准确地确定主堆栈的计算时间消耗。

 

功能包括:

EtherCAT主站

在一个周期的开始,EC-Master的示例Demo首先会更新新接收的数据(输入)。这是通过调用Process Inputs作业函数并评估先前接收的EtherCAT帧来实现的。接下来,应用程序获取这些新接收的数据,并计算出应发送到网络的数据(输出)。当调用Write Outputs作业函数时,这些新的输出数据便被发送出去。借助Direct Memory Access (DMA),帧从内存传输到以太网控制器并通过物理网络发送,整个过程无需加载CPU。帧会经过网络上的所有EtherCAT设备,并在返回到主站时自动接收,无需中断。最后,调用"Master Administration"作业函数,执行主状态机和每个单独从设备上的状态机。

 

在初始启动过程中,所有从设备必须通过一系列连续步骤从INIT状态转移到OPERATIONAL状态。在常规操作中,需要状态机来处理非循环通信,例如通过邮箱协议CAN应用协议在EtherCAT (CoE)上下载参数。这些非循环邮箱通信需要另一个帧,其中包含针对从站的读取和写入命令。这个非循环帧是使用“发送非循环数据报/命令”作业函数发送的。主站能够限制这种非循环数据流量的方式非常重要,否则网络或CPU可能会过载。

EtherCAT主站

使用示例应用程序进行性能测量

EC-Master协议栈在随附的示例应用程序中具有内置的性能测量功能。可以使用带有示例应用程序(–perf) 的命令行参数来调用此性能度量计算。启用后,示例应用程序将测量在应用程序的循环部分内调用的作业函数的执行时间,以及循环任务本身消耗的总计算时间。示例应用程序使用包含的 API ecatPerfMeasStart() 和 ecatPerfMeasEnd() 进行高精度测量时间计算。

测量结果

以下测量结果是在具有不同循环时间的不同控制器上使用16、32和64个从站来执行测试的。EtherCAT主站(EC-Master)在CPU上的负载百分比是通过将工作函数的累积运行时间与总周期时间的比率来计算的。

 

Texas Instruments AM3359,ARM Cortex-A8,32位,600 MHz

EtherCAT主站

NXP i.MX 8,ARM Cortex-A72,64位,1000 Mhz

EtherCAT主站

Intel Atom,  D510, 64-Bit, 1600MHz

EtherCAT主站

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分