欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019104066960
申请人: 浙江理工大学
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-10-26
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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数据帧,则解析出相关数据,并将数据通过千兆网卡发送出去。