CN113055116B - 高可靠性时间敏感网络时间同步方法及系统 - Google Patents
高可靠性时间敏感网络时间同步方法及系统 Download PDFInfo
- Publication number
- CN113055116B CN113055116B CN202110317556.3A CN202110317556A CN113055116B CN 113055116 B CN113055116 B CN 113055116B CN 202110317556 A CN202110317556 A CN 202110317556A CN 113055116 B CN113055116 B CN 113055116B
- Authority
- CN
- China
- Prior art keywords
- clock
- time
- gptp
- domain
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及时间敏感网络领域,提出一种高可靠性时间敏感网络时间同步方法及系统。方法包括:设备初始化,加载设备状态控制单元所需参数;开启状态控制逻辑单元;按照IEEE802.1AS标准生成第一棵时钟树;根据虚拟主时钟算法生成多棵时钟树;网络正常运行相关业务,各个设备利用故障自检算法自检。系统包括:标准时间同步单元、虚拟主时钟算法单元、时钟域参数保存单元、本地时钟仲裁单元以及故障自检测单元。本发明可保证网络中每台设备都会接收到至少来自三个方向的时间信息,缓解单一时钟域失效后进行重新选举的过程中引入的时间抖动,并通过对三个方向时间信息进行仲裁,削弱对单一主时钟的要求,提高系统的鲁棒性,并可鉴别故障设备。
Description
技术领域
本发明涉及时间敏感网络领域时间同步领域,及基于以太网的时间敏感网络时间同步域的建立,多同步域维持以及故障设备检测方法领域,尤其涉及一种高可靠性时间敏感网络时间同步方法及系统。
背景技术
以太网最早是在二十世纪七十年代开发出来的一套局域网技术,随着该技术的不断发展,其通信速率高,价格低廉,稳定可靠的特性,使得以太网迅速成为了民用领域的一种重要的通信手段但是随着进一步发展,以及新一轮工业革命的推进,IT(informationTechnology,即信息技术)与OT(Operational Technology,即操作技术)融合成为大势所趋,同时也成为支持智能制造的核心。
时间敏感网络(TSN:Time Sensitive Network)由IEEE 802.1工作组定义,旨在实现高度确定性的服务和冗余网络操作,并用于控制以太网网络中的其他对延迟敏感的流量。这些标准通过合理安排可以满足更严格的网络性能要求(如有限制延迟、延迟变化和数据包丢失降至最低)的。而控制应用(如汽车、工业和越来越多的5G通信)具有严格的确定性要求,这些迫切的要求促使TSN标准的进一步发展。
IEEE802.1AS标准规定了用于确保满足跨时间网络的时间敏感应用程序(例如音频,视频和时间敏感控制流量)的同步要求。其内容包括在网络正常运行或添加、移除或重配置网络组件和网络故障时对时间同步机制的维护。该标准使系统能够满足对时间敏感的应用程序对时间抖动,漂移和时间同步要求,包括涉及将多个流传送到多个终端站的应用程序。整体上IEEE802.1AS标准包括用于主从时钟角色选举的最佳主时钟算法以及用于时钟同步的链路延时测算算法,链路频率偏移测算算法。
现有技术实现了IEEE802.1AS中规定给的时间同步技术,其中专利号CN109818702A、专利名称为:一种IEEE802.1AS时间同步功能实现系统以及实现方法专利公开了一种IEEE802.1AS时间同步功能实现系统以及实现方法,其通过FPGA实现了报文的收发,报文的解析以及时间戳的生成,时钟偏差的计算。专利号CN112260791A、专利名称为:一种改进的时钟同步超主时钟热备方法专利公开了一种在IEEE802.1AS-Rev中所述的热备时钟思想基础上,通过一种新的子域划分和冗余超主时钟选取的办法,对时间同步网络内发生的异常进行快速甄别和处理。
目前针对时间敏感网络IEEE802.1AS时间同步协议,研究及实现大都采用单一时钟域严格主从式的时间同步方法。单一时钟域会导致时间同步信息传递方向单一,一旦中继节点失步会导致需要一定时间才能完成再次收敛,收敛过程将有可能引入航电网络,工业网络中难以容忍的时间抖动。严格的主从式时间同步方法会使得IEEE802.1AS中所述的GrandMaster Clock时钟的质量以及连通度特性变得重要,而在某些控制系统中需要分布式的时间同步方法。最后IEEE802.1钟没有给出对网络设备时间同步故障的检测方法,一旦某个靠近GrandMaster Clock的中继节点发生故障,将会影响与其相连的几乎所有下游节点。
发明内容
本发明的目的就是提供一种高可靠性时间敏感网络时间同步方法及系统。
本发明解决其技术问题,采用的技术方案是:
本发明首先提出一种高可靠性时间敏感网络时间同步方法,包括如下步骤:
步骤1.设备初始化,加载设备状态控制单元所需参数;
步骤2.开启状态控制逻辑单元;
步骤3.按照IEEE802.1AS标准生成第一棵时钟树;
步骤4.根据虚拟主时钟算法生成多棵时钟树;
步骤5.网络正常运行相关业务,各个设备利用故障自检算法自检。
其次,本发明还提出一种高可靠性时间敏感网络时间同步系统,包括:
标准时间同步单元,基于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标准后获得的当前时间;还包括一个多时钟域时钟仲裁单元,用于仲裁来自各个时钟域的时间信息,并计算出当前的本地时钟;还包括一个本地时钟单元,用于记录本地时钟,该值应为多个时钟域时钟计时器计时器平均后仲裁平均后的值;
故障自检测单元,用于通过故障自检算法进行自检。
进一步的是,所述标准时间同步单元,其在运行时包括如下步骤:
步骤101.初始化本地时钟单元,将本地时钟值初始化为0,加载时钟域参数保存单元中gPTP Time Domain0的SystemID参数信息到标准时间同步单元;
步骤102.根据IEEE802.1AS中规定的最佳主时钟选举算法,建立gPTP TimeDomain0中的时钟树,并根据IEEE802.1AS中规定的时间同步算法完成时间同步以及端到端直连链路频率偏差的计算。
进一步的是,所述虚拟主时钟算法单元,其在运行时包括如下步骤:
步骤201.根据多时钟域参数生成算法,为该设备生成用于各个不同时钟域的SystemID参数;
步骤202.该设备根据生成的多个SystemID参数,按照802.1AS标准中规定给的最佳主时钟算法,建立多个时钟域。
进一步的是,步骤201具体包括如下步骤:
步骤2011.各个节点计算gPTP Time Domain0对应的receivedPathTrace数组中记录的clockidentities的个数,记为gTD0.receivedPathTrace.length,如果该个数大于等于Allow_Change2Virtual_length,且当前节点在其他gPTP Time Domain中非MasterClock,则将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。
进一步的是,步骤202具体包括如下步骤:
步骤2021.当完成gPTP Time Domain0时间同步后,等待STABLE_TIME_OUT时间,如果维持STABLE_TIME_OUT设备各个端口的状态都没有发生变化,则认为当前时钟域gPTPTime 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参数保存在时钟域参数保存单元中。
进一步的是,所述时钟域参数保存单元中参数的保存格式为:gPTPTimeDomain(n).sequence,gPTPTimeDomain(n).priority,gPTPTimeDomain(n).clockClass,gPTPTimeDomain(n).clockAccuracy,gPTPTimeDomain(n).offsetScaledLogVariance,gPTPTimeDomain(n).priority2以及gPTPTimeDomain(n).clockIdentity,其中,(n)表示第n个gPTP时钟域。
进一步的是,所述本地时钟仲裁单元,其在运行时包括如下步骤:
步骤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字段进行指示,在这种情况下,不改变现有的多个gPTPTime Domain的结构,直接将来自gPTP time domain0的sync报文中的时间信息设置为各个设备的Local_Clock以及各个时钟域时钟计时器的值。
进一步的是,所述故障自检测单元,其在运行时包括如下步骤:
步骤401.每个设备为每个gPTP time domain维护一个sync_err_count计数器,每出现一次sync message缺失事件,该计数器值加一;
步骤402.连续出现sync_massage_lack_max次sync message缺失事件或者连续一段时间,某个time domain的时钟偏差均超过DELTA_TIME_DIV_THRESHOLD时,通过当前设备的SlavePort发送一个async_req报文;
步骤403.设备故障自检单元接收到async_req报文后判断自身是否发生失步,如果当前设备没有失步,则通过MasterPort发送sync_ack报文,所述失步单独指某单gPTPtime domain失步,即某个gPTP time domain.TDT-Local_Clock>DELTA_TIME_DIV_THRESHOLD,或者是指节点完全失步,即gPTP 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 TimeDomain0的Grandmaster Clock,则表示Grandmaster Clock节点失效;
步骤405.如果为单gPTP time domain失步,则当前设备会继续通过SlavePort发送async_req报文,直到接收到sync_ack报文,或者接收到current_Virtual_clock_master_async报文,同时告知上层软件硬件关于某gPTP Time Domain失步故障。
本发明的有益效果是,通过上述高可靠性时间敏感网络时间同步方法及系统,首先,通过在网络中同时运行多个时钟域,保证了网络中每台设备都会接收到至少来自三个方向的时间信息,可以缓解单一时钟域失效后进行重新选举的过程中引入的时间抖动;同时,能够自动生成多个时钟域;其次,在兼容IEEE802.1AS基本协议状态机的基础上,通过对三个时钟域的时间信息进行仲裁,削弱对单一主时钟的要求,将原有主从同步方式削弱为近似分布式时钟同步的方式,提高了系统的鲁棒性;最后,当网络中出现设备失步时,能够鉴别故障设备。
附图说明
图1为本发明中高可靠性时间敏感网络时间同步方法的流程图;
图2为本发明的多时钟域参数生成算法流程图;
图3为本发明的虚拟主时钟算法单元流程图;
图4为本发明的时钟域参数保存单元中数据保存格式图;
图5为本发明的本地时钟仲裁单元流程图;
图6为本发明的故障自检测单元流程图;
图7为本发明的实施例1中拓扑结构示意图。
具体实施方式
下面结合附图及实施例,详细描述本发明的技术方案。
本发明首先提出一种高可靠性时间敏感网络时间同步方法,其流程图见图1,其中,该方法包括如下步骤:
S1.设备初始化,加载设备状态控制单元所需参数;
S2.开启状态控制逻辑单元;
S3.按照IEEE802.1AS标准生成第一棵时钟树;
S4.根据虚拟主时钟算法生成多棵时钟树;
S5.网络正常运行相关业务,各个设备利用故障自检算法自检。
基于此,本发明还提出一种高可靠性时间敏感网络时间同步系统,包括一个标准时间同步单元(STSU:Standard Time Synchronization Unit),一个虚拟主时钟算法单元(VMCAU:Virtual Master Clock Algorithm Unit),一个时钟域参数保存单元(TDPSU:TimeDomain Parameter Save Unit),一个本地时钟仲裁单元(LCAU:Local Clock ArbitraryUnit)以及一个故障自检测单元(FSCU:Failure Self Check Unit)。
上述系统中,标准时间同步单元(STSU)符合IEEE802.1AS标准,并且根据配置参数完成IEEE802.1AS标准中规定的主从时钟选举算法和时间同步算法,以及针对特定物理链路的频率偏移计算。
这里,标准时间同步单元在运行时可以包括如下步骤:
S101.初始化本地时钟单元,将本地时钟值初始化为0,加载TDPSU单元中gPTPTime Domain0的SystemID参数信息到STSU单元;
S102.根据IEEE802.1AS中规定的最佳主时钟选举算法,建立gPTP Time Domain0中的时钟树,并根据IEEE802.1AS中规定的时间同步算法完成时间同步以及端到端直连链路频率偏差的计算。
具体而言,虚拟主时钟算法单元(VMCAU),该单元核心包括多时钟域参数生成算法,如图2所示,以及虚拟主时钟算法,如图3所示,其在运行时基本包括如下步骤:
S201.根据多时钟域参数生成算法,为该设备生成用于各个不同时钟域的SystemID参数;
S202.根据该设备通过步骤1生成的多个SystemID参数,建立多个时钟域。
具体而言,步骤S201主要包括:
S2011.各个节点计算gPTP Time Domain0对应的receivedPathTrace数组中记录的clockidentities的个数,记为gTD0.receivedPathTrace.length,如果该个数大于等于Allow_Change2Virtual_length,且当前节点在其他gPTP Time Domain中非Master Clock,则将gPTP Time Domain0中的systemID参数,直接用于gPTP Time Domain1的systemID参数;
S2012.若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。
具体而言,步骤S202主要包括:
S2021.当完成gPTP Time Domain0时间同步后,等待STABLE_TIME_OUT时间,如果维持STABLE_TIME_OUT设备各个端口的状态都没有发生变化,则认为当前时钟域gPTP TimeDomain0稳定;
S2022.利用多时钟域参数生成算法,为该设备生成用于gPTP Time Domain n+1的SystemID参数;
S2023.当完成gPTP Time Domain n+1(n的初始值为0,代表gPTP Time Domain 0)的SystemID时间同步后,等待STABLE_TIME_OUT时间。重复步骤S2021-S2023,直到建立gPTP_TD_NUM个gPTP Time Domain;
S2024.将不同gPTP Time Domain的systemID参数保存在TDPSU单元中。
需要指出的是,时钟域参数保存单元(TDPSU),用于保存初始化配置用于gPTPTime Domain0的SystemID参数,并保存VMCAU单元生成的用于其他gPTP Time Domain的SystemID参数,时钟域参数保存单元中数据保存格式图4所示。
并且,本地时钟仲裁单元(LCAU),核心包括本地时钟仲裁算法,该过程如图5所示主要步骤为:
S301.多个时钟域建立完毕后计算本地时钟Local_Clock=(TDT0+...+TDT.第gPTP_TD_NUM个TDT/gPTP_TD_NUM),每个设备为每个时钟域维护IEEE802.1AS中规定的不同ClockMaster实体以及Localclock实体,其中TDT表示时钟域时钟计时器,全称为TimeDomain Timer;
S302.此后周期性的计算n个时钟域的时钟与本地时钟的偏差,计算方法为Δ.i=TDT.i-Local_Clock;
S303.丢弃偏差Δ.i大于DELTA_TIME_DIV_THRESHOLD的时钟,将剩下的时间求平均值作为实际本地时钟;
S304.当需要认为的改变gPTP time domain 0的GrandMaster Clock本地时钟时,通过使用sync报文controlField字段进行指示,在这种情况下,不改变现有的多个gPTPTime Domain,直接将来自gPTP time domain 0的sync报文中的时间信息设置为各个设备的Local_Clock。
需要说明的是,故障自检测单元(FSCU),该单元核心包括故障自检测算法,该自检测算法步骤如图6所示,其在运行时包括如下步骤:
S401.每个设备为每个gPTP time domain维护一个sync_err_count计数器,每出现一次sync message缺失事件,该计数器值加一;
S402.连续出现sync_massage_lack_max次sync message缺失事件或者连续一段时间(DIV_COMPUTE_DUAR_TIME),某个time domain的时钟偏差均超过DELTA_TIME_DIV_THRESHOLD时,将会通过当前设备的SlavePort发送一个async_req报文;
S403.设备FSCU单元接收到async_req报文后判断自身是否发生失步(失步可以单独指某单gPTP time domain失步,即某个gPTP time domain.TDT-Local_Clock>DELTA_TIME_DIV_THRESHOLD;也可以指节点完全失步,即gPTP time domain.TDT-Local_clock>DELTA_TIME_DIV_THRESHOLD),如果当前设备没有失步,则通过MasterPort发送sync_ack报文;
S404.如果为节点完全失步,则若该节点为中继节点,则该节点停止发送数据,并向上层软件报告硬件失步故障,若该节点为Virtual_clock_master节点,则会广播current_Virtual_clock_master_async报文,同时告知上层软件硬件失步故障,并重新在该gPTP Time Domain选举新的Virtual_clock_master节点,若该节点为gPTP TimeDomain0的Grandmaster Clock,则表示Grandmaster Clock节点失效;
S405.如果为单gPTP time domain失步,则当前设备会继续通过SlavePort发送async_req报文,直到接收到sync_ack报文,或者接收到current_Virtual_clock_master_async报文,同时告知上层软件硬件关于某gPTP Time Domain失步故障。
实施例1
在本实例中,如图7所示共有5个PTP relay instance,以及3个PTP ENDinstance。这里,规定第i个PTP relay insance为PRI_i(i∈[1,5]),规定第j个PTP ENDinstance为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。
规定系统中所有的中继实体符合,及用于gPTP Time Domain0的参数为:
PRI_i_Id.TD0.priority1=255;
PRI_i_Id.TD0.clockClass=255;
PRI_i_Id.TD0.clockAccuracy=0xFE;
PRI_i_Id.TD0.offsetScaledLogVariance=0x436A;
PRI_i_Id.TD0.priority2=247;
PRI_i_Id.TD0.clockIdentity=0xACDE48_FFFE_(n+i-1)16;
并且规定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节点。
需要说明的是,Ori_Clock_master节点:该节点为通过IEEE 802.1AS标准选举出的domain 0的GrandMaster节点。
并且,规定系统中的Ori_Clock_master节点符合,及用于gPTP Time Domain0的参数为:
PEI_j_Id.TD0.priority1=246;
PEI_j_Id.TD0.clockClass=255;
PEI_j_Id.TD0.clockAccuracy=0xFE;
PEI_j_Id.TD0.offsetScaledLogVariance=0x436A;
PEI_j_Id.TD0.priority2=248;
PEI_j_Id.TD0.clockIdentity=0xACDE48_FFFE_0000;
实际应用时,初始时刻,系统中所有节点广播带有自身systemIdentity的announce massage,通过使用best master clock算法(BMC算法),系统在domain 0达成共识,及设备认为PEI_1为系统主时钟,其他所有节点均使用来自PEI_1中的sync massage所携带的时钟信息完成时间同步,并且所有节点间端口关系确定。
等待STABLE_TIME_OUT时间后,各个端口的状态稳定成图中gPTP Time Domain0标注的情况。在该情况下可看到PTP End1为根节点,即gPTP Time Domain0的GrandMasterclock,若认为PTP End1属于第1阶。则PTP relay1,PTP relay2,PTP relay3属于第2阶,PTPrelay4,PTP relay5属于第三阶,PTP End2,PTP End3属于第四阶。
本实施例将Allow_Change2Virtual_length设为4。则可以得到用于gPTP TimeDomain1和gPTP Time Domain2的参数,分别为:
对于gPTP Time Domain1,除去PTP End2,PTP End3的Priority1字段维持246,其他终端节点或者中继节点的Priority1字段均为255。
对于gPTP Time Domain2,根据IEEE802.3规定的选举算法可知,gPTP TimeDomain1中的virtual Master Clock应该为PTP End2,故对于gPTP Time Domain2,除去PTPEnd3的Priority1字段维持246,其他终端节点或者中继节点的Priority1字段均为255。
当完成gPTP Time domain 1以及gPTP Time domain 1时间同步后,利用三个gPTP时钟域的时钟平均值作为初始的Local Clock值。
在建立三种不同的gPTP Time domain的基础上,每个设备为每个时钟域维护不同的ClockMaster实体以及Localclock实体,计算三个时钟域的时钟偏差,丢弃偏差大于delta_time_div_threshold的时钟,其余两个时间值求平均值作为实际本地时钟。
当gPTP Time domain 0的master clock发生人为改变时,通过使用sync报文controlField字段进行指示,在这种情况下,设备忽略gPTP Time domain0与其LocalClock的时钟偏差,默认以gPTP Time domain Sync报文中的时间信息为准,直到三个时钟域收敛后再进行仲裁算法。
当三个gPTP Time domain均稳定后,每个设备为每个gPTP Time domain维护一个sync_err_count计数器。每出现一次sync message缺失事件(通过sync_wait_timeout_cnt超时计数器触发该事件,sync message周期性发送,当某个time domain ync_wait_timeout_cnt计数值超过sync_wait_timeout值,仍然没有接收到新的sync message时人为发生一次sync message确实事件)。
连续出现sync_massage_lack_max次sync message缺失事件或者连续一段时间div_compute_duar_time,某个gPTP Time domain的时钟偏差均超过delta_time_div_threshold时,将会向该设备的上游设备发送一个async_req报文,上游设备接收到该报文后判断自身是否发生失步,并返回对应的报文。
如果为节点完全失步,则若该节点为中继节点,则该节点停止发送数据,并向上层软件报告硬件失步故障。若该节点为Virtual_clock_master节点,则会广播current_Virtual_clock_master_async消息,同时告知上层软件硬件失步故障。
如果为单time domain失步,则当前设备会继续向上游发送async_req报文,直到上游设备未发生失步,或者上游设备为失步的Virtual_clock_master节点为止。若上游节点未发生失步,则会回应async_ack消息,收到该消息的下游设备,会重启该时钟域状态机,并向软件报告故障。若上游设备为失步的Virtual_clock_master节点,则会广播current_Virtual_clock_master_async消息,同时告知上层软件硬件失步故障。
当发生Virtual_clock_master节点故障,并且其他normal_ptp节点接收到current_Virtual_clock_master_async消息后,会重新建立新的time domain。
Claims (8)
1.高可靠性时间敏感网络时间同步系统,其特征在于,包括:
标准时间同步单元,基于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标准后获得的当前时间;还包括一个多时钟域时钟仲裁单元,用于仲裁来自各个时钟域的时间信息,并计算出当前的本地时钟;还包括一个本地时钟单元,用于记录本地时钟,本地时钟的值应为多个时钟域时钟计时器计时器平均后仲裁平均后的值;
故障自检测单元,用于通过故障自检算法进行自检。
2.根据权利要求1所述的高可靠性时间敏感网络时间同步系统,其特征在于,所述标准时间同步单元,其在运行时包括如下步骤:
步骤101.初始化本地时钟单元,将本地时钟值初始化为0,加载时钟域参数保存单元中gPTP Time Domain0的SystemID参数信息到标准时间同步单元;
步骤102.根据IEEE802.1AS中规定的最佳主时钟选举算法,建立gPTP Time Domain0中的时钟树,并根据IEEE802.1AS中规定的时间同步算法完成时间同步以及端到端直连链路频率偏差的计算。
3.根据权利要求1所述的高可靠性时间敏感网络时间同步系统,其特征在于,所述虚拟主时钟算法单元,其在运行时包括如下步骤:
步骤201.根据多时钟域参数生成算法,为该设备生成用于各个不同时钟域的SystemID参数;
步骤202.该设备根据生成的多个SystemID参数,按照802.1AS标准中规定给的最佳主时钟算法,建立多个时钟域。
4.根据权利要求3所述的高可靠性时间敏感网络时间同步系统,其特征在于,步骤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。
5.根据权利要求3所述的高可靠性时间敏感网络时间同步系统,其特征在于,步骤202具体包括如下步骤:
步骤2021.当完成gPTP Time Domain0时间同步后,等待STABLE_TIME_OUT时间,如果维持STABLE_TIME_OUT设备各个端口的状态都没有发生变化,则认为当前时钟域gPTP TimeDomain0稳定;
步骤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参数保存在时钟域参数保存单元中。
6.根据权利要求5所述的高可靠性时间敏感网络时间同步系统,其特征在于,所述时钟域参数保存单元中参数的保存格式为:gPTPTimeDomain(n).sequence,gPTPTimeDomain(n).priority,gPTPTimeDomain(n).clockClass,gPTPTimeDomain(n).clockAccuracy,gPTPTimeDomain(n).offsetScaledLogVariance,gPTPTimeDomain(n).priority2以及gPTPTimeDomain(n).clockIdentity,其中,(n)表示第n个gPTP时钟域。
7.根据权利要求1所述的高可靠性时间敏感网络时间同步系统,其特征在于,所述本地时钟仲裁单元,其在运行时包括如下步骤:
步骤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字段进行指示,在这种情况下,不改变现有的多个gPTPTime Domain的结构,直接将来自gPTP time domain 0的sync报文中的时间信息设置为各个设备的Local_Clock以及各个时钟域时钟计时器的值。
8.根据权利要求1所述的高可靠性时间敏感网络时间同步系统,其特征在于,所述故障自检测单元,其在运行时包括如下步骤:
步骤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 timedomain失步,即某个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报文,同时告知上层软件硬件失步故障,并重新在该gPTPTime 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失步故障。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110317556.3A CN113055116B (zh) | 2021-03-24 | 2021-03-24 | 高可靠性时间敏感网络时间同步方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110317556.3A CN113055116B (zh) | 2021-03-24 | 2021-03-24 | 高可靠性时间敏感网络时间同步方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113055116A CN113055116A (zh) | 2021-06-29 |
CN113055116B true CN113055116B (zh) | 2022-05-10 |
Family
ID=76515552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110317556.3A Active CN113055116B (zh) | 2021-03-24 | 2021-03-24 | 高可靠性时间敏感网络时间同步方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113055116B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113300801B (zh) * | 2021-07-27 | 2021-10-26 | 奥特酷智能科技(南京)有限公司 | 基于安全gPTP的时间同步方法及系统 |
CN114884605A (zh) * | 2022-05-06 | 2022-08-09 | 上海海事大学 | 基于fpga实现网络节点时间同步的方法 |
CN115913972A (zh) * | 2022-09-29 | 2023-04-04 | 中车大连电力牵引研发中心有限公司 | 一种基于多时钟域的tsn列车网络拓扑 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585683A (zh) * | 2020-05-11 | 2020-08-25 | 上海交通大学 | 一种面向时间敏感网络的高可靠时钟同步系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051487B (zh) * | 2011-10-14 | 2016-10-05 | 华东电力试验研究院有限公司 | 基于电力业网络测量和控制系统时钟同步协议的测试方法 |
CN112165369B (zh) * | 2020-09-11 | 2023-03-21 | 上海创时汽车科技有限公司 | 时间敏感网络冗余时钟同步方法及其同步系统 |
-
2021
- 2021-03-24 CN CN202110317556.3A patent/CN113055116B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585683A (zh) * | 2020-05-11 | 2020-08-25 | 上海交通大学 | 一种面向时间敏感网络的高可靠时钟同步系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113055116A (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113055116B (zh) | 高可靠性时间敏感网络时间同步方法及系统 | |
US11916722B2 (en) | System and method for resilient wireless packet communications | |
EP2144400B1 (en) | Distributed ethernet system and method for detecting fault based thereon | |
US6697382B1 (en) | Distributing and synchronizing a representation of time between components of a packet switching system | |
Perlman | Fault-tolerant broadcast of routing information | |
EP2490357B1 (en) | A method of time synchronization of free running nodes in an avionics network | |
EP2688240B1 (en) | Method, system and device for switching and selecting clock source device | |
WO2013182161A1 (zh) | 一种时间同步方法和装置 | |
WO2013071807A1 (zh) | 一种多时钟同步技术混合组网的实现方法、系统和装置 | |
CN102843205A (zh) | 一种基于精确时间协议的时间同步收敛的方法和装置 | |
WO2013152700A1 (zh) | 微波网元的时钟源选择方法及装置 | |
CN102158335B (zh) | 时间同步端口的处理方法及装置 | |
WO2011134371A1 (zh) | 一种同步时钟的方法和时钟同步装置 | |
CN113395261B (zh) | 一种mlag环境下的生成树协议快速收敛的方法、设备及介质 | |
EP2628274B1 (en) | Reducing continuity check message (ccm) bursts in connectivity fault management (cfm) maintenance association (ma) | |
JP4347812B2 (ja) | 媒体調停を与えるシステム、ノード及び方法 | |
CN111052684B (zh) | 以环形拓扑运行通信网络的方法和这种通信网络 | |
Mohammadi et al. | Latency-aware topology discovery in SDN-based time-sensitive networks | |
Yu et al. | Efficient two-dimensional self-stabilizing byzantine clock synchronization in WALDEN | |
WO2012136085A1 (zh) | 以太网同步中的同步状态信息的传输方法和系统 | |
Milbredt et al. | An investigation of the clique problem in FlexRay | |
Peng et al. | A Distributed TSN Time Synchronization Algorithm with Increased Tolerance for Failure Scenarios | |
RU2802599C1 (ru) | Система и способ обеспечения отказоустойчивости узлов в сети | |
WO2022206614A1 (zh) | 一种分组同步通道失效的处理方法和装置 | |
Scharbarg et al. | Interconnecting can busses via an ethernet backbone |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |