EtherCAT主站开发经验——基于X86或ARM
1、首先要确定您的觊皱筠桡CPU,NIC(网卡)的型号,以及操作系统。X 86 的话可以是Intel公司的,如常见的I5,I7;ARM的话可以是TI,Zynq等。网卡的话首选是英特尔公司的,再者是端昱公司的。而网卡驱动可以由KPA提供,也可以由操作系统提供。而操作系统的话,首选实时操作系统如INtime,QNX,RTX,VxWorks,WinCE ,Xenomai,Linux Posix rt-preempt,而Windows或普通的Linux的非实时系统是很难达到us级别的运行速度的。
2、整个方案的窑钕仇焱结构框架。KPA Master包含了RPC Server(远程调用服务),内核库(即C源代码),API内核(API函数库),网卡驱动,操作系统抽象层(OSAL)等。其中,RPC Server可由KPA Studio或其它带RPC Client的工具进行调用,可进行EtherCAT网络配置,诊断或记录等功能。API内核提供了应用程序接口,开发人员可以通过这些API函数编写自己的应用程序。OSAL为源代码,用户可根据自己的需要适应到不同的操作系统中。
3、下面我们来看看KPA的EtherCAT可实现什么样的功能。基础版本(ClassB)的功能包括PDO,CoE,FoE,S2S等。而标准版本(ClassA)在原来ClassB的基础上又增加了EoE,SoE,AoE,VoE和最主要的DC功能。一般情况下用得最多的就是标准版本。而Premium版本和拓展版本的功能是KPA特有的,如线缆冗余,热链接,帧记录等功能也都是非常实用的。
4、影响主站性能的几个主要因素:1、CPU:一个性能强大的CPU是提高EtherCAT主站性能的基础,只有CPU足够强大,后灯耷令惦续的性能提升还有可能性。2、NIC:EtherCAT要求网卡支持全双工通讯,理论上任何网卡都是可以运行EtherCAT的,但目前In tel的 I2xx 系列的表现是最好的。3、NIC Driver:网卡驱动对主站的影响主要体现在优化上,KPA的网卡驱动是专门针对EtherCAT优化的,可大大减小系统的抖动,让EtherCAT网络更稳定。4、RTOS:不同实时操作系统在实施EtherCAT主站时的表现也是不一样的,所以RTOS的选择也是相当重要的。5、中断控制器:中断控制的准确性和实时性对EtherCAT主站性能也有一定的影响。
5、下面我们来看一下各种操作系统下实施EtherCAT主站的测试参数。可见,INtime,RT preempt,QNX等实时操作系统的Cycle Times都可以达到100us以内,且抖动比较小,而Windows非实时操作系统的Cycle Times只能达到1ms的级别。为了体现EtherCAT的速度优势,实时操作系统的使用是必须的。
6、总结:基于X86或ARM开发EtherCAT主站相比用FPGA方案来说实现起来更加容易,但性能上不及FPGA的表现。