首页 / 专利库 / 电脑安全 / 补丁管理 / 补丁 / 一种消除EtherCAT通讯周期抖动的系统及方法

一种消除EtherCAT通讯周期抖动的系统及方法

阅读:632发布:2020-05-08

专利汇可以提供一种消除EtherCAT通讯周期抖动的系统及方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种消除EtherCAT通讯周期抖动的系统,包括处理系统区和编程逻辑区,所述处理系统区包括处理器、与处理器通信的NIC驱动 接口 ,所述处理器用于运行EtherCAT任务;所述编程逻辑区包括 访问 控制器 ,所述访问控制器包括DMA控制器、 定时器 和发送缓存器;所述发送缓存器与DMA控制器通信连接,所述定时器与发送缓存器通信连接;所述NIC驱动接口与DMA控制器通信连接,当系统进行初始化操作时,将初始化文件中的NIC时延参数发送至定时器处。本发明还公开了一种消除EtherCAT通讯周期抖动的方法。本发明的消除EtherCAT通讯周期抖动的方法通过设置NIC时延参数来消除通讯抖动。,下面是一种消除EtherCAT通讯周期抖动的系统及方法专利的具体信息内容。

1.一种消除EtherCAT通讯周期抖动的系统,其特征在于,包括处理系统区和编程逻辑区,所述处理系统区包括处理器、与处理器通信的NIC驱动接口,所述处理器用于运行EtherCAT任务;
所述编程逻辑区包括访问控制器,所述访问控制器包括DMA控制器、定时器和发送缓存器;所述发送缓存器与DMA控制器通信连接,所述定时器与发送缓存器通信连接;所述NIC驱动接口与DMA控制器通信连接,当系统进行初始化操作时,将初始化文件中的NIC时延参数发送至定时器处。
2.如权利要求1所述的一种消除EtherCAT通讯周期抖动的系统,其特征在于,所述访问控制器还包括与DMA控制器电性连接的接收缓存器,所述接收缓存器用于将接收到的外部数据通过DMA控制器传输至处理系统区,且接收缓存器通过接收终端的方式,将外部数据直接写入接收缓存器。
3.如权利要求2所述的一种消除EtherCAT通讯周期抖动的系统,其特征在于,所述发送缓存器通过DMA控制器采用存储器到外设的方式进行数据传输,所述接收缓存器通过DMA控制器采用外设到存储器的方式进行数据传输。
4.如权利要求1所述的一种消除EtherCAT通讯周期抖动的系统,其特征在于,所述访问控制器的数量为两个。
5.如权利要求1所述的一种消除EtherCAT通讯周期抖动的系统,其特征在于,所述处理系统区采用ARM芯片,在ARM芯片处运行的是打有Xenomai实时补丁的linux系统,所述编程逻辑区采用FPGA芯片。
6.如权利要求1所述的一种消除EtherCAT通讯周期抖动的系统,其特征在于,所述NIC驱动接口与DMA控制器通过AXI总线通信连接。
7.一种消除EtherCAT通讯周期抖动的方法,其特征在于,包括如下步骤:
初始化步骤:对主站系统进行初始化操作,并将NIC时延参数写入编程逻辑区的定时器中;
计时步骤:在定时器周期性产生IRQ信号的同时定时器开始计时,定时器产生的IRQ信号传输至NIC驱动接口处以使得将处理系统区的数据发送至编程逻辑区;
发送步骤:当定时器的计时达到NIC时延参数后,定时器产生IRQ信号给发送缓存器,以使得发送缓冲器将其存储的数据发送给从站设备。
8.如权利要求7所述的一种消除EtherCAT通讯周期抖动的方法,其特征在于,所述NIC时延参数的数值大于最大抖动参数值。
9.如权利要求7所述的一种消除EtherCAT通讯周期抖动的方法,其特征在于,所述计时步骤中,当发送缓存器接收到IRQ信号后,发送缓存器遵循FIFO先进先出的方式,将数据发送给从站设备。
10.如权利要求7所述的一种消除EtherCAT通讯周期抖动的方法,其特征在于,在初始化步骤中,在主站系统初始化时,主站系统读取初始化文件参数,并将初始化文件中的NIC时延参数写入定时器中。

