一种交换机时钟自动纠偏方法与流程

文档序号:12490829阅读:548来源:国知局
一种交换机时钟自动纠偏方法与流程

本发明涉及交换机时钟校准领域,具体涉及一种交换机时钟自动纠偏方法。



背景技术:

交换机是高速率通信设备,对时钟精度要求很高,生产时所使用的晶振器件对于设备时钟精度有直接影响,直接测量晶振器件的偏差需要专业设备,操作成本高,生产现场并不方便实施。

申请号为200910061657.8的发明专利,公开了一种现场总线的时间同步方法,包括主站实施过程和从站实施过程。在每个通信周期中,主站将上一个周期的帧发送时刻和帧接收时刻之差以及本数据帧的发送时刻发送给环形网络中。各从站根据二个周期接收数据帧的时间差计算出主站数据帧到本单元的延时时间,再加上主站本数据帧的发送时刻,计算出本站时钟时间,实现时钟同步。这种方法的缺点是网络时钟校验依赖于主站时钟,从站是被动接收时钟,不支持网络设备之间的互相校准。



技术实现要素:

针对现有技术中存在的问题,本发明的目的在于提供一种交换机时钟自动纠偏方法,其通过软件配置实施这种方式无需额外硬件改造,即可将晶振校准精度从50ppm提高到5ppm,在生产阶段或应用现场都可通过软件配置实施,具有很好的灵活性。

为实现上述目的,本发明采用以下技术方案:

一种交换机时钟自动纠偏方法,所述方法包括如下步骤:

1)使用N台交换机组成环网,设置每台交换机依次发送环网时间测量报文,记录报文始发时间,该报文的TTL初始值为255;

2)交换机在首次发送环网时间测量报文之前,先设置ACL规则,使自身发出的环网时间测量报文绕回当前交换机时TTL减1转发,对于其他交换机发出的环网时间测量报文则转发并使TTL值保持不变;

3)设置其中一台交换机为主交换机M1,其余交换机为从交换机S2-SN。M1首先发出环配置检测报文Rd,Rd报文会进入S2交换机并上送CPU,CPU接收报文之后,在报文Rd附加自身MAC地址并从另一端口发出修改后的Rd报文;该Rd报文进入S3交换机,S3交换机进行与S2交换机一样的处理,再将修改后的Rd报文发给S4交换机,依次环绕整个交换机网络,Rd报文最终绕回到始发交换机M1,M1接收Rd报文并记录环网所有从交换机的MAC地址;

4)M1发出环网时间测量报文Rp1并记录报文始发时间Tps1,Rp1报文会进入S2交换机并直接从另一端口发出Rp1报文;该Rp1报文进入S3交换机,S3交换机进行直接转发处理,Rp1报文依次环绕整个交换机网络,Rp1报文最终绕回到始发交换机M1,M1接收Rp1报文并分析TTL值,如果TTL>1,则TTL值减1并将Rp1报文从另一端口发出,如果TTL=1,则将Rp报文上送CPU并停止转发,同时记录接收时间Tpe1;以M1交换机时钟为基准测量得到的环网转发时间Tm1=Tpe1-Tps1;M1重复M次上述性能测试,得到M组环网转发时间(Tm1_1、Tm1_2、...Tm1_M),计算环网转发时间均值Tm1av:

Tm1av=(Tm1_1+Tm1_2+...Tm1_M)/M;

5)M1发出环性能检测通知报文Rn2给S2交换机,S2交换机接收到Rn2报文之后,发出环网时间测量报文Rp2并记录报文始发时间Tps2,Rp2报文会进入S3交换机并直接从另一端口发出Rp2报文;Rp2报文依次环绕整个交换机网络,Rp2报文最终绕回到始发交换机S2,S2接收Rp2报文并记录接收时间Tpe2;以S2交换机时钟为基准测量得到的环网转发时间Ts2=Tpe2-Tps2;S2重复X次上述性能测试,得到X组环网转发时间Ts2_1、Ts2_2、...Ts2_X,计算环网转发时间均值Ts2av:

Ts2av=(Ts2_1+Ts2_2+...Ts2_X)/X;

