公开/公告号CN114978396A
专利类型发明专利
公开/公告日2022-08-30
原文格式PDF
申请/专利权人 昆高新芯微电子(江苏)有限公司;
申请/专利号CN202210513151.1
申请日2022-05-12
分类号H04J3/06(2006.01);
代理机构苏州华博知识产权代理有限公司 32232;
代理人杨敏
地址 215000 江苏省苏州市昆山市玉山镇登云路288号海创大厦C座11楼
入库时间 2023-06-19 16:36:32
法律状态公告日
法律状态信息
法律状态
2022-09-16
实质审查的生效 IPC(主分类):H04J 3/06 专利申请号:2022105131511 申请日:20220512
实质审查的生效
技术领域
本发明涉及以太网时间同步领域,尤其涉及一种精确时间协议透明时钟两步模式的实现方法。
背景技术
IEEE1588定义的PTP(Precision Time Protocol,精确时间协议)是目前被广泛使用的时间同步技术方案,用于满足测量和控制应用的分布网络时间同步的需要。网络时钟同步主要包括频率同步和时间同步,PTP通过记录特定PTP协议报文进入和离开设备的时间戳,来计算恢复出本地时钟和频率。通过硬件辅助可以实现高精度的时间同步,随着软硬件技术的进步,PTP的时间同步精度可以达到几十纳秒级别。
TC(Transparent Clock,透明时钟)是网络中的中间节点,通常不需要和主时钟(Master Clock)进行时钟同步,但是需要在主时钟和从时钟(Slave Clock)中间记录PTP事件报文经过TC设备的延时即驻留时间ResidenceTime,并记录到相应报文中的CorrectionField(CF校正域)字段中用于从时钟的精确时钟同步计算。
PTP的时间同步有两种方式:延时请求响应E2E(End to End)和对端延时P2P(Peerto Peer)机制,参见图1,前者根据主从时钟之间的整体路径延时时间计算时间差,而后者根据主从时钟之间的每一条链路延时时间计算时间差。所以透明时钟TC分为E2E TC和P2PTC,其中P2P TC除了记录PTP事件报文经过TC设备的驻留时间还需要记录TC相连的平均链路延时到相应报文中的CorrectionField字段中。
TC的实现方式分为一步方式和两步方式,其中以E2E TC为例,一步方式需要在PTPSync(同步)和Delay Req(延迟请求)报文中的CorrectionField字段增加本地ResidenceTime(驻留时间),PTP报文在TC上的驻留时间的计算方法如下:
驻留时间ResidenceTime=离开时间戳EgressTs–到达时间戳IngressTs
报文到达和离开时间戳通常在物理层PHY或者数据链路层MAC上获取,一步方式需要报文在离开设备的时候在物理层PHY或者数据链路层MAC上计算驻留时间并实时修改报文,对于UDP类型的PTP报文还需要修改报文UDP头中的校验和Checksum字段,这对目前的物理层PHY或者数据链路层MAC的实现要求很高,特别是对于10Gbps速率以上的MAC和PHY在高速传输的过程中修改报文的实现难度更大。
如图2所示,目前实现PTP TC的两步方式,通常在物理层PHY或者数据链路层MAC上记录Sync和DelayReq报文到达和离开的时间戳后直接转发报文,不需要在物理层PHY或者数据链路层MAC上修改报文,由上层软件协议栈模块通过CPU获取并计算驻留时间之后,把驻留时间加入到Sync对应的FollowUp(同步跟随)报文或者DelayReq对应的DelayResp(延迟应答)报文中。这种方案相比一步模式,通过上层软件模块计算驻留时间并且修改到报文,简化了硬件物理层PHY或者数据链路层MAC上实时修改报文的实现难度,但是也带来了系统复杂度,特别是软件计算驻留时间并修改报文相比硬件实现有延后会引入误差,导致时间精度提升有限。
发明内容
为了解决上述技术问题,本发明公开了一种精确时间协议透明时钟两步模式的实现方法,其通过交换芯片实现了PTP TC的两步模式,使用交换芯片修改驻留时间到报文而不使用软件协议栈,简化了TC设备系统的设计,降低了PTP报文在TC设备的处理延时,提高了PTP系统时间同步精度。
在本发明的实施方式中,一种精确时间协议透明时钟两步模式的实现方法包括以下步骤:S1:在入口物理层PHY或者数据链路层MAC上检测到PTP报文时,记录到达时间戳IngressTs,然后进行至步骤S2;S2:通过交换芯片解析PTP报文,并判断是否是Sync或者DelayReq报文,如果是,则将报文特征信息和驻留时间存储到交换芯片的FIFO队列中,且由出口PHY/MAC记录离开时间戳EgressTs到交换芯片的FIFO队列中,然后进行至步骤S4,否则进行至步骤S3;S3:通过交换芯片判断PTP报文是否是FollowUp或者DelayResp报文,如果是,则根据报文特征信息查找FIFO以获取驻留时间,并将驻留时间修改到报文校正域,然后将处理后的PTP报文转发至PHY/MAC并进行至步骤S4,否则交换芯片直接将PTP报文转发至出口PHY/MAC,并进行至步骤S4;S4:通过出口PHY/MAC发送报文。
在进一步的技术方案中,在步骤S2中,解析PTP报文包括:根据PTP报文的特征,解析PTP报文的类型、域编号、源端口标识符以及序列号。
在进一步的技术方案中,在步骤S2中,如果是Sync或者Delay Req报文,则由交换芯片记录报文的域编号、源端口标识符、、序列号到FIFO队列中存储,在出口MAC/PHY记录报文离开时间戳EgressTs到FIFO队列,并由交换芯片计算驻留时间ResidenceTime=EgressTs–IngressTs,并存储到与报文特征信息相同的FIFO队列中。
在进一步的技术方案中,在步骤S3中,如果是FollowUp或者DelayResp报文,则根据解析的域编号、源端口标识符、序列号查找FIFO队列,找到匹配的报文特征信息并获取匹配条目的FIFO队列所存储的驻留时间,把驻留时间修改到报文的校正域。
在进一步的技术方案中,在步骤S3中,在把驻留时间修改到报文的校正域时,如果承载PTP的是UDP报文,还需要修正UDP头中的校验和字段。
在进一步的技术方案中,在步骤S3中,对于校正域的修正,除了驻留时间,还包括延迟不对称修正的参数。
在进一步的技术方案中,对于两步P2P透明时钟,在步骤S2中,仅需要判断和处理Sync报文,并且在步骤S3中,仅需要判断和处理FollowUp报文。
附图说明
图1是E2E TC时间同步方式的示意图;
图2是两步E2E TC软件修改报文实现方式的示意图;
图3是本发明的两步E2E TC芯片修改报文实现方式的示意图;
图4是本发明的两步E2E TC芯片修改报文处理流程的示意图。
具体实施方式
下面结合具体实施例对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
本发明的主要解决的问题是如何通过交换芯片实现PTP TC的两步模式,在转发PTP报文的同时,把Sync和DelayReq报文的本地驻留时间修改到Sync对应的FollowUp和DelayReq对应的DelayResp报文的CorrectionField字段。具体实现处理方案:
1.对于Sync和DelayReq报文:在入口物理层PHY或者数据链路层MAC上获取报文的到达时间戳IngressTs并传送到出口,在出口物理层PHY或者数据链路层MAC上获取报文的离开时间戳EgressTs,计算出驻留时间ResidenceTime=EgressTs–IngressTs,把报文PTP头中的特征信息(DomainNumber(域编号),SourcePortIdentity(源端口标识符),SequenceID(序列号))和驻留时间ResidenceTime存储到交换芯片的一个先进先出FIFO(First In First Out)队列中,最后交换芯片把报文从出口转发出去;
2.对于FollowUp和DelayResp报文:交换芯片解析并提取报文PTP头中的特征信息(DomainNumber(域编号),SourcePortIdentity(源端口标识符),SequenceID(序列号))并匹配存储了驻留时间ResidenceTime的FIFO队列中的报文特征信息,找到队列中的匹配条目后把该条目的驻留时间ResidenceTime加到报文PTP头中的CorrectionField字段,对于UDP类型的PTP报文还需要修改报文UDP头中的校验和Checksum字段,交换芯片修改完报文后把报文从出口转发出去。
参见图3和图4,一种精确时间协议透明时钟两步模式的芯片实现方法,包括若干个处理步骤,包括:
(1)记录报文在MAC/PHY的到达时戳IngressTs。
(2)解析PTP报文,根据PTP报文的特征,解析PTP报文的类型、域编号、源端口标识符、序列号等信息。
(3)判断是否是Sync或者DelayReq报文,如果是Sync或者Delay Req报文则记录报文特征信息(DomainNumber(域编号),SourcePortIdentity(源端口标识符),SequenceID(序列号))到FIFO队列中存储,在MAC/PHY记录报文离开时戳EgressTs到FIFO,计算驻留时间ResidenceTime=EgressTs–IngressTs并存储到报文特征信息一起的FIFO队列中。
(4)判断是否是FollowUp或者DelayResp报文,如果是FollowUp或者DelayResp报文则根据解析的报文特征信息(DomainNumber(域编号),SourcePortIdentity(源端口标识符),SequenceID(序列号))查找FIFO队列,找到匹配的报文特征信息并获取匹配条目的FIFO队列存储的驻留时间,把驻留事件修改到报文的CorrectionField校正域,如果承载PTP的是UDP报文,还需要修正UDP头中的校验和字段。
(5)交换芯片转发PTP报文到出口MAC/PHY。
可以理解的,对于两步P2P TC,不需要处理DelayReq和DelayResp报文,Sync和FollowUp报文的处理和两步E2E TC的处理流程一致。
另外,对于校正域的修正,除了驻留时间,可能还有延迟不对称修正的参数以达到更高精度的时间同步。比如对于两步E2E TC:在FollowUp报文correctionField字段增加入口的delayAsymmetry(延迟不对称修正);在DelayResp报文correctionField字段减去出口delayAsymmetry(延迟不对称修正)。
在本发明的实施方式中,一种精确时间协议透明时钟两步模式的实现方法包括以下步骤:
S1:在入口物理层PHY或者数据链路层MAC上检测到PTP报文时,记录到达时间戳IngressTs,然后进行至步骤S2;
S2:通过交换芯片解析PTP报文,并判断是否是Sync或者DelayReq报文,如果是,则将报文特征信息和驻留时间存储到交换芯片的FIFO队列中,且由出口PHY/MAC记录离开时间戳EgressTs到交换芯片的FIFO队列中,然后进行至步骤S4,否则进行至步骤S3;
S3:通过交换芯片判断PTP报文是否是FollowUp或者DelayResp报文,如果是,则根据报文特征信息查找FIFO以获取驻留时间,并将驻留时间修改到报文校正域,然后将处理后的PTP报文转发至PHY/MAC并进行至步骤S4,否则交换芯片直接将PTP报文转发至出口PHY/MAC,并进行至步骤S4;
S4:通过出口PHY/MAC发送报文。
在进一步的技术方案中,在步骤S2中,解析PTP报文包括:根据PTP报文的特征,解析PTP报文的类型、域编号、源端口标识符以及序列号。
在进一步的技术方案中,在步骤S2中,如果是Sync或者Delay Req报文,则由交换芯片记录报文的域编号、源端口标识符、、序列号到FIFO队列中存储,在出口MAC/PHY记录报文离开时间戳EgressTs到FIFO队列,并由交换芯片计算驻留时间ResidenceTime=EgressTs–IngressTs,并存储到与报文特征信息相同的FIFO队列中。
在进一步的技术方案中,在步骤S3中,如果是FollowUp或者DelayResp报文,则根据解析的域编号、源端口标识符、序列号查找FIFO队列,找到匹配的报文特征信息并获取匹配条目的FIFO队列所存储的驻留时间,把驻留时间修改到报文的校正域。
在进一步的技术方案中,在步骤S3中,在把驻留时间修改到报文的校正域时,如果承载PTP的是UDP报文,还需要修正UDP头中的校验和字段。
在进一步的技术方案中,在步骤S3中,对于校正域的修正,除了驻留时间,还包括延迟不对称修正的参数。
在进一步的技术方案中,对于两步P2P透明时钟,在步骤S2中,仅需要判断和处理Sync报文,并且在步骤S3中,仅需要判断和处理FollowUp报文。
本发明通过交换芯片实现了PTP TC的两步模式,使用交换芯片修改驻留时间到报文而不使用软件协议栈,简化了TC设备系统的设计,降低了PTP报文在TC设备的处理延时,提高了PTP系统时间同步精度。在提高时间精度的同时,不需要上层软件模块参与PTP报文处理,降低了系统的开发难度,同时也降低了产品的开发和维护成本。
以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
机译: PTP精确时间协议精确时间协议系统中时钟定时故障的恢复方法和装置
机译: PTP精确时间协议精确时间协议系统中时钟定时故障的恢复方法和装置
机译: 通信网络中一种基于精确时间协议的分布式时钟同步方法