说明书全文

一种消除EtherCAT通讯周期抖动的系统及方法

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种消除EtherCAT通讯周期抖动的系统及方法。

背景技术

[0002] 目前,EtherCAT通讯作为实时的工业以太网技术,应用在对传输速度以及实时性要求比较高的场景,比如运控控制,数控机床,这就要求EtherCAT主站发出来的数据要稳定,偏差小,也就是主站的通讯周期要稳定,否则会导致从站出现较大响应偏差,但是EtherCAT主站因为操作系统任务之间的调度以及操作系统的时间处理函数等原因,会影响中断的处理,导致报文从主站网口发送出来的时刻是不稳定的,即每次从主站网口发送报文帧的时间点不稳定,从而导致上一次发送报文帧的时刻与下一次发送报文帧的时刻,两个时刻的时间差是不稳定的,也就是主站的通讯周期存在抖动。
[0003] 不同主站方案技术,这个抖动参数大小是不一样的,从ms级别的抖动,到几百个us,几十个us不等,这些抖动会对从站网络造成影响,特别是当主站通讯周期要求比较小的情况下,这些抖动的影响会被放大。
[0004] 现有的解决方法之一是主站采用不带操作系统的CPU来运行,这样可以很大程度减少操作系统的不稳定带来额外的抖动,但因此CPU也只能以单线程的方式来运行程序,不能实现多任务的应用,这相当于是用牺牲功能换性能的方式来减少抖动问题。
[0005] 另外一种方法是在CPU端采用实时的操作系统来减少操作系统的响应延迟,从而降低数据帧发送的不稳定性,但系统的延时函数以及多任务之间的调度,还有应用层比如视频流的处理,都会很轻易的影响实时操作系统的稳定性,该方案周期抖动问题也还是没法得到完全解决。

发明内容

[0006] 为了克服现有技术的不足,本发明的目的之一在于提供一种消除EtherCAT通讯周期抖动的系统,其能消除EtherCAT主站网口发出报文帧时间点的抖动性的问题。
[0007] 本发明的目的之二在于提供一种消除EtherCAT通讯周期抖动的方法,其能消除EtherCAT主站网口发出报文帧时间点的抖动性的问题。
[0008] 本发明的目的之一采用如下技术方案实现:
[0009] 一种消除EtherCAT通讯周期抖动的系统,包括处理系统区和编程逻辑区,所述处理系统区包括处理器、与处理器通信的NIC驱动接口,所述处理器用于运行EtherCAT任务;
[0010] 所述编程逻辑区包括访问控制器,所述访问控制器包括DMA控制器、定时器和发送缓存器;所述发送缓存器与DMA控制器通信连接,所述定时器与发送缓存器通信连接;所述NIC驱动接口与DMA控制器通信连接,当系统进行初始化操作时,将初始化文件中的NIC时延参数发送至定时器处。
[0011] 进一步地,所述访问控制器还包括与DMA控制器电性连接的接收缓存器,所述接收缓存器用于将接收到的外部数据通过DMA控制器传输至处理系统区,且接收缓存器通过接收终端的方式,将外部数据直接写入接收缓存器。
[0012] 进一步地,所述发送缓存器通过DMA控制器采用存储器到外设的方式进行数据传输,所述接收缓存器通过DMA控制器采用外设到存储器的方式进行数据传输。
[0013] 进一步地,所述访问控制器的数量为两个。
[0014] 进一步地,所述处理系统区采用ARM芯片,在ARM芯片处运行的是打有Xenomai实时补丁的linux系统,所述编程逻辑区采用FPGA芯片。
[0015] 进一步地,所述NIC驱动接口与DMA控制器通过AXI总线通信连接。
[0016] 本发明的目的之二采用如下技术方案实现:
[0017] 一种消除EtherCAT通讯周期抖动的方法,包括如下步骤:
[0018] 初始化步骤:对主站系统进行初始化操作,并将NIC时延参数写入编程逻辑区的定时器;
[0019] 计时步骤:在定时器周期性产生IRQ信号的同时定时器开始计时,定时器产生的IRQ信号传输至NIC驱动接口处以使得将处理系统区的数据发送至编程逻辑区;
[0020] 发送步骤:当定时器的计时达到NIC时延参数后,定时器产生IRQ信号给发送缓存器,以使得发送缓冲器将其存储的数据发送给从站设备。
[0021] 进一步地,所述NIC时延参数的数值大于最大抖动参数值。
[0022] 进一步地,所述计时步骤中,当发送缓存器接收到IRQ信号后,发送缓存器遵循FIFO先进先出的方式,将数据发送给从站设备。
[0023] 进一步地,在初始化步骤中,在主站系统初始化时,主站系统读取初始化文件参数,并将初始化文件中的NIC时延参数写入定时器中。
[0024] 相比现有技术,本发明的有益效果在于:
[0025] 本发明的消除EtherCAT通讯周期抖动的方法通过设置NIC时延参数来消除通讯抖动,保证了EtherCAT主站数据每次从发送缓冲器发出来的时间点都是相同的,避免出现每次发送主站时间点存在不一样的情况,增加了通讯的稳定性。附图说明
[0026] 图1为实施例一的消除EtherCAT通讯周期抖动的系统结构框图
[0027] 图2为实施例一的消除EtherCAT通讯周期抖动的系统的第一结构示意图;
[0028] 图3为实施例一的消除EtherCAT通讯周期抖动的系统的第二结构示意图;
[0029] 图4为实施例二的消除EtherCAT通讯周期抖动的方法的流程图
[0030] 图5为实施例二的数据发送的时序图;
[0031] 图6为实施例二的消除EtherCAT通讯周期抖动的系统的具体流程图。