S2交换机将Ts2av值通过环性能检测结果报文Rr2发送给M1交换机,M1交换机记录Ts2av值;

6)M1依次发出环性能检测通知报文Rn给从交换机S3-SN,从交换机S3-SN接收到发给自身的环性能检测通知报文Rn之后,执行步骤5)中S2交换机同样的动作;M1交换机记录环网每台交换机得到的环网转发时间均值:Tm1av、Ts2av、Ts3av、...、TsNav;

7)计算环网转发时间期望值Tu:

Tu=(Tm1av+Ts2av+Ts3av+...TsNav)/N;

M1把环网转发时间期望值Tu通过Rt报文发给所有从交换机;从交换机Sn接收到Tu值之后,将自身为基准测量环网得到的时间均值Tsnav与Tu进行比较,得到修正系数Tr=Tsnav-Tu;Tr大于0表示自身晶振存在正偏差,Tr小于0表示自身晶振存在负偏差,根据Tr值对时钟计数器进行相应修正。

进一步,N不小于10。

进一步,X不小于10。

本发明具有以下有益技术效果:

本申请的自动纠偏方法通过借助通用交换芯片的良好时延特性,在实际网络环境中构造一段虚拟时间Ta(总环绕时间),网络上任意一台设备都可通过同样手段复制得到同样的虚拟时间Ta;各设备以各自的晶振来测量虚拟时间Ta,然后汇总测量结果,从而可以分析比较每台设备的晶振偏差情况,可以按照预先约定的基准对晶振补偿修正。通过这种方式无需额外硬件改造,即可将晶振校准精度从±50ppm提高到±5ppm,在生产阶段或应用现场都可通过软件配置实施,具有很好的灵活性。

附图说明

图1为本发明实施例的组网示意图;

图2为本发明的Rp报文经过从交换机示意图;

图3为本发明的Rp报文始发及转发示意图。

具体实施方式

下面,参考附图,对本发明进行更全面的说明,附图中示出了本发明的示例性实施例。然而,本发明可以体现为多种不同形式,并不应理解为局限于这里叙述的示例性实施例。而是,提供这些实施例,从而使本发明全面和完整,并将本发明的范围完全地传达给本领域的普通技术人员。

如图1-3所示,该实施例中使用10台交换机组成环网,设置每台交换机依次发送环网时间测量报文,记录报文始发时间,该报文的TTL(time to live)初始值为255,TTL是普通IP报文都有的一个生存时限值,报文经过一个交换机执行三层转发,TTL值就会减1,TTL值减至1时则不再被转发而是将报文上送CPU处理。正常情况下,一个普通IP报文经过254次交换机三层转发之后,将停止转发并被上送CPU处理,但是通过使用交换机访问控制列表(ACL)功能,可以设置特定报文经过交换机三层转发时TTL值是否减1。交换机在首次发送环网时间测量报文之前,先设置ACL规则,使自身发出的环网时间测量报文绕回当前交换机时TTL减1转发,对于其他交换机发出的环网时间测量报文则转发并使TTL值保持不变。这样,环网时间测量报文每绕环一遍,时间检测报文TTL值减1,时间检测报文TTL初始值为255,当时间检测报文TTL值递减至等于1时,该报文终止转发并由始发交换机记录环网转发时间;每台交换机完成10次时间测量之后,发出本交换机测量结果通告报文给环网主交换机;所有交换机依次完成时间测量并发送测量结果通告报文。主交换机收集10台交换机时间测量结果,计算数学期望(均值),以均值为基准,各台交换机根据自身测量结果与基准值的偏差,设定并存储晶振补偿系数。

设置其中一台交换机为主交换机M1,其余交换机为从交换机S2-S10。M1首先发出环配置检测报文Rd,Rd报文会进入S2交换机并上送CPU,CPU接收报文之后,在报文Rd附加自身MAC地址并从另一端口发出修改后的Rd报文(如图2);该Rd报文进入S3交换机,S3交换机进行类似S2交换机的处理,再将修改后的Rd报文发给S4交换机,依次环绕整个交换机网络,Rd报文最终绕回到始发交换机M1,M1接收Rd报文并记录环网所有从交换机的MAC地址。

