Processing

Please wait...

Settings

Settings

Goto Application

1. WO2021063303 - METHOD AND APPARATUS FOR ACQUIRING TIMESTAMP OF DATA STREAM, STORAGE MEDIUM, AND ELECTRONIC DEVICE

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102  

权利要求书

1   2   3   4   5   6   7   8   9   10   11  

附图

1   2   3   4   5   6  

说明书

发明名称 : 获取数据流的时间戳的方法、装置、存储介质和电子装置

[0001]
本申请要求在2019年09月30日提交中国专利局、申请号为201910944071.X的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。

技术领域

[0002]
本公开涉及通信领域,例如涉及一种获取数据流的时间戳的方法、装置、存储介质和电子装置。

背景技术

[0003]
随着网络技术和通信技术不断的发展和更新,高精度时钟同步技术广泛地应用于分布式控制系统,卫星定位系统以及承载网络中。电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)1588协议最初是用来描述在网络测量和控制系统中的精确时钟同步的协议。随着以太网技术的发展,IEEE1588协议已经应用到以太网领域中了,可以在百兆以太网中实现IEEE1588协议的处理,而且精度很高。为了提高系统的稳定性和可靠性,获得更精确和稳定的时间戳值得被研究。时间戳是用来反映数据流中一个数据块的产生的时间点,后采集的数据块的时间戳肯定是大于先采集的数据块的时间戳的。有了这样的一个时间戳,就可以标记数据块的先后顺序。如此,以保证分布式控制系统中设备间的同步。
[0004]
设备的串行器/解串器(Serializer-Deserializer,SERDES)模块接收到待传输数据流之后,设备需要对待传输数据流进行适应性转换。然而,设备对待传输数据流转换后可能会出现数据缺口即无效数据,那么,针对转换后的待传输数据流即包括无效数据的数据流进行时间戳的采样,则无法得到精确的时间戳。
[0005]
发明内容
[0006]
本公开提供了一种获取数据流的时间戳的方法、装置、存储介质和电子装置,以至少解决无法获取到数据流的精确时间戳的问题。
[0007]
提供了一种获取数据流的时间戳的方法,包括:
[0008]
接收待传输数据流,并获取串行器/解串器SERDES时钟模式下所述待传输数据流的第一帧头标识,其中,所述第一帧头标识用于表征所述待传输数据流的帧头的位置;
[0009]
基于所述第一帧头标识,确定所述待传输数据流在系统时钟下的时间戳;
[0010]
封装所述时间戳得到第一目标数据帧;
[0011]
输出所述第一目标数据帧。
[0012]
还提供了一种获取数据流的时间戳的装置,包括:
[0013]
接收模块,设置为接收待传输数据流,并获取串行器/解串器SERDES时钟模式下所述待传输数据流的第一帧头标识,其中,所述第一帧头标识用于表征所述待传输数据流的帧头的位置;
[0014]
确定模块,设置为基于所述第一帧头标识,确定所述待传输数据流在系统时钟下的时间戳;
[0015]
封装模块,设置为封装所述时间戳得到第一目标数据帧;
[0016]
输出模块,设置为输出所述第一目标数据帧。
[0017]
还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述获取数据流的时间戳的方法。
[0018]
还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述获取数据流的时间戳的方法。

附图说明

[0019]
图1是本发明实施例提供的一种执行获取数据流的时间戳的方法的终端的硬件结构框图;
[0020]
图2是本发明实施例提供的一种获取数据流的时间戳的方法的流程示意图;
[0021]
图3是本发明实施例提供的一种系统时钟的上升沿与第一帧头标识进行同步的示意图;
[0022]
图4是本发明实施例提供的一种系统时钟的下降沿与第一帧头标识进行同步的示意图;
[0023]
图5是本发明实施例提供的一种第一目标数据帧的帧格式示意图;
[0024]
图6是本发明实施例提供的一种获取数据流的时间戳的装置的结构示意图。

具体实施方式

