[发明专利]一种基于FPGA的EtherCAT主从站设计与实现方法有效
申请号: | 201910406696.0 | 申请日: | 2019-05-16 |
公开(公告)号: | CN110177013B | 公开(公告)日: | 2021-10-15 |
发明(设计)人: | 王成群;吴超;徐伟强;朱升宏;贾宇波 | 申请(专利权)人: | 浙江理工大学 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L12/40;H04L12/42 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 刘静;邱启旺 |
地址: | 310018 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于FPGA的EtherCAT主从站设计与实现方法,包括以下步骤:在不使用国外专用控制器和商业化主站的前提下,提出采用FPGA作为控制器来实现EtherCAT主从站的方案。在初始化阶段,提出一种EtherCAT主从站初始化设计方案来检测主从站拓扑结构和从站数目,并且完成参数设置和获取等功能。在数据帧发送接收阶段,主站发送一个含有多个子报文的数据帧给从站设备后,从站需要快速、高效、准确的取出对应的子报文并将要发送的数据写入数据帧中,继续转发给下一个从站。最后一个EtherCAT从站发回经过处理之后的数据帧,通信结束。本发明为不同工业应用场合搭建EtherCAT主从站提供了参考依据。 | ||
搜索关键词: | 一种 基于 fpga 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数据帧,则解析出相关数据,并将数据通过千兆网卡发送出去。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江理工大学,未经浙江理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910406696.0/,转载请声明来源钻瓜专利网。
- 上一篇:设备控制方法和装置
- 下一篇:一种管理终端接入网络的方法及装置