一种基于FPGA的EtherCAT主从站设计与实现方法技术

技术编号:21974533 阅读:141 留言:0更新日期:2019-08-28 02:08
本发明专利技术公开了一种基于FPGA的EtherCAT主从站设计与实现方法,包括以下步骤:在不使用国外专用控制器和商业化主站的前提下,提出采用FPGA作为控制器来实现EtherCAT主从站的方案。在初始化阶段,提出一种EtherCAT主从站初始化设计方案来检测主从站拓扑结构和从站数目,并且完成参数设置和获取等功能。在数据帧发送接收阶段,主站发送一个含有多个子报文的数据帧给从站设备后,从站需要快速、高效、准确的取出对应的子报文并将要发送的数据写入数据帧中,继续转发给下一个从站。最后一个EtherCAT从站发回经过处理之后的数据帧,通信结束。本发明专利技术为不同工业应用场合搭建EtherCAT主从站提供了参考依据。

Design and Implementation of EtherCAT Master-slave Station Based on FPGA

【技术实现步骤摘要】
一种基于FPGA的EtherCAT主从站设计与实现方法
本专利技术涉及工业以太网领域,尤其涉及一种基于FPGA的EtherCAT主从站设计与实现方法。
技术介绍
随着工业自动化的发展,传统的现场总线技术由于带宽及其利用率的问题已经无法满足现代工业自动化的需要。被称为第二代工业网络的实时以太网受到了越来越多的关注,随着工业4.0的提出,以太网与工业自动化结合得更为紧密。目前,实时以太网凭借其成熟的特性已成为工业自动化领域不可或缺的技术。EtherCAT(EthernetforControlAutomationTechnology)作为高性能工业以太网的代表,以其低延迟、高速率、拓扑灵活等优点得到了快速发展,已经成为工业控制领域流行的工业以太网解决方式。EtherCAT技术由德国倍福公司在2003年提出后,EtherCAT技术协会就不断发展,已经拥有了4200多个会员,成为全球最大的工业以太网组织。然而目前大多数的EtherCAT从站都是采用国外专用控制器芯片实现的,如德国倍福公司生产的专用从站控制器ET1100和ET1200。针对这种情况,在研究EtherCAT通信协议的基础上,提出了一种基于FPGA的EtherCAT的主从站设计方案。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种基于FPGA的EtherCAT主从站设计与实现方法。在不使用国外专用控制器的的前提下,以FPGA作为控制器完成EtherCAT主从站的设计。该设计在实际应用中,主站发送一个含有多个子报文的数据帧后,从站能够快速、高效、准确的取出对应的子报文并将要发送的数据写入数据帧中,继续转发给下一个从站,直至主站收到从站发来的报文结束。本专利技术的目的是通过以下技术方案来实现的:一种基于FPGA的EtherCAT主从站设计与实现方法,该方法包括以下步骤:步骤1:EtherCAT主站获取网络的拓扑结构,具体如下:主站下行端口首先向第一个EtherCAT从站的上行端口发送建立连接请求帧,第一个从站上行端口收到主站的请求帧后会向主站上行端口发送一个回复帧,表明此时主站和第一个从站已经建立连接。之后主站会发送一个确认通信帧,同时将EtherCAT报文中的从站计数器值加1。从站上行端口接收到确认通信帧之后,其下行端口会向下一个从站的上行端口发送建立连接请求帧,同时开启计时器,如果在规定时间内收到下一个从站的回复帧,则发送确认通信帧,将从站计数器值加1,依次往复,如果超时未收到回复帧,则表明此从站为最后一个从站,同时最后一个从站会重新组EtherCAT包向上一个从站返回数据,直至传回到主站的下行端口,EtherCAT主站获取到此时的网络拓扑结构是线型的。如果主站的上行端口接收到来自最后一个从站的建立连接请求帧,EtherCAT主站获取到此时的网络拓扑结构是环形的。步骤2:EtherCAT主站设置或获取EtherCAT从站的参数,具体如下:EtherCAT主站根据不同的网络拓扑结构对从站进行参数配置和获取,所述参数包括各个从站的名称、编号、硬件版本、软件版本等,配置这些参数主要是通过EtherCAT主站写入或读取对应从站的EEPROM来完成。步骤3:设计EtherCAT从站控制器,EtherCAT从站控制器包括数据帧接收模块、子报文处理模块和数据帧转发模块三个部分。为了方便对数据的管理,需要在EtherCAT从站控制器中增添三个FIFO(FirstInputFirstOutput)模块作为缓冲器,分别取名为Rec_fifo、Local_fifo和Tx_fifo。Rec_fifo主要用来存放接收到的EtherCAT数据帧的所有子报文,Local_fifo主要是用来接收当前从站对应子报文中的数据,Tx_fifo则是存放重新组包后的需要发送出去的EtherCAT帧的所有子报文。1)数据帧接收模块EtherCAT从站的上行端口一旦检测到EtherCAT数据帧发过来,就将接收到的数据帧作一个初步的解析,将所有子报文存进Rec_fifo中。在接收的同时还需要对数据帧进行校验,一旦校验结果与接收到的帧校验序列FCS不一致就会产生接收错误标志位,如果接收错误则舍弃接收到的数据帧。数据帧接收模块还有一个重要作用就是要暂存所有子报文的长度,一旦有子报文被读出则需要动态更新剩余子报文的长度。当数据帧接收校验完成后,会产生完成标志位以进行后续工作。2)子报文处理模块当数据帧接收完成后从Rec_fifo取出第一个子报文头,从中提取出关键信息,包括子报文携带的命令、寻址地址、子报文中的数据长度等,判断寻址地址是否是当前从站,如果是当前从站,则根据子报文头中的数据长度从Rec_fifo中读出对应数据存入到Local_fifo中,接着将新的子报文头和当前从站需要发送出去的数据存入Tx_fifo中。如果不是寻址的当前从站,则将子报文头和Rec_fifo中的子报文数据直接存入到Tx_fifo中。将第一个子报文的报文头和数据存入Tx_fifo之后,再从Rec_fifo中读出WKC的值,根据子报文头中的命令对WKC计数值进行处理之后写进Tx_fifo中。至此第一个子报文解析完成,根据数据解析模块中的剩余子报文长度判断是否还有子报文未读出。如果有则按照上述步骤读取下一个子报文。如果没有剩余子报文,则产生子报文处理完成标志位。3)数据帧转发模块一旦检测到子报文处理完成标志位,就将Tx_fifo中所有的子报文组成标准的EtherCAT数据帧,并重新进行校验,通过下行端口发给下一个从站的上行端口。步骤4:EtherCAT主站下行端口给第一个从站上行端口发送含有多个子报文的EtherCAT帧。同时开启计时器,如果主站的上行端口一定时间未收到返回的EtherCAT帧,则表明本次发送的EtherCAT帧丢失,需要重新发送一次。如果主站的上行端口接收到EtherCAT数据帧,则解析出相关数据,并将数据通过千兆网卡发送出去。本专利技术的有益效果是:本专利技术提出了一种基于FPGA的EtherCAT主从站设计与实现方法。在不使用国外专用控制器的的前提下,以FPGA作为控制器完成EtherCAT主从站的设计,为以后不同工业应用场合搭建EtherCAT主从站提供了参考依据。附图说明图1是本专利技术主从站线型拓扑结构;图2是本专利技术主从站环形拓扑结构;图3是从站处理EtherCAT数据帧流程图;图4是从站处理第一个子报文数据头过程;图5是从站处理第一个子报文数据和WKC的过程;图6是从站处理第二个子报文数据头过程;图7是从站处理第二个子报文数据和WKC的过程;图8是从站处理第三个子报文数据头过程;图9是从站处理第三个子报文数据和WKC的过程;图10是从站处理第四个子报文数据头过程;图11是从站处理第四个子报文数据和WKC的过程。具体实施方式下面结合附图详细描述本专利技术,本专利技术的目的和效果将变得更加明显。EtherCAT作为高性能工业以太网的代表,凭借其低延迟、高速率、高吞吐率等优点在工业自动化领域中得到广泛应用。基于目前多数从站需要采用国外专用从站控制器来实现的情况,增加了成本,并且不利于进一步开发。本专利技术提出一种基于FPGA的EtherCAT主从站设计方案,包括以下步骤:步骤1:EtherCAT主站下行端口首先向第一本文档来自技高网...

