;
[0028]所述主处理模块通过FPGA与伺服从站实现邮箱通信。
[0029]在本发明所述的EtherCAT通信系统主站通信方法中,所述主站包括两个以太网收发器,且其中一个以太网收发器用于进行数据报文的收发、另一个以太网收发器用于实现主站环形冗余,所述方法包括:所述FPGA进行端口连接状态、环形冗余处理。
[0030]在本发明所述的EtherCAT通信系统主站通信方法中,所述方法包括:所述FPGA过滤非EtherCAT报文。
[0031]本发明所述的EtherCAT通信系统主站及通信方法,通过FPGA的硬件实现运动控制器与伺服从站的时钟同步,并据此实现周期性数据的收发,无需在操作系统的内核空增加模块,也不需要增加实时补丁,即可实现精确的主从站同步通信。
【附图说明】
[0032]图1是本发明EtherCAT通信系统实施例的示意图。
[0033]图2是图1中EtherCAT通信系统的模块示意图。
[0034]图3是图1中EtherCAT通信系统时钟同步的示意图。
【具体实施方式】
[0035]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0036]如图1-2所示,是本发明EtherCAT通信系统主站实施例的示意图,其可代替现有EtherCAT通信系统中的主站,以进行伺服从站控制。该EtherCAT通信系统主站包括主处理模块10、FPGA(可编程逻辑器件)20以及以太网收发器(Ethernet PHY)30,并通过以太网收发器30连接参考时钟从站和伺服从站。上述主处理模块10具体可采用ARM芯片并运行有操作系统(可包括操作系统用户空间和操作系统内核空间),该主处理模块10通过外设接口(Peripheral Interface)与FPGA 20连接。
[0037]在本实施例中,主处理模块10在操作系统用户空间实现应用层ECATAL(EtherCATApplicat1n Layer)功能,FPGA 20完成EtherCAT通信系统主站的数据链路层ECAT DLL(EtherCAT Data Link Layer)功能和物理层ECAT PL(EtherCAT Physical Layer)管理功能。一路以太网收发器30通过RJ45端口连接EtherCAT从站,进行数据报文的收发,另外一路以太网收发器30作为主站环形冗余使用。
[0038]主处理模块10包括运行在应用层的roo交互单元11,FPGA 20包括运行在数据链路层的F1DO收发单元22、分布时钟单元21以及运行在物理层的物理层控制单元24,上述F1DO交互单元11、PDO收发单元22、分布时钟单元21以及物理层控制单元24可结合相应的软件实现。
[0039]分布时钟单元21用于根据FPGA20的硬件时钟信号(而非主处理模块10的时钟信号)周期性地生成分布时钟报文,以实现运动控制器时钟和伺服从站的时钟同步。具体地,分布时钟单元21包括延时设置单元、时钟发送单元以及启动控制单元。如图3所示,延时设置单元在分布时钟单元21初始化过程中,测算主站到参考时钟从站SLO的传输延时和时间偏置,并将计算结果设置到参考时钟从站SLO;时钟发送单元定时将FPGA 20的数据链路层(DLL)时钟Clock M发送到各个伺服从站SLl,SL2,…,SLN(N为整数),利用EtherCAT分布时钟同步机制,确保所有伺服从站分布时钟(DC)与主站时钟严格同步上;启动控制单元在主站时钟与伺服从站时钟同步上以后,计算各伺服从站的同步信号启动时间和主站的中断(Interrupt)启动时间,并保证所有从站同步信号启动时间与主站中断启动时间在相位上对齐。
[0040]通过基于FPGA 20的硬件时钟的分布时钟单元21,运动控制器依据上述主站中断信号作的周期规划数据就能被所有伺服从站在同一周期同步执行,实现高速、高精高同步性能控制。
[0041]PDO交互单元11用于根据应用层任务调用生成PDO数据,包括I/O数据、控制数据、状态数据等,并处理来自伺服从站的反馈数据供应用层任务调用。PDO收发单元22基于分布时钟单元21的通信周期(即基于FPGA 20的硬件时钟)将来自HXKProcess Data Object)交互单元11的TOO数据封装为EtherCAT数据帧并将来自物理层控制单元24的EtherCAT数据帧解封后传送给PDO交互单元11;物理层控制单元24用于控制以太网收发器30实现EtherCAT数据帧的全双工收发以及分布时钟报文的发送。
[0042]EtherCAT主站通过上述分层技术,将EtherCA物理层中实时性要求最高的TOO收发功能放在FPGA 20中实现,利用FPGA 20本身的硬件实时来保证EtherCAT主站通信对实时性的苛刻要求。
[0043]另外,由于物理层管理功能(即物理层控制单元24)也在FPGA20中实现,省去了操作系统对以太网收发器30的驱动调度,从而消除了 EtherCAT数据报文收发的延时不确定性问题,去除了 EtherCAT数据报文发送周期的抖动,使EtherCAT通信系统获取稳定的分布时钟同步性能。由于实时性在FPGA 20中的数据链路层得到保障,而EtherCAT主站的应用层可以直接运行在主处理模块10的操作系统的用户空间,无需在内核空间增加模块或者实时补丁,在获取优越的硬实时的情况下,还能最大限度的减小操作系统的负荷,保证系统的可靠稳定运行。
[0044]上述主站的主处理模块10还包括文件解析单元13、站点扫描单元12、状态机管理单元15、配置单元14以及邮箱通信单元16,相应地,FPGA 20包括SD0( Service DataObject)收发单元23,该SDO收发单元23用于通过物理层控制单元24实现文件解析单元13、站点扫描单元12、状态机管理单元15、配置单元14以及邮箱通信单元16与各个伺服从站的数据交互,即接收文件解析单元13、站点扫描单元12、状态机管理单元15、配置单元14以及邮箱通信单元16的数据报文,然后转发至物理层控制单元24,同时接收物理层控制单元24返回的数据报文,通知应用层的相关单元读取。
[0045]具体地,文件解析单元13从EtherCAT从站的设备描述文件(XML文件)中解析出与配置相关的从站信息,如:供应商ID(Vendor ID)、产品代码(Product Code)以及过程数据PD0(Process Data Object)映射等。站点扫描单元12用于实现主站对连接到EtherCAT网络上的所有从站进行扫描,获取在线的从站数和各个从站的设备描述信息。状态机(FiniteState Machine,FSM)管理单元15用于完成各从站的应用层状态切换管理,包含四种状态的管理:初始化(INIT)、预操作(PREOP)、安全操作(SAFEOP)、操作状态(OP)。配置单元14用于在从站进入PREOP状态以后,根据用户想要的操作模式对EtherCAT从站进行相关配置,如通信周期、同步模式、DC周期、PDO映射等。邮箱通信单元16用于实现EtherCAT服务数据SDO(Service Data Ob ject)的读写,视主站规格,可部分或全部包含以下应用层协议:CoE(CANopen over EtherCAT)、SoE(Servo over EtherCAT)、FoE(File over EtherCAT)、EoE(Ethernet over EtherCAT)、AoE(ADS over EtherCAT)、VoE(Vendor over EtherCAT)。