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

文档序号:8383621阅读:来源:国知局
收发及验算模块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进行数据交互,完成数据流之间的交互。
[0041]图3是本发明实施例的应用程序操作接口示意图,该接口包括三个部分,分别为控制指令数据缓存区221、状态反馈数据缓存区222和过程数据缓存区223。其中,所述控制指令数据缓存区221是CPU往应用程序接口写入的指令配置数据,包括控制数据和中断设置指令,控制数据可以完成非周期性的状态机切换命令和邮箱通信服务命令的操作接口等非实时性功能,中断设置指令可以完成CPU对所述FPGA模块2内的中断进行设置和使能控制;所述状态反馈数据缓存区222是CPU读取应用程序接口状态的数据缓存区,状态数据缓存区反映的是EtherCAT网络对CPU写入指令的命令状态响应情况,包括状态机信息、程序诊断信息和邮箱通信命令的反馈,同时所述状态反馈数据缓存区222还包括丢包数反馈、指令错误反馈和诊断信息反馈等总线状态的反馈;所述过程数据缓存区223包括各个从站的实时指令数据和实时反馈数据,其缓存区的更新周期由CPU设定的中断周期来确定。
[0042]图4是本发明实施例的数据帧收发操作接口示意图,该接口包括三个部分,分别为配置数据帧发送缓存区241、数据帧接收反馈缓存区242和收发的数据帧缓存区243。其中,所述的配置数据帧发送缓存区241包括发送缓冲区使能控制、发送缓冲区I发送长度设置、发送缓冲区2发送长度设置、定时发送周期设置、缓冲区I重发次数设置和硬件中断控制等控制寄存器;所述数据帧接收反馈缓存区242包括接收到有效数据帧更新、一个周期内接收到的数据帧数、CRC32有效标志位、数据帧中的CRC32中的低16位、计算所得的CRC32中的低16位等状态寄存器;所述收发的数据帧缓存区243包括发送缓存区1、发送缓存区2、接收缓存区I和接收缓存区2,其分别对应周期性发送缓存区、非周期性发送缓存区、周期性接收缓存区和非周期性接收缓存区。
[0043]图5是本发明实施例的EtherCAT协议驱动模块执行流程示意图,其中包括反馈数据帧处理模块231、周期性指令处理模块232、应用程序命令响应模块233、应用程序命令处理模块234、生成数据帧命令模块235和控制收发数据帧寄存器启动数据帧发送模块236。所述反馈数据帧处理模块231接收到CPU配置FPGA产生的中断周期信号后,首先进行上一周期返回周期性反馈数据的处理,然后根据接收寄存器的接收到的帧数来判断是否有非周期性数据帧,如果有则处理相应的非周期性反馈数据,若无则进行下一个模块的操作;当所述反馈数据帧处理模块231处理完反馈数据传递给应用程序操作接口 22时,利用FPGA并行处理的特性同时触发所述周期性指令处理模块232和所述应用程序命令响应模块233,所述周期性指令处理模块232从所述应用程序操作接口 22中的所述过程数据缓存区223中取出有效数据并按照EtherCAT帧标准生产周期性过程数据帧,同时所述应用程序命令响应模块233从应用程序操作接口 22中的缓存数据中检查有无指令操作,如果有则进行响应模块的触发处理,进而组成本周期的非周期性数据帧,如无则本周期内不发送周期性数据帧;所述生产数据帧命令模块235接收到带发送的数据帧后,触发所述控制收发数据帧接口寄存器启动数据帧发送236,将指令数据帧发送出去。
[0044]图6是本发明实施例的周期性数据和非周期性数据调度策略示意图。利用FPGA的硬件特性可以产生非常严格的等时中断脉冲,当中断信号产生时,所述FPGA模块2会分别产生周期性数据,如所述应用程序操作接口 22有CPU指令,则另外产生非周期数据,并填入所述数据帧收发操作接口 24,在配置寄存器的配置发送时刻下,如存在非周期性数据帧则在同一个周期内分别发送周期性数据帧和非周期性数据帧,如不存在则只发送非周期性数据帧。
[0045]图7是本发明实施例的数据帧收发机验算模块执行流程示意图,包括终端脉冲产生序列251、发送时刻脉冲产生序列252、发送数据流控制模块253、数据帧发送及硬件CRC32计算模块254、接收数据流控制模块255和数据帧接收和硬件CRC32验算模块256。其中,所述中断脉冲产生序列251根据中断设置周期和中断使能控制产生等时中断信号,所述发送时刻脉冲产生序列252根据产生的等时中断信号产生数据帧发送时刻信号,所述发送数据流控制模块253根据数据帧发送时刻信号以及发送配置寄存器,从发送缓存区里面读取相应的数据发送给所述数据帧发送及硬件CRC32计算模块254,所述数据帧发送及硬件CRC32计算模块254将数据帧转换为数据流发送给PHY芯片并同时计算CRC32发送。所述数据帧接收及硬件CRC32验算模块256接收来自PHY芯片的数据流,同时计算CRC32,并与帧尾CRC32值进行比较验证接收到数据帧的有效性,所述接收数据流控制模块255接收到数据帧后将数据帧填入接收缓存区中,同时写入相应的状态的寄存器。
[0046]图8是本发明实施例的主站通信装置。所述FPGA模块2与JTAG接口 27相连,用于对FPGA的调试;所述FPGA模块2与实施例中的ARM处理器O通过ARM扩展接口 I相连,本发明实施例中所述PCI/ARM扩展接口 I为ARM扩展总线GPMC协议。所述ARM处理器O与SD卡01相连,通过PHY芯片03与所述Ethernet以太网接口 02相连,与USB接口 04相连,通过RS232驱动芯片06与RS232接口 05相连,通过VGA驱动芯片07与VGA接口 08相连,构成ARM处理器的外围接口。本发明实施例中的处理器ARM处理器O通过PCI/ARM扩展接口 I与FPGA模块2相连,可以方便灵活地在ARM处理器O外围集成EtherCAT工业以太网的现场总线接口,并且同时用FPGA的特性确保EtherCAT协议实现的性能。
[0047]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于FPGA的EtherCAT主站装置,其通过利用FPGA的硬件特性和并行处理特性处理EtherCAT协议的数据链路层和应用层,从而实现在FPGA上集成EtherCAT的通信功能,并灵活地接入不同种类的CPU操作系统中集成具有EtherCAT工业以太网现场总线通信接口的功能,其特征在于, 该装置包括PCI/ARM扩展接口(I)、FPGA模块⑵、PHY芯片(3)、网络隔离变压器(4)和EtherCAT总线接P RJ45 (5),其中, 所述FPGA模块(2)通过所述扩展接口模块(I)接收CPU传送给FPGA模块的数据,并通过其内部的EtherCAT协议驱动模块将CPU的指令数据按照EtherCAT协议进行封装和调度,组成EtherCAT数据帧在FPGA模块内通过数据帧发送模块发送给PHY芯片(3);所述PHY芯片(3)将接收到的EtherCAT数据帧转换为差分信号,通过网络隔离变压器(4)后,将其
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1