【技术保护点】
1.一种基于FPGA的EtherCAT主从站设计与实现方法,其特征在于,包括以下步骤:步骤1:EtherCAT主站获取网络的拓扑结构,具体如下:主站下行端口首先向第一个EtherCAT从站的上行端口发送建立连接请求帧,第一个从站上行端口收到主站的请求帧后会向主站上行端口发送一个回复帧,表明此时主站和第一个从站已经建立连接。之后主站会发送一个确认通信帧,同时将EtherCAT报文中的从站计数器值加1。从站上行端口接收到确认通信帧之后,其下行端口会向下一个从站的上行端口发送建立连接请求帧,同时开启计时器,如果在规定时间内收到下一个从站的回复帧,则发送确认通信帧,将从站计数器值加1,依次往复,如果超时未收到回复帧,则表明此从站为最后一个从站,同时最后一个从站会重新组EtherCAT包向上一个从站返回数据,直至传回到主站的下行端口,EtherCAT主站获取到此时的网络拓扑结构是线型的。如果主站的上行端口接收到来自最后一个从站的建立连接请求帧,EtherCAT主站获取到此时的网络拓扑结构是环形的。步骤2:EtherCAT主站设置或获取EtherCAT从站的参数,具体如下:EtherCAT主站根据不同的网络拓扑结构对从站进行参数配置和获取,所述参数包括各个从站的名称、编号、硬件版本、软件版本,通过EtherCAT主站写入或读取对应从站的EEPROM完成参数配置。步骤3:设计EtherCAT从站控制器,包括数据帧接收模块、子报文处理模块和数据帧转发模块三个部分。在EtherCAT从站控制器中增添三个FIFO模块作为缓冲器,分别命名为Rec_fifo、Local_fifo和Tx_fifo。Rec_fifo用来存放接收到的EtherCAT数据帧的所有子报文,Local_fifo用来接收当前从站对应子报文中的数据,Tx_fifo用来存放重新组包后的需要发送出去的EtherCAT帧的所有子报文。1)数据帧接收模块EtherCAT从站的上行端口一旦检测到EtherCAT数据帧发过来,就将接收到的数据帧作一个初步的解析,将所有子报文存进Rec_fifo中。在接收的同时对数据帧进行校验,一旦校验结果与接收到的帧校验序列FCS不一致就会产生接收错误标志位,如果接收错误则舍弃接收到的数据帧。数据帧接收模块暂存所有子报文的长度,一旦有子报文被读出则动态更新剩余子报文的长度。当数据帧接收校验完成后产生完成标志位。2)子报文处理模块当数据帧接收完成后从Rec_fifo取出第一个子报文头,从中提取出关键信息,包括子报文携带的命令、寻址地址、子报文中的数据长度,判断寻址地址是否是当前从站,如果是当前从站,则根据子报文头中的数据长度从Rec_fifo中读出对应数据存入到Local_fifo中,接着将新的子报文头和当前从站需要发送出去的数据存入Tx_fifo中。如果不是寻址的当前从站,则将子报文头和Rec_fifo中的子报文数据直接存入到Tx_fifo中。将第一个子报文的报文头和数据存入Tx_fifo之后,再从Rec_fifo中读出WKC的值,根据子报文头中的命令对WKC计数值进行处理之后写进Tx_fifo中。至此第一个子报文解析完成,根据数据解析模块中的剩余子报文长度判断是否还有子报文未读出。如果有则按照上述步骤读取下一个子报文。如果没有剩余子报文,则产生子报文处理完成标志位。3)数据帧转发模块一旦检测到子报文处理完成标志位,就将Tx_fifo中所有的子报文组成标准的EtherCAT数据帧,并重新进行校验,通过下行端口发给下一个从站的上行端口。步骤4:EtherCAT主站下行端口给第一个从站上行端口发送含有多个子报文的EtherCAT帧。同时开启计时器,如果主站的上行端口一定时间未收到返回的EtherCAT帧,则表明本次发送的EtherCAT帧丢失,需要重新发送一次。如果主站的上行端口接收到EtherCAT数据帧,则解析出相关数据,并将数据通过千兆网卡发送出去。...

