高可靠性时间敏感网络时间同步方法及系统与流程

专利2022-05-09  60

1.本发明涉及时间敏感网络领域时间同步领域,及基于以太网的时间敏感网络时间同步域的建立,多同步域维持以及故障设备检测方法领域,尤其涉及一种高可靠性时间敏感网络时间同步方法及系统。
背景技术
::2.以太网最早是在二十世纪七十年代开发出来的一套局域网技术,随着该技术的不断发展,其通信速率高,价格低廉,稳定可靠的特性,使得以太网迅速成为了民用领域的一种重要的通信手段但是随着进一步发展,以及新一轮工业革命的推进,it(informationtechnology,即信息技术)与ot(operationaltechnology,即操作技术)融合成为大势所趋,同时也成为支持智能制造的核心。3.时间敏感网络(tsn:timesensitivenetwork)由ieee802.1工作组定义,旨在实现高度确定性的服务和冗余网络操作,并用于控制以太网网络中的其他对延迟敏感的流量。这些标准通过合理安排可以满足更严格的网络性能要求(如有限制延迟、延迟变化和数据包丢失降至最低)的。而控制应用(如汽车、工业和越来越多的5g通信)具有严格的确定性要求,这些迫切的要求促使tsn标准的进一步发展。4.ieee802.1as标准规定了用于确保满足跨时间网络的时间敏感应用程序(例如音频,视频和时间敏感控制流量)的同步要求。其内容包括在网络正常运行或添加、移除或重配置网络组件和网络故障时对时间同步机制的维护。该标准使系统能够满足对时间敏感的应用程序对时间抖动,漂移和时间同步要求,包括涉及将多个流传送到多个终端站的应用程序。整体上ieee802.1as标准包括用于主从时钟角色选举的最佳主时钟算法以及用于时钟同步的链路延时测算算法,链路频率偏移测算算法。5.现有技术实现了ieee802.1as中规定给的时间同步技术,其中专利号cn109818702a、
专利名称::为:一种ieee802.1as时间同步功能实现系统以及实现方法专利公开了一种ieee802.1as时间同步功能实现系统以及实现方法,其通过fpga实现了报文的收发,报文的解析以及时间戳的生成,时钟偏差的计算。专利号cn112260791a、
专利名称::为:一种改进的时钟同步超主时钟热备方法专利公开了一种在ieee802.1as‑rev中所述的热备时钟思想基础上,通过一种新的子域划分和冗余超主时钟选取的办法,对时间同步网络内发生的异常进行快速甄别和处理。6.目前针对时间敏感网络ieee802.1as时间同步协议,研究及实现大都采用单一时钟域严格主从式的时间同步方法。单一时钟域会导致时间同步信息传递方向单一,一旦中继节点失步会导致需要一定时间才能完成再次收敛,收敛过程将有可能引入航电网络,工业网络中难以容忍的时间抖动。严格的主从式时间同步方法会使得ieee802.1as中所述的grandmasterclock时钟的质量以及连通度特性变得重要,而在某些控制系统中需要分布式的时间同步方法。最后ieee802.1钟没有给出对网络设备时间同步故障的检测方法,一旦某个靠近grandmasterclock的中继节点发生故障,将会影响与其相连的几乎所有下游节点。技术实现要素:7.本发明的目的就是提供一种高可靠性时间敏感网络时间同步方法及系统。8.本发明解决其技术问题,采用的技术方案是:9.本发明首先提出一种高可靠性时间敏感网络时间同步方法,包括如下步骤:10.步骤1.设备初始化,加载设备状态控制单元所需参数;11.步骤2.开启状态控制逻辑单元;12.步骤3.按照ieee802.1as标准生成第一棵时钟树;13.步骤4.根据虚拟主时钟算法生成多棵时钟树;14.步骤5.网络正常运行相关业务,各个设备利用故障自检算法自检。15.其次,本发明还提出一种高可靠性时间敏感网络时间同步系统,包括:16.标准时间同步单元,基于ieee802.1as标准,并且根据配置参数完成ieee802.1as标准中规定的主从时钟选举算法和时间同步算法,以及针对特定物理链路的频率偏移计算;17.虚拟主时钟算法单元,用于根据设备各自的systemid参数,以及gptp时间域0中各个设备receivedpathtrace数组中的信息,为各个设备生成用于其他gptp时钟域的systemid参数,将其他gptptimedomain根据ieee802.1as标准选举出的主时钟称为虚拟主时钟;18.时钟域参数保存单元,用于保存初始化配置用于gptptimedomain0的systemid参数,并保存vmcau单元生成的用于其他gptptimedomain的systemid参数;19.本地时钟仲裁单元,包括多个时钟域时钟计时器,用于记录每个时钟域通过ieee802.1as标准后获得的当前时间;还包括一个多时钟域时钟仲裁单元,用于仲裁来自各个时钟域的时间信息,并计算出当前的本地时钟;还包括一个本地时钟单元,用于记录本地时钟,该值应为多个时钟域时钟计时器计时器平均后仲裁平均后的值;20.故障自检测单元,用于通过故障自检算法进行自检。21.进一步的是,所述标准时间同步单元,其在运行时包括如下步骤:22.步骤101.初始化本地时钟单元,将本地时钟值初始化为0,加载时钟域参数保存单元中gptptimedomain0的systemid参数信息到标准时间同步单元;23.步骤102.根据ieee802.1as中规定的最佳主时钟选举算法,建立gptptimedomain0中的时钟树,并根据ieee802.1as中规定的时间同步算法完成时间同步以及端到端直连链路频率偏差的计算。24.进一步的是,所述虚拟主时钟算法单元,其在运行时包括如下步骤:25.步骤201.根据多时钟域参数生成算法,为该设备生成用于各个不同时钟域的systemid参数;26.步骤202.该设备根据生成的多个systemid参数,按照802.1as标准中规定给的最佳主时钟算法,建立多个时钟域。27.进一步的是,步骤201具体包括如下步骤:28.步骤2011.各个节点计算gptptimedomain0对应的receivedpathtrace数组中记录的clockidentities的个数,记为gtd0.receivedpathtrace.length,如果该个数大于等于allow_change2virtual_length,且当前节点在其他gptptimedomain中非masterclock,则将gptptimedomain0中的systemid参数,直接用于gptptimedomain1的systemid参数;29.步骤2012.若gdt0.receivedpathtrace.length小于allow_change2virtual_length,或gdt0.receivedpathtrace.length大于allow_change2virtual_length但当前节点在其他gptptimedomain中为masterclock,则将gptptimedomain0中的systemid参数,拷贝给gptptimedomain1的systemid参数,并将priority1值改为255。30.进一步的是,步骤202具体包括如下步骤:31.步骤2021.当完成gptptimedomain0时间同步后,等待stable_time_out时间,如果维持stable_time_out设备各个端口的状态都没有发生变化,则认为当前时钟域gptptimedomain0稳定;32.步骤2022.利用多时钟域参数生成算法,为该设备生成用于gptptimedomainn 1的systemid参数;33.步骤2023.当完成gptptimedomainn 1的systemid时间同步后,等待stable_time_out时间,重复步骤2021‑步骤2023,直到建立gptp_td_num个gptptimedomain,其中,n的初始值为0,代表gptptimedomain0;34.步骤2024.将不同gptptimedomain的systemid参数保存在时钟域参数保存单元中。35.进一步的是,所述时钟域参数保存单元中参数的保存格式为:gptptimedomain(n).sequence,gptptimedomain(n).priority,gptptimedomain(n).clockclass,gptptimedomain(n).clockaccuracy,gptptimedomain(n).offsetscaledlogvariance,gptptimedomain(n).priority2以及gptptimedomain(n).clockidentity,其中,(n)表示第n个gptp时钟域。36.进一步的是,所述本地时钟仲裁单元,其在运行时包括如下步骤:37.步骤301.多个时钟域建立完毕后计算本地时钟local_clock=(tdt0 ... 第gptp_td_num个tdt/gptp_td_num),每个设备为每个时钟域维护ieee802.1as中规定的不同clockmaster实体以及localclock实体,其中tdt表示时钟域时钟计时器;38.步骤302.此后周期性的计算n个时钟域的时钟与本地时钟的偏差,计算方法为δ.i=tdt.i‑local_clock;39.步骤303.丢弃偏差δ.i大于delta_time_div_threshold的时钟,将剩下的时间求平均值作为实际本地时钟;40.步骤304.当需要认为的改变gptptimedomain0的grandmasterclock本地时钟时,通过使用sync报文controlfield字段进行指示,在这种情况下,不改变现有的多个gptptimedomain的结构,直接将来自gptptimedomain0的sync报文中的时间信息设置为各个设备的local_clock以及各个时钟域时钟计时器的值。41.进一步的是,所述故障自检测单元,其在运行时包括如下步骤:42.步骤401.每个设备为每个gptptimedomain维护一个sync_err_count计数器,每出现一次syncmessage缺失事件,该计数器值加一;43.步骤402.连续出现sync_massage_lack_max次syncmessage缺失事件或者连续一段时间,某个timedomain的时钟偏差均超过delta_time_div_threshold时,通过当前设备的slaveport发送一个async_req报文;44.步骤403.设备故障自检单元接收到async_req报文后判断自身是否发生失步,如果当前设备没有失步,则通过masterport发送sync_ack报文,所述失步单独指某单gptptimedomain失步,即某个gptptimedomain.tdt‑local_clock>delta_time_div_threshold,或者是指节点完全失步,即gptptimedomain.tdt‑local_clock>delta_time_div_threshold;45.步骤404.如果为节点完全失步,则若该节点为中继节点,则该节点停止发送数据,并向上层软件报告硬件失步故障,若该节点为virtual_clock_master节点,则会广播current_virtual_clock_master_async报文,同时告知上层软件硬件失步故障,并重新在该gptptimedomain选举新的virtual_clock_master节点,若该节点为gptptimedomain0的grandmasterclock,则表示grandmasterclock节点失效;46.步骤405.如果为单gptptimedomain失步,则当前设备会继续通过slaveport发送async_req报文,直到接收到sync_ack报文,或者接收到current_virtual_clock_master_async报文,同时告知上层软件硬件关于某gptptimedomain失步故障。47.本发明的有益效果是,通过上述高可靠性时间敏感网络时间同步方法及系统,首先,通过在网络中同时运行多个时钟域,保证了网络中每台设备都会接收到至少来自三个方向的时间信息,可以缓解单一时钟域失效后进行重新选举的过程中引入的时间抖动;同时,能够自动生成多个时钟域;其次,在兼容ieee802.1as基本协议状态机的基础上,通过对三个时钟域的时间信息进行仲裁,削弱对单一主时钟的要求,将原有主从同步方式削弱为近似分布式时钟同步的方式,提高了系统的鲁棒性;最后,当网络中出现设备失步时,能够鉴别故障设备。附图说明48.图1为本发明中高可靠性时间敏感网络时间同步方法的流程图;49.图2为本发明的多时钟域参数生成算法流程图;50.图3为本发明的虚拟主时钟算法单元流程图;51.图4为本发明的时钟域参数保存单元中数据保存格式图;52.图5为本发明的本地时钟仲裁单元流程图;53.图6为本发明的故障自检测单元流程图;54.图7为本发明的实施例1中拓扑结构示意图。具体实施方式55.下面结合附图及实施例,详细描述本发明的技术方案。56.本发明首先提出一种高可靠性时间敏感网络时间同步方法,其流程图见图1,其中,该方法包括如下步骤:57.s1.设备初始化,加载设备状态控制单元所需参数;58.s2.开启状态控制逻辑单元;59.s3.按照ieee802.1as标准生成第一棵时钟树;60.s4.根据虚拟主时钟算法生成多棵时钟树;61.s5.网络正常运行相关业务,各个设备利用故障自检算法自检。62.基于此,本发明还提出一种高可靠性时间敏感网络时间同步系统,包括一个标准时间同步单元(stsu:standardtimesynchronizationunit),一个虚拟主时钟算法单元(vmcau:virtualmasterclockalgorithmunit),一个时钟域参数保存单元(tdpsu:timedomainparametersaveunit),一个本地时钟仲裁单元(lcau:localclockarbitraryunit)以及一个故障自检测单元(fscu:failureselfcheckunit)。63.上述系统中,标准时间同步单元(stsu)符合ieee802.1as标准,并且根据配置参数完成ieee802.1as标准中规定的主从时钟选举算法和时间同步算法,以及针对特定物理链路的频率偏移计算。64.这里,标准时间同步单元在运行时可以包括如下步骤:65.s101.初始化本地时钟单元,将本地时钟值初始化为0,加载tdpsu单元中gptptimedomain0的systemid参数信息到stsu单元;66.s102.根据ieee802.1as中规定的最佳主时钟选举算法,建立gptptimedomain0中的时钟树,并根据ieee802.1as中规定的时间同步算法完成时间同步以及端到端直连链路频率偏差的计算。67.具体而言,虚拟主时钟算法单元(vmcau),该单元核心包括多时钟域参数生成算法,如图2所示,以及虚拟主时钟算法,如图3所示,其在运行时基本包括如下步骤:68.s201.根据多时钟域参数生成算法,为该设备生成用于各个不同时钟域的systemid参数;69.s202.根据该设备通过步骤1生成的多个systemid参数,建立多个时钟域。70.具体而言,步骤s201主要包括:71.s2011.各个节点计算gptptimedomain0对应的receivedpathtrace数组中记录的clockidentities的个数,记为gtd0.receivedpathtrace.length,如果该个数大于等于allow_change2virtual_length,且当前节点在其他gptptimedomain中非masterclock,则将gptptimedomain0中的systemid参数,直接用于gptptimedomain1的systemid参数;72.s2012.若gdt0.receivedpathtrace.length小于allow_change2virtual_length,或gdt0.receivedpathtrace.length大于allow_change2virtual_length但当前节点在其他gptptimedomain中为masterclock,则将gptptimedomain0中的systemid参数,拷贝给gptptimedomain1的systemid参数,并将priority1值改为255。73.具体而言,步骤s202主要包括:74.s2021.当完成gptptimedomain0时间同步后,等待stable_time_out时间,如果维持stable_time_out设备各个端口的状态都没有发生变化,则认为当前时钟域gptptimedomain0稳定;75.s2022.利用多时钟域参数生成算法,为该设备生成用于gptptimedomainn 1的systemid参数;76.s2023.当完成gptptimedomainn 1(n的初始值为0,代表gptptimedomain0)的systemid时间同步后,等待stable_time_out时间。重复步骤s2021‑s2023,直到建立gptp_td_num个gptptimedomain;77.s2024.将不同gptptimedomain的systemid参数保存在tdpsu单元中。78.需要指出的是,时钟域参数保存单元(tdpsu),用于保存初始化配置用于gptptimedomain0的systemid参数,并保存vmcau单元生成的用于其他gptptimedomain的systemid参数,时钟域参数保存单元中数据保存格式图4所示。79.并且,本地时钟仲裁单元(lcau),核心包括本地时钟仲裁算法,该过程如图5所示主要步骤为:80.s301.多个时钟域建立完毕后计算本地时钟local_clock=(tdt0 ... tdt.第gptp_td_num个tdt/gptp_td_num),每个设备为每个时钟域维护ieee802.1as中规定的不同clockmaster实体以及localclock实体,其中tdt表示时钟域时钟计时器,全称为timedomaintimer;81.s302.此后周期性的计算n个时钟域的时钟与本地时钟的偏差,计算方法为δ.i=tdt.i‑local_clock;82.s303.丢弃偏差δ.i大于delta_time_div_threshold的时钟,将剩下的时间求平均值作为实际本地时钟;83.s304.当需要认为的改变gptptimedomain0的grandmasterclock本地时钟时,通过使用sync报文controlfield字段进行指示,在这种情况下,不改变现有的多个gptptimedomain,直接将来自gptptimedomain0的sync报文中的时间信息设置为各个设备的local_clock。84.需要说明的是,故障自检测单元(fscu),该单元核心包括故障自检测算法,该自检测算法步骤如图6所示,其在运行时包括如下步骤:85.s401.每个设备为每个gptptimedomain维护一个sync_err_count计数器,每出现一次syncmessage缺失事件,该计数器值加一;86.s402.连续出现sync_massage_lack_max次syncmessage缺失事件或者连续一段时间(div_compute_duar_time),某个timedomain的时钟偏差均超过delta_time_div_threshold时,将会通过当前设备的slaveport发送一个async_req报文;87.s403.设备fscu单元接收到async_req报文后判断自身是否发生失步(失步可以单独指某单gptptimedomain失步,即某个gptptimedomain.tdt‑local_clock>delta_time_div_threshold;也可以指节点完全失步,即gptptimedomain.tdt‑local_clock>delta_time_div_threshold),如果当前设备没有失步,则通过masterport发送sync_ack报文;88.s404.如果为节点完全失步,则若该节点为中继节点,则该节点停止发送数据,并向上层软件报告硬件失步故障,若该节点为virtual_clock_master节点,则会广播current_virtual_clock_master_async报文,同时告知上层软件硬件失步故障,并重新在该gptptimedomain选举新的virtual_clock_master节点,若该节点为gptptimedomain0的grandmasterclock,则表示grandmasterclock节点失效;89.s405.如果为单gptptimedomain失步,则当前设备会继续通过slaveport发送async_req报文,直到接收到sync_ack报文,或者接收到current_virtual_clock_master_async报文,同时告知上层软件硬件关于某gptptimedomain失步故障。90.实施例191.在本实例中,如图7所示共有5个ptprelayinstance,以及3个ptpendinstance。这里,规定第i个ptprelayinsance为pri_i(i∈[1,5]),规定第j个ptpendinstance为pei_j(j∈[1,3])。并且规定pri_i的systemidentity为pri_i_id,其中每一项分别为pri_i_id.priority,pri_i_id.clockclass,pri_i_id.clockaccuracy,pri_i_id.offsetscaledlogvariance,pri_i_id.priority2,pri_i_id.clockidentity。[0092]规定系统中所有的中继实体符合,及用于gptptimedomain0的参数为:[0093]pri_i_id.td0.priority1=255;[0094]pri_i_id.td0.clockclass=255;[0095]pri_i_id.td0.clockaccuracy=0xfe;[0096]pri_i_id.td0.offsetscaledlogvariance=0x436a;[0097]pri_i_id.td0.priority2=247;[0098]pri_i_id.td0.clockidentity=0xacde48_fffe_(n i‑1)16;[0099]并且规定pei_j的systemidentity为pei_j_id,其中每一项分别为pei_j_id.priority,pei_j_id.clockclass,pei_j_id.clockaccuracy,pei_j_id.offsetscaledlogvariance,pei_j_id.priority2,pei_j_id.clockidentity。将pei_j分成三种类型节点,分别为ori_clock_master节点,virtual_clock_master节点以及normal_ptp节点。[0100]需要说明的是,ori_clock_master节点:该节点为通过ieee802.1as标准选举出的domain0的grandmaster节点。[0101]并且,规定系统中的ori_clock_master节点符合,及用于gptptimedomain0的参数为:[0102]pei_j_id.td0.priority1=246;[0103]pei_j_id.td0.clockclass=255;[0104]pei_j_id.td0.clockaccuracy=0xfe;[0105]pei_j_id.td0.offsetscaledlogvariance=0x436a;[0106]pei_j_id.td0.priority2=248;[0107]pei_j_id.td0.clockidentity=0xacde48_fffe_0000;[0108]实际应用时,初始时刻,系统中所有节点广播带有自身systemidentity的announcemassage,通过使用bestmasterclock算法(bmc算法),系统在domain0达成共识,及设备认为pei_1为系统主时钟,其他所有节点均使用来自pei_1中的syncmassage所携带的时钟信息完成时间同步,并且所有节点间端口关系确定。[0109]等待stable_time_out时间后,各个端口的状态稳定成图中gptptimedomain0标注的情况。在该情况下可看到ptpend1为根节点,即gptptimedomain0的grandmasterclock,若认为ptpend1属于第1阶。则ptprelay1,ptprelay2,ptprelay3属于第2阶,ptprelay4,ptprelay5属于第三阶,ptpend2,ptpend3属于第四阶。[0110]本实施例将allow_change2virtual_length设为4。则可以得到用于gptptimedomain1和gptptimedomain2的参数,分别为:[0111]对于gptptimedomain1,除去ptpend2,ptpend3的priority1字段维持246,其他终端节点或者中继节点的priority1字段均为255。[0112]对于gptptimedomain2,根据ieee802.3规定的选举算法可知,gptptimedomain1中的virtualmasterclock应该为ptpend2,故对于gptptimedomain2,除去ptpend3的priority1字段维持246,其他终端节点或者中继节点的priority1字段均为255。[0113]当完成gptptimedomain1以及gptptimedomain1时间同步后,利用三个gptp时钟域的时钟平均值作为初始的localclock值。[0114]在建立三种不同的gptptimedomain的基础上,每个设备为每个时钟域维护不同的clockmaster实体以及localclock实体,计算三个时钟域的时钟偏差,丢弃偏差大于delta_time_div_threshold的时钟,其余两个时间值求平均值作为实际本地时钟。[0115]当gptptimedomain0的masterclock发生人为改变时,通过使用sync报文controlfield字段进行指示,在这种情况下,设备忽略gptptimedomain0与其localclock的时钟偏差,默认以gptptimedomainsync报文中的时间信息为准,直到三个时钟域收敛后再进行仲裁算法。[0116]当三个gptptimedomain均稳定后,每个设备为每个gptptimedomain维护一个sync_err_count计数器。每出现一次syncmessage缺失事件(通过sync_wait_timeout_cnt超时计数器触发该事件,syncmessage周期性发送,当某个timedomainync_wait_timeout_cnt计数值超过sync_wait_timeout值,仍然没有接收到新的syncmessage时人为发生一次syncmessage确实事件)。[0117]连续出现sync_massage_lack_max次syncmessage缺失事件或者连续一段时间div_compute_duar_time,某个gptptimedomain的时钟偏差均超过delta_time_div_threshold时,将会向该设备的上游设备发送一个async_req报文,上游设备接收到该报文后判断自身是否发生失步,并返回对应的报文。[0118]如果为节点完全失步,则若该节点为中继节点,则该节点停止发送数据,并向上层软件报告硬件失步故障。若该节点为virtual_clock_master节点,则会广播current_virtual_clock_master_async消息,同时告知上层软件硬件失步故障。[0119]如果为单timedomain失步,则当前设备会继续向上游发送async_req报文,直到上游设备未发生失步,或者上游设备为失步的virtual_clock_master节点为止。若上游节点未发生失步,则会回应async_ack消息,收到该消息的下游设备,会重启该时钟域状态机,并向软件报告故障。若上游设备为失步的virtual_clock_master节点,则会广播current_virtual_clock_master_async消息,同时告知上层软件硬件失步故障。[0120]当发生virtual_clock_master节点故障,并且其他normal_ptp节点接收到current_virtual_clock_master_async消息后,会重新建立新的timedomain。当前第1页1 2 3 当前第1页1 2 3 
技术特征:
1.高可靠性时间敏感网络时间同步方法,其特征在于,包括如下步骤:步骤1.设备初始化,加载设备状态控制单元所需参数;步骤2.开启状态控制逻辑单元;步骤3.按照ieee802.1as标准生成第一棵时钟树;步骤4.根据虚拟主时钟算法生成多棵时钟树;步骤5.网络正常运行相关业务,各个设备利用故障自检算法自检。2.高可靠性时间敏感网络时间同步系统,其特征在于,包括:标准时间同步单元,基于ieee802.1as标准,并且根据配置参数完成ieee802.1as标准中规定的主从时钟选举算法和时间同步算法,以及针对特定物理链路的频率偏移计算;虚拟主时钟算法单元,用于根据设备各自的systemid参数,以及gptp时间域0中各个设备receivedpathtrace数组中的信息,为各个设备生成用于其他gptp时钟域的systemid参数,将其他gptp time domain根据ieee802.1as标准选举出的主时钟称为虚拟主时钟;时钟域参数保存单元,用于保存初始化配置用于gptp time domain0的systemid参数,并保存vmcau单元生成的用于其他gptp time domain的systemid参数;本地时钟仲裁单元,包括多个时钟域时钟计时器,用于记录每个时钟域通过ieee802.1as标准后获得的当前时间;还包括一个多时钟域时钟仲裁单元,用于仲裁来自各个时钟域的时间信息,并计算出当前的本地时钟;还包括一个本地时钟单元,用于记录本地时钟,该值应为多个时钟域时钟计时器计时器平均后仲裁平均后的值;故障自检测单元,用于通过故障自检算法进行自检。3.根据权利要求2所述的高可靠性时间敏感网络时间同步系统,其特征在于,所述标准时间同步单元,其在运行时包括如下步骤:步骤101.初始化本地时钟单元,将本地时钟值初始化为0,加载时钟域参数保存单元中gptp time domain0的systemid参数信息到标准时间同步单元;步骤102.根据ieee802.1as中规定的最佳主时钟选举算法,建立gptp time domain0中的时钟树,并根据ieee802.1as中规定的时间同步算法完成时间同步以及端到端直连链路频率偏差的计算。4.根据权利要求2所述的高可靠性时间敏感网络时间同步系统,其特征在于,所述虚拟主时钟算法单元,其在运行时包括如下步骤:步骤201.根据多时钟域参数生成算法,为该设备生成用于各个不同时钟域的systemid参数;步骤202.该设备根据生成的多个systemid参数,按照802.1as标准中规定给的最佳主时钟算法,建立多个时钟域。5.根据权利要求4所述的高可靠性时间敏感网络时间同步系统,其特征在于,步骤201具体包括如下步骤:步骤2011.各个节点计算gptp time domain0对应的receivedpathtrace数组中记录的clockidentities的个数,记为gtd0.receivedpathtrace.length,如果该个数大于等于allow_change2virtual_length,且当前节点在其他gptp time domain中非master clock,则将gptp time domain0中的systemid参数,直接用于gptp time domain1的systemid参数;
步骤2012.若gdt0.receivedpathtrace.length小于allow_change2virtual_length,或gdt0.receivedpathtrace.length大于allow_change2virtual_length但当前节点在其他gptp time domain中为master clock,则将gptp time domain0中的systemid参数,拷贝给gptp time domain1的systemid参数,并将priority1值改为255。6.根据权利要求4所述的高可靠性时间敏感网络时间同步系统,其特征在于,步骤202具体包括如下步骤:步骤2021.当完成gptp time domain0时间同步后,等待stable_time_out时间,如果维持stable_time_out设备各个端口的状态都没有发生变化,则认为当前时钟域gptp time domain0稳定;步骤2022.利用多时钟域参数生成算法,为该设备生成用于gptp time domain n 1的systemid参数;步骤2023.当完成gptp time domain n 1的systemid时间同步后,等待stable_time_out时间,重复步骤2021

