CN103067112B - 时钟同步方法、装置及网络设备 - Google Patents

时钟同步方法、装置及网络设备 Download PDF

Info

Publication number
CN103067112B
CN103067112B CN201210548840.2A CN201210548840A CN103067112B CN 103067112 B CN103067112 B CN 103067112B CN 201210548840 A CN201210548840 A CN 201210548840A CN 103067112 B CN103067112 B CN 103067112B
Authority
CN
China
Prior art keywords
ptp
event message
system time
ptp event
time
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
Application number
CN201210548840.2A
Other languages
English (en)
Other versions
CN103067112A (zh
Inventor
郭发长
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ruijie Networks Co Ltd
Original Assignee
Fujian Star Net Communication Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Star Net Communication Co Ltd filed Critical Fujian Star Net Communication Co Ltd
Priority to CN201210548840.2A priority Critical patent/CN103067112B/zh
Publication of CN103067112A publication Critical patent/CN103067112A/zh
Application granted granted Critical
Publication of CN103067112B publication Critical patent/CN103067112B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种时钟同步方法、装置及网络设备。装置包括:至少一个硬件芯片、CPU和逻辑控制芯片;硬件芯片用于接收对端装置发送的第一PTP事件报文,记录第一时间戳,将第一PTP事件报文的CF域中的校正值减去第一时间戳,然后发送给CPU;CPU用于将第一PTP事件报文发送给逻辑控制芯片;逻辑控制芯片用于记录第一PTP事件报文到达逻辑控制芯片的PTP时间戳,根据第一PTP事件报文和PTP时间戳计算出逻辑控制芯片的第一PTP系统时间与对端装置的第二PTP系统时间之间的第一时间偏差,根据第一时间偏差与对端装置进行时钟同步。采用本发明可以提高时钟同步的精度,降低对系统效率的影响并降低硬件上的实现代价。

Description

时钟同步方法、装置及网络设备
技术领域
本发明涉及时钟同步技术,尤其涉及一种时钟同步方法、装置及网络设备。
背景技术
在现代通信网络中,大多数电信业务的正常运行要求全网设备之间的频率或时间差异保持在合理的误差水平内,即网络时钟同步。网络时钟同步包括频率同步和时间同步两个概念。所谓频率同步就是时钟同步,是指信号之间的频率或相位上保持某种严格的特定关系,信号在其相对应的有效瞬间以同一平均速率出现,以维持通信网络中所有的设备以相同的速率运行,即信号之间保持恒定相位差。
伴随计算机网络的快速发展,越来越多的应用对时钟同步精度提出了较高的需求,IEEE1588协议的诞生满足了该需求,使用IEEE1588协议设计或集成的系统能够在不增加网络负荷的情况下,实现整个系统中各类不同精度、不同稳定性的时钟的高精度同步,有效解决分布式系统中的实时性问题,进一步改善与提高系统精度。IEEE1588协议实际上是网络测量和控制系统的精确时间同步协议(PrecisionClockSynchronizationProtocolForNetworkedMeasurementandControlSystems),通常简称为精确时间协议(PrecisionTimeProtocol,简称为PTP)。
在现有技术中,最先是基于嵌入式系统实现IEEE1588协议,以进行时钟同步,但是在实现过程中,由于嵌入式系统受到数据帧多级缓冲时延不稳定、晶振频率漂移、中断服务程序响应时间等因素限制,很难达到微秒级的同步精度。为此,出现一种采用硬件协助打时间戳的方式实现IEEE1588协议,采用硬件协助打时间戳的方法,即在物理层芯片或是交换芯片打上时间戳,实现了亚微秒级的精度同步,满足高实时性、高精度的同步数据采集、记录和分析的需求,但是,在硬件芯片上维持PTP完整80比特时间计数器的话,大大增加了硬件的代价,并且中央处理器(CentralProcessingUnit,简称为CPU)频繁读取物理层芯片或交换芯片打上的时间戳,大大影响了系统效率。
发明内容
本发明提供一种时钟同步方法、装置及网络设备,用以提高时钟同步的精度,降低对系统效率的影响并降低硬件上的实现代价。
第一方面提供一种时钟同步装置,包括:至少一个硬件芯片、中央处理器CPU和逻辑控制芯片;
所述硬件芯片,用于接收对端装置发送的第一精确时间协议PTP事件报文,并记录所述第一PTP事件报文到达所述硬件芯片的第一时间戳,将所述第一PTP事件报文的校正CF域中的校正值减去所述第一时间戳,然后将所述第一PTP事件报文发送给所述CPU;
所述CPU,用于接收所述硬件芯片发送的所述第一PTP事件报文,将所述第一PTP事件报文发送给所述逻辑控制芯片;
所述逻辑控制芯片,用于接收所述CPU发送的所述第一PTP事件报文并记录所述第一PTP事件报文到达所述逻辑控制芯片的PTP时间戳,根据所述第一PTP事件报文和所述PTP时间戳,计算出所述逻辑控制芯片的第一PTP系统时间与所述对端装置的第二PTP系统时间之间的第一时间偏差,并根据所述第一时间偏差与所述对端装置进行时钟同步。
第二方面提供一种时钟同步方法,包括:
时钟同步装置的硬件芯片接收对端装置发送的第一精确时间协议PTP事件报文,记录所述第一PTP事件报文到达所述硬件芯片的第一时间戳,将所述第一PTP事件报文的校正CF域中的校正值减去所述第一时间戳,然后将所述第一PTP事件报文发送给所述时钟同步装置的中央处理器CPU;
所述CPU将所述第一PTP事件报文发送给所述时钟同步装置的逻辑控制芯片;
所述逻辑控制芯片记录所述第一PTP事件报文到达所述逻辑控制芯片的PTP时间戳,根据所述第一PTP事件报文和所述PTP时间戳计算出所述逻辑控制芯片的第一PTP系统时间与所述对端装置的第二PTP系统时间之间的第一时间偏差,并根据所述第一时间偏差与所述对端装置进行时钟同步。
第三方面提供一种网络设备,包括:第一方面提供的任一时钟同步装置。
本发明提供的时钟同步方法、装置及网络设备,通过独立于硬件芯片的逻辑控制芯片实现IEEE1588协议以与对端装置进行时钟同步,CPU只需要将硬件芯片发送的PTP事件报文发送给逻辑控制芯片即可,不需要频繁的从PTP事件报文中读取时间戳,提高了系统效率,另一方面,由独立于硬件芯片的逻辑控制芯片的实现IEEE1588协议,硬件芯片上不需要维持PTP完整80比特时间计数器,无需做大的改动,有利于降低现有硬件芯片的实现代价,另外独立于硬件芯片的逻辑控制芯片的实现也相对简单。
附图说明
图1为本发明实施例提供的一种时钟同步装置的结构示意图;
图2为本发明实施例提供的另一种时钟同步装置的结构示意图;
图3为本发明实施例提供的信息包检测单元的状态机转换示意图;
图4为本发明实施例提供的一种时钟同步方法的流程图。
具体实施方式
图1为本发明实施例提供的一种时钟同步装置的结构示意图。本实施例的时钟同步装置可以独立实现,也可以设置于需要进行时钟同步的设备中实现。需要进行时钟同步的设备例如可以是各种服务器。如图1所示,本实施例的时钟同步装置包括:至少一个硬件芯片11、CPU12和逻辑控制芯片13。每个硬件芯片11与CPU12连接,CPU12与逻辑控制芯片13连接。
硬件芯片11,用于接收对端装置发送的第一PTP事件报文,并记录第一PTP事件报文到达该硬件芯片11的第一时间戳,将第一PTP事件报文的校正(CorrectionField,简称为CF)域中的校正值减去第一时间戳,然后将第一PTP事件报文发送给CPU12。
CPU12,用于接收硬件芯片11发送的第一PTP事件报文,将第一PTP事件报文发送给逻辑控制芯片13。
逻辑控制芯片13,用于接收CPU12发送的第一PTP事件报文并记录第一PTP事件报文到达逻辑控制芯片13的PTP时间戳,根据第一PTP事件报文和记录的第一PTP事件报文到达逻辑控制芯片13的PTP时间戳,计算出逻辑控制芯片13的第一PTP系统时间与对端装置的第二PTP系统时间之间的第一时间偏差,并根据该第一时间偏差与对端装置进行时钟同步。
PTP协议定义了两种类型的报文,一是事件报文,它在收发时刻需要打时间戳,使用事件端口进行收发,该事件端口的端口号为319;二是普通报文,它在收发时刻无需打时间戳,使用通用端口进行收发,该通用端口的端口号为320。事件报文包括但不限于:同步(Sync)报文、延迟请求(Delay_Req)报文、对等延迟请求(Pdelay_Req)报文和对等延迟响应(Pdelay_Resp)报文。相应的,普通报文包括但不限于:通知(Announce)报文、跟随(Follow_Up)报文、延迟应答(Delay_Resp)报文、对等延迟应答跟随(Pdelay_Resp_Follow_Up)报文、管理(Managment)报文和信号(Signaling)报文。
本实施例所述的各个PTP事件报文主要是指PTP协议定义的各种事件报文,但不限于此,也可以扩展到PTP协议定义的普通报文。另外,本发明实施例中的PTP事件报文符合PTP协议规定的格式,例如包括时间戳(TimeStamp,简称为TS)域、CF域、PTP报文类型域、PTP报文序列号域和PTP报文端口域等。在此说明,本发明各实施例中,通过在PTP事件报文之前冠以“第一”、“第二”、“第三”等字样,对各PTP事件报文进行区分,这里的“第一”、“第二”、“第三”既不表示数量多少,也不表示先后顺序,各PTP事件报文收发的先后顺序是由具体的处理逻辑决定的。
在本实施例时钟同步装置与对端装置进行通信过程中,需要进行时钟同步。所述对端装置是与本实施例时钟同步装置相对应的时钟同步装置。具体的,对端装置向本实施例时钟同步装置发送第一PTP事件报文,该第一PTP事件报文是由对端装置的逻辑控制芯片根据该逻辑控制芯片所使用的PTP系统时钟生成的。第一PTP事件报文包括TS域和CF域,TS域用于记录对端装置的逻辑控制芯片发送第一PTP事件报文时的PTP系统时间,本实施例将这里记录的PTP系统时间称为发送第一PTP事件报文时的PTP时间戳;CF域与TS域相对应,用于记录TS域中记录的PTP时间戳的校正值。其中,根据TS域中记录的PTP时间戳,获取其校正值的方式可以根据实际应用的不同而不同。
在此说明,本发明各实施例中涉及的PTP时间戳是指逻辑控制芯片使用的PTP系统时钟的某个时间,而所涉及的时间戳是指硬件芯片的本地时钟的某个时间。
本实施例的时钟同步装置的硬件芯片11接收对端装置发送的第一PTP事件报文,记录第一PTP事件报文到达该硬件芯片11的时间,本发明实施例将这里记录的时间记为第一时间戳,然后将第一PTP事件报文的CF域中的校正值减去第一时间戳,以使用链路延迟对第一PTP事件报文的CF域进行修正,然后将第一PTP事件报文发送给CPU12,以使CPU12将第一PTP事件报文发送给逻辑控制芯片13。
逻辑控制芯片13接收CPU12发送的第一PTP事件报文,记录第一PTP事件报文到达逻辑控制芯片13的PTP系统时间,将这里记录的PTP系统时间记为第一PTP事件报文到达逻辑控制芯片13的PTP时间戳,然后根据第一PTP事件报文和所记录的第一事件报文到达逻辑控制芯片13的PTP时间戳,计算出逻辑控制芯片13使用的PTP系统时间与对端装置使用的PTP系统时间之间的第一时间偏差,然后根据该第一时间偏差与所述对端装置进行时钟同步。这里为便于区分,将本实施例时钟同步装置中的逻辑控制芯片13使用的PTP系统时间记为第一PTP系统时间,将对端装置使用的PTP系统时间记录第二PTP系统时间。
在时钟同步过程中,一般会有一个主设备,其它设备作为从设备,从设备以该主设备的时钟为准进行时钟同步。
在一可选实施方式中,本实施例的时钟同步装置可以是从设备,则时钟同步装置中的逻辑控制芯片13还用于在计算出第一时间偏差之后,根据第一PTP系统时间生成第二PTP事件报文,将第二PTP事件报文发送给CPU12。
CPU12,还用于接收逻辑控制芯片13发送的第二PTP事件报文,将第二PTP事件报文发送给硬件芯片11。可选的,CPU12会将第二PTP事件报文发送给接收到第一PTP事件报文的硬件芯片11,但不限于此。例如,CPU12还可以将第二PTP事件报文发送给每个硬件芯片11。
硬件芯片11,还用于接收CPU12发送的第二PTP事件报文,记录第二PTP事件报文到达硬件芯片11的第二时间戳,将第二PTP事件报文的CF域中的校正值加上第二时间戳,然后将第二PTP事件报文发送给对端装置,以使对端装置根据第二PTP事件报文生成并返回第一PTP系统时间与第二PTP系统时间之间的第二时间偏差。其中,该第二时间偏差是通过硬件芯片11和CPU12发送到逻辑控制芯片13的。
在该实施方式中,本实施例时钟同步装置为从设备,而对端装置为主设备。主设备接收到从设备返回的第二PTP事件报文后,根据第二PTP事件报文计算出主从设备的PTP系统时间之间的时间偏差,并将计算出的时间偏差返回给从设备。在该实施方式中,从设备计算出的时间偏差即第一时间偏差,为与从设备计算出的时间偏差相区分,这里将主设备计算出的时间偏差记为第二时间偏差。
可选的,第一PTP事件报文可以是对端装置发送的同步报文,而第二PTP报文可以是对同步报文的应答报文,例如可以是延迟请求报文。
如果本实施例的时钟同步装置作为从设备,则逻辑控制芯片13用于根据第一时间偏差与对端装置进行时钟同步包括:逻辑控制芯片13具体用于根据该第一时间偏差和第二时间偏差,对所使用的PTP系统时间进行校正,同时根据该校正后的PTP系统时间对每个硬件芯片11进行时钟同步,以与对端装置进行时钟同步。具体的,逻辑控制芯片13可以根据第一时间偏差和第二时间偏差,获得主从设备之间的平均时间偏差,然后根据该平均时间偏差对所使用的PTP系统时间进行校正。在该实施方式中,本实施例的时钟同步装置作为从设备,是在对端装置的控制下进行时钟同步的。
在一可选实施方式中,本实施例时钟同步装置可以是主设备,则时钟同步装置中的逻辑控制芯片13还用于在接收第一PTP事件报文之前,根据第一PTP系统时间生成第三PTP事件报文,将第三PTP事件报文发送给CPU12。
CPU12,还用于接收逻辑控制芯片13发送的第三PTP事件报文,将第三PTP事件报文发送给硬件芯片11。可选的,CPU12会将第三PTP事件报文发送给后续接收到第一PTP事件报文的硬件芯片11,但不限于此。例如,CPU12还可以将第三PTP事件报文发送给每个硬件芯片11。
硬件芯片11,还用于在接收第一PTP事件报文之前,接收CPU12发送的第三PTP事件报文,记录第三PTP事件报文到达该硬件芯片11的第三时间戳,将第三PTP事件报文的CF域中的校正值加上第三时间戳,然后将第三PTP事件报文发送给对端装置,以使对端装置根据第三PTP事件报文生成第一PTP系统时间和第二PTP系统时间之间的第三时间偏差。
在该实施方式中,本实施例时钟同步装置为主设备,而对端装置为从设备。主设备主动向从设备发送第三PTP事件报文,以使从设备根据第三PTP事件报文计算出主从设备的PTP系统时间之间的时间偏差,并返回对第三PTP事件报文的应答报文(即第一PTP事件报文),以使主设备根据第一PTP事件报文计算主从设备之间的PTP系统时间之间的时间偏差。在该实施方式中,主设备计算出的时间偏差即第一时间偏差,为与主设备计算出的时间偏差相区分,这里将从设备计算出的时间偏差记为第三时间偏差。
可选的,第三PTP报文可以是同步报文,而第一PTP报文可以是对端装置针对同步报文返回的应答报文,例如可以是延迟请求报文。
如果本实施例的时钟同步装置作为主设备,则逻辑控制芯片13用于根据第一时间偏差与对端装置进行时钟同步包括:逻辑控制芯片13具体用于通过CPU12和硬件芯片11,将第一时间偏差发送给对端装置,以使对端装置根据第一时间偏差和第三时间偏差对第二PTP系统时间进行校正,以与对端装置进行时钟同步。在该实施方式中,本实施例的时钟同步装置作为主设备,控制对端装置进行时钟同步。
逻辑控制芯片13用于根据第一PTP事件报文和记录的第一PTP事件报文到达逻辑控制芯片13的PTP时间戳,计算出第一时间偏差包括:逻辑控制芯片13具体用于对第一PTP事件报文进行解析,从第一PTP事件报文的TS域和CF域中分别获取对端装置发送第一PTP事件报文时的PTP时间戳和对应的由硬件芯片11修正过的校正值,并根据记录的第一PTP事件报文到达逻辑控制芯片13的PTP时间戳,获得第一PTP事件报文到达逻辑控制芯片13的PTP时间戳对应的校正值,然后根据第一PTP事件报文到达逻辑控制芯片13的PTP时间戳、对端装置发送第一PTP事件报文时的PTP时间戳、第一PTP事件报文到达逻辑控制芯片13的PTP时间戳对应的校正值和对端装置发送第一PTP事件报文时的PTP时间戳对应的校正值,获得第一PTP系统时间和第二PTP系统时间之间的第一时间偏差。具体的,逻辑控制芯片13可以用对端装置发送第一PTP事件报文时的PTP时间戳对应的校正值,对对端装置发送第一PTP事件报文时的PTP时间戳进行校正,并用第一PTP事件报文到达逻辑控制芯片13的PTP时间戳对应的校正值,对第一PTP事件报文到达逻辑控制芯片13的PTP时间戳进行校正;然后,用校正后的第一PTP事件报文到达逻辑控制芯片13的PTP时间戳,与校正后的对端装置发送第一PTP事件报文时的PTP时间戳相减,从而获得第一PTP系统时间和第二PTP系统时间之间的第一时间偏差。
可选的,本实施例时钟同步装置中的硬件芯片11可以是介质访问控制(MediumAccessControl,简称为MAC)芯片或物理层(PHY)芯片。
本实施例的逻辑控制芯片13可以由现场可编程门阵列(FieldProgrammableGateArray,简称为FPGA)或复杂可编程逻辑器件(ComplexProgrammableLogicDevice,简称为CPLD)实现。
本实施例提供的时钟同步装置,通过独立于硬件芯片的逻辑控制芯片实现IEEE1588协议以进行时钟同步,CPU只需要将硬件芯片发送的PTP事件报文发送给逻辑控制芯片即可,不需要频繁的从PTP事件报文中读取时间戳,提高了系统效率,另一方面,由独立于硬件芯片的逻辑控制芯片的实现IEEE1588协议,硬件芯片上不需要维持PTP完整80比特时间计数器,无需做大的改动,有利于降低现有硬件芯片的实现代价,另外独立于硬件芯片的逻辑控制芯片的实现也相对简单。
图2为本发明实施例提供的另一种时钟同步装置的结构示意图。本实施例基于图1所示实施例实现,如图2所示,本实施例的装置也包括:至少一个硬件芯片11、CPU12和逻辑控制芯片13。每个硬件芯片11与CPU12连接,CPU12与逻辑控制芯片13连接。其中,关于硬件芯片11和CPU12的功能可参见上述实施例的描述,在此不再赘述。
如图2所示,本实施例的逻辑控制芯片13的一种实现结构包括:第一接口单元131、信息包检测单元132、时钟运算单元133、系统时间单元134、信息包控制单元135、信息包封装单元136和第二接口单元137。
第一接口单元131,与CPU12、信息包检测单元132和信息包封装单元136连接,用于接收CPU12发送的第一PTP事件报文并将第一PTP事件报文发送给信息包检测单元132,以及将信息包封装单元136封装出的第二PTP事件报文发送给CPU12。
信息包检测单元132,分别与第一接口单元131、时钟运算单元133和信息包控制单元135连接,用于判断第一接口单元131接收到的第一PTP事件报文是否符合PTP协议要求,在判断结果为符合时,提取第一PTP事件报文的PTP报文头信息,并将所提取的PTP报文头信息分别发送给时钟运算单元133和信息包控制单元135,所述PTP报文头信息包括CF域和TS域。
具体的,信息包检测单元132可以采用图3所示的状态机完成对第一PTP事件报文的解析判断。信息包检测单元132的初始状态为空闲(IDLE),当检测到报文的起始标志时,跳转至ST_MAC状态。其中,ST_MAC状态主要是指信息包检测单元132在检测报文的MAC头信息是否符合PTP协议要求的过程中所处的状态。在该ST_MAC状态下,信息包检测单元132首先判断所接收到报文的MAC地址是否符合PTP协议的要求,这里接收到的报文可以是单播报文也可以是组播报文,如果判断结果为不符合(即MAC地址错误),则从ST_MAC状态会返回至IDLE状态;如果判断结果为符合,则继续检测该报文的以太网报文类型数值是不是0x0800或0x88F7。如果信息包检测单元132检测到该报文的以太网报文类型数值不是0x0800或0x88F7,则从ST_MAC状态会返回至IDLE状态;如果在ST_MAC状态下检测到该报文的以太网报文类型数值为0x88F7,则直接从ST_MAC状态跳转至ST_PTP状态;如果在ST_MAC状态下检测到该报文的以太网报文类型数值为0x0800,则从ST_MAC状态跳转至ST_IP状态。其中,ST_IP状态主要是指信息包检测单元132在检测报文的IP头信息是否符合PTP协议要求的过程中所处的状态。在ST_IP状态下,信息包检测单元132首先检测报文的IP地址是否符合PTP协议的要求,如果检测结果为IP地址不符合PTP协议的要求(即IP地址错误),则从ST_IP状态返回IDLE状态;如果检测结果为IP地址符合PTP协议的要求,则进一步检测该报文的IP头协议类型是否为0x11,如果检测结果为是,则从ST_IP状态跳转至ST_UDP状态,否则返回IDLE状态。其中,ST_UDP状态主要是指信息包检测单元132在检测报文的UDP头信息是否符合PTP协议要求的过程中所处的状态。在ST_UDP状态下,信息包检测单元132检测该报文的UDP头的端口号是否为319或320,如果检测结果为是,则从ST_UDP状态跳转至ST_PTP状态,否则返回IDLE状态。其中,ST_PTP状态主要是指信息包检测单元132在提取报文的PTP报文头信息的过程中所处的状态。在ST_PTP状态下,信息包检测单元132完成对第一PTP事件报文的PTP报文头信息的提取,例如提取PTP报文类型、PTP报文中的CF数值、PTP报文中的TS数值、PTP报文序列号和PTP报文端口数值等,在有效、正确的完成PTP报文头信息的提取后,返回IDLE状态,并且把提取的PTP报文头信息提供给时钟运算单元133和信息包控制单元135。
时钟运算单元133,还与系统时间单元134和信息包控制单元135连接,用于记录第一PTP事件报文到达逻辑控制芯片13的PTP时间戳,根据信息包检测单元132发送的PTP报文头信息和所记录的第一PTP事件报文到达逻辑控制芯片13的PTP时间戳,计算第一PTP系统时间与第二PTP系统时间之间的第一时间偏差,并将第一时间偏差发送给系统时间单元134,以及在将第一时间偏差发送给系统时间单元134之前,接收系统时间单元134发送的第一PTP系统时间(这里指定是校正前的PTP系统时间),并将第一PTP系统时间发送给信息包控制单元135。
具体的,信息包检测单元132可以在检测都到报文起始标志时,向时钟运算单元133发送触发指令,以告知时钟运算单元133接收到报文,使时钟运算单元133记录该报文的接收PTP时间戳。相应的,时钟运算单元133可以根据信息包检测单元132的触发,记录第一PTP事件报文的接收PTP时间戳。
系统时间单元134,还与第二接口单元137连接,用于在时钟运算单元133发送第一时间偏差之前,向时钟运算单元133发送第一PTP系统时间,根据时钟运算单元133发送的第一时间偏差,校正第一PTP系统时间,并将所述校正后的第一PTP系统时间发送给第二接口单元137。
其中,系统时间单元134主要负责第一PTP系统时间的维护和纠正。在本实施例中,系统时间单元134主要提供两种方式进行时间校正,一种是粗调,一种是细调。当时钟运算单元133运算得到的第一时间偏差超过预设时间门限,例如1秒(s)时,即主从设备之间的时间偏差超过1s,则需要进行粗调,快速纠正主从设备之间的时间偏差。具体的:系统时间单元134控制粗调使能开关,把第一时间偏差直接加入第一PTP系统时间。
在主从设备的大部分工作时间内,设备间的时间偏差通常是在1s内,如果一直进行粗调,会增加主从设备之间PTP系统时间的跳动频率,即当从设备快于主设备时,经常出现相同PTP系统时间的跳动,或是当从设备慢于主设备时,经常出现较大时间偏差的跳动,从而影响系统性能。为了避免这种情况,在第一时间偏差小于预设时间门限时,选择进行细调。例如,假设第一PTP系统时间的工作频率为125MHz时,第一PTP系统时间计数器将在每一节拍增加8,即增加8ns。这样的话,当系统时间单元134提供第一时间偏差小于预设时间时,控制细调使能开关,把第一PTP系统时间基准步长寄存器数值0x80000000加上第一时间偏差,得到第一PTP系统时间当前步长寄存器数值。主设备内部32比特计数器根据当前步长寄存器数值进行不断的叠加,取高4比特作为第一PTP系统时间纳秒计数器的低4比特,并且把进位数值加入28比特计数器作为第一PTP系统时间纳秒计数器的高28比特,这样就组成了系统时间32比特纳秒计数器。按照该方法对第一PTP系统时间调整,可以避免粗调方式带来的弊端,PTP系统时间的调整较稳定和平滑。
信息包控制单元135,还与信息包封装单元136连接,用于根据时钟运算单元133发送的第一PTP系统时间和信息包检测单元132发送的PTP报文头信息,确定第二PTP事件报文的类型信息和内容信息,并将第二PTP事件报文的类型信息和内容信息发送给信息包封装单元136,所述第二PTP事件报文的内容信息为时钟运算单元133发送的所述校正后的第一PTP系统时间。
信息包封装单元136,用于根据信息包控制单元135发送的第二PTP事件报文的类型信息和内容信息,生成第二PTP事件报文,将第二PTP事件报文发送给第一接口单元131,以使第一接口单元131将第二PTP报文发送给CPU12,进而发送给对端装置。
可选的,信息包封装单元136用于根据信息包控制单元135发送的第二PTP事件报文的类型信息和内容信息,生成第二PTP事件报文包括:信息包封装单元136具体用于将第二PTP事件报文的内容信息(即第一PTP系统时间)添加到第二PTP事件报文的TS域中,将第二PTP事件报文的内容信息的指定比特进行取反处理,将取反处理的结果写入第二PTP事件报文的CF域中,以生成第二PTP事件报文。例如,指定比特可以是低32比特,则信息包封装单元136具体用于取TS域中记录的发送PTP时间戳的低32比特,将所取的低32比特取反,将取反后的结果作为发送PTP时间戳的校正值写入CF域中。
可选的,信息包封装单元136用于根据信息包控制单元135发送的第二PTP事件报文的类型信息和内容信息,生成第二PTP事件报文包括:信息包封装单元136具体用于根据信息包控制单元135发送的第二PTP事件报文的类型信息和内容信息,对预先存储的PTP模板报文进行修改,生成第二PTP事件报文。
在本实施例时钟同步装置中可以使用两块RAM作为存储单元,一块存储PTP模板报文,另外一块作为临时PTP封装存储单元。当要求封装PTP报文时,首先读取PTP模板报文,并根据信息包控制单元135的要求(这里信息包控制单元135的要求主要是指信息包控制单元135发送的第二PTP事件报文的类型信息和内容信息),修改PTP模板报文需要修改的地方,再把修改后的PTP报文存储在临时PTP存储单元中,等待发送。
具体的,首先,判断要求发送的报文是否为单播报文,如果是单播报文,则根据信息包控制单元135的要求把单播地址填入临时PTP封装存储单元中,把从存储PTP模板报文的存储单元读取的相应数据填入临时PTP封装存储单元;接着,判断所要求的PTP报文是否为基于UDP的PTP报文,如果是,则根据信息包控制单元135的要求在临时PTP封装存储单元中填入IP头和UDP头;最后,根据信息包控制单元135的要求填入PTP头。如果是组播报文,将本地地址作为源地址填入临时PTP封装存储单元中,其他操作与单播报文的处理相同,即把从存储PTP模板报文的存储单元读取的相应数据填入临时PTP封装存储单元,然后判断所要求的PTP报文是否为基于UDP的PTP报文,并根据判断结果进行相应处理。
第二接口单元137,还与硬件芯片11连接,用于将系统时间单元134发送的所述校正后的第一PTP系统时间发送给每个硬件芯片11,以使每个硬件芯片11将本地时钟同步为所述校正后的第一PTP系统时间。
在一可选实施方式中,逻辑控制芯片13还包括:第三接口单元138和系统控制单元139。
第三接口单元138,与CPU12和系统控制单元139连接,用于接收CPU12发送的第一配置指令,将第一配置指令发送给系统控制单元139,所述第一配置指令用于对本实施例时钟同步装置的主从角色和/或时钟类型进行配置。
系统控制单元139,还与信息包控制单元135连接,用于对第一配置指令进行类型识别,在识别出第一配置指令为用于对本实施例时钟同步装置的主从角色和/或时钟类型进行配置的配置指令时,将第一配置指令发送给信息包控制单元135。
基于上述,信息包控制单元135具体可用于根据第一配置指令和信息包检测单元132发送的PTP报文头信息,确定第二PTP事件报文的类型信息,并将时钟运算单元133发送的第一PTP系统时间作为第二PTP事件报文的内容信息,然后将第二PTP事件报文的类型信息和内容信息发送给信息包封装单元136。
其中,PTP协议定义了三种类型的时钟,分别是普通时钟(OC)、边界时钟(BC)和透明时钟(TC)。从通信逻辑关系来看,时钟又分为主时钟和从时钟,本实施例的时钟同步装置可以是主设备,或者是从设备。基于此,如果第一配置指令的配置结果不同,信息包控制单元135所确定的第二PTP事件报文的类型信息也会有所不同。
进一步,第三接口单元138还用于接收CPU12发送的第二配置指令,将第二配置指令发送给系统控制单元135,所述第二配置指令用于对第一PTP系统时间进行初始化配置。
相应地,系统控制单元135还与系统时间单元134连接,用于对第二配置指令进行类型识别,在识别出第二配置指令为用于对第一PTP系统时间进行初始化配置的配置指令时,将第二配置指令发送给系统时间单元134。
系统时间单元134还用于根据系统控制单元135发送的第二配置指令,初始化第一PTP系统时间。
进一步,CPU12还可以通过第三接口单元138和系统控制单元135,查询系统时间单元134,获取第一PTP系统时间。
逻辑控制芯片13的上述各功能单元主要用于在本实施例时钟同步装置为从设备时,完成与对端装置进行时钟同步的操作。进一步,在本实施例时钟同步装置作为主设备时,上述各功能单元还可以完成与对端装置进行时钟同步的操作。
具体的,系统时间单元134还用于将第一PTP系统时间发送时钟运算单元133。时钟运算单元133还用于将第一PTP系统时间发送给信息包控制单元135。信息包控制单元135还用于根据预先配置的信息,确定待生成的第三PTP事件报文的类型信息,并将第一PTP系统时间作为第三PTP事件报文的内容信息,将第三PTP事件报文的类型信息和内容信息发送给信息包封装单元136。信息包封装单元136还用于根据第三PTP事件报文的类型信息和内容信息,生成第三PTP事件报文,并将第三PTP事件报文发送给第一接口单元131。第一接口单元131还用于接收信息包封装单元136封装成的第三PTP事件报文,将第三PTP事件报文发送给对端装置,以使对端装置根据第三PTP事件报文生成第一PTP系统时间与第二PTP系统时间之间的第三时间偏差并返回第一PTP事件报文。
硬件芯片11接收到第一PTP事件报文之后,通过CPU12将第一PTP事件报文发送给第一接口单元131。第一接口单元131将第一PTP事件报文发送给信息包检测单元132;信息包检测单元132判断第一接口单元131接收到的第一PTP事件报文是否符合PTP协议要求,在判断结果为符合时,提取第一PTP事件报文的PTP报文头信息,并将所提取的PTP报文头信息分别发送给时钟运算单元133;时钟运算单元133记录第一PTP事件报文的接收PTP时间戳,根据信息包检测单元132发送的PTP报文头信息和所记录的接收PTP时间戳,计算第一PTP系统时间与第二PTP系统时间之间的第一时间偏差,将第一时间偏差发送给信息包控制单元135;信息包控制单元135将第一时间偏差发送给第一接口单元131;第一接口单元131将第一时间偏差发送给CPU12,CPU12将第一时间偏差发送给硬件芯片11;硬件芯片11将第一时间偏差发送给对端装置,以使对端装置根据第一时间偏差和第三时间偏差对第二PTP系统时间进行校正,以与对端装置进行时钟同步。
下面以包括上述时钟同步装置的主设备,与包括上述时钟同步装置的从设备进行时钟同步为例进行说明。在该实施方式中,以第一PTP事件报文为同步报文,第二PTP报文为延迟请求报文为例,以硬件芯片为MAC芯片为例进行说明。
首先,主设备定时向从设备发送同步报文。具体的,该同步报文由主设备的逻辑控制芯片封装生成,在生成该同步报文时,逻辑控制芯片对主设备的PTP系统时间进行采样得到一个PTP格式时间戳Ta(即上述实施例中的接收PTP时间戳),并填入同步报文的TS域;再把Ta转换成纳秒的形式,取其低32比特的数值得到ta,并取反得到-ta,将-ta填入同步报文的CF域中。之后,主设备的逻辑控制芯片将同步报文发送给主设备的MAC芯片。主设备的MAC芯片采用TC设备的出口操作,即在同步报文的CF域数值上加上时间戳t1,该时间戳t1是MAC芯片记录的同步报文到达MAC芯片时的MAC芯片的本地时间。之后,主设备的MAC芯片将同步报文发送给从设备的MAC芯片。从设备的MAC芯片采用TC设备的进口操作,即在同步报文的CF域数值上减去时间戳t2,该时间戳t2是同步报文到达该MAC芯片时,MAC芯片记录的本地时间。之后,从设备的MAC芯片将同步报文发送给从设备的逻辑控制芯片。从设备的逻辑控制芯片收到同步报文时,对从设备的PTP系统时间进行采样得到时间戳Tb,并取其低32比特的数值得到tb,并取反得到-tb。这样从设备的逻辑控制芯片在接收到同步报文时,一共得到Ta,t1-ta-t2,Tb,tb四个时间戳,从设备的逻辑控制芯片根据这些时间戳,运算得出主从设备的PTP系统时间之间的第一时间偏差,即
M2S_OFFSET=T2-T1=[Tb-(tb-t2)]-[Ta+(t1-ta)]
同理,从设备的逻辑控制芯片发送延迟请求报文至主设备。具体的,该延迟请求报文由从设备的逻辑控制芯片封装生成,在生成该延迟请求报文时,逻辑控制芯片对从设备的PTP系统时间进行采样得到一个PTP格式时间戳Tc(即上述实施例中的接收PTP时间戳),并填入延迟请求报文的TS域;再把Tc转换成纳秒的形式,取其低32比特的数值得到tc,并取反得到-tc,将-tc填入延迟请求报文的CF域中。之后,从设备的逻辑控制芯片将延迟请求报文发送给从设备的MAC芯片。从设备的MAC芯片采用TC设备的出口操作,即在延迟请求报文的CF域数值上加上时间戳t3,该时间戳t3是MAC芯片记录的同步报文到达MAC芯片时MAC芯片的本地时间。之后,从设备的MAC芯片将延迟请求报文发送给主设备的MAC芯片。主设备的MAC芯片采用TC设备的进口操作,即在延迟请求报文的CF域数值上减去时间戳t4,该时间戳t4是延迟请求报文到达该MAC芯片时,MAC芯片记录的本地时间。之后,主设备的MAC芯片将延迟请求报文发送给主设备的逻辑控制芯片。主设备的逻辑控制芯片收到延迟请求报文时,对主设备的PTP系统时间进行采样得到时间戳Td,并取其低32比特的数值得到td,并取反得到-td。这样主设备的逻辑控制芯片在接收到延迟请求报文时,一共得到Tc,t3-tc,Td,td四个时间戳,主设备的逻辑控制芯片运算得到从主设备偏差值,即
S2M_OFFSET=T4-T3=[Td-(td-t4)]-[Tc+(t3-tc)]
主设备的逻辑控制芯片把S2M_OFFSET通过延迟响应报文的TS域传送给从设备的逻辑控制芯片,从设备的逻辑控制芯片根据M2S_OFFSET和S2M_OFFSET,运算得到主从设备间的平均路径延迟,即
DELAY=(M2S_OFFSET+S2M_OFFSET)/2
之后,从设备每次收到主设备发动的同步报文时,从设备的逻辑控制芯片运算得到主从设备的时间偏差值,即
OFFSET=M2S_OFFSET–DELAY
最终,从设备的逻辑控制芯片根据该OFFSET对从设备的PTP系统时间进行校正,达到主从设备的同步。其中,M2S_OFFSET、S2M_OFFSET、DELAY和OFFSET这些数值的运算都是在逻辑控制芯片的时钟运算单元内完成。
由上述可见,本实施例提供的时钟同步装置,通过独立于硬件芯片的逻辑控制芯片实现IEEE1588协议以进行时钟同步,CPU只需要将硬件芯片发送的PTP事件报文发送给逻辑控制芯片即可,不需要频繁的从PTP事件报文中读取时间戳,提高了系统效率,另一方面,由独立于硬件芯片的逻辑控制芯片的实现IEEE1588协议,硬件芯片上不需要维持PTP完整80比特时间计数器,无需做大的改动,有利于降低现有硬件芯片的实现代价,另外独立于硬件芯片的逻辑控制芯片的实现也相对简单。除此之外,本实施例的时钟同步装置还具有以下有益效果:通用性强,可移植性好;可以基于具有TC功能的硬件芯片实现,在逻辑控制芯片的运算上面稍加变动就可以实现BC或OC功能,功能实现简单;对PTP系统时间的维护和纠正方法,同时满足时间快速调整和稳定的特性;基于多个硬件芯片,可以在多卡式设备上实现IEEE1588协议,实现复杂度低。
图4为本发明实施例提供的一种时钟同步方法的流程图。如图4所示,本实施例的方法包括:
步骤401、时钟同步装置的硬件芯片接收对端装置发送的第一PTP事件报文,记录第一PTP事件报文到达硬件芯片的第一时间戳,将第一PTP事件报文的CF域中的校正值减去第一时间戳,然后将第一PTP事件报文发送给时钟同步装置的CPU。
步骤402、CPU将第一PTP事件报文发送给时钟同步装置的逻辑控制芯片。
步骤403、逻辑控制芯片记录第一PTP事件报文到达逻辑控制芯片的PTP时间戳,根据第一PTP事件报文和所记录的PTP时间戳计算出逻辑控制芯片的第一PTP系统时间与对端装置的第二PTP系统时间之间的第一时间偏差,并根据第一时间偏差与对端装置进行时钟同步。
在一可选实施方式中,本实施例的方法在逻辑控制芯片计算出第一时间偏差之后还包括:
逻辑控制芯片根据第一PTP系统时间生成第二PTP事件报文,并将第二PTP事件报文发送给CPU。CPU将第二PTP事件报文发送给硬件芯片。硬件芯片记录第二PTP事件报文到达硬件芯片的第二时间戳,将第二PTP事件报文的CF域中的校正值加上第二时间戳,然后将第二PTP事件报文发送给对端装置,以使对端装置根据第二PTP事件报文生成并返回第一PTP系统时间与第二PTP系统时间之间的第二时间偏差。
基于上述,逻辑控制芯根据第一时间偏差与所述对端装置进行时钟同步包括:逻辑控制芯片根据第一时间偏差和对端装置返回的第二时间偏差,对第一PTP系统时间进行校正,根据校正后的第一PTP系统时间同步每个硬件芯片的本地时钟,以与对端装置进行时钟同步。
在一可选实施方式中,本实施例的方法在时钟同步装置的硬件芯片接收对端装置发送的第一PTP事件报文之前还包括:
逻辑控制芯片在接收第一PTP事件报文之前,根据第一PTP系统时间生成第三PTP事件报文,将第三PTP事件报文发送给CPU;CPU将第三PTP事件报文发送给硬件芯片;硬件芯片记录第三PTP事件报文到达硬件芯片的第三时间戳,将第三PTP事件报文的CF域中的校正值加上第三时间戳,然后将第三PTP事件报文发送给对端装置,以使对端装置根据第三PTP事件报文生成第一PTP系统时间与第二PTP系统时间之间的第三时间偏差。
基于上述,逻辑控制芯片根据第一时间偏差与对端装置进行时钟同步包括:逻辑控制芯片通过CPU和硬件芯片,将第一时间偏差发送给对端装置,以使对端装置根据第一时间偏差和第三时间偏差对第二PTP系统时间进行校正,以与对端装置进行时钟同步。
本实施例提供的时钟同步方法可由上述实施例提供的时钟同步装置实现,其具体流程不再详述,可参见时钟同步装置实施例的描述。
本实施例提供的时钟同步方法,具有简单易于实现,且同步效率较高等优势。
本发明实施例提供一种网络设备,包括上述实施例提供的时钟同步装置。时钟同步装置的工作原理和实现结构可参见上述实施例,在此不再赘述。
本实施例提供的网络设备,包括上述实施例的时钟同步装置,通过独立于硬件芯片的逻辑控制芯片实现IEEE1588协议以进行时钟同步,CPU只需要将硬件芯片发送的PTP事件报文发送给逻辑控制芯片即可,不需要频繁的从PTP事件报文中读取时间戳,提高了系统效率,另一方面,由独立于硬件芯片的逻辑控制芯片的实现IEEE1588协议,硬件芯片上不需要维持PTP完整80比特时间计数器,无需做大的改动,有利于降低现有硬件芯片的实现代价,另外独立于硬件芯片的逻辑控制芯片的实现也相对简单。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (18)

1.一种时钟同步装置,其特征在于,包括:至少一个硬件芯片、中央处理器CPU和逻辑控制芯片;
所述硬件芯片,用于接收对端装置发送的第一精确时间协议PTP事件报文,并记录所述第一PTP事件报文到达所述硬件芯片的第一时间戳t2,将所述第一PTP事件报文的CF域中的校正值减去所述第一时间戳t2,所述第一PTP事件报文包括TS域和CF域,所述TS域用于记录所述对端装置的逻辑控制芯片发送所述第一PTP事件报文时的PTP系统时间Ta,所述CF域中的校正值为t1-ta,t1为所述第一PTP事件报文从所述对端装置的逻辑控制芯片到达所述对端装置的硬件芯片时,所述对端装置的硬件芯片的本地时间,ta为Ta转换成的纳秒形式的低32比特的数值;
然后将所述第一PTP事件报文发送给所述CPU;
所述CPU,用于接收所述硬件芯片发送的所述第一PTP事件报文,将所述第一PTP事件报文发送给所述逻辑控制芯片;
所述逻辑控制芯片,用于接收所述CPU发送的所述第一PTP事件报文并记录所述第一PTP事件报文到达所述逻辑控制芯片的PTP时间戳Tb,并取Tb低32比特的数值得到tb,根据所述第一PTP事件报文和所述PTP时间戳,计算出所述逻辑控制芯片的第一PTP系统时间与所述对端装置的第二PTP系统时间之间的第一时间偏差,并根据所述第一时间偏差与所述对端装置进行时钟同步,所述第一PTP系统时间为Tb-(tb-t2),所述第二PTP系统时间为Ta+(t1-ta)。
2.根据权利要求1所述的时钟同步装置,其特征在于,所述逻辑控制芯片,还用于根据所述第一PTP系统时间生成第二PTP事件报文,将所述第二PTP事件报文发送给所述CPU;
所述CPU,还用于接收所述逻辑控制芯片发送的所述第二PTP事件报文,将所述第二PTP事件报文发送给所述硬件芯片;
所述硬件芯片,还用于接收所述CPU发送的所述第二PTP事件报文,记录所述第二PTP事件报文到达所述硬件芯片的第二时间戳,将所述第二PTP事件报文的CF域中的校正值加上所述第二时间戳,然后将所述第二PTP事件报文发送给所述对端装置,以使所述对端装置根据所述第二PTP事件报文生成并返回所述第一PTP系统时间与所述第二PTP系统时间之间的第二时间偏差。
3.根据权利要求2所述的时钟同步装置,其特征在于,所述逻辑控制芯片用于根据所述第一时间偏差与所述对端装置进行时钟同步包括:
所述逻辑控制芯片具体用于根据所述第一时间偏差和所述第二时间偏差,对所述第一PTP系统时间进行校正,根据所述校正后的第一PTP系统时间同步每个所述硬件芯片的本地时钟,以与所述对端装置进行时钟同步。
4.根据权利要求1所述的时钟同步装置,其特征在于,所述逻辑控制芯片,还用于在接收所述第一PTP事件报文之前,根据所述第一PTP系统时间生成第三PTP事件报文,将所述第三PTP事件报文发送给所述CPU;
所述CPU,还用于接收所述逻辑控制芯片发送的所述第三PTP事件报文,将所述第三PTP事件报文发送给每个所述硬件芯片;
所述硬件芯片,还用于在接收所述第一PTP事件报文之前,接收所述CPU发送的所述第三PTP事件报文,记录所述第三PTP事件报文到达所述硬件芯片的第三时间戳,将所述第三PTP事件报文的CF域中的校正值加上所述第三时间戳,然后将所述第三PTP事件报文发送给所述对端装置,以使所述对端装置根据所述第三PTP事件报文生成所述第一PTP系统时间与所述第二PTP系统时间之间的第三时间偏差并返回所述第一PTP事件报文。
5.根据权利要求4所述的时钟同步装置,其特征在于,所述逻辑控制芯片用于根据所述第一时间偏差与所述对端装置进行时钟同步包括:
所述逻辑控制芯片具体用于通过所述CPU和所述硬件芯片,将所述第一时间偏差发送给所述对端装置,以使所述对端装置根据所述第一时间偏差和所述第三时间偏差对所述第二PTP系统时间进行校正,以与所述对端装置进行时钟同步。
6.根据权利要求3所述的时钟同步装置,其特征在于,所述逻辑控制芯片包括:第一接口单元、信息包检测单元、时钟运算单元、系统时间单元、信息包控制单元、信息包封装单元和第二接口单元;
所述第一接口单元,用于接收所述CPU发送的所述第一PTP事件报文,以及将所述信息包封装单元封装出的所述第二PTP事件报文发送给所述CPU;
所述信息包检测单元,用于判断所述第一接口单元接收到的所述第一PTP事件报文是否符合PTP协议要求,在判断结果为符合时,提取所述第一PTP事件报文的PTP报文头信息,并将所述PTP报文头信息分别发送给所述时钟运算单元和所述信息包控制单元,所述PTP报文头信息包括所述CF域和时间戳TS域;
所述时钟运算单元,用于记录所述第一PTP事件报文到达所述逻辑控制芯片的PTP时间戳,根据所述PTP报文头信息和所述PTP时间戳,计算所述第一时间偏差,并将所述第一时间偏差发送给所述系统时间单元,以及在将所述第一时间偏差发送给所述系统时间单元之前,接收所述系统时间单元发送的所述第一PTP系统时间,并将所述第一PTP系统时间发送给所述信息包控制单元;
所述系统时间单元,用于在所述时钟运算单元发送所述第一时间偏差之前,向所述时钟运算单元发送所述第一PTP系统时间,根据所述时钟运算单元发送的所述第一时间偏差,校正所述第一PTP系统时间,并将所述校正后的第一PTP系统时间发送给所述第二接口单元;
所述信息包控制单元,用于根据所述时钟运算单元发送的所述第一PTP系统时间和所述信息包检测单元发送的所述PTP报文头信息,确定所述第二PTP事件报文的类型信息和内容信息,并将所述第二PTP事件报文的类型信息和内容信息发送给所述信息包封装单元,所述第二PTP事件报文的内容信息为所述校正后的第一PTP系统时间;
所述信息包封装单元,用于根据所述信息包控制单元发送的所述第二PTP事件报文的类型信息和内容信息,生成所述第二PTP事件报文,将所述第二PTP事件报文发送给所述第一接口单元;
所述第二接口单元,用于将所述系统时间单元发送的所述校正后的第一PTP系统时间发送给每个所述硬件芯片,以使每个所述硬件芯片将本地时钟同步为所述校正后的第一PTP系统时间。
7.根据权利要求6所述的时钟同步装置,其特征在于,所述信息包封装单元用于根据所述信息包控制单元发送的所述第二PTP事件报文的类型信息和内容信息,生成所述第二PTP事件报文包括:
所述信息包封装单元具体用于将所述第二PTP事件报文的内容信息添加到所述第二PTP事件报文的TS域中,将所述第二PTP事件报文的内容信息的指定比特进行取反处理,将取反处理的结果写入所述第二PTP事件报文的CF域中,以生成所述第二PTP事件报文。
8.根据权利要求6或7所述的时钟同步装置,其特征在于,所述信息包封装单元用于根据所述信息包控制单元发送的所述第二PTP事件报文的类型信息和内容信息,生成所述第二PTP事件报文包括:
所述信息包封装单元具体用于根据所述信息包控制单元发送的所述第二PTP事件报文的类型信息和内容信息,对预先存储的PTP模板报文进行修改,生成所述第二PTP事件报文。
9.根据权利要求6或7所述的时钟同步装置,其特征在于,所述逻辑控制芯片还包括:第三接口单元和系统控制单元;
所述第三接口单元,用于接收所述CPU发送的第一配置指令,将所述第一配置指令发送给所述系统控制单元,所述第一配置指令用于对所述时钟同步装置的主从角色和/或时钟类型进行配置;
所述系统控制单元,用于对所述第一配置指令进行类型识别,在识别出所述第一配置指令为用于对所述时钟同步装置的主从角色和/或时钟类型进行配置的配置指令时,将所述第一配置指令发送给所述信息包控制单元;
所述信息包控制单元具体用于根据所述第一配置指令和所述信息包检测单元发送的所述PTP报文头信息,确定所述第二PTP事件报文的类型信息,并将所述时钟运算单元发送的所述校正后的第一PTP系统时间作为所述第二PTP事件报文的内容信息,然后将所述第二PTP事件报文的类型信息和内容信息发送给所述信息包封装单元。
10.根据权利要求9所述的时钟同步装置,其特征在于,所述第三接口单元,还用于接收所述CPU发送的第二配置指令,将所述第二配置指令发送给所述系统控制单元,所述第二配置指令用于对所述第一PTP系统时间进行初始化配置;
所述系统控制单元,还用于对所述第二配置指令进行类型识别,在识别出所述第二配置指令为用于对所述第一PTP系统时间进行初始化配置的配置指令时,将所述第二配置指令发送给所述系统时间单元;
所述系统时间单元,还用于根据所述第二配置指令,初始化所述第一PTP系统时间。
11.根据权利要求1-7任一项所述的时钟同步装置,其特征在于,所述硬件芯片为介质访问控制MAC芯片或物理层PHY芯片。
12.根据权利要求1-7任一项所述的时钟同步装置,其特征在于,所述逻辑控制芯片由现场可编程门阵列FPGA实现。
13.一种时钟同步方法,其特征在于,包括:
时钟同步装置的硬件芯片接收对端装置发送的第一精确时间协议PTP事件报文,记录所述第一PTP事件报文到达所述硬件芯片的第一时间戳t2,将所述第一PTP事件报文的CF域中的校正值减去所述第一时间戳t2,所述第一PTP事件报文包括TS域和CF域,所述TS域用于记录所述对端装置的逻辑控制芯片发送所述第一PTP事件报文时的PTP系统时间Ta,所述CF域中的校正值为t1-ta,t1为所述第一PTP事件报文从所述对端装置的逻辑控制芯片到达所述对端装置的硬件芯片时,所述对端装置的硬件芯片的本地时间,ta为Ta转换成的纳秒形式的低32比特的数值;
然后将所述第一PTP事件报文发送给所述时钟同步装置的中央处理器CPU;
所述CPU将所述第一PTP事件报文发送给所述时钟同步装置的逻辑控制芯片;
所述逻辑控制芯片记录所述第一PTP事件报文到达所述逻辑控制芯片的PTP时间戳Tb,并取Tb低32比特的数值得到tb,根据所述第一PTP事件报文和所述PTP时间戳计算出所述逻辑控制芯片的第一PTP系统时间与所述对端装置的第二PTP系统时间之间的第一时间偏差,并根据所述第一时间偏差与所述对端装置进行时钟同步,所述第一PTP系统时间为Tb-(tb-t2),所述第二PTP系统时间为Ta+(t1-ta)。
14.根据权利要求13所述的时钟同步方法,其特征在于,还包括:
所述逻辑控制芯片根据所述第一PTP系统时间生成第二PTP事件报文,并将所述第二PTP事件报文发送给所述CPU;
所述CPU将所述第二PTP事件报文发送给所述硬件芯片;
所述硬件芯片记录所述第二PTP事件报文到达所述硬件芯片的第二时间戳,将所述第二PTP事件报文的CF域中的校正值加上所述第二时间戳,然后将所述第二PTP事件报文发送给所述对端装置,以使所述对端装置根据所述第二PTP事件报文生成并返回所述第一PTP系统时间与所述第二PTP系统时间之间的第二时间偏差。
15.根据权利要求14所述的时钟同步方法,其特征在于,所述逻辑控制芯片根据所述第一时间偏差与所述对端装置进行时钟同步包括:
所述逻辑控制芯片根据所述第一时间偏差和所述第二时间偏差,对所述第一PTP系统时间进行校正,根据所述校正后的第一PTP系统时间同步每个所述硬件芯片的本地时钟,以与所述对端装置进行时钟同步。
16.根据权利要求13所述的时钟同步方法,其特征在于,还包括:
所述逻辑控制芯片在接收所述第一PTP事件报文之前,根据所述第一PTP系统时间生成第三PTP事件报文,将所述第三PTP事件报文发送给所述CPU;
所述CPU将所述第三PTP事件报文发送给所述硬件芯片;
所述硬件芯片记录所述第三PTP事件报文到达所述硬件芯片的第三时间戳,将所述第三PTP事件报文的CF域中的校正值加上所述第三时间戳,然后将所述第三PTP事件报文发送给所述对端装置,以使所述对端装置根据所述第三PTP事件报文生成所述第一PTP系统时间与所述第二PTP系统时间之间的第三时间偏差。
17.根据权利要求16所述的时钟同步方法,其特征在于,所述逻辑控制芯片根据所述第一时间偏差与所述对端装置进行时钟同步包括:
所述逻辑控制芯片通过所述CPU和所述硬件芯片,将所述第一时间偏差发送给所述对端装置,以使所述对端装置根据所述第一时间偏差和所述第三时间偏差对所述第二PTP系统时间进行校正,以与所述对端装置进行时钟同步。
18.一种网络设备,其特征在于,包括权利要求1-12任一项所述的时钟同步装置。
CN201210548840.2A 2012-12-17 2012-12-17 时钟同步方法、装置及网络设备 Active CN103067112B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210548840.2A CN103067112B (zh) 2012-12-17 2012-12-17 时钟同步方法、装置及网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210548840.2A CN103067112B (zh) 2012-12-17 2012-12-17 时钟同步方法、装置及网络设备

Publications (2)

Publication Number Publication Date
CN103067112A CN103067112A (zh) 2013-04-24
CN103067112B true CN103067112B (zh) 2016-01-27

Family

ID=48109591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210548840.2A Active CN103067112B (zh) 2012-12-17 2012-12-17 时钟同步方法、装置及网络设备

Country Status (1)

Country Link
CN (1) CN103067112B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581205B (zh) * 2013-11-20 2017-01-11 盛科网络(苏州)有限公司 在多个mac中实现精准时戳的方法及系统
CN103915899A (zh) * 2014-03-27 2014-07-09 广州南方电力集团科技发展有限公司 一种电力自动化终端自主组网架构及其组网方法
CN103995471A (zh) * 2014-05-23 2014-08-20 华中科技大学 一种分布式控制系统的时钟同步方法
CN105262555B (zh) 2014-07-16 2021-05-28 中兴通讯股份有限公司 一种时间同步方法、可编程逻辑器件、单板及网元
CN104410411A (zh) * 2014-12-16 2015-03-11 镇江中煤电子有限公司 远程同步通信时钟智能锁相装置
CN106210689A (zh) * 2015-05-28 2016-12-07 长沙维纳斯克信息技术有限公司 一种图像同步采集系统和方法
CN105591729B (zh) * 2015-10-27 2018-10-09 新华三技术有限公司 网络设备和用于网络设备中的时间戳获取方法
CN109831268B (zh) * 2019-03-15 2020-05-29 武汉电信器件有限公司 一种以太网电口时钟同步方法、系统和装置
CN112887046B (zh) * 2019-11-29 2022-04-29 烽火通信科技股份有限公司 一种边界时钟和普通时钟数字化时间同步方法及系统
CN111478863B (zh) * 2020-04-14 2022-02-11 深圳市风云实业有限公司 一种交换机系统及其网口时间同步方法
CN113708912B (zh) * 2021-07-20 2023-10-10 深圳市风云实业有限公司 一种时钟同步方法及其系统
CN115865246A (zh) * 2021-09-23 2023-03-28 北京车和家信息技术有限公司 时间同步装置、系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101080889A (zh) * 2004-12-16 2007-11-28 西门子公司 同步模块
CN101447861A (zh) * 2008-12-29 2009-06-03 中兴通讯股份有限公司 Ieee 1588时间同步系统及其实现方法
CN102098155A (zh) * 2011-03-18 2011-06-15 北京国智恒电力管理科技有限公司 基于ptp协议实现亚微秒级同步精度的方法
CN102104476A (zh) * 2011-02-21 2011-06-22 中兴通讯股份有限公司 时钟同步装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101080889A (zh) * 2004-12-16 2007-11-28 西门子公司 同步模块
CN101447861A (zh) * 2008-12-29 2009-06-03 中兴通讯股份有限公司 Ieee 1588时间同步系统及其实现方法
CN102104476A (zh) * 2011-02-21 2011-06-22 中兴通讯股份有限公司 时钟同步装置及方法
CN102098155A (zh) * 2011-03-18 2011-06-15 北京国智恒电力管理科技有限公司 基于ptp协议实现亚微秒级同步精度的方法

Also Published As

Publication number Publication date
CN103067112A (zh) 2013-04-24

Similar Documents

Publication Publication Date Title
CN103067112B (zh) 时钟同步方法、装置及网络设备
KR101506138B1 (ko) 원격통신 네트워크에서 시간 분배를 위한 방법, 장치 및 시스템
US10908941B2 (en) Timestamping data received by monitoring system in NFV
CN102104475B (zh) 基于ieee1588的同步系统及其同步方法
CN101977104B (zh) 基于ieee1588精确时钟同步协议系统及其同步方法
CN100498232C (zh) 一种sdins/gps组合导航系统时间同步及同步数据提取方法
CN102421187B (zh) 一种无线传感器网络的高精度时钟同步方法
US8355476B2 (en) Timestamping method and apparatus for precise network synchronization
CN103416019B (zh) 同步系统、同步方法、第一同步装置及第二同步装置
CN103929293B (zh) 非对称延迟的时间同步方法及系统
CN107360060B (zh) 一种时延测量方法及装置
WO2018006686A1 (zh) 一种通信网络设备间时间同步的优化方法、装置及设备
CN113196712B (zh) Tsn使能控制器
CN105846941B (zh) 基于ieee 1588标准的时钟透明传输装置及方法
EP2807785B1 (en) Packet-based timing measurement
CN106506107B (zh) 一种基于硬件时间戳的ntp服务器授时实现方法
CN103647614A (zh) 基于ieee1588协议的可靠提高时间同步精度方法
CN105577349A (zh) 一种机载网络ieee1588协议主从时钟端口同步方法
CN105391509B (zh) 基于fpga的网口高精度时间标定方法
CN110928176B (zh) 一种支持多种授时技术的多功能授时设备
CN108880723A (zh) 一种时钟同步的方法和装置
CN106603183A (zh) 一种时间戳过滤方法及装置
CN105634715A (zh) 一种机载网络ieee1588协议透明时钟端口同步方法
CN108075853A (zh) 一种用于直升机模拟器开发系统间的网络时间同步方法
CN113055113A (zh) 时钟时间同步方法、装置、设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor

Patentee after: RUIJIE NETWORKS Co.,Ltd.

Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor

Patentee before: Beijing Star-Net Ruijie Networks Co.,Ltd.

CP01 Change in the name or title of a patent holder