一种工业以太网时钟同步方法及系统与流程

文档序号:13682515阅读:207来源:国知局
技术领域本发明属于以太网通讯技术领域,更具体地,涉及一种工业以太网节点时钟同步方法及系统。

背景技术:
工业以太网由传统的商用以太网改进而成,可以利用以太网的丰富软硬件资源进行节点设备的开发。由于以太网采用的是CSDM/CD的介质访问控制机制,各节点时钟不同步,各节点收到网络数据的时间并不相同,其本地时钟也不尽相同。对于工业现场设备之间的高精度时钟同步需求,采用网络设备间的分布式时钟同步技术来满足,2003年发布的IEEE1588协议确定了网络节点之间的时钟同步规范。EtherCAT工业以太网基于IEEE1588时钟协议,采用EtherCAT分布式时钟同步方法,利用传输延时测量、系统时间偏差补偿和时钟漂移补偿,对各个从站节点的时钟进行同步,具体如下:(1)通过系统拓扑结构以及接口类型计算从站之间的延时,推导出各个从站的偏移量,并将偏移量和延时写入相应的寄存器中完成初步延时和偏移量矫正;(2)通过发送20000次EtherCAT的“读多写”(AutoIncrementReadMultipleWrite)帧完成漂移矫正;完成对表操作,时钟达到同步。EtherCAT分布式时钟同步方法具有以下特点:将延时和偏移量在下次重新计算前视为定值;为了满足不同晶振的对表需求,将“读多写”帧发送的次数定为20000次。延时包括线传输延时和设备延时,网络延时为定值,设备延时存在一个物理层芯片(PHY)周期的误差;而20000次的“读多写”帧虽然能保证各从站完成漂移补偿,却占用了大量的线上资源,因此具有以下缺陷:(1)矫正之后的时钟精度不够高;(2)时钟同步过程中的对表流程繁琐,占用线上资源多,时间较长。