步骤2023,直到建立gptp_td_num个gptp time domain,其中,n的初始值为0,代表gptp time domain 0;步骤2024.将不同gptp time domain的systemid参数保存在时钟域参数保存单元中。7.根据权利要求6所述的高可靠性时间敏感网络时间同步系统,其特征在于,所述时钟域参数保存单元中参数的保存格式为:gptptimedomain(n).sequence,gptptimedomain(n).priority,gptptimedomain(n).clockclass,gptptimedomain(n).clockaccuracy,gptptimedomain(n).offsetscaledlogvariance,gptptimedomain(n).priority2以及gptptimedomain(n).clockidentity,其中,(n)表示第n个gptp时钟域。8.根据权利要求2所述的高可靠性时间敏感网络时间同步系统,其特征在于,所述本地时钟仲裁单元,其在运行时包括如下步骤:步骤301.多个时钟域建立完毕后计算本地时钟local_clock=(tdt0 ... 第gptp_td_num个tdt/gptp_td_num),每个设备为每个时钟域维护ieee802.1as中规定的不同clockmaster实体以及localclock实体,其中tdt表示时钟域时钟计时器;步骤302.此后周期性的计算n个时钟域的时钟与本地时钟的偏差,计算方法为δ.i=tdt.i

local_clock;步骤303.丢弃偏差δ.i大于delta_time_div_threshold的时钟,将剩下的时间求平均值作为实际本地时钟;步骤304.当需要认为的改变gptp time domain 0的grandmaster clock本地时钟时,通过使用sync报文controlfield字段进行指示,在这种情况下,不改变现有的多个gptp time domain的结构,直接将来自gptp time domain 0的sync报文中的时间信息设置为各个设备的local_clock以及各个时钟域时钟计时器的值。9.根据权利要求2所述的高可靠性时间敏感网络时间同步系统,其特征在于,所述故障自检测单元,其在运行时包括如下步骤:步骤401.每个设备为每个gptp time domain维护一个sync_err_count计数器,每出现一次sync message缺失事件,该计数器值加一;步骤402.连续出现sync_massage_lack_max次sync message缺失事件或者连续一段时间,某个time domain的时钟偏差均超过delta_time_div_thres hold时,通过当前设备的
slaveport发送一个async_req报文;步骤403.设备故障自检单元接收到async_req报文后判断自身是否发生失步,如果当前设备没有失步,则通过masterport发送sync_ack报文,所述失步单独指某单gptp time domain失步,即某个gptp time domain.tdt