[0025]
下文中将参考附图并结合实施例来说明本公开。
[0026]
本文中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0027]
实施例1
[0028]
本申请实施例一所提供的方法实施例可以在终端、计算机终端或者类似的运算装置中执行。以运行在终端上为例,图1是本发明实施例提供的一种执行获取数据流的时间戳的方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(Microcontroller Unit,MCU)或可编程逻辑器件(Field Programmable Gate Array,FPGA)等的处理装置)和设置为存储数据的存储器104,可选地,上述终端还可以包括设置为通信功能的传输设备106以及输入输出设备108。图1所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
[0029]
存储器104可设置为存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的获取数据流的时间戳的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行多种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0030]
传输设备106设置为经由一个网络接收或者发送数据。上述的网络具体实例可包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,RF)模块,其设置为通过无线方式与互联网进行通讯。
[0031]
在本实施例中提供了一种运行于上述终端的获取数据流的时间戳的方法,该方法可以应用于具有SERDES接口的芯片中,该芯片至少具有对待传输数据流打时间戳的功能。该方法可以在灵活光传输网(Flexible Optical Transport Network,FLEXO)协议中实现1588功能,即设备之间实现频率同步和相位同步的功能。
[0032]
在本实施例中,获取数据流的时间戳的方法可以应用于以下场景:在待传输数据流进入芯片时,即在芯片的入口处;以及待传输数据输出芯片时,即在芯片的出口处获取数据流的时间戳。芯片的入口和芯片的出口相当于芯片的SERDES接口。本发明实施例中可以在SERDES处采样时间戳,避免经过存储器或者缓存器,以及缺口转换带来的时间戳抖动。
[0033]
图2是本发明实施例提供的一种获取数据流的时间戳的方法的流程示意图, 如图2所示,该流程包括如下步骤:
[0034]
步骤S202:接收待传输数据流,并获取串行器/解串器时钟模式下待传输数据流的第一帧头标识,第一帧头标识用于表征数据流的帧头的位置。
[0035]
上述第一帧头标识可以是对齐(Alignment Marker,AM)帧头标识,简称AM标识。该AM标识可以是在串行器/解串器时钟模式下外挂的一个AM检测模块产生的标识,该AM检测模块设置在芯片内部。芯片接收到待传输数据流之后,首先,可以将在串行器/解串器时钟模式下,AM检测模块产生的AM标识对应的比特转换为上述待传输数据流对应的比特。例如,上述AM标识为4比特,而待传输数据流为3比特。那么,芯片首先将3比特的待传输数据流拼接为6比特的待传输数据流。其次,芯片利用AM标识的头部位置表征上述待传输数据流的帧头的位置。
[0036]
步骤S204:基于第一帧头标识,确定待传输数据流在系统时钟下的时间戳。
[0037]
基于第一帧头标识,确定待传输数据流在系统时钟下的时间戳也就指:将串行器/解串器时钟模式下的AM标识转换成系统时钟模式下的AM标识。系统时钟可以包括系统上升沿时钟和系统下降沿时钟。本实施例中可以在系统上升沿时钟有效时,利用系统上升沿时钟同步上述AM标识,得到与系统上升沿时钟对应的一个时间戳T1。还可以在系统下降沿时钟有效时,利用系统下降沿时钟同步上述AM标识,得到与系统下降沿时钟对应的一个时间戳T2。然后,基于T1和T2进行比较,确定待传输数据流在系统时钟下的时间戳T0。
[0038]
步骤S206:封装时间戳得到第一目标数据帧。
[0039]
在步骤S204确定出待传输数据流在系统时钟下的时间戳之后,将确定出的系统时钟下的时间戳按照预设的帧格式进行封装。这里,预设的帧格式可以包括用于表征上述系统时钟下的时间戳的正确或者错误的校验值。
[0040]
步骤S208:输出第一目标数据帧。
[0041]
上述步骤S202中可以是以1比特的形式依次接收上述待传输数据流;那么,输出上述第一目标数据帧也可以是以1比特的形式进行。最终,待第一目标数据帧被全部输出后,可以得到关于上述待传输数据流的时间戳。
[0042]
本发明实施例所提供的获取数据流的时间戳的方法,首先,接收待传输数据流,并获取串行器/解串器时钟模式下待传输数据流的第一帧头标识,第一帧头标识用于表征数据流的帧头的位置;其次,基于第一帧头标识,确定数据流在系统时钟下的时间戳;再次,封装时间戳得到第一目标数据帧;最后,输出第一目标数据帧。也就是说,在本发明实施例中,在串行器/解串器时钟模式下相当于数据时钟模式下,获取到用于表征数据流的帧头的位置的第一帧头标识 之后,对该第一帧头标识进行系统时钟域转换、封装以及输出一系列的处理,从而得到精确的待传输数据流的时间戳,而不是将数据时钟域模式下的待传输数据流转化为系统时钟域下的待传输数据流。如此,避免了对待传输数据流进行时钟转换后出现数据缺口,避免了针对转换后的待传输数据流即包括无效数据的数据流进行时间戳采样无法得到精确的时间戳的情况。从而解决了无法获取到数据流的精确时间戳的问题,实现精确获取数据流的时间戳的目的。
[0043]
在本发明的其它实施例中,步骤S202中接收待传输数据流,并获取串行器/解串器时钟模式下待传输数据流的第一帧头标识,可以包括以下步骤:
[0044]
步骤S202-11,接收待传输数据流,并在串行器/解串器时钟模式下对待传输数据流进行解复用,得到N条逻辑通道数据,N为整数。
[0045]
以N为4举例说明对待传输数据流进行解复用。在SERDES时钟模式下对高速2对56G SERDES进行比特(bit)解复用,可以得到FLEXO 4条逻辑通道数据。例如,FLEXO 4条逻辑通道数据包括通道0(lane0)逻辑通道数据、lane1逻辑通道数据、lane2逻辑通道数据以及lane3逻辑通道数据。
[0046]
步骤S202-12,在判断出每条逻辑通道数据的帧头的位置时,获取每条逻辑通道数据的帧头的位置,得到每条逻辑通道数据的第二帧头标识。
[0047]
分别对4条lane按bit搜索AM标识头部位置。例如,对于lane0逻辑通道数据,假设lane0逻辑通道数据包括具有AM标识的a数据块,b数据块和c数据块。在搜索的过程中,假设经过10个字节再次出现具有AM标识的a数据块,b数据块和c数据块;那么,芯片判断10字节处就是该lane0逻辑通道数据的帧头的位置,这个位置即该lane0逻辑通道数据的第二帧头标识AM0。同理,其他3条lane也可以按照上述方式搜索并判断出对应的帧头的位置,即每条逻辑通道数据的第二帧头标识。这里,基于上述方式可以得到其他3条lane的第二帧头标识分别为AM1、AM2和AM3。
[0048]
步骤S202-13,基于每条逻辑通道数据的第二帧头标识,确定第一帧头标识。
[0049]
基于每条逻辑通道数据的第二帧头标识,确定第一帧头标识可以是基于上述AM0、AM1、AM2和AM3,选择其中之一作为第一帧头标识AM。
[0050]
上述步骤S202-13可以包括:从N条逻辑通道数据中选择一条通道数据作为指定通道数据;计算其他N-1条逻辑通道数据的第二帧头标识相对于指定逻辑通道数据的第二帧头标识的多个偏移量;获取多个偏移量中的最大偏移量,并确定最大偏移量对应的第二帧头标识为第一帧头标识。
[0051]
可以采用lane0逻辑通道数据的第二帧头标识AM0为基准,计算N-1条逻辑通道数据的第二帧头标识相对于第1条逻辑通道数据的第二帧头标识的多个 偏移量。例如,分别计算lane1对应的AM1、lane2对应的AM2以及lane3对应的AM3相对于lane0对应的AM0的偏移量,得到第一偏移量P1、第二偏移量P2和第三偏移量P3。选择偏移量最大的即最晚到达的那条逻辑通道数据的第二帧头标识作为第一帧头标识AM。这里,假设上述第一偏移量P1、第二偏移量P2和第三偏移量P3的关系为:第一偏移量P1<第二偏移量P2<第三偏移量P3,也就是说,第三偏移量P3最大,即lane3的第二帧头标识是最晚到达的;那么,芯片则选择第三偏移量P3对应的AM3作为第一帧头标识AM。
[0052]
在本发明的其它实施例中,步骤S204中基于第一帧头标识,确定待传输数据流在系统时钟下的时间戳,可以包括步骤S204-1:将系统时钟的上升沿和下降沿与第一帧头标识进行同步,得到待传输数据流在系统时钟下时间戳。
[0053]
系统时钟可以包括系统上升沿时钟和系统下降沿时钟。在对第一帧头标识进行时钟域的转换时,需要分别基于系统上升沿时钟和系统下降沿时钟进行转换;然后,选择转换结果中的较小值作为待传输数据流在系统时钟下时间戳。
[0054]
步骤S204-1可以通过以下步骤实现:
[0055]
步骤S204-11:将系统时钟的上升沿与第一帧头标识进行同步,得到待传输数据流在系统时钟下的第三帧头标识。
[0056]
结合图3所示,图3中的am_ind指第一帧头标识AM标识对应的脉冲示意图,sys_clk指系统上升沿时钟对应的脉冲示意图。在系统上升沿时钟有效时,即上升沿先到来,图3中用加粗的箭头标识。利用系统上升沿时钟同步上述第一帧头标识AM标识对应的脉冲,得到与系统上升沿时钟对应的第三帧头标识即上述时间戳T1。
[0057]
步骤S204-12,将系统时钟的下降沿与第一帧头标识进行同步,得到待传输数据流在系统时钟下的第四帧头标识。
[0058]
图4中的am_ind指第一帧头标识AM标识对应的脉冲示意图,图4中的am_ind所指的脉冲与图3中的am_ind所指的脉冲相同,sys_clk指系统下降沿时钟对应的脉冲示意图。在系统下降沿时钟有效时,即下降沿先到来,图4中用加粗的箭头标识。利用系统下降沿时钟同步上述第一帧头标识AM标识对应的脉冲,得到与系统下降沿时钟对应的第四帧头标识即上升时间戳T2。
[0059]
步骤S204-13,基于第三帧头标识和第四帧头标识,获取待传输数据流在系统时钟下的时间戳。
[0060]
基于T1和T2进行比较,便可以确定待传输数据流在系统时钟下的时间戳T0。
[0061]
上述步骤S204-13可以是:比较第三帧头标识和第四帧头标识;获取第三帧 头标识和第四帧头标识中较小的帧头标识,并确定较小的帧头标识为待传输数据流在系统时钟下的时间戳。
[0062]
假设T1小于T2,则选择T1作为待传输数据流在系统时钟下的时间戳T0。
[0063]
在本发明的其它实施例中,步骤S206中涉及到的封装时间戳得到第一目标数据帧,可以包括以下步骤:
[0064]
步骤S206-11,生成循环冗余校验码(Cyclic Redundancy Check,CRC)。
[0065]
上述循环冗余校验码CRC值可以是用于表征上述系统时钟下的时间戳的正确或者错误的校验值。在实际应用中,在接收到待传输数据流时,芯片获取该待传输数据流的第一时间戳和与第一时间戳对应的第一CRC值;发送第一时间戳和第一CRC值至接收端;接收端获取到第一时间戳和第一CRC值并根据第一时间戳计算得到第二CRC值;接收端判断第一CRC值与第二CRC值是否相同,若相同则表示获取的时间戳正确;若不相同则表示获取的时间戳错误。
[0066]
步骤S206-12,基于预设的帧格式将时间戳和CRC进行封装,得到第一目标数据帧。
[0067]
上述第一目标数据帧的格式可以与时间信息(Time of Day,TOD)帧的格式相似,因此,上述第一目标数据帧也可以称为类TOD帧。示例性的,在本发明实施例中,结合图5所示,在第一目标数据帧中,起始位固定为1bit且值为0,两字帧头同步分别为0x43、0x4d,CRC为1bit(且值为0或1),停止位固定为1bit且值为1。
[0068]
在本发明的其它实施例中,步骤S208中输出第一目标数据帧,可以包括以下步骤:展宽第一目标数据帧的脉冲宽度得到第二目标数据帧;输出第二目标数据帧。
[0069]
整个第一目标数据帧的输出顺序可以为:起始位、同步头,时间戳秒部分,时间戳纳秒部分,CRC停止位。而且,第一目标数据帧的发送可以采用小端传递方式进行。可见,本发明实施例所提供的获取数据流的时间戳的方法可以达到纳秒级同步精度。
[0070]
可选地,由于芯片使用的系统时钟频率比片外FPGA时钟频率高,所以发送出去的时间戳必须展宽;即,展宽第一目标数据帧的脉冲宽度得到第二目标数据帧,并输出第二目标数据帧,以保证片外FPGA能够采样到每bit,并且可以正确的恢复出时间戳。本发明实施例中,可以根据发送端与接收端两者的时钟的倍数关系、中央处理器(Central Processing Unit,CPU)配置按比例展宽。这样,同1bit时间戳信息片外FPGA可以采样多次,并且通过多数判决的方法正确恢复64bit时间戳。
[0071]
可选地,在发送方向,片外FPGA获得了芯片的时间戳后可以在下一个FLEXO帧中插入精准时钟协议(Precision Time Protocol,PTP)的缩写报文;在接收方向,记录下每帧AM标识打的时间戳,根据解析出来的PTP包来选择PTP包头对应的那个时间戳。这样可以将收发两个方向的时间戳对应起来,完成1588功能。
[0072]
由上述可知,本发明实施例所提供的获取数据流的时间戳的方法,能够实现通过FLEXO AM标识来产生高精度时间戳,实现1588功能。该方法在满足IEEE1588V2协议下,相比传统打时间戳的方式,实现了在SERDES时钟域下用定帧帧头打时间戳,从而可以有效减少时间戳的抖动,获得更高精度的时间戳。
[0073]
通过以上的实施方式的描述,上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,也可以通过硬件。本公开的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read-Only Memory,ROM)/随机存取存储器(Random Access Memory,RAM)、磁碟、光盘)中,包括多个指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明实施例所述的方法。
[0074]
实施例2
[0075]
在本实施例中还提供了一种获取数据流的时间戳的装置,该装置设置为实现上述实施例,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0076]
图6是本发明实施例提供的一种获取数据流的时间戳的装置的结构示意图,如图6所示,该装置包括:
[0077]
接收模块62,设置为接收待传输数据流,并获取串行器/解串器SERDES时钟模式下待传输数据流的第一帧头标识,第一帧头标识用于表征数据流的帧头的位置;确定模块64,设置为基于第一帧头标识,确定待传输数据流在系统时钟下的时间戳;封装模块66,设置为封装时间戳得到第一目标数据帧;输出模块68,设置为输出第一目标数据帧。
[0078]
可选地,本申请中的接收模块62可以包括:接收单元,设置为接收待传输数据流,并在SERDES时钟模式下对待传输数据流进行解复用,得到N条逻辑通道数据,其中,N为整数;第一获取单元,设置为在判断出每条逻辑通道数据的帧头的位置的情况下,获取每条逻辑通道数据的帧头的位置,得到每条逻辑通道数据的第二帧头标识;确定单元,设置为基于每条逻辑通道数据的第二帧头标识,确定第一帧头标识。
[0079]
该确定单元可以包括:选择子单元,设置为从N条逻辑通道数据中选择一条通道数据作为指定通道数据;计算子单元,设置为计算其他N-1条逻辑通道数据的第二帧头标识相对于指定逻辑通道数据的第二帧头标识的多个偏移量;获取子单元,设置为获取多个偏移量中的最大偏移量,并确定最大偏移量对应的第二帧头标识为第一帧头标识。
[0080]
可选地,本申请中的确定模块64是设置为将系统时钟的上升沿和下降沿与第一帧头标识进行同步,得到时间戳。
[0081]
可选地,本申请中的确定模块64可以包括:第一同步单元,设置为将系统时钟的上升沿与第一帧头标识进行同步,得到待传输数据流在系统时钟下的第三帧头标识;第二同步单元,设置为将系统时钟的下降沿与第一帧头标识进行同步,得到待传输数据流在系统时钟下的第四帧头标识;第二获取单元,设置为基于第三帧头标识和第四帧头标识,获取时间戳。
[0082]
该第二获取单元可以包括:比较子单元,设置为比较第三帧头标识和第四帧头标识;确定子单元,设置为根据比较结果,从第三帧头标识和第四帧头标识中确定较小的帧头标识为时间戳。
[0083]
可选地,本申请中的封装模块66可以包括:生成单元,设置为生成循环冗余校验码CRC;封装单元,设置为基于预设的帧格式将时间戳和CRC进行封装,得到第一目标数据帧。
[0084]
可选地,本申请中的输出模块68可以包括:展宽单元,设置为展宽第一目标数据帧的脉冲宽度得到第二目标数据帧;输出单元,设置为输出第二目标数据帧。
[0085]
上述多个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述多个模块以任意组合的形式分别位于不同的处理器中。
[0086]
实施例3
[0087]
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0088]
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0089]
S1,接收待传输数据流,并获取串行器/解串器SERDES时钟模式下待传输数据流的第一帧头标识,第一帧头标识用于表征数据流的帧头的位置。
[0090]
S2,基于第一帧头标识,确定待传输数据流在系统时钟下的时间戳。
[0091]
S3,封装时间戳得到第一目标数据帧。
[0092]
S4,输出第一目标数据帧。
[0093]
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等多种可以存储计算机程序的介质。
[0094]
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0095]
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0096]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0097]
S1,接收待传输数据流,并获取串行器/解串器SERDES时钟模式下所述待传输数据流的第一帧头标识,所述第一帧头标识用于表征所述数据流的帧头的位置。
[0098]
S2,基于所述第一帧头标识,确定所述待传输数据流在系统时钟下的时间戳。
[0099]
S3,封装所述时间戳得到第一目标数据帧。
[0100]
S4,输出所述第一目标数据帧。
[0101]
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0102]
上述的本公开的多个模块或多个步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在一些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成多个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。