技术实现要素:
针对现有技术的以上缺陷或改进需求,本发明提供了一种工业以太网时钟同步方法及系统,其目的在于提高现有分布式时钟同步方法的精度。为实现上述目的,按照本发明的一个方面,提供了一种工业以太网时钟同步方法,具体如下:(1)根据从站端口接收的数据帧以及本地晶振时钟,获取从站本地时间戳、数据帧中的“累加片内延时”、参考时钟和数据帧抵达端口时的端口时间戳;其中,“累加片内延时”是指在数据帧到达该从站之前,在经过的所有从站的片内延时的累加和;从站本地时间戳则提取自从站的独立时钟;(2)判断是否采用自动漂移补偿,若是,则进入步骤(3),若否,则进入步骤(4);(3)根据上述参考时钟、累加片内延时、本地时间戳,以及预设的自动漂移因子N,获取间隔了N秒的两个数据帧的参考时钟时间差、本地时钟时间差和累加片内延迟时间差,并据此获得漂移补偿的“补偿周期”和“漂移极性”,进入步骤(5);其中,自动漂移因子N由用户设置,表示用于获取“补偿周期”和“漂移极性”两个数据帧的间隔时间;“补偿周期”是指系统进行漂移补偿的周期,是系统时钟周期的整数倍;“补偿极性”包括正补偿和负补偿;(4)获取用户输入的补偿极性和补偿周期,进入步骤(5);(5)从站在本地时钟计数时,根据补偿极性和补偿周期调整时钟计数,从而完成漂移补偿;进入步骤(6);(6)判断是否采用自动偏移补偿,若是,则进入步骤(7),若否,则进入步骤(8);(7)根据步骤(1)中获得的参考时钟、本地时间戳、累加片内延时,以及预设的自动偏移因子M和帧传输线延时,获取偏移补偿值;其中,自动偏移因子M由用户设置,M为整数,表示偏移补偿需要2M个数据帧;M=0时则不进行偏移补偿;(8)获取用户输入的偏移补偿值,进入步骤(9);(9)从站在下次本地时间计数时加上上述偏移补偿值,完成偏移补偿。优选地,上述工业以太网时钟同步方法,还包括如下步骤:(10)根据步骤(1)中获得的数据帧抵达端口时的端口时间戳,结合数据帧从端口发送时的晶振计数值,获得片内延时;与数据帧经过的所有从站的片内延时进行累加,获得“累加片内延时”;并将该“累加片内延时”写入到数据帧。漂移补偿完成后,所有站点的时钟与参考从站的时钟同步;偏移补偿完成后,所有从站与参考从站的偏移量减至最小;漂移补偿与偏移补偿完成后,时钟同步完成,并且由此数据帧将更新后的累加片内延时传给下一个从站,供其使用;至此,完成全网同步。本发明提供的上述时钟同步方法,漂移补偿与偏移补偿互不影响,两种补偿结合起来对网络线上资源的消耗远小于EtherCAT时钟同步所消耗的线上资源;并且不会因为晶振频率偏差过大导致不同从站在补偿时需要发送的数据帧数量差距过大。优选地,所述步骤(5)中调整时钟计数的方法具体如下:若补偿极性为正补偿,则在从站本地时钟晶振计数达到补偿周期时,将从站本地时钟在原计数基础上加上一个最小时间单位;若补偿极性为负补偿,则在从站本地时钟晶振计数达到补偿周期时,将从站本地时钟在原计数基础上减去一个最小时间单位。优选地,自动偏移因子M的取值为1~15,对应2~32768个数据帧。优选地,上述以太网时钟同步方法中,获得片内延时的方法具体如下:通过PHY端口获得数据帧从PHY发出时的晶振计数值,以及数据帧到达时PHY端口的晶振计数值;上述两个晶振计数值之差与系统晶振周期的乘积,即为片内延时。现有技术中获取系统延时,是通过发送大量数据帧,根据数据帧抵达各端口的时间戳,获取各个从站到参考从站延时的平均值;或者将片内延时作为固定值,结合大量数据帧与数据帧抵达各端口的时间戳获得总的系统延时;本发明提供的时钟同步方法中,将每个从站的总延时分为帧传输线延时(包括线上传输延时和端口传输延时)和片内延时;其中,帧传输线延时为定值,而各片内延时则不是定值;本发明通过数据帧抵达与离开PHY端口的晶振计数值时间,实时获取片内延时,并与数据帧所经过的所有从站的“累加片内延时”相加,获得实时更新的“累加片内延时”;每个从站节点将“累加片内延时”与固定的传输延时相加后作为从站对应的系统延时,可进一步提升时钟同步精度,消除了硬件发帧特性引起的延时误差。优选地,获取漂移补偿周期与漂移补偿极性的方法,具体如下:(3.1)从开启补偿的数据帧获取参考时钟时间戳、累加片内延时、以及本地时间戳;其中,开启补偿的数据帧是指带有时钟同步命令的第一个数据帧;(3.2)根据自动漂移因子N,取延时N秒后从站接收到的第一帧,根据其帧结构以及本地时钟获得参考时钟时间戳、累加片内延时和本地时间戳;(3.3)将上述两个参考时钟时间戳相减,获得参考时钟时间差RD;将上述两个本地时间戳相减,获得本地时钟时间差LD;将两个累加片内延时相减,获得片内延时差DD;漂移补偿周期DriftValue=(RD)/(LD–RD–DD);漂移补偿极性根据(LD–RD–DD)的正负确定,(LD–RD–DD)的值为正时,漂移补偿极性为负,(LD–RD–DD)的值为负时,漂移补偿极性为正;上述漂移补偿周期的计算方法,将片内延时差减去,消除了由于片内延时的不稳定导致的时钟同步误差;而(LD–RD–DD)值的正负,表明了参考时钟与本地时钟到底哪个更快,若(LD–RD–DD)值为正,表明从站时钟快,则漂移补偿极性为负,在每次漂移补偿周期到来时,应该对从站时钟做负补偿;反之,若(LD–RD–DD)值为负,表明参考时钟快,则漂移补偿极性为正,在每次漂移补偿周期到来时,则应该对从站时钟做正补偿。现有的EtherCAT漂移补偿通过控制环系统,结合“读多写”帧完成时钟同步;由于各从站的晶振不同,时钟漂移幅度不同;若时钟漂移幅度过大,用此方法需要发送大量数据帧,以保证所有从站完成漂移补偿,会消耗大量的线上资源;而本发明提供的漂移补偿方法,只需要发送两个数据帧,线上资源消耗量远小于EtherCAT。优选地,获取偏移补偿值的方法,具体如下:(7.1)由主站发出用于偏移补偿的2M个数据帧;其中,用于偏移补偿的帧数根据自动偏移因子M确定;(7.2)获取上述各数据帧对应的参考时钟时间戳RefTime、累加片内延时Delay片内和本地时间戳LocalTime;结合系统初始化时获得的帧传输线延时Delay传输,获取各数据帧的时间偏移Offset=RefTime+Delay片内+Delay传输–LocalTime;(7.3)将各数据帧的时间偏移作为纵坐标,对应的数据帧的序号作为横坐标,形成偏移曲线;将该偏移曲线按数据帧的数量平均分为两段,获取两段曲线的时间偏移量平均值t1和t2;偏移补偿值为现有的技术中,EtherCAT将同步时钟初始化时的系统总延时与时钟偏移的和作为一个偏移补偿值,是一个定值,不会根据网络情况调整,未考虑到各从站的片内延时变化;而本发明提供的上述方法,通过大量数据帧的参考时钟时间戳、累加片内延时和本地时间戳数据,获取当前需要补偿的偏移补偿值;可根据网络状况实时调整。为实现本发明目的,按照本发明的另一个方面,提供了一种工业以太网时钟同步系统,包括本地时钟模块、物理层芯片模块、漂移补偿模块和偏移补偿模块;其中,本地时钟模块用于记录数据帧抵达从站端口的时间,获得参考时钟时间戳、本地时间戳,以及数据帧经过上游从站后累加的片内延时;物理层芯片模块用于根据数据帧经抵达从站端口的时间获取片内延时,并将片内延时实时累加后插入到收到的数据帧中,为下一个从站节点提供其前面所有从站的累加片内延时;漂移补偿模块用于根据参考时钟、累加片内延时和本地时间戳数据,以及预设的自动漂移因子N完成漂移补偿;偏移补偿模块用于根据参考时钟时间戳、本地时间戳、累加片内延时,以及预设的自动偏移因子M和从站线上传输延时完成偏移补偿;优选的,漂移补偿模块具有自动和手动两种方式;若采用自动方式,则需要输入设置参数,从站根据参数与输入的时间戳数据,计算得到漂移补偿周期和漂移补偿极性;若采用手动方式,则需用户输入补偿周期和极性;模块根据输入的补偿周期和极性完成漂移补偿。优选的,偏移补偿模块具有自动和手动两种方式;若采用自动方式,需要输入设置参数,从站根据参数与输入的时间戳数据,计算得到偏移补偿量;若采用手动方式,则需要用户输入偏移补偿量,根据用户输入的偏移补偿量完成偏移补偿。总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(1)本发明提供的工业以太网时钟同步方法,仅通过两帧数据即可获得漂移补偿周期与补偿极性;获取准确的漂移补偿参数的线上代价极大的小于现有技术的时钟同步方法所付出的线上代价;(2)本发明提供的工业以太网时钟同步方法,其漂移补偿周期的计算方法,将片内延时差减去,消除了由于片内延时的不稳定导致的时钟同步误差,提高了时钟同步的精度;(3)本发明提供的工业以太网时钟同步方法,将片内延时视为实时可变,并通过PHY获得准确的片内延时,从而消除了现有技术中,由于PHY硬件特性产生的误差;(4)本发明提供的工业以太网时钟同步方法,通过大量数据帧的参考时钟时间戳、累加片内延时和本地时间戳数据,获取当前需要补偿的偏移补偿值;该偏移补偿值可根据网络状况实时调整,使得无论从站节点的初始偏移位置在哪、偏移的速度快慢,都能在设定的补偿帧数之后,使偏移量得到补偿,且补偿结果良好;(5)本发明提供的工业以太网时钟同步系统,由于全部设计是基于IEEE1588标准之上,仅利用现有的资源,巧加设计,创新算法,完成时钟同步;因此在实现该时钟同步方面,不需要专用芯片,实现方便。附图说明图1是本发明提供的工业以太网节点时钟同步系统的模块框图;图2是本发明提供的工业以太网节点时钟同步方法的流程图。图3是本发明实施例的系统连接示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本实施例提供的时钟同步系统与方法,所基于的网络环境如下:主站采用Ubuntu14.04操作系统PC机;主站采用EtherCAT系统;从站节点则采用由EtherCAT使用EK1100、EL3162、EL1008、EK4132标准的4个从站组成的从站系统;实施例提供的一种工业以太网时钟同步系统,基于FPGA实现;其本地时钟模块、物理层芯片模块、漂移补偿模块和偏移补偿模块均集成于一颗FPGA内,其功能框图如图1所示;本地时钟模块根据接收的时钟脉冲和数据帧,获得本地时间戳、参考时钟时间戳、累加片内延时、数据帧抵达端口时间戳;漂移补偿模块根据应用层设置的自动漂移因子以及本地时间戳、参考时钟时间戳和累加片内延时,获取漂移补偿周期和漂移补偿极性,并根据漂移补偿周期和漂移补偿极性对从站本地时钟进行漂移补偿;偏移补偿模块根据自动偏移因子和本地时间戳、参考时钟时间戳和累加片内延时,获取偏移补偿值,并根据偏移补偿值对从站本地时钟进行偏移补偿;物理层芯片模块根据数据帧抵达从站端口的时间戳,以及数据帧经过上游各从站所累加的片内延时,获取新的累加片内延时,并将新的累加片内延时插入到输出数据帧中。采用本实施例提供的上述工业以太网时钟同步系统,对上述网络进行以太网时钟同步的方法,其流程如图2所示,具体如下:(1)主站向各从站发送数据帧,开启时钟同步;该数据帧内包括自动漂移因子N,和自动偏移因子M;本实施例里,自动漂移因子N取3,自动偏移因子M取7;从站端口根据接收到的数据帧,获取从站本地时间戳、数据帧中的“累加片内延时”、参考时钟和数据帧抵达端口时记录的端口时间戳;(2)根据上述参考时钟、累加片内延时、本地时间戳,以及自动漂移因子N,得到漂移补偿的“补偿周期”和“漂移极性”,从站1~3的补偿周期依次为5436、4239、2896;从站1~3漂移极性分别为负、负、正;(3)第1~3号从站根据补偿极性和补偿周期调整时钟计数;在本实施例中,从站采用125MHz频率、20PPM的晶振作为系统晶振;对1号从站而言,漂移补偿极性为负补偿;在第1号从站的本地时钟晶振计数达到补偿周期值5436时,将该从站本地时钟计时规则由+8ns,调整为+7ns,完成1号从站的漂移补偿;对2号从站而言,漂移补偿极性为负补偿;在第2号从站的本地时钟晶振计数达到补偿周期值4239时,将该从站本地时钟计时规则由+8ns,调整为+7ns,完成2号从站的漂移补偿;对3号从站而言,漂移补偿极性为正补偿;在第3号从站的本地时钟晶振计数达到补偿周期值2896时,将该从站本地时钟计时规则由+8ns,调整为+9ns,完成3号从站的漂移补偿;进入步骤(4);(4)根据步骤(1)中获得的参考时钟、本地时间戳、累加片内延时,以及自动偏移因子M和帧传输线延时,获取偏移补偿值;对3号从站而言,帧传输线延时为1710ns,偏移补偿值为16944ns;(5)当从站在下次本地时间计时时,加上上述偏移补偿值,完成偏移补偿,进入步骤(6);对3号从站而言,在下次本地时间计时时加上偏移补偿值16944;(6)根据步骤(1)中获得的数据帧抵达从站端口的时间戳,结合数据帧从端口发送时的晶振计数值,获得片内延时,与数据帧经过的所有从站的片内延时进行累加,获得“累加片内延时”;并将该“累加片内延时”写入到数据帧,发送到下游从站;漂移补偿和偏移补偿完成之后,时钟同步完成;完成时钟同步处理之后,对时钟同步的结果进行测试,测试结果与采用EtherCAT进行时钟同步处理的结果对比,参数对比结果具体如下表1所列:表1参数对比表从表1中可以对比得出,本发明提供的时钟同步方法,与EtherCAT时钟同步方法,在对表精度、线上资源消耗以及实现所需硬件资源方面具有明显优势;实施例中,自动偏移因子为7,完成同步初始化所需的数据帧在300帧以内,实施例提供的时钟同步方法缩短了同步时间,减少了线上资源消耗;其中,同步初始化包括传输延时计算、漂移补偿和偏移补偿;完成同步初始化后,在系统正常工作时,各从站的系统时间误差在4ns以内,而EtherCAT从站的系统时间误差在20~40ns,相比于现有EtherCAT时钟同步方法,实施例提供的时钟同步方法将时钟同步的精度提高了5~10倍。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1