M1发出环网时间测量报文Rp1并记录报文始发时间Tps1,Rp1报文会进入S2交换机并直接从另一端口发出Rp1报文(如图3);该Rp1报文进入S3交换机,S3交换机进行直接转发处理,Rp1报文依次环绕整个交换机网络,Rp1报文最终绕回到始发交换机M1,M1接收Rp1报文并分析TTL值,如果TTL>1,则TTL值减1并将Rp1报文从另一端口发出,如果TTL=1,则将Rp报文上送CPU并停止转发,同时记录接收时间Tpe1。以M1交换机时钟为基准测量得到的环网转发时间Tm1=Tpe1-Tps1;M1重复10次上述性能测试,得到10组环网转发时间(Tm1_1、Tm1_2、...Tm1_10),计算环网转发时间均值Tm1av:

Tm1av=(Tm1_1+Tm1_2+...Tm1_10)/10;

M1发出环性能检测通知报文Rn2给S2交换机,S2交换机接收到Rn2报文之后,发出环网时间测量报文Rp2并记录报文始发时间Tps2,Rp2报文会进入S3交换机并直接从另一端口发出Rp2报文(如图3);该Rp2报文进入S4交换机,S4交换机进行直接转发处理,Rp2报文依次环绕整个交换机网络,Rp2报文最终绕回到始发交换机S2,S2接收Rp2报文并记录接收时间Tpe2。以S2交换机时钟为基准测量得到的环网转发时间Ts2=Tpe2-Tps2;S2重复10次上述性能测试,得到10组环网转发时间(Ts2_1、Ts2_2、...Ts2_10),计算环网转发时间均值Ts2av:

Ts2av=(Ts2_1+Ts2_2+...Ts2_10)/10;

S2交换机将Ts2av值通过环性能检测结果报文Rr2发送给M1交换机,M1交换机记录Ts2av值。

M1依次发出环性能检测通知报文Rn给各个从交换机,各从交换机接收到发给自身的环性能检测通知报文Rn之后,执行上述S2交换机类似动作。

M1交换机记录环网每台交换机得到的环网转发时间均值:Tm1av、Ts2av、Ts3av、...、Ts10av。

每台交换机时钟基准偏差取决于晶振偏差,晶振偏差分布服从正态分布,因此,环网转发时间均值(Tm1av、Ts3av、Ts4av、...、Ts10av)将呈现近似正态分布,计算数学期望值Tu:

Tu=(Tm1av+Ts2av+Ts3av+...Ts10av)/10

M1把环网转发时间期望值Tu通过Rt报文发给所有从交换机。从交换机Sn接收到Tu值之后,将自身为基准测量环网得到的时间均值Tsnav与Tu进行比较,得到修正系数Tr=Tsnav-Tu;Tr大于0表示自身晶振存在正偏差,Tr小于0表示自身晶振存在负偏差,可根据Tr值对时钟计数器进行相应修正。

时间检测报文通过交换芯片转发,交换芯片转发时延通常在10us,时延偏差大约在±0.1us;经过254遍绕环转发,每趟绕环转发都遍历10台设备中转,总的绕环时间大约在25.4ms;假设晶振偏差是±50ppm,则总环绕时间偏差在±1.25us左右,通过CPU时钟计数器,可以有效识别环绕偏差时间并进行补偿修正。

以上采用10台交换机组成环网,每个交换机重复10次测量环网转发时间只是一个示例,更多数量交换机组网,每个交换机重复测量次数更多,效果更好。

本发明通过借助通用芯片的良好时延特性,在实际网络环境中构造一段虚拟时间Ta(总环绕时间),网络上任意一台设备都可通过同样手段复制得到同样的虚拟时间Ta;各设备以各自的晶振来测量虚拟时间Ta,然后汇总测量结果,从而可以分析比较每台设备的晶振偏差情况,可以按照预先约定的基准对晶振补偿修正。通过这种方式无需额外硬件改造,即可将晶振校准精度从±50ppm提高到±5ppm,在生产阶段或应用现场都可通过软件配置实施,具有很好的灵活性。

上面所述只是为了说明本发明,应该理解为本发明并不局限于以上实施例,符合本发明思想的各种变通形式均在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1