权利要求书

[权利要求 1]
一种获取数据流的时间戳的方法,包括: 接收待传输数据流,并获取串行器/解串器SERDES时钟模式下的所述待传输数据流的第一帧头标识,其中,所述第一帧头标识用于表征所述待传输数据流的帧头的位置; 基于所述第一帧头标识,确定所述待传输数据流在系统时钟下的时间戳; 封装所述时间戳得到第一目标数据帧; 输出所述第一目标数据帧。
[权利要求 2]
根据权利要求1所述的方法,其中,所述接收待传输数据流,并获取SERDES时钟模式下的所述待传输数据流的第一帧头标识,包括: 接收所述待传输数据流,并在所述SERDES时钟模式下对所述待传输数据流进行解复用,得到N条逻辑通道数据,其中,N为整数; 在判断出每条逻辑通道数据的帧头的位置的情况下,获取每条逻辑通道数据的帧头的位置,得到每条逻辑通道数据的第二帧头标识; 基于每条逻辑通道数据的第二帧头标识,确定所述第一帧头标识。
[权利要求 3]
根据权利要求2所述的方法,其中,所述基于每条逻辑通道数据的第二帧头标识,确定所述第一帧头标识,包括: 从所述N条逻辑通道数据中选择一条通道数据作为指定通道数据; 计算所述N条逻辑通道数据中除所述指定通道数据外的N-1条逻辑通道数据的第二帧头标识相对于所述指定逻辑通道数据的第二帧头标识的多个偏移量; 获取所述多个偏移量中的最大偏移量,并确定所述最大偏移量对应的第二帧头标识为所述第一帧头标识。
[权利要求 4]
根据权利要求1所述的方法,其中,所述基于所述第一帧头标识,确定所述待传输数据流在系统时钟下的时间戳,包括: 将所述系统时钟的上升沿和下降沿与所述第一帧头标识进行同步,得到所述待传输数据流在所述系统时钟下的时间戳。
[权利要求 5]
根据权利要求4所述的方法,其中,所述将所述系统时钟的上升沿和下降沿与所述第一帧头标识进行同步,得到所述待传输数据流在所述系统时钟下的时间戳,包括: 将所述系统时钟的上升沿与所述第一帧头标识进行同步,得到所述待传输数据流在所述系统时钟下的第三帧头标识; 将所述系统时钟的下降沿与所述第一帧头标识进行同步,得到所述待传输数据流在所述系统时钟下的第四帧头标识; 基于所述第三帧头标识和所述第四帧头标识,获取所述时间戳。
[权利要求 6]
根据权利要求5所述的方法,其中,所述基于所述第三帧头标识和所述第四帧头标识,获取所述时间戳,包括: 比较所述第三帧头标识和所述第四帧头标识; 根据比较结果,从所述第三帧头标识和所述第四帧头标识中确定较小的帧头标识为所述时间戳。
[权利要求 7]
根据权利要求1所述的方法,其中,所述封装所述时间戳得到第一目标数据帧,包括: 生成循环冗余校验码CRC; 基于预设的帧格式将所述时间戳和所述CRC进行封装,得到所述第一目标数据帧。
[权利要求 8]
根据权利要求1所述的方法,其中,所述输出所述第一目标数据帧,包括: 展宽所述第一目标数据帧的脉冲宽度得到第二目标数据帧; 输出所述第二目标数据帧。
[权利要求 9]
一种获取数据流的时间戳的装置,包括: 接收模块,设置为接收待传输数据流,并获取串行器/解串器SERDES时钟模式下的所述待传输数据流的第一帧头标识,其中,所述第一帧头标识用于表征所述待传输数据流的帧头的位置; 确定模块,设置为基于所述第一帧头标识,确定所述待传输数据流在系统时钟下的时间戳; 封装模块,设置为封装所述时间戳得到第一目标数据帧; 输出模块,设置为输出所述第一目标数据帧。
[权利要求 10]
一种计算机可读的存储介质,存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8中任一项所述的获取数据流的时间戳的方法。
[权利要求 11]
一种电子装置,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至8中任一项所述的获取数据流的时间戳的方法。

附图

[ 图 1]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5]  
[ 图 6]