本发明涉及网络通信技术领域,尤其是涉及一种实现网络时间同步的方法及装置。
背景技术:
在通信网络中,许多业务的正常运行都要求网络时间同步,即整个网络各设备之间的时间或频率差保持在合理的误差水平内,尤其是5g时代,对时间同步的要求越来越高。
目前有多种协议可以实现网络时间同步,如ptp(precisiontimeprotocol,精确时间协议)是一种网络精准时间同步协议,可以实现相位同步和时钟同步。在工业、电力、数据中心、城域数据回传等领域,都要求有高精度的时间同步。
现有通过ptp协议实现网络时间同步的方案,一般有如下两种技术方案:
技术方案一:是将phy(物理收发器)作为透传链路,通过支持ptp功能的交换芯片计算出整个链路延时,并将该延时记录到交换芯片的latency(延迟)字段,进行时间校正同步。但是方案一存在的缺点是:1588v2时钟(1588v2时钟是一种采用ieee1588v2协议的高精度时钟)的同步技术需要建立在假定master(主设备)和slave(从设备)之间收发链路的时延对称的基础上,如果不对称,将有补偿误差;实际上phy的内部rx(接收端)到tx(发送端)与tx到rx的数据通路无法保证时延对称,数据信号编解码处理及双向链路的拥塞情况都是不同的,因而这种方式计算的补偿误差比较大。
技术方案二:是在网络交换系统上,以太网交换芯片和phy同时支持1588协议,提供ptp功能。switch(交换机)和phy都需要识别ptp报文,并需要各自维护时间,在报文离开phy的时间抓取时间戳,告知cpu(中央处理器),cpu通过ptp功能计算出自己和主时钟的offset(偏移量),再把offset同步给交换芯片及phy。但是方案二存在的缺点是:phy器件上需要集成很多时间相关模块,例如独立的时间维护机制、offset调整机制、ptp事件报文机制、时间戳产生和上报机制等,这些功能的增加对phy来说就是面积和功耗的增加;其次,整个时间同步方案中,cpu和phy交互频繁,逻辑复杂,对整个系统的稳定性带来隐患。
因此,需在此基础上提供一种新型的实现网络时间同步的技术方案,以解决上述方案存在的对phy要求高以及系统复杂、系统稳定性存在隐患等问题。
技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供一种实现网络时间同步的方法及装置,以实现以太网phy芯片的高精度网络时间同步,降低系统整体的成本及功耗。
为实现上述目的,本发明提出如下技术方案:一种实现网络时间同步的方法,所述方法包括:
s1,phy芯片收到交换芯片发送过来的ptp时间报文,记录其接收端收到所述ptp时间报文的进时间戳和其发送端发出所述ptp时间报文的出时间戳,并将所述进时间戳和所述出时间戳发送给数据处理单元;
s2,所述数据处理单元根据所述进时间戳和出时间戳,计算出双向时间差值,将所述双向时间差值发送给交换芯片,并根据所述双向时间差值设置交换芯片的延迟值;
s3,所述交换芯片根据所述延迟值更新交换芯片发出ptp时间报文的时间。
优选地,所述s1中,所述phy芯片周期性的将所述进时间戳和所述出时间戳发送给数据处理单元。
优选地,所述s1中,所述phy芯片通过mdio信号线将所述进时间戳和所述出时间戳发送给数据处理单元。
优选地,所述s2中,所述双向时间差值为所述出时间戳和进时间戳的差值。
优选地,所述s3中,更新后的交换芯片发出ptp时间报文的时间为加上延迟值后的时间。
本发明还公开一种实现网络时间同步的装置,所述装置包括:
交换芯片,用于发送ptp时间报文给phy芯片;
phy芯片,用于接收所述交换芯片,记录其接收端收到所述ptp时间报文的进时间戳和其发送端发出所述ptp时间报文的出时间戳,并将所述进时间戳和所述出时间戳发送给数据处理单元,及
数据处理单元,用于根据所述进时间戳和出时间戳,计算出双向时间差值,将所述双向时间差值发送给交换芯片,并根据所述双向时间差值设置交换芯片的延迟值;
所述交换芯片,还用于根据所述延迟值更新交换芯片发出ptp时间报文的时间。
优选地,所述phy芯片周期性的将所述进时间戳和所述出时间戳发送给数据处理单元。
优选地,所述phy芯片通过mdio信号线将所述进时间戳和所述出时间戳发送给数据处理单元。
优选地,所述双向时间差值为所述出时间戳和进时间戳的差值。
优选地,更新后的交换芯片发出ptp时间报文的时间为加上延迟值后的时间。
本发明的有益效果是:
本发明通过计算双向时间差值,根据双向时间差值设置交换芯片中的延迟字段,补偿掉phy芯片中的时延,确保ptp时间报文计算的时候,来回路径对称。这种方式结合了交换芯片的ptp功能,对于不支持1588协议的phy芯片,比较高效精确的实现了网络系统的时间同步,且因无需phy芯片支持1588协议,所以对phy芯片的要求较低,只需要实现入出的时间戳记录和上报,整个系统方案简单,降低了整体的系统成本及功耗,且提高系统稳定性。
附图说明
图1是本发明一种实现网络时间同步方法的流程示意图;
图2是本发明一种实现网络时间同步装置的模块示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
本发明所揭示的一种实现网络时间同步的方法及装置,通过结合交换芯片的ptp功能,采用补偿报文在phy芯片中传输的双向时间差值,等效于在phy芯片的出口打时间戳,实现了以太网phy芯片的高精度网络时间同步。
如图1所示,本发明所揭示的一种实现网络时间同步的方法,所述方法包括以下几个步骤:
s1,phy芯片收到交换芯片发送过来的ptp时间报文,记录其接收端收到ptp时间报文的进时间戳和其发送端发出ptp时间报文的出时间戳,并将进时间戳和出时间戳发送给数据处理单元。
具体地,交换芯片发送ptp时间报文给phy芯片,定义交换芯片发出ptp时间报文时的时间为ts0,此时的ts0未加上经过phy芯片的延迟时间。
phy芯片的接收端rx接收交换芯片发送过来的ptp时间报文,记录其收到该ptp时间报文的进时间戳,记为时间戳ts1;phy芯片将该ptp时间报文从其发送端tx发送出去,phy芯片记录其出端口tx发出该ptp时间报文的出时间戳,记为时间戳ts2。
之后,phy芯片将记录得到的时间戳ts1和时间戳ts2均发送给数据处理单元dsp。本实施例中,phy芯片优选周期性地将记录得到的时间戳ts1和时间戳ts2发送给数据处理单元dsp。且本实施例中,phy芯片与数据处理单元dsp之间通过mdio((managementdatainput/output,管理数据输入输出)信号线相连,所以,phy芯片通过mdio信号线将进时间戳和出时间戳发送给数据处理单元。
s2,数据处理单元根据进时间戳和出时间戳,计算出双向时间差值,将双向时间差值发送给交换芯片,并根据双向时间差值设置交换芯片的延迟值。
具体地,本实施例中,记双向时间差值为△ts,双向时间差值为△ts具体为上述时间戳ts2和时间戳ts1的差值,即△ts=ts2-ts1,双向时间差值为经过phy芯片的延迟时间。
数据处理单元将双向时间差值下发到交换芯片的延迟寄存器中,交换芯片中设置的延迟值latency即为该双向时间差值为△ts,即交换芯片的延迟值与双向时间差值相同。从而使得ptp时间报文在交换芯片中的mac(mediaaccesscontrol,介质访问控制子层)侧就矫正了通过phy芯片中的时延,以此等效于从phy芯片的出口开始打时间戳,减少链路不对称。
s3,交换芯片根据延迟值更新交换芯片发出ptp时间报文的时间。
具体地,本实施例中,交换芯片更新其发出ptp时间报文的时间ts0,具体为,将交换芯片发出ptp时间报文的时间ts0更新为ts0加上延迟值后的时间。
对应的,如图2所示,本发明所揭示一种实现网络时间同步的装置,包括交换芯片、phy芯片和数据处理单元,其中,
交换芯片用于发送ptp时间报文给phy芯片。
phy芯片用于接收交换芯片,记录其接收端收到ptp时间报文的进时间戳和其发送端发出ptp时间报文的出时间戳,并将进时间戳和出时间戳发送给数据处理单元。优选地,本实施例中,phy芯片周期性的通过mdio信号线将进时间戳和出时间戳发送给数据处理单元。
数据处理单元用于根据进时间戳和出时间戳,计算出双向时间差值。具体地,双向时间差值为出时间戳和进时间戳的差值,即为出时间戳减去进时间戳的差值。数据处理单元将该双向时间差值发送给交换芯片,并根据双向时间差值设置交换芯片的延迟值。
交换芯片还用于根据延迟值更新交换芯片发出ptp时间报文的时间,更新后的交换芯片发出ptp时间报文的时间为加上延迟值后的时间。
且,交换芯片、phy芯片和数据处理单元的具体工作原理可分别参照上述方法s1~s3中的描述,这里不做赘述。
本发明通过记录报文进入phy芯片和从phy芯片出去的时间戳,并周期性的将时间戳数据发送给dsp,由dsp计算出合理的双向时间差值△ts,根据双向时间差值设置交换芯片中的延迟字段,补偿掉phy芯片中的时延,确保ptp时间报文计算的时候,来回路径对称。这种方式结合了交换芯片的ptp功能,对于不支持1588协议的phy芯片,比较高效精确的实现了网络系统的时间同步,且因无需phy芯片支持1588协议,所以对phy芯片的要求较低,只需要实现入出的时间戳记录和上报,整个系统方案简单,降低了整体的系统成本及功耗,且提高系统稳定性、降低隐患。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。