【技术特征摘要】
1.一种基于FPGA的EtherCAT主从站设计与实现方法,其特征在于,包括以下步骤:步骤1:EtherCAT主站获取网络的拓扑结构,具体如下:主站下行端口首先向第一个EtherCAT从站的上行端口发送建立连接请求帧,第一个从站上行端口收到主站的请求帧后会向主站上行端口发送一个回复帧,表明此时主站和第一个从站已经建立连接。之后主站会发送一个确认通信帧,同时将EtherCAT报文中的从站计数器值加1。从站上行端口接收到确认通信帧之后,其下行端口会向下一个从站的上行端口发送建立连接请求帧,同时开启计时器,如果在规定时间内收到下一个从站的回复帧,则发送确认通信帧,将从站计数器值加1,依次往复,如果超时未收到回复帧,则表明此从站为最后一个从站,同时最后一个从站会重新组EtherCAT包向上一个从站返回数据,直至传回到主站的下行端口,EtherCAT主站获取到此时的网络拓扑结构是线型的。如果主站的上行端口接收到来自最后一个从站的建立连接请求帧,EtherCAT主站获取到此时的网络拓扑结构是环形的。步骤2:EtherCAT主站设置或获取EtherCAT从站的参数,具体如下:EtherCAT主站根据不同的网络拓扑结构对从站进行参数配置和获取,所述参数包括各个从站的名称、编号、硬件版本、软件版本,通过EtherCAT主站写入或读取对应从站的EEPROM完成参数配置。步骤3:设计EtherCAT从站控制器,包括数据帧接收模块、子报文处理模块和数据帧转发模块三个部分。在EtherCAT从站控制器中增添三个FIFO模块作为缓冲器,分别命名为Rec_fifo、Local_fifo和Tx_fifo。Rec_fifo用来存放接收到的EtherCAT数据帧的所有子报文,Local_fifo用来接收当前从站对应子报文中的数据,Tx_fifo用来存放重新组包后的需要发送出去的EtherCAT帧的所有子报文。1)数据帧接收模块EtherCAT从站...

【专利技术属性】
技术研发人员:王成群吴超徐伟强朱升宏贾宇波
申请(专利权)人:浙江理工大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1