具体实施方式

[0032] 下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
[0033] 实施例一
[0034] 如图1所示,本实施例提供了一种消除EtherCAT通讯周期抖动的系统,包括处理系统区和编程逻辑区,所述处理系统区包括处理器、与处理器通信的NIC驱动接口,所述处理器用于运行EtherCAT任务;也即是在本实施例中其主要是基于Zynq硬件平台,如图2所示,该平台由左边ARM部分和右边FPGA部分组成,左边ARM端,也就是处理系统去(PS),运行的是打了Xenomai实时补丁的linux系统,使操作系统具有实时性,同时也运行了EtherCAT任务;并且右边使用FPGA构建了NIC0和NIC1作为EtherCAT主站的两个网口来进行通信。
[0035] 所述编程逻辑区(PL区)包括访问控制器,所述访问控制器包括DMA控制器、定时器和发送缓存器;所述发送缓存器与DMA控制器通信连接,所述定时器与发送缓存器通信连接;所述NIC驱动接口与DMA控制器通信连接,当系统进行初始化操作时,将初始化文件中的NIC时延参数发送至定时器处。在本实施例中
[0036] 更为优选地,所述访问控制器还包括与DMA控制器电性连接的接收缓存器,所述接收缓存器用于将接收到的外部数据通过DMA控制器传输至处理系统区,且接收缓存器通过接收终端的方式,将外部数据直接写入接收缓存器。
[0037] 更为优选地,所述发送缓存器通过DMA控制器采用存储器到外设的方式进行数据传输,所述接收缓存器通过DMA控制器采用外设到存储器的方式进行数据传输。所述访问控制器的数量为两个。
[0038] 更为优选地,所述NIC驱动接口与DMA控制器通过AXI总线通信连接。图3左边PS部分的NIC Driver是linux下的网卡驱动,主要是在操作系统层开启一个数据通道,使EtherCAT的数据经过该通道,通过AXI总线发送给PL部分。
[0039] 具体的,如图3所示,右边PL部分使用FPGA构建了两个以太网介质访问控制器MAC0和MAC1,以及硬件定时器Timer。MAC0和MAC1作为EtherCAT的两个接口,硬件定时器Timer作为网卡驱动NIC Driver的定时中断源以及以太网口延时发送计时器;NIC Drive接收到该IRQ信号后,EtherCAT数据通过AXI总线发送给MAC0和MAC1,直接存储器访问控制器DMA控制器,采用外设到存储器的传输方式,将AXI总线的数据写入TX缓存区;当TX缓存区接收到定时器Timer的IRQ信号后,TX缓存区遵循FIFO先进先出的方式,将数据发送给从站设备;来自PHY的外部数据先经过RX缓存区,通过接收中断的方式,直接写入RX缓存区,遵循FIFO先进先出的方式,通过DMA控制器采用存储器到外设的方式,传送到AXI端。
[0040] 在本实施例中经过AXI总线发送给左边PS部分RX缓存区不需要直接跟AXI通讯,因为中间有个DMA控制器,故而通过DMA控制器将RX存储区的数据发送给AXI总线。且RX接收数据和TX发送数据,是两个完全不同的机制,RX是采用自身的中断接收的方式,也就是外部数据进来,就产生中断直接接收这些数据,但是TX也是靠中断来发送,但是这个中断信号是IRQ给的,IRQ一到,即可触发将数据发送出去。
[0041] 实施例二
[0042] 如图4和图6所示,本实施例提供了一种消除EtherCAT通讯周期抖动的方法,包括如下步骤:
[0043] S1:对主站系统进行初始化操作,并将NIC时延参数写入编程逻辑区的定时器中;在主站系统初始化时,主站系统读取初始化文件参数,并将初始化文件中的NIC时延参数写入定时器中。本实施例中的初始化文件指的是ini文件,在开始时,需要预先将NIC时延参数写入ini文件中以便于后续操作。
[0044] S2:在定时器周期性产生IRQ信号的同时定时器开始计时,定时器产生的IRQ信号传输至NIC驱动接口处以使得将处理系统区的数据发送至编程逻辑区;所述NIC时延参数的数值不处于数据最大发送时间与数据最小发送时间之间。
[0045] S3:当定时器的计时达到NIC时延参数后,定时器产生IRQ信号给发送缓存器,以使得发送缓冲器将其存储的数据发送给从站设备。更为优选地,当发送缓存器接收到IRQ信号后,发送缓存器遵循FIFO先进先出的方式,将数据依照次序发送给从站设备。
[0046] 具体的原理解释如下:如图5所示,T0是AXI总线的数据从TX缓冲区发出的时刻,T4是周期结束时间点,同时T4也是下一周期的起点,因此正常Circle time=|T4-T0|,或者|T8-T4|。但是由于操作系统不稳定的原因,导致数据到达TX缓冲区的时刻是不稳定的,从而导致数据从TX缓冲区发出时刻也是不稳定的。存在抖动的情况下,假设数据发送的最小时刻是T1,最大是时刻T2,此时最小circle time=|T5-T2|,最大circle time=|T6-T1|,很明显这两个circle time都是跟正常circle time存在明显抖动,但是可以发现|T7-T3|是正常circle time,无抖动的,因为这里在MAC设置了NIC shift延时参数T3。进而可以发现本实施例中所述的NIC时延参数的数值不处于数据最大发送时间与数据最小发送时间之间,也即是指T3不处于T1—T2之间或者T7不处于T5—T6之间。这样保证了EtherCAT主站数据每次从TX缓冲区发出来的的时间点都是相同的,相当于把最小抖动T1和最大抖动T2给消除了,所以保证了circle time的稳定,消除了抖动。
[0047] NIC shift是硬件定时器timer的IRQ发送延时时间参数,在系统的初始化文件ini文件中设置。在主站初始化时,主站通过软件去读取ini文件参数,将ini文件中的NIC shift参数写给PL部分的Timer定时器,Timer会周期性的产生IRQ信号通知NIC Driver把数据通过AXI总线发送给PL部分,PL部分的DMA控制器将AXI数据发送到TX缓存区等待发送,Timer产生NIC Driver的IRQ信号的同时也计时开始,当计时到达NIC shift设置的时间后,Timer产生IRQ信号给TX缓存区,将缓存区的数据发送给从站;由于消除了EtherCAT通讯周期的抖动,提高EtherCAT设备的性能。
[0048] 本发明的消除EtherCAT通讯周期抖动的方法通过设置NIC时延参数来消除通讯抖动,保证了EtherCAT主站数据每次从发送缓冲器发出来的时间点都是相同的,避免出现每次发送主站时间点存在不一样的情况,增加了通讯的稳定性。
[0049] 上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