一种基于FPGA的EtherCAT主站装置的制造方法_2

文档序号:8383621阅读:来源:国知局
处理模块处理完反馈数据传递给应用程序操作接口时,利用FPGA并行处理的特性同时触发所述周期性指令处理模块和所述应用程序命令响应模块,所述周期性指令处理模块从所述应用程序操作接口中的所述过程数据缓存区中取出有效数据并按照EtherCAT帧标准生产周期性过程数据帧,同时所述应用程序命令响应模块从应用程序操作接口中的缓存数据中检查有无指令操作,如果有则进行响应模块的触发处理,进而组成本周期的非周期性数据帧,如无则本周期内不发送周期性数据帧;所述生产数据帧命令模块接收到带发送的数据帧后,触发所述控制收发数据帧接口寄存器启动数据帧发送,将指令数据帧发送出去。
[0018]作为本发明的改进,所述数据帧收发机验算模块包括终端脉冲产生序列、发送时刻脉冲产生序列、发送数据流控制模块、数据帧发送及硬件CRC32计算模块、接收数据流控制模块和数据帧接收和硬件CRC32验算模块,其中,所述中断脉冲产生序列根据中断设置周期和中断使能控制产生等时中断信号,所述发送时刻脉冲产生序列根据产生的等时中断信号产生数据帧发送时刻信号,所述发送数据流控制模块根据数据帧发送时刻信号以及发送配置寄存器,从发送缓存区里面读取相应的数据发送给所述数据帧发送及硬件CRC32计算模块,所述数据帧发送及硬件CRC32计算模块将数据帧转换为数据流发送给PHY芯片并同时计算CRC32发送,所述数据帧接收及硬件CRC32验算模块接收来自PHY芯片的数据流,同时计算CRC32,并与帧尾CRC32值进行比较验证接收到数据帧的有效性,所述接收数据流控制模块接收到数据帧后将数据帧填入接收缓存区中,同时写入相应的状态的寄存器。
[0019]本发明中,CPU在初始化阶段通过PCI/ARM接口对FPGA模块进行通信参数的设置使硬件定时产生中断,中断产生给CPU时,CPU根据自身控制任务的调度向FPGA模块内的应用程序接口写入相应的控制指令及数据。EtherCAT协议驱动模块不断循环扫描应用程序控制指令,当应用程序操作接口中写入CPU的指令和数据时,EtherCAT协议驱动模块开始根据相应的指令进行不同的操作,其作用可以完成EtherCAT协议的状态机维护、参数配置、非周期邮箱数据处理和周期性过程数据的处理。对于周期性过程数据,EtherCAT协议驱动模块会在每个中断周期将应用程序操作接口内的过程数据进行组帧,完成数据帧的定时周期性发送;对于状态机维护、参数配置和非周期性数据,EtherCAT协议驱动模块在每个中断周期检测有无子此类数据,如果CPU写入了相应的指令,则进行对相应的指令进行操作,按照EtherCAT协议标准组成标准非周期数据帧,在一个中断周期内于周期性数据帧之后进行发送非周期数据帧,若无此类数据,则不进行非周期数据的发送。
[0020]在EtherCAT协议驱动模块对周期性数据和有需要发送的非周期性数据进行组帧后,将数据帧写入数据帧收发操作接口并同时写入发送数据帧的配置参数。数据帧收发及验算模块接收到数据帧收发操作接口的数据帧和发送配置时,启动发送,将数据帧数据根据PHY芯片接收定义依次按顺序发送给PHY芯片收发数据接口,并同时利用FPGA并行操作的特性同时计算当前数据帧的CRC32校验,PHY芯片收到FPGA模块发送的信号后转换为差分信号,经过网络隔离变压器后变为EtherCAT网络中的信号,通过EtherCAT总线接口到接入EtherCAT网络中,实现与各个从站的通信交互功能。
[0021]在一个中断周期内,定时发送一帧周期性数据帧,如有需要则会发送另一帧非周期性数据帧,根据EtherCAT从站“飞读飞写”的协议操作,同时根据主站周期性和非周期性数据的调度策略可以判定,EtherCAT主站返回的第一帧是周期性数据帧,若有第二帧则为非周期性数据帧。EtherCAT总线接口接收到网络中的数据经过网络隔离变压器和PHY芯片后,转换为数据流至PHY芯片收发数据接口,数据帧收发及验算模块利用FPGA并行操作特性,将接收到的数据帧依次存入数据帧收发操作接口,同时计算本帧数据的CRC32校验并给出响应的计算结果指示寄存器,如果与接收到的数据帧尾CRC32相同,则说明有效;反之,则该帧存在丢包的状况。
[0022]当硬件中断的下一个中断周期到来之时,EtherCAT协议驱动模块首先会检测上个周期返回的数据帧,验算其CRC32、检验其有无数据帧内有无正确响应以及提取出相应的有效数据至CPU应用程序操作接口,当CPU收到上一帧数据反馈时,可以充分了解到EtherCAT网络的状态,然后再根据CPU相应的控制任务的需求再次对总线进行控制,从而依次往复完成数据的交互及控制功能。
[0023]同时FPGA模块中还包括CPU接口选择操作模块,内部可以集成常用的PCI接口和ARM接口,其余接口种类可以根据需要再FPGA内部进行扩展。用户可以根据需要扩展不同种类的CPU接口选择模块,从而在不改变原有平台的基础上可以方便地在外扩FPGA的方式来实现EtherCAT主站通信装置。
[0024]总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
[0025](I)本发明利用FPGA的硬件特性处理EtherCAT协议的数据链路层,提高了数据链路通信的稳定性和快速响应性;
[0026](2)本发明利用FPGA的并行操作特性可以多流水线处理数据,提高了协议处理的效率;
[0027](3)本发明的FPGA模块集成有不同种类的CPU接口,能适用于不同的操作系统平台,提高了 EtherCAT主站通信装置的兼容性;
[0028](4)本发明利用FPGA产生硬件中断,提高了主站通信控制装置的实时性。
【附图说明】
[0029]图1是按照本发明实施例的装置的总体结构示意图;
[0030]图2是按照本发明实施例的装置中FPGA模块内部的结构示意图;
[0031]图3是按照本发明实施例的装置中应用程序操作接口示意图;
[0032]图4是按照本发明实施例的数据帧收发操作接口示意图;
[0033]图5是按照本发明实施例的EtherCAT协议驱动模块执行流程示意图;
[0034]图6是按照本发明实施例的周期性数据和非周期性数据调度策略示意图;
[0035]图7是按照本发明实施例的方法中数据帧收发机验算模块执行流程示意图;
[0036]图8是按照本发明实施例的装置中的主站通信装置。
【具体实施方式】
[0037]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0038]本发明实施例提出了一种基于FPGA的EtherCAT主站实现方法及装置,在充分利用FPGA硬件特性和并行操作特性的基础之上,实现了在不同操作系统、不同硬件平台可以方便集成EtherCAT工业以太网现场总线主站通信装置的功能。
[0039]图1是本发明实施例的总体结构示意图,该装置包括PCI/ARM接口 1、FPGA模块
2、PHY芯片3、网络隔离变压器4和EtherCAT总线RJ45接口 5。其中,所述PCI/ARM接口I可以根据所接CPU的种类进行选择相应的接口模块,所兼容的接口包括PCI接口和ARM外扩总线接口,用户也可以根据自身需要再不改变其他模块的基础之上增加相应的接口模块。所述FPGA模块2用来处理EtherCAT协议的应用层和数据链路层;所述PHY芯片3用来对EtherCAT网络上的差分信号和板级信号进行相应的转换;所述网络隔离变压器4用来隔离网络上信号对板级信号的影响;所述EtherCAT总线RJ45接口 5用来实现将通信装置接入EtherCAT网络中,其中一个RJ45接口为EtherCAT总线接口,另一个接口为可选的EtherCAT 总线接口。
[0040]图2是本发明实施例装置中的FPGA模块内部的结构示意图,该模块内部包括CPU接口选择操作模块21、CPU应用程序操作接口 22、EtherCAT协议驱动模块23、数据帧收发操作接口 24、数据帧
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1