local_clock>delta_time_div_threshold,或者是指节点完全失步,即time domain.tdt

local_clock>delta_time_div_threshold;步骤404.如果为节点完全失步,则若该节点为中继节点,则该节点停止发送数据,并向上层软件报告硬件失步故障,若该节点为virtual_clock_master节点,则会广播current_virtual_clock_master_async报文,同时告知上层软件硬件失步故障,并重新在该gptp time domain选举新的virtual_clock_master节点,若该节点为gptp time domain0的grandmaster clock,则表示grandmaster clock节点失效;步骤405.如果为单gptp time domain失步,则当前设备会继续通过slaveport发送async_req报文,直到接收到sync_ack报文,或者接收到current_virtual_clock_master_async报文,同时告知上层软件硬件关于某gptp time domain失步故障。
技术总结
本发明涉及时间敏感网络领域,提出一种高可靠性时间敏感网络时间同步方法及系统。方法包括:设备初始化,加载设备状态控制单元所需参数;开启状态控制逻辑单元;按照IEEE802.1AS标准生成第一棵时钟树;根据虚拟主时钟算法生成多棵时钟树;网络正常运行相关业务,各个设备利用故障自检算法自检。系统包括:标准时间同步单元、虚拟主时钟算法单元、时钟域参数保存单元、本地时钟仲裁单元以及故障自检测单元。本发明可保证网络中每台设备都会接收到至少来自三个方向的时间信息,缓解单一时钟域失效后进行重新选举的过程中引入的时间抖动,并通过对三个方向时间信息进行仲裁,削弱对单一主时钟的要求,提高系统的鲁棒性,并可鉴别故障设备。障设备。障设备。


技术研发人员:彭逸飞 涂晓东 王磊 谢军 孟中楼
受保护的技术使用者:成都光航信科技有限公司
技术研发日:2021.03.24
技术公布日:2021/6/29

转载请注明原文地址:https://doc.8miu.com/read-14622.html

最新回复(0)