CN104702474B - 一种基于FPGA的EtherCAT主站装置 - Google Patents
一种基于FPGA的EtherCAT主站装置 Download PDFInfo
- Publication number
- CN104702474B CN104702474B CN201510107162.XA CN201510107162A CN104702474B CN 104702474 B CN104702474 B CN 104702474B CN 201510107162 A CN201510107162 A CN 201510107162A CN 104702474 B CN104702474 B CN 104702474B
- Authority
- CN
- China
- Prior art keywords
- data
- data frame
- module
- ethercat
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种基于FPGA的EtherCAT主站装置,包括EtherCAT总线接口RJ45、网络隔离变压器、PHY芯片、FPGA模块和PCI/ARM扩展接口。FPGA模块通过PCI/ARM扩展接口接收到CPU传送给FPGA模块的数据,FPGA模块内部的EtherCAT协议驱动模块将CPU的指令数据进行封装和调度,组成数据帧发送给PHY芯片;PHY芯片将其转换为差分信号,发送在EtherCAT网络之中;各个从站收到EtherCAT数据帧后进行相应的处理后返回主站,在经过网络变压器和PHY芯片后,数据帧接收模块接收网络中的数据帧;在EtherCAT协议驱动模块中对数据帧进行解析提取有效数据供CPU来进行读取状态和反馈数据。本发明的装置可以实现与带有PCI接口或者ARM接口的CPU进行通信,具有平台兼容性好、稳定性高、效率高、实时性强等优势,对工业自动化控制具有重要的应用前景。
Description
技术领域
本发明属于工业以太网现场总线通信领域,具体涉及一种基于FPGA的EtherCAT主站装置。
背景技术
随着电子和通信技术的进步,工业自动化控制由传统的点对点的集中控制模式逐渐转变为基于网络化的现场总线通信控制模式。现场总线控制系统将工业现场的控制、监测等设备通过串行信号的方式集成在一个通信网络中,具有全数字、双向和串行多节点等优点。基于工业以太网的现场总线通信系统可以实现百兆以太网的高速、低抖动的控制,广泛应用于各种高速高精度的运动控制系统当中。
EtherCAT是一种基于工业以太网的现场总线通信协议,因其广泛的适用性、刷新周期短和同步性能好等优点,已在各类控制系统中得到了广泛的认可和应用。
专利文献CN201310344639.7公开了一种基于Linux的EtherCAT主/从站控制系统及方法,其EtherCAT主站采用带有网卡的Intel X86硬件平台,用于将相关控制指令发送给EtherCAT主站模块,然后编码为EtherCAT报文后由以太网口发送以实现数控系统的控制运算任务。
专利文献201310542835.5公开了一种基于EtherCAT网络的监控系统,其采用PC机作为主站,与多个从站串联组成一个网络,用于实现远距离情况下对所视环境的监控及执行机构的远程控制操作。
专利文献201310385168.4公开了一种EtherCAT现场总线的信息智能终端系统,包括EtherCAT主站和具有EtherCAT总线接口的信息智能终端,能直接采集、传递与监控车间生产信息。
现有的EtherCAT主站的实现方案大部分是采用倍福公司在Windows操作系统下基于PC机的解决方案,当然也有基于Linux操作系统和Android操作系统的嵌入式解决方案。其硬件方案绝大部分采用处理器CPU外扩网卡的芯片的通用体系架构,CPU用来分别处理EtherCAT协议的数据链路层和应用层。但是现有的这种EtherCAT主站实现方案利用CPU和网卡配合来处理数据帧的收发操作,降低了数据帧收发的稳定性,同时网卡单缓存的操作模式也降低了数据收发的效率,造成了应用于工业环境的稳定性问题和效率问题;其次,这种主站方案的EtherCAT主站不能广泛地兼容各种操作系统,移植难度较大,造成了平台资源的兼容性问题;最后,对于实时性要求严格的控制系统,利用软件中断确保实时并不能满足工业要求,造成了实时性的丢失,不利于高精度的实时控制系统。
发明内容
针对现有技术的以上缺陷或改进需求,本发明目的在于提出一种基于FPGA的EtherCAT主站实现装置,其通过利用FPGA并行处理和硬件实现特性,基于硬件实现EtherCAT协议,实现了高效率和高稳定性的EtherCAT协议处理,同时基于FPGA实现的通信装置还分别集成了PCI接口和ARM接口,可以方便地兼容不同的操作系统平台。
为实现上述目的,本发明采用的具体技术方案如下:
一种基于FPGA的EtherCAT主站实现方法及装置,其通过利用FPGA的硬件特性和并行处理特性处理EtherCAT协议的数据链路层和应用层,从而实现在FPGA上集成EtherCAT的通信功能,并灵活地接入不同种类的CPU操作系统中集成具有EtherCAT工业以太网现场总线通信接口的功能,其特征在于,
该装置包括PCI/ARM扩展接口、FPGA模块、PHY芯片、网络隔离变压器和EtherCAT总线接口RJ45,其中,
所述FPGA模块通过所述PCI/ARM扩展接口接收CPU传送给FPGA模块的数据,并通过其内部的EtherCAT协议驱动模块将CPU的指令数据按照EtherCAT协议进行封装和调度,组成EtherCAT数据帧在FPGA模块内通过数据帧发送模块发送给PHY芯片;所述PHY芯片将接收到的EtherCAT数据帧转换为差分信号,通过网络隔离变压器后,将其发送至EtherCAT网络之中并利用所述EtherCAT总线接口RJ45输入各从站;各个从站收到EtherCAT数据帧后进行相应的处理后返回主站,在经过网络隔离变压器和PHY芯片后,进入到FPGA模块中,在该FPGA模块中数据帧被解析,以供CPU进行读取状态和反馈数据。
作为本发明的改进,所述FPGA模块包括CPU接口选择操作模块、CPU应用程序操作接口、EtherCAT协议驱动模块、数据帧收发操作接口、数据帧收发及验算模块和PHY芯片收发数据接口;其中,所述CPU接口选择操作模块与CPU相连,为CPU操作CPU应用程序操作接口提供交互通道;所述CPU应用程序操作接口可同时供CPU和EtherCAT协议驱动模块进行读写访问,作为CPU与所述FPGA模块交互信息的操作接口;所述EtherCAT协议驱动模块为EtherCAT应用程序处理核心,用于响应CPU应用程序操作接口的指令及有效数据,完成对相应的指令数据按照EtherCAT标准协议进行调度、组帧和解帧的过程,实现数据帧与CPU应用程序操作接口的数据交互功能;所述数据帧收发操作接口用于接收来自EtherCAT协议驱动模块的组帧数据帧,同时也可以接收来自数据帧收发及验算模块从网络中接收到的数据帧;所述数据帧收发及验算模块将数据帧收发操作接口中的发送缓冲区有效数据按照网络通信协议依次发送出去,并同时计算本帧数据的CRC32验算值,接收数据帧在写入数据帧收发操作接口的同时计算CRC32验算值,并与帧尾CRC32进行比较来判定数据帧的有效性;所述PHY芯片收发数据接口与PHY芯片进行数据交互,完成数据流之间的交互。
作为本发明的改进,所述应用程序操作接口包括控制指令数据缓存区、状态反馈数据缓存区和过程数据缓存区,其中,所述控制指令数据缓存区是CPU往应用程序接口写入的指令配置数据,包括控制数据和中断设置指令;所述状态反馈数据缓存区是CPU读取应用程序接口状态的数据缓存区,状态数据缓存区反映的是EtherCAT网络对CPU写入指令的命令状态响应情况,包括状态机信息、程序诊断信息和邮箱通信命令的反馈,同时所述状态反馈数据缓存区还包括丢包数反馈、指令错误反馈和诊断信息反馈等总线状态的反馈;所述过程数据缓存区包括各个从站的实时指令数据和实时反馈数据,其缓存区的更新周期由CPU设定的中断周期来确定。
作为本发明的改进,所述控制数据用于完成非周期性的状态机切换命令和邮箱通信服务命令的操作接口,所述中断设置指令可以完成CPU对所述FPGA模块内的中断进行设置和使能控制。
作为本发明的改进,所述数据帧收发操作接口包括配置数据帧发送缓存区、数据帧接收反馈缓存区和收发的数据帧缓存区,其中,配置数据帧发送缓存区包括发送缓冲区使能控制寄存器、第一发送缓冲区发送长度设置寄存器、第二发送缓冲区2发送长度设置寄存器、定时发送周期设置寄存器、第一页缓冲区重发次数设置寄存器和硬件中断控制寄存器;所述数据帧接收反馈缓存区包括接收到有效数据帧更新寄存器、一个周期内接收到的数据帧数寄存器、CRC32有效标志位寄存器、数据帧中的CRC32中的低16位寄存器、计算所得的CRC32中的低16位状态寄存器;所述收发的数据帧缓存区包括第一发送缓存区、第二发送缓存区、第一接收缓存区和第二接收缓存区,其分别对应周期性发送缓存区、非周期性发送缓存区、周期性接收缓存区和非周期性接收缓存区。
作为本发明的改进,所述EtherCAT协议驱动模块包括反馈数据帧处理模块、周期性指令处理模块、应用程序命令响应模块、应用程序命令处理模块、生成数据帧命令模块和控制收发数据帧寄存器启动数据帧发送模块,其中,所述反馈数据帧处理模块接收到CPU配置FPGA产生的中断周期信号后,首先进行上一周期返回周期性反馈数据的处理,然后根据接收寄存器的接收到的帧数来判断是否有非周期性数据帧,如果有则处理相应的非周期性反馈数据;当所述反馈数据帧处理模块处理完反馈数据传递给应用程序操作接口时,利用FPGA并行处理的特性同时触发所述周期性指令处理模块和所述应用程序命令响应模块,所述周期性指令处理模块从所述应用程序操作接口中的所述过程数据缓存区中取出有效数据并按照EtherCAT帧标准生产周期性过程数据帧,同时所述应用程序命令响应模块从应用程序操作接口中的缓存数据中检查有无指令操作,如果有则进行响应模块的触发处理,进而组成本周期的非周期性数据帧,如无则本周期内不发送周期性数据帧;所述生成数据帧命令模块接收到带发送的数据帧后,触发所述控制收发数据帧寄存器启动数据帧发送模块,将指令数据帧发送出去。
作为本发明的改进,所述数据帧收发及验算块包括中断脉冲产生序列模块、发送时刻脉冲产生序列模块、发送数据流控制模块、数据帧发送及硬件CRC32计算模块、接收数据流控制模块和数据帧接收和硬件CRC32验算模块,其中,所述中断脉冲产生序列模块根据中断设置周期和中断使能控制产生等时中断信号,所述发送时刻脉冲产生序列模块根据产生的等时中断信号产生数据帧发送时刻信号,所述发送数据流控制模块根据数据帧发送时刻信号以及发送配置寄存器,从发送缓存区里面读取相应的数据发送给所述数据帧发送及硬件CRC32计算模块,所述数据帧发送及硬件CRC32计算模块将数据帧转换为数据流发送给PHY芯片并同时计算CRC32发送,所述数据帧接收及硬件CRC32验算模块接收来自PHY芯片的数据流,同时计算CRC32,并与帧尾CRC32值进行比较验证接收到数据帧的有效性,所述接收数据流控制模块接收到数据帧后将数据帧填入接收缓存区中,同时写入相应的状态的寄存器。
本发明中,CPU在初始化阶段通过PCI/ARM接口对FPGA模块进行通信参数的设置使硬件定时产生中断,中断产生给CPU时,CPU根据自身控制任务的调度向FPGA模块内的应用程序接口写入相应的控制指令及数据。EtherCAT协议驱动模块不断循环扫描应用程序控制指令,当应用程序操作接口中写入CPU的指令和数据时,EtherCAT协议驱动模块开始根据相应的指令进行不同的操作,其作用可以完成EtherCAT协议的状态机维护、参数配置、非周期邮箱数据处理和周期性过程数据的处理。对于周期性过程数据,EtherCAT协议驱动模块会在每个中断周期将应用程序操作接口内的过程数据进行组帧,完成数据帧的定时周期性发送;对于状态机维护、参数配置和非周期性数据,EtherCAT协议驱动模块在每个中断周期检测有无子此类数据,如果CPU写入了相应的指令,则进行对相应的指令进行操作,按照EtherCAT协议标准组成标准非周期数据帧,在一个中断周期内于周期性数据帧之后进行发送非周期数据帧,若无此类数据,则不进行非周期数据的发送。
在EtherCAT协议驱动模块对周期性数据和有需要发送的非周期性数据进行组帧后,将数据帧写入数据帧收发操作接口并同时写入发送数据帧的配置参数。数据帧收发及验算模块接收到数据帧收发操作接口的数据帧和发送配置时,启动发送,将数据帧数据根据PHY芯片接收定义依次按顺序发送给PHY芯片收发数据接口,并同时利用FPGA并行操作的特性同时计算当前数据帧的CRC32校验,PHY芯片收到FPGA模块发送的信号后转换为差分信号,经过网络隔离变压器后变为EtherCAT网络中的信号,通过EtherCAT总线接口到接入EtherCAT网络中,实现与各个从站的通信交互功能。
在一个中断周期内,定时发送一帧周期性数据帧,如有需要则会发送另一帧非周期性数据帧,根据EtherCAT从站“飞读飞写”的协议操作,同时根据主站周期性和非周期性数据的调度策略可以判定,EtherCAT主站返回的第一帧是周期性数据帧,若有第二帧则为非周期性数据帧。EtherCAT总线接口接收到网络中的数据经过网络隔离变压器和PHY芯片后,转换为数据流至PHY芯片收发数据接口,数据帧收发及验算模块利用FPGA并行操作特性,将接收到的数据帧依次存入数据帧收发操作接口,同时计算本帧数据的CRC32校验并给出响应的计算结果指示寄存器,如果与接收到的数据帧尾CRC32相同,则说明有效;反之,则该帧存在丢包的状况。
当硬件中断的下一个中断周期到来之时,EtherCAT协议驱动模块首先会检测上个周期返回的数据帧,验算其CRC32、检验其有无数据帧内有无正确响应以及提取出相应的有效数据至CPU应用程序操作接口,当CPU收到上一帧数据反馈时,可以充分了解到EtherCAT网络的状态,然后再根据CPU相应的控制任务的需求再次对总线进行控制,从而依次往复完成数据的交互及控制功能。
同时FPGA模块中还包括CPU接口选择操作模块,内部可以集成常用的PCI接口和ARM接口,其余接口种类可以根据需要再FPGA内部进行扩展。用户可以根据需要扩展不同种类的CPU接口选择模块,从而在不改变原有平台的基础上可以方便地在外扩FPGA的方式来实现EtherCAT主站通信装置。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
(1)本发明利用FPGA的硬件特性处理EtherCAT协议的数据链路层,提高了数据链路通信的稳定性和快速响应性;
(2)本发明利用FPGA的并行操作特性可以多流水线处理数据,提高了协议处理的效率;
(3)本发明的FPGA模块集成有不同种类的CPU接口,能适用于不同的操作系统平台,提高了EtherCAT主站通信装置的兼容性;
(4)本发明利用FPGA产生硬件中断,提高了主站通信控制装置的实时性。
附图说明
图1是按照本发明实施例的装置的总体结构示意图;
图2是按照本发明实施例的装置中FPGA模块内部的结构示意图;
图3是按照本发明实施例的装置中应用程序操作接口示意图;
图4是按照本发明实施例的数据帧收发操作接口示意图;
图5是按照本发明实施例的EtherCAT协议驱动模块执行流程示意图;
图6是按照本发明实施例的周期性数据和非周期性数据调度策略示意图;
图7是按照本发明实施例的方法中数据帧收发及验算模块块执行流程示意图;
图8是按照本发明实施例的装置中的主站通信装置。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提出了一种基于FPGA的EtherCAT主站实现方法及装置,在充分利用FPGA硬件特性和并行操作特性的基础之上,实现了在不同操作系统、不同硬件平台可以方便集成EtherCAT工业以太网现场总线主站通信装置的功能。
图1是本发明实施例的总体结构示意图,该装置包括PCI/ARM接口1、FPGA模块2、PHY芯片3、网络隔离变压器4和EtherCAT总线RJ45接口5。其中,所述PCI/ARM接口1可以根据所接CPU的种类进行选择相应的接口模块,所兼容的接口包括PCI接口和ARM外扩总线接口,用户也可以根据自身需要再不改变其他模块的基础之上增加相应的接口模块。所述FPGA模块2用来处理EtherCAT协议的应用层和数据链路层;所述PHY芯片3用来对EtherCAT网络上的差分信号和板级信号进行相应的转换;所述网络隔离变压器4用来隔离网络上信号对板级信号的影响;所述EtherCAT总线RJ45接口5用来实现将通信装置接入EtherCAT网络中,其中一个RJ45接口为EtherCAT总线接口,另一个接口为可选的EtherCAT总线接口。
图2是本发明实施例装置中的FPGA模块内部的结构示意图,该模块内部包括CPU接口选择操作模块21、CPU应用程序操作接口22、EtherCAT协议驱动模块23、数据帧收发操作接口24、数据帧收发及验算模块25和PHY芯片收发数据接口(26)。其中,所述CPU接口选择操作模块21与CPU相连,为CPU操作CPU应用程序操作接口22提供高速的交互通道;所述CPU应用程序操作接口(22)可以同时供CPU和EtherCAT协议驱动模块23进行读写访问,作为CPU与所述FPGA模块2交互信息的操作接口;所述EtherCAT协议驱动模块23为EtherCAT应用程序处理核心,其作用是响应CPU应用程序操作接口22的指令及有效数据,完成对相应的指令数据按照EtherCAT标准协议进行调度、组帧和解帧的过程,实现数据帧与CPU应用程序操作接口22的数据交互功能;所述数据帧收发操作接口24可以接收来自EtherCAT协议驱动模块23的组帧数据帧,同时也可以接收来自数据帧收发及验算模块25从网络中接收到的数据帧;所述数据帧收发及验算模块25将数据帧收发操作接口24中的发送缓冲区有效数据按照网络通信协议依次发送出去,并同时计算本帧数据的CRC32验算值,接收数据帧在同时写入数据帧收发操作接口24的同时计算CRC32验算值,并与帧尾CRC32进行比较来判定数据帧的有效性;所述PHY芯片收发数据接口26与PHY芯片3进行数据交互,完成数据流之间的交互。
图3是本发明实施例的应用程序操作接口示意图,该接口包括三个部分,分别为控制指令数据缓存区221、状态反馈数据缓存区222和过程数据缓存区223。其中,所述控制指令数据缓存区221是CPU往应用程序接口写入的指令配置数据,包括控制数据和中断设置指令,控制数据可以完成非周期性的状态机切换命令和邮箱通信服务命令的操作接口等非实时性功能,中断设置指令可以完成CPU对所述FPGA模块2内的中断进行设置和使能控制;所述状态反馈数据缓存区222是CPU读取应用程序接口状态的数据缓存区,状态数据缓存区反映的是EtherCAT网络对CPU写入指令的命令状态响应情况,包括状态机信息、程序诊断信息和邮箱通信命令的反馈,同时所述状态反馈数据缓存区222还包括丢包数反馈、指令错误反馈和诊断信息反馈等总线状态的反馈;所述过程数据缓存区223包括各个从站的实时指令数据和实时反馈数据,其缓存区的更新周期由CPU设定的中断周期来确定。
图4是本发明实施例的数据帧收发操作接口示意图,该接口包括三个部分,分别为配置数据帧发送缓存区241、数据帧接收反馈缓存区242和收发的数据帧缓存区243。其中,所述的配置数据帧发送缓存区241包括发送缓冲区使能控制、发送缓冲区1发送长度设置、发送缓冲区2发送长度设置、定时发送周期设置、缓冲区1重发次数设置和硬件中断控制等控制寄存器;所述数据帧接收反馈缓存区242包括接收到有效数据帧更新、一个周期内接收到的数据帧数、CRC32有效标志位、数据帧中的CRC32中的低16位、计算所得的CRC32中的低16位等状态寄存器;所述收发的数据帧缓存区243包括发送缓存区1、发送缓存区2、接收缓存区1和接收缓存区2,其分别对应周期性发送缓存区、非周期性发送缓存区、周期性接收缓存区和非周期性接收缓存区。
图5是本发明实施例的EtherCAT协议驱动模块执行流程示意图,其中包括反馈数据帧处理模块231、周期性指令处理模块232、应用程序命令响应模块233、应用程序命令处理模块234、生成数据帧命令模块235和控制收发数据帧寄存器启动数据帧发送模块236。所述反馈数据帧处理模块231接收到CPU配置FPGA产生的中断周期信号后,首先进行上一周期返回周期性反馈数据的处理,然后根据接收寄存器的接收到的帧数来判断是否有非周期性数据帧,如果有则处理相应的非周期性反馈数据,若无则进行下一个模块的操作;当所述反馈数据帧处理模块231处理完反馈数据传递给应用程序操作接口22时,利用FPGA并行处理的特性同时触发所述周期性指令处理模块232和所述应用程序命令响应模块233,所述周期性指令处理模块232从所述应用程序操作接口22中的所述过程数据缓存区223中取出有效数据并按照EtherCAT帧标准生产周期性过程数据帧,同时所述应用程序命令响应模块233从应用程序操作接口22中的缓存数据中检查有无指令操作,如果有则进行响应模块的触发处理,进而组成本周期的非周期性数据帧,如无则本周期内不发送周期性数据帧;所述生成数据帧命令模块235接收到带发送的数据帧后,触发所述控制收发数据帧寄存器启动数据帧发送模块236,将指令数据帧发送出去。
图6是本发明实施例的周期性数据和非周期性数据调度策略示意图。利用FPGA的硬件特性可以产生非常严格的等时中断脉冲,当中断信号产生时,所述FPGA模块2会分别产生周期性数据,如所述应用程序操作接口22有CPU指令,则另外产生非周期数据,并填入所述数据帧收发操作接口24,在配置寄存器的配置发送时刻下,如存在非周期性数据帧则在同一个周期内分别发送周期性数据帧和非周期性数据帧,如不存在则只发送非周期性数据帧。
图7是本发明实施例的数据帧收发及验算模块块执行流程示意图,包括中断脉冲产生序列模块251、发送时刻脉冲产生序列模块252、发送数据流控制模块253、数据帧发送及硬件CRC32计算模块254、接收数据流控制模块255和数据帧接收和硬件CRC32验算模块256。其中,所述中断脉冲产生序列模块251根据中断设置周期和中断使能控制产生等时中断信号,所述发送时刻脉冲产生序列模块252根据产生的等时中断信号产生数据帧发送时刻信号,所述发送数据流控制模块253根据数据帧发送时刻信号以及发送配置寄存器,从发送缓存区里面读取相应的数据发送给所述数据帧发送及硬件CRC32计算模块254,所述数据帧发送及硬件CRC32计算模块254将数据帧转换为数据流发送给PHY芯片并同时计算CRC32发送。所述数据帧接收及硬件CRC32验算模块256接收来自PHY芯片的数据流,同时计算CRC32,并与帧尾CRC32值进行比较验证接收到数据帧的有效性,所述接收数据流控制模块255接收到数据帧后将数据帧填入接收缓存区中,同时写入相应的状态的寄存器。
图8是本发明实施例的主站通信装置。所述FPGA模块2与JTAG接口27相连,用于对FPGA的调试;所述FPGA模块2与实施例中的ARM处理器0通过ARM扩展接口1相连,本发明实施例中所述PCI/ARM扩展接口1为ARM扩展总线GPMC协议。所述ARM处理器0与SD卡01相连,通过PHY芯片03与所述Ethernet以太网接口02相连,与USB接口04相连,通过RS232驱动芯片06与RS232接口05相连,通过VGA驱动芯片07与VGA接口08相连,构成ARM处理器的外围接口。本发明实施例中的处理器ARM处理器0通过PCI/ARM扩展接口1与FPGA模块2相连,可以方便灵活地在ARM处理器0外围集成EtherCAT工业以太网的现场总线接口,并且同时用FPGA的特性确保EtherCAT协议实现的性能。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于FPGA的EtherCAT主站装置,其通过利用FPGA的硬件特性和并行处理特性处理EtherCAT协议的数据链路层和应用层,从而实现在FPGA上集成EtherCAT的通信功能,并灵活地接入不同种类的CPU操作系统中集成具有EtherCAT工业以太网现场总线通信接口的功能,其特征在于,
该装置包括PCI/ARM扩展接口(1)、FPGA模块(2)、PHY芯片(3)、网络隔离变压器(4)和EtherCAT总线接口RJ45(5),其中,
所述FPGA模块(2)通过所述PCI/ARM扩展接口(1)接收CPU传送给FPGA模块的数据,并通过其内部的EtherCAT协议驱动模块将CPU的指令数据按照EtherCAT协议进行封装和调度,组成EtherCAT数据帧在FPGA模块内通过数据帧发送模块发送给PHY芯片(3);所述PHY芯片(3)将接收到的EtherCAT数据帧转换为差分信号,通过网络隔离变压器(4)后,将其发送至EtherCAT网络之中并利用所述EtherCAT总线接口RJ45(5)输入各从站;各个从站收到EtherCAT数据帧后进行相应的处理后返回主站,在经过网络隔离变压器(4)和PHY芯片(3)后,进入到FPGA模块(2)中,在该FPGA模块(2)中数据帧被解析,以供CPU进行读取状态和反馈数据;
其中,所述EtherCAT协议驱动模块(23)包括反馈数据帧处理模块(231)、周期性指令处理模块(232)、应用程序命令响应模块(233)、应用程序命令处理模块(234)、生成数据帧命令模块(235)和控制收发数据帧寄存器启动数据帧发送模块(236),其中,所述反馈数据帧处理模块(231)接收到CPU配置FPGA产生的中断周期信号后,首先进行上一周期返回周期性反馈数据的处理,然后根据接收寄存器的接收到的帧数来判断是否有非周期性数据帧,如果有则处理相应的非周期性反馈数据;当所述反馈数据帧处理模块(231)处理完反馈数据传递给应用程序操作接口(22)时,利用FPGA并行处理的特性同时触发所述周期性指令处理模块(232)和所述应用程序命令响应模块(233),所述周期性指令处理模块(232)从所述应用程序操作接口(22)中的过程数据缓存区(223)中取出有效数据并按照EtherCAT帧标准生产周期性过程数据帧,同时所述应用程序命令响应模块(233)从应用程序操作接口(22)中的缓存数据中检查有无指令操作,如果有则进行响应模块的触发处理,进而组成本周期的非周期性数据帧,如无则本周期内不发送周期性数据帧;所述生成数据帧命令模块(235)接收到带发送的数据帧后,触发所述控制收发数据帧寄存器启动数据帧发送模块(236),将指令数据帧发送出去。
2.根据权利要求1所述的一种基于FPGA的EtherCAT主站装置,其中,所述FPGA模块包括CPU接口选择操作模块(21)、CPU应用程序操作接口(22)、EtherCAT协议驱动模块(23)、数据帧收发操作接口(24)、数据帧收发及验算模块(25)和PHY芯片收发数据接口(26);其中,所述CPU接口选择操作模块(21)与CPU相连,为CPU操作所述CPU应用程序操作接口(22)提供交互通道;所述CPU应用程序操作接口(22)可同时供CPU和EtherCAT协议驱动模块(23)进行读写访问,作为CPU与所述FPGA模块(2)交互信息的操作接口;所述EtherCAT协议驱动模块(23)为EtherCAT应用程序处理核心,用于响应CPU应用程序操作接口(22)的指令及有效数据,完成对相应的指令数据按照EtherCAT标准协议进行调度、组帧和解帧的过程,实现数据帧与CPU应用程序操作接口(22)的数据交互功能;所述数据帧收发操作接口(24)用于接收来自EtherCAT协议驱动模块(23)的组帧数据帧,同时也可以接收来自数据帧收发及验算模块(25)从网络中接收到的数据帧;所述数据帧收发及验算模块(25)将数据帧收发操作接口(24)中的发送缓冲区有效数据按照网络通信协议依次发送出去,并同时计算本帧数据的CRC32验算值,接收数据帧在写入数据帧收发操作接口(24)的同时计算CRC32验算值,并与帧尾CRC32进行比较来判定数据帧的有效性;所述PHY芯片收发数据接口(26)与PHY芯片(3)进行数据交互,完成数据流之间的交互。
3.根据权利要求2所述的一种基于FPGA的EtherCAT主站装置,其中,所述应用程序操作接口(22)包括控制指令数据缓存区(221)、状态反馈数据缓存区(222)和过程数据缓存区(223),其中,所述控制指令数据缓存区(221)是CPU往应用程序接口写入的指令配置数据,包括控制数据和中断设置指令;所述状态反馈数据缓存区(222)是CPU读取应用程序接口状态的数据缓存区,状态数据缓存区反映的是EtherCAT网络对CPU写入指令的命令状态响应情况,包括状态机信息、程序诊断信息和邮箱通信命令的反馈,同时所述状态反馈数据缓存区(222)还包括丢包数反馈、指令错误反馈和诊断信息反馈等总线状态的反馈;所述过程数据缓存区(223)包括各个从站的实时指令数据和实时反馈数据,其缓存区的更新周期由CPU设定的中断周期来确定。
4.根据权利要求3所述的一种基于FPGA的EtherCAT主站装置,其中,所述控制数据用于完成非周期性的状态机切换和邮箱通信接口这些非实时功能,所述中断设置指令可以完成CPU对所述FPGA模块(2)内的中断进行设置和使能控制。
5.根据权利要求2-4中任一项所述的一种基于FPGA的EtherCAT主站装置,其中,所述数据帧收发操作接口(24)包括配置数据帧发送缓存区(241)、数据帧接收反馈缓存区(242)和收发的数据帧缓存区(243),其中,配置数据帧发送缓存区(241)包括发送缓冲区使能控制寄存器、第一发送缓冲区发送长度设置寄存器、第二发送缓冲区发送长度设置寄存器、定时发送周期设置寄存器、第一页缓冲区重发次数设置寄存器和硬件中断控制寄存器;所述数据帧接收反馈缓存区(242)包括接收到有效数据帧更新寄存器、一个周期内接收到的数据帧数寄存器、CRC32有效标志位寄存器、数据帧中的CRC32中的低16位寄存器、计算所得的CRC32中的低16位状态寄存器;所述收发的数据帧缓存区(243)包括第一发送缓存区、第二发送缓存区、第一接收缓存区和第二接收缓存区,其分别对应周期性发送缓存区、非周期性发送缓存区、周期性接收缓存区和非周期性接收缓存区。
6.根据权利要求4中任一项所述的一种基于FPGA的EtherCAT主站装置,其中,所述数据帧收发及验算模块(25)包括中断脉冲产生序列模块(251)、发送时刻脉冲产生序列模块(252)、发送数据流控制模块(253)、数据帧发送及硬件CRC32计算模块(254)、接收数据流控制模块(255)和数据帧接收和硬件CRC32验算模块(256),其中,所述中断脉冲产生序列模块(251)根据中断设置周期和中断使能控制产生等时中断信号,所述发送时刻脉冲产生序列模块(252)根据产生的等时中断信号产生数据帧发送时刻信号,所述发送数据流控制模块(253)根据数据帧发送时刻信号以及发送配置寄存器,从发送缓存区里面读取相应的数据发送给所述数据帧发送及硬件CRC32计算模块(254),所述数据帧发送及硬件CRC32计算模块(254)将数据帧转换为数据流发送给PHY芯片并同时计算CRC32发送,所述数据帧接收及硬件CRC32验算模块(256)接收来自PHY芯片的数据流,同时计算CRC32,并与帧尾CRC32值进行比较验证接收到数据帧的有效性,所述接收数据流控制模块(255)接收到数据帧后将数据帧填入接收缓存区中,同时写入相应的状态的寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510107162.XA CN104702474B (zh) | 2015-03-11 | 2015-03-11 | 一种基于FPGA的EtherCAT主站装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510107162.XA CN104702474B (zh) | 2015-03-11 | 2015-03-11 | 一种基于FPGA的EtherCAT主站装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104702474A CN104702474A (zh) | 2015-06-10 |
CN104702474B true CN104702474B (zh) | 2018-02-23 |
Family
ID=53349264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510107162.XA Active CN104702474B (zh) | 2015-03-11 | 2015-03-11 | 一种基于FPGA的EtherCAT主站装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104702474B (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105334806B (zh) * | 2015-11-21 | 2017-10-10 | 中国船舶重工集团公司第七一六研究所 | 基于EtherCAT总线的工业机器人运动控制方法和系统 |
CN106814657B (zh) * | 2015-12-02 | 2019-02-15 | 沈阳高精数控智能技术股份有限公司 | 基于ARM的嵌入式实时EtherCAT主站构建方法 |
CN105656592B (zh) * | 2015-12-31 | 2018-09-21 | 深圳市汇川技术股份有限公司 | EtherCAT通信系统主站及通信方法 |
CN106059877B (zh) * | 2016-07-18 | 2022-03-15 | 中电智能科技有限公司 | 一种基于SPARC架构CPU的EtherCAT主站模块 |
CN106254195A (zh) * | 2016-08-18 | 2016-12-21 | 深圳市德堡数控技术有限公司 | EtherCAT分布式I/O板卡及网络设备 |
CN108234225B (zh) * | 2016-12-13 | 2020-09-22 | 北京金风科创风电设备有限公司 | 风力发电机组主从站间通信质量的监测方法和装置 |
CN106682300A (zh) * | 2016-12-22 | 2017-05-17 | 中国西电电气股份有限公司 | 一种数字信号发生装置及其方法 |
TW202410729A (zh) * | 2017-02-21 | 2024-03-01 | 美商松下電器(美國)知識產權公司 | 通訊裝置及積體電路 |
WO2018170774A1 (zh) * | 2017-03-22 | 2018-09-27 | 深圳配天智能技术研究院有限公司 | RTEX-EtherCAT协议转换装置及工业控制系统 |
JP2018160851A (ja) * | 2017-03-23 | 2018-10-11 | 株式会社オートネットワーク技術研究所 | 車載通信装置、コンピュータプログラム及びメッセージ判定方法 |
CN108809862A (zh) * | 2017-05-05 | 2018-11-13 | 中国航空无线电电子研究所 | 一种千兆航空全双工交换式以太网的端系统 |
CN107402534B (zh) * | 2017-07-21 | 2021-02-19 | 上海新时达机器人有限公司 | 调节方法、EtherCAT主站及计算机可读存储介质 |
CN107276711B (zh) * | 2017-07-21 | 2019-02-12 | 上海新时达机器人有限公司 | EtherCAT主站装置 |
CN108768812A (zh) * | 2018-06-01 | 2018-11-06 | 广州亿图自动控制系统有限公司 | 基于ARM的EtherCAT主站协议芯片模组 |
CN109040005B (zh) * | 2018-06-01 | 2020-09-15 | 汇专科技集团股份有限公司 | Agv小车通讯方法及系统 |
CN108777649B (zh) * | 2018-06-06 | 2023-05-30 | 山东易码智能科技股份有限公司 | 一种网络侦听装置、系统及方法 |
CN110087037B (zh) * | 2019-04-30 | 2021-03-30 | 南京工程学院 | 一种集成摄像头的EtherCAT主站和工作方法 |
CN110658751B (zh) * | 2019-09-16 | 2021-02-09 | 华中科技大学 | 一种EtherCAT现场总线控制系统的实现方法 |
CN110932954A (zh) * | 2019-11-20 | 2020-03-27 | 广东水利电力职业技术学院(广东省水利电力技工学校) | 一种EtherCAT总线时钟分布系统 |
CN111026016B (zh) * | 2019-12-10 | 2021-07-27 | 深圳市英威腾电气股份有限公司 | 一种基于双fpga架构的可编程控制器及工业控制系统 |
CN111371658A (zh) * | 2020-02-21 | 2020-07-03 | 深圳市海弘装备技术有限公司 | 一种EtherCAT总线控制系统 |
CN111327502B (zh) * | 2020-03-03 | 2021-12-14 | 南京岸鸣智能科技有限公司 | 一种基于脉冲扩展协议的通信方法 |
CN113542090B (zh) * | 2020-04-14 | 2023-07-14 | 宁波弘讯科技股份有限公司 | 一种EtherCAT主从站一体网桥控制器及控制方法 |
CN111488308B (zh) * | 2020-04-17 | 2022-11-18 | 苏州浪潮智能科技有限公司 | 一种支持不同架构多处理器扩展的系统和方法 |
CN111756659A (zh) * | 2020-05-15 | 2020-10-09 | 珠海格力电器股份有限公司 | 一种多主站EtherCAT网络实现方法及采用其的网络系统 |
CN111988113B (zh) * | 2020-07-07 | 2023-03-24 | 湖南华数智能技术有限公司 | 一种EtherCAT协议和ASI协议通讯系统及方法 |
CN112039743B (zh) * | 2020-08-27 | 2022-04-12 | 湖南华数智能技术有限公司 | 一种ASI总线和EtherCAT总线互联互通的装置 |
CN112671624A (zh) * | 2020-12-17 | 2021-04-16 | 成都乐创自动化技术股份有限公司 | 一种构建实时处理EtherCAT帧的方法 |
CN113162719A (zh) * | 2021-02-25 | 2021-07-23 | 上海赫千电子科技有限公司 | 一种基于光纤车载以太网的环状网络数据通信架构 |
CN113093658A (zh) * | 2021-03-25 | 2021-07-09 | 中国科学院光电技术研究所 | 一种基于EtherCAT的多轴伺服系统架构设计方法 |
CN114006950B (zh) * | 2021-09-26 | 2023-10-20 | 北京零壹空间电子有限公司 | 箭上通信方法、系统、计算机设备和存储介质 |
CN114124718B (zh) * | 2021-10-26 | 2024-04-23 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 强实时EtherCAT实现系统 |
CN113992473A (zh) * | 2021-10-29 | 2022-01-28 | 宁波弘讯科技股份有限公司 | 一种通信方法、装置及电子设备和存储介质 |
CN114039810B (zh) * | 2022-01-10 | 2022-07-12 | 至新自动化(北京)有限公司 | 基于以太网的柔性自动化控制系统 |
CN114723023B (zh) * | 2022-03-03 | 2024-04-23 | 北京大学 | 数据通信方法及系统、脉冲神经网络运算系统 |
CN114579288B (zh) * | 2022-05-09 | 2022-09-02 | 成都登临科技有限公司 | 一种任务处理的方法、装置以及计算机设备 |
CN115051888B (zh) * | 2022-06-14 | 2024-01-26 | 南京晓庄学院 | 一种基于AM335X的EtherCat主站控制系统 |
CN115903608B (zh) * | 2022-12-12 | 2023-10-31 | 南京德克威尔自动化有限公司 | 一种总线扩展模块 |
CN116073890B (zh) * | 2023-03-06 | 2023-06-02 | 成都星联芯通科技有限公司 | 业务数据处理方法、装置、接收设备、地球站及存储介质 |
CN115964333B (zh) * | 2023-03-17 | 2023-06-09 | 之江实验室 | 一种基于fpga主控的多芯片神经网络算法的通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2712123A1 (en) * | 2012-09-20 | 2014-03-26 | Robert Bosch Gmbh | Standard CAN implementation tolerating CAN FD frames |
-
2015
- 2015-03-11 CN CN201510107162.XA patent/CN104702474B/zh active Active
Non-Patent Citations (1)
Title |
---|
基于 FPGA 的数控系统现场总线技术的研究;殷哲波;《硕士学位论文》;20100515;第8页-第50页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104702474A (zh) | 2015-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104702474B (zh) | 一种基于FPGA的EtherCAT主站装置 | |
CN106612141B (zh) | 一种光纤通道协议通用仿真测试卡及其数据交互方法 | |
CN105320632B (zh) | 一种自主仲裁的高速差分总线实现方法 | |
CN101950175B (zh) | 一种基于工业以太网的高速现场总线实现方法 | |
CN105137807B (zh) | 通用全数字星务仿真平台 | |
CN103713940B (zh) | 一种基于rtx‑hla‑反射内存卡的可重构分布式实时仿真方法 | |
CN204733178U (zh) | 一种基于FPGA的EtherCAT主站装置 | |
CN105959288A (zh) | 一种电力电网系统中的网络协议转换及其相互通讯方法 | |
CN105357070A (zh) | 一种基于fpga的arinc818总线分析与测试装置 | |
CN102664779B (zh) | 一种can总线数据传送方法 | |
CN2938595Y (zh) | 一种用于板间通信的高速串行接口装置 | |
CN105975424A (zh) | 一种主从串行通讯协议 | |
CN103475493A (zh) | 多网口智能网卡及数据处理方法 | |
CN103802509A (zh) | 一种基于工业喷码机控制系统的远程化实现方法 | |
CN103685578B (zh) | 主从设备的数据传输方法 | |
CN104901832A (zh) | 一种航空自组网半实物网络仿真平台 | |
CN108574580A (zh) | 实时仿真通信系统和方法 | |
CN109951366A (zh) | 一种Modbus RTU总线控制器及控制方法 | |
CN103955190B (zh) | 一种用于分布式智能测试系统的网络控制方法 | |
CN106850331A (zh) | 一种交通领域的带同步时钟功能的以太网发帧装置 | |
CN102291337B (zh) | EtherCAT协议与Profibus-DP协议通信转换的网关及其通信方法 | |
CN105955398B (zh) | 一种基于fpga的系统对时装置及对时方法 | |
CN108199940A (zh) | 一种机器人关节通信系统模型的验证方法及系统 | |
CN205004841U (zh) | 智能变电设备及其数据传输系统 | |
CN104503354B (zh) | 数字化控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |