CN102983959B - 在多个mac中实现ptp一步模式和两步模式的方法及装置 - Google Patents
在多个mac中实现ptp一步模式和两步模式的方法及装置 Download PDFInfo
- Publication number
- CN102983959B CN102983959B CN201110260108.0A CN201110260108A CN102983959B CN 102983959 B CN102983959 B CN 102983959B CN 201110260108 A CN201110260108 A CN 201110260108A CN 102983959 B CN102983959 B CN 102983959B
- Authority
- CN
- China
- Prior art keywords
- message
- time
- time stamp
- ptp
- engine
- 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
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明提供一种在多个MAC中实现PTP一步模式和两步模式的方法,包括以下步骤:S1、接收PTP事件信息的报文;S2、从PTP引擎广播获取报文的接收时刻时戳;S3、判断所述报文的处理模式,根据判断结果对所述报文进行相对应的处理;S4、发送报文;若实现一步模式,从PTP引擎广播获取报文的发送时刻时戳插入到报文的合适位置后发送报文;若实现两步模式,则通过多个MAC回送报文发送起始信号和序列标志号给所述PTP引擎并记录。通过这个集中的PTP引擎把时戳广播到所有的MAC来实现一步模式和两步模式,不需要通过请求响应的机制即可实现。
Description
技术领域
本发明涉及网络通信领域,尤其涉及一种在多个MAC中实现PTP一步模式和两步模式的方法及装置。
背景技术
IEEE 1588是网络测量和控制系统的精密时钟同步协议标准,采用精确时间同步协议(Precision Time Synchronization Protocol,PTP),精度可以达到微秒级,目前在以太网的时间同步方案中被大量采用。
通常PTP协议实现分为一步模式和两步模式,两步模式主要通过软件辅助实现本地时间与远端主时钟的同步,依赖于硬件记录当前PTP事件消息的时戳,软件读取时戳,并把这个时戳放到下一个PTP事件消息中传递给对方;而一步模式不需要软件的参与,可以直接把PTP事件消息发送时刻的时戳插入到当前的PTP事件消息中合适的位置,并更新报文的校验值,可以不需要发送follow_up消息。目前可见的PTP一步模式和两步模式的实现方案有以下两种:一步模式和两步模式在单个MAC或者PHY中实现;一步模式和两步模式在多个MAC中通过请求时戳和响应的机制实现。
然而,无论何种现有的实现方案,MAC获取时戳均需要通过请求响应的机制来实现,且无法实现针对一个端口记录多个时戳的功能。
发明内容
为解决上述技术问题,本发明的目的在于提供一种在多个MAC中实现PTP一步模式和两步模式的方法,其通过集中的PTP引擎来是实现本地时间和远端时间的同步,并通过这个集中的PTP引擎把时戳广播到所有的MAC来实现PTP一步模式和两步模式,通过多个MAC回送报文起始信号和序列标志到PTP引擎中,实现两步模式发送时刻时戳的记录,并可以实现针对一个端口记录多个发送时刻时戳的功能。。
相应所述方法,本发明的另一目的在于提供一种在多个MAC中实现PTP一步模式和两步模式的装置。
为实现上述发明目的之一,本发明提供的一种在多个MAC中实现PTP一步模式和两步模式的方法,包括以下步骤:
S1、接收PTP事件信息的报文;
S2、在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳;
S3、判断所述报文的处理模式,根据判断结果对所述报文进行相对应的处理;
S4、发送所述报文;其中,若处理模式为一步模式,则在发送报文的起始时刻获取从PTP引擎广播而来的时戳,以作为报文的发送时刻时戳插入到报文的合适位置后发送报文;若处理模式为两步模式,则通过多个MAC回送报文发送起始信号和序列标志号给所述PTP引擎,并记录发送时刻时戳在所述PTP引擎中。
作为本发明的进一步改进,所述“从PTP引擎广播时戳”具体包括以下步骤:
在PTP引擎内进行漂移调整和时间差调整,以得到调整后的时戳;
将所述调整后的时戳广播到各个QM模块中;
通过所述QM模块将所述调整后的时戳广播到与各个QM模块相对应的各个MAC中。
作为本发明的进一步改进,所述S2步骤具体包括:
S21、在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳;
S22、将所述接收时刻时戳附加在报文的尾部,跟随报文上行至入方向包处理引擎;
S23、在所述入方向包处理引擎中将所述接收时刻时戳转移到内部的一附加报文头中。
作为本发明的进一步改进,所述S3步骤具体包括:
S31、判断所述报文的处理模式为一步模式还是两步模式;
S32、若所述处理模式为一步模式,则将所述附加报文头和报文一起转发到适当的目的端口,在目的端口中取得报文发送起始时刻的时戳;若所述处理模式为两步模式,则将所述附加报文头和报文一起发送给CPU的PTP协议栈,其中,不需要额外的寄存器记录所述接收时刻时戳。
作为本发明的进一步改进,所述S4步骤中实现两步模式的步骤具体包括:
每个MAC在报文发送时刻将报文发送起始信号和序列标志号发送给对应的QM模块;
每个QM模块汇聚所有与该QM模块相对应的MAC发送的报文发送起始信号和序列标志号;
所述QM模块将所有汇聚到的报文发送起始信号和序列标志号发送给所述PTP引擎,并根据所述报文发送起始信号将发送时刻时戳和所述序列标志号以及发送端口位图存储于所述PTP引擎中的FIFO存储器中。
为实现本发明的另一发明目的,本发明提供的一种在多个MAC中实现PTP一步模式和两步模式的装置,包括:
报文接收单元,用于接收PTP事件信息的报文;
接收时刻时戳获取单元,用于在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳;
报文处理单元,用于判断所述报文的处理模式,根据判断结果对所述报文进行相对应的处理;
报文发送单元,用于发送所述报文;其中,若处理模式为一步模式,则在发送报文的起始时刻获取从PTP引擎广播而来的时戳,以作为报文的发送时刻时戳插入到报文的合适位置后发送报文;若处理模式为两步模式,则通过多个MAC回送报文发送起始信号和序列标志号给所述PTP引擎,并记录发送时刻时戳在所述PTP引擎中。
作为本发明的进一步改进,所述装置还包括一时戳广播单元,该单元用于:
在PTP引擎内进行漂移调整和时间差调整,以得到调整后的时戳;
将所述调整后的时戳广播到各个QM模块中;
通过所述QM模块将所述调整后的时戳广播到与各个QM模块相对应的各个MAC中。
作为本发明的进一步改进,所述接收时刻时戳获取单元还用于:
在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳;
将所述接收时刻时戳附加在报文的尾部,跟随报文上行至入方向包处理引擎;
在所述入方向包处理引擎中将所述接收时刻时戳转移到内部的一附加报文头中。
作为本发明的进一步改进,所述报文处理单元还用于:
判断所述报文的处理模式为一步模式还是两步模式;
若所述处理模式为一步模式,则将所述附加报文头和报文一起转发到适当的目的端口,在目的端口中取得报文发送起始时刻的时戳;若所述处理模式为两步模式,则将所述附加报文头和报文一起发送给CPU的PTP协议栈,其中,不需要额外的寄存器记录所述接收时刻时戳。
作为本发明的进一步改进,所述报文发送单元还用于:
每个MAC在报文发送时刻将报文发送起始信号和序列标志号发送给对应的QM模块;
每个QM模块汇聚所有与该QM模块相对应的MAC发送的报文发送起始信号和序列标志号;
所述QM模块将所有汇聚到的报文发送起始信号和序列标志号发送给所述PTP引擎,并根据所述报文发送起始信号将发送时刻时戳和所述序列标志号以及发送端口位图存储于所述PTP引擎中的FIFO存储器中。
与现有技术相比,本发明的有益效果是:本发明通过集中的PTP引擎来实现本地时间与远端时钟的同步,并通过这个集中的PTP引擎把时戳广播到所有的MAC来实现一步模式和两步模式,不需要通过请求响应的机制,也不需要在PTP引擎中区分MAC的发送和接收方向既可以实现;另外通过多个MAC回送报文起始信号和报文序列标志到PTP引擎中,实现多个MAC发送时刻时戳的记录,并可以实现针对一个端口连续记录多个发送时刻时戳的功能。
附图说明
图1是本发明一实施方式中时戳广播机制示意图;
图2是本发明一实施方式中发送时刻时戳记录机制示意图;
图3是本发明一实施方式中在多个MAC中实现PTP一步模式和两步模式的方法流程图;
图4是本发明一实施方式中从PTP广播时戳的流程图;
图5是本发明一实施方式中S2具体步骤的流程图;
图6是本发明一实施方式中S3具体步骤的流程图;
图7是本发明一实施方式中S4步骤中实现两步模式的具体步骤的流程图;
图8是本发明一实施方式中在多个MAC中实现PTP一步模式和两步模式的装置示意图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
如图1、图2所示,在本发明一实施方式中,以以太网交换机芯片为例,对本发明的具体实施方案进行描述,图中所示的以太网交换芯片包括有48个MAC(媒体访问控制器)和一个集中的PTP(精确时间同步协议)引擎,所示PTP引擎实现2个主要的功能:一个是本地时间的调整,另一个是发送时刻时戳的记录。其中FRC是根据输入的参考时钟频率进行自由计数的一个自由计数器,Drift Adjust和Offset Adjust分别是漂移调整和时间差调整,漂移调整用于纠正本地参考晶振的频偏,时间差调整用于补偿本地时间和远端标准时间的差值,最后得到调整后的时间值应用于接收和发送时刻时戳。
如图3所示,在本发明的一实施方式中,一种在多个MAC中实现PTP一步模式和两步模式的方法,包括以下步骤:
S1、接收PTP事件信息的报文;优选地,从网络接收报文。
S2、在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳;PTP协议实现分为一步模式和两步模式,两步模式主要通过软件辅助实现本地时间与远端主时钟的同步,依赖于硬件记录当前PTP事件消息的时戳,软件读取时戳,并把这个时戳放到下一个PTP事件消息中传递给对方;PTP一步模式不需要软件的参与,可以直接把PTP事件消息发送时刻的时戳插入到当前的PTP事件消息中合适的位置,并更新报文的校验值,可以不需要发送follow_up消息。
优选地,在MAC的接收方向,实现一步模式和两步模式是一致的,当MAC接收到所述PTP事件信息报文时,需要对当前报文打时戳,则MAC就会在报文起始标志取得从PTP引擎广播而来的时戳,作为接收报文起始时刻的接收时刻时戳,这个时戳有64bits位宽,关于PTP引擎广播时戳的方式在以下内容中会加以说明。
S3、判断所述报文的处理模式,根据判断结果对所述报文进行相对应的处理;在本实施方式中,根据所述报文的处理模式的不同(或一步模式或两步模式),来确定怎么样处理附加报文头和报文,具体地,根据所实现处理模式的不同来决定将所述附加报文头和报文发送到适当的处理单元,比如,CPU的PTP协议栈、目的端口等等。再运用这些内部的处理单元对所述报文作处理动作。
S4、发送所述报文;其中,若处理模式为一步模式,则在发送报文的起始时刻获取从PTP引擎广播而来的时戳,以作为报文的发送时刻时戳插入到报文的合适位置后发送报文;若处理模式为两步模式,则通过多个MAC回送报文发送起始信号和序列标志号给所述PTP引擎,并记录所述发送时刻时戳在所述PTP引擎中。其中,当有对应的事件发生时,MAC发送状态寄存器MACTXSTAT便会在每个MAC在报文发送起始时刻发送报文发送起始信号macTxSfd,所述序列标志号是指报文中对应序列号的末两位。
如图4所示,所述“从PTP引擎广播时戳”具体包括以下步骤:
在PTP引擎内进行漂移调整和时间差调整,以得到调整后的时戳;其中,Drift Adjust和Offset Adjust分别是漂移调整和时间差调整,漂移调整用于纠正本地参考晶振的频偏,时间差调整用于补偿本地时间和远端标准时间的差值,最后得到调整后的时间值应用于接收和发送时刻时戳。
将所述调整后的时戳广播到各个QM模块中;可参照图1所示,PTP引擎将调整后的时戳广播到所有的48个MAC,为了降低芯片后端布线的拥塞,采用逐级广播的方式,所述PTP引擎广播时戳的第一级动作是将所述时戳广播到所有的QuadMac模块(文中简称为QM模块),优选地,本实施方式中,所述QM模块共设置了12个,每一个QM模块对应4个独立的MAC。
通过所述QM模块将所述调整后的时戳广播到与各个QM模块相对应的各个MAC中。所述PTP引擎广播时戳的第二级动作便是再从每个QuadMac模块广播到属于这个QuadMac的4个MAC中,这样在MAC中接收和发送报文可以同时采样这个广播时戳。通过本实施方式的这种PTP引擎广播时戳的机制,多个MAC在接收到外部报文的时候无需通过请求响应的机制即可实现当前时戳的获取,且接收和发送报文可同时采样这个广播时戳,无需在PTP引擎中区分MAC的发送和接收方向。
如图5所示,所述S2步骤具体包括:
S21、在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳;优选地,所述时戳无需通过请求响应机制即可获得,当MAC接收到外部的报文之时,所述MAC便会直接从与其相对应的QM模块获取从PTP引擎广播到各个QM模块的时戳作为该报文起始时刻的接收时刻时戳。
S22、将所述接收时刻时戳附加在报文的尾部,跟随报文上行至入方向包处理引擎;在得到所述报文的接收时刻时戳后,将该接收时刻时戳附加在所述报文的尾部,并跟随报文上行至入方向包处理引擎,其中,所述入方向包处理引擎为内部用于对所述PTP事件信息的报文作处理的装置。
S23、在所述入方向包处理引擎中将所述接收时刻时戳转移到内部的一附加报文头中。优选地,在所述入方向包处理引擎中,所述64bit的接收时刻时戳会被转移到内部的一个附加报文头中,需要说明的是,S2中所述的各步骤中,无论是实现一步模式还是两步模式,所需要进行的动作都是一致的。
如图6所示,所述S3步骤具体包括:
S31、判断所述报文的处理模式为一步模式还是两步模式;由于在此步骤中,对于采取PTP一步模式和两步模式,两种模式所采取的对于报文的处理方式是截然不同的,所以在处理之前需要判断所述报文的处理模式。
S32、若所述处理模式为一步模式,则将所述附加报文头和报文一起转发到适当的目的端口,在目的端口中取得报文发送起始时刻的时戳;若所述处理模式为两步模式,则将所述附加报文头和报文一起发送给CPU的PTP协议栈,其中,不需要额外的寄存器记录所述接收时刻时戳。具体地,在一步模式中,报文发送起始时刻的时戳是PTP引擎广播下来的时戳取得,把发送时刻时戳减去接收时刻时戳就可以得到芯片内部的驻留时间,可以实现一步模式的透明时钟。
如图7所示,所述S4步骤中实现两步模式的步骤具体包括:
每个MAC在报文发送时刻将报文发送起始信号和序列标志号发送给对应的QM模块;可参照图2,图中每四个MAC对应一个QM模块,比如MAC#0、MAC#1、MAC#2、MAC#3四个媒体访问控制器与一个QM模块QM#0之间进行通信,每一个MAC在报文发送时刻将报文的报文发送起始信号macTxSfd与报文中序列号的末两位macPtpTxSeqId[1:0]发送给所述四个MAC所共用的QM模块。
每个QM模块汇聚所有与该QM模块相对应的MAC发送的报文发送起始信号和序列标志号;可参照图2,在本实施方式中,每个QM模块汇聚了四个MAC的报文发送起始信号macTxSfd与报文中序列号的末两位,也就是序列标志号macPtpTxSeqId[1:0]后,再发送给集中的PTP引擎。
所述QM模块将所有汇聚到的报文发送起始信号和序列标志号发送给所述PTP引擎,并根据所述报文发送起始信号将发送时刻时戳和所述序列标志号以及发送端口位图存储于所述PTP引擎中的FIFO存储器中。在本实施方式中,所述PTP引擎内部设有一64深度的FIFO(先进先出的数据缓存器),其数据结构如下所示:
{ macBitMap[47:0], timeStamp[63:0], sequenceId[95:0] },其中,macBitMap表示MAC的发送端口位图;timeStamp表示对应报文当前发送时刻的时戳;sequenceId表示对应的报文序列标志号;
FIFO中每个条目的记录位宽等于208bits,由于48个MAC有可能是同时发送PTP报文,所以FIFO中记录了48个MAC的发送端口位图、对应的报文序列标志号以及当前发送时刻的时戳。通过这种实现机制,这个64深度的FIFO最多可以一次性记录3072个(64x48)时戳供PTP协议栈实现两步模式的PTP协议和后续处理,每个发送MAC一次性最多可以记录4个发送PTP报文的时戳。通过多个MAC回送报文起始信号和报文序列标志号到PTP引擎中,并通过FIFO记录发送时刻时戳,实现多个MAC发送时戳的记录,并可以实现针对一个端口记录多个发送时戳的功能。
如图8所示,本发明一实施方式中一种在多个MAC中实现PTP一步模式和两步模式的装置包括:
报文接收单元101:用于接收PTP事件信息的报文;优选地,从网络接收报文。
接收时刻时戳获取单元102:用于在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳;PTP协议实现分为一步模式和两步模式,两步模式主要通过软件辅助实现本地时间与远端主时钟的同步,依赖于硬件记录当前PTP事件消息的时戳,软件读取时戳,并把这个时戳放到下一个PTP事件消息中传递给对方;PTP一步模式不需要软件的参与,可以直接把PTP事件消息发送时刻的时戳插入到当前的PTP事件消息中合适的位置,并更新报文的校验值,可以不需要发送follow_up消息。
优选地,在MAC的接收方向,实现一步模式和两步模式是一致的,当MAC接收到所述PTP事件信息报文时,需要对当前报文打时戳,则MAC就会在报文起始标志取得从PTP引擎广播而来的时戳,作为接收报文起始时刻的接收时刻时戳,这个时戳有64bits位宽,关于PTP引擎广播时戳的方式在以下内容中会加以说明。
报文处理单元103:用于判断所述报文的处理模式,根据判断结果对所述报文进行相对应的处理;在本实施方式中,根据所述报文的处理模式的不同(或一步模式或两步模式),来确定怎么样处理附加报文头和报文,具体地,根据所实现处理模式的不同来决定将所述附加报文头和报文发送到适当的处理单元,比如,CPU的PTP协议栈、目的端口等等。再运用这些内部的处理单元对所述报文作处理动作。
报文发送单元104:用于发送所述报文;其中,若处理模式为一步模式,则在发送报文的起始时刻获取从PTP引擎广播而来的时戳,以作为报文的发送时刻时戳插入到报文的合适位置后发送报文;若处理模式为两步模式,则通过多个MAC回送报文发送起始信号和序列标志号给所述PTP引擎,并记录发送时刻时戳在所述PTP引擎中。其中,当有对应的事件发生时,MAC发送状态寄存器MACTXSTAT便会在每个MAC在报文发送起始时刻发送报文发送起始信号macTxSfd,所述序列标志号是指报文中对应序列号的末两位。
如图4所示,所述一种在多个MAC中实现PTP一步模式和两步模式的装置还包括一时戳广播单元,该单元用于:
在PTP引擎内进行漂移调整和时间差调整,以得到调整后的时戳;其中,Drift Adjust和Offset Adjust分别是漂移调整和时间差调整,漂移调整用于纠正本地参考晶振的频偏,时间差调整用于补偿本地时间和远端标准时间的差值,最后得到调整后的时间值应用于接收和发送时刻时戳。
将所述调整后的时戳广播到各个QM模块中;可参照图1所示,PTP引擎将调整后的时戳广播到所有的48个MAC,为了降低芯片后端布线的拥塞,采用逐级广播的方式,所述PTP引擎广播时戳的第一级动作是将所述时戳广播到所有的QuadMac模块(文中简称为QM模块),优选地,本实施方式中,所述QM模块共设置了12个,每一个QM模块对应4个独立的MAC。
通过所述QM模块将所述调整后的时戳广播到与各个QM模块相对应的各个MAC中。所述PTP引擎广播时戳的第二级动作便是再从每个QuadMac模块广播到属于这个QuadMac的4个MAC中,这样在MAC中接收和发送报文可以同时采样这个广播时戳。通过本实施方式的这种PTP引擎广播时戳的机制,多个MAC在接收到外部报文的时候无需通过请求响应的机制即可实现当前时戳的获取,且接收和发送报文可同时采样这个广播时戳,无需在PTP引擎中区分MAC的发送和接收方向。
如图5所示,所述接收时刻时戳获取单元102还用于在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳;优选地,所述时戳无需通过请求响应机制即可获得,当MAC接收到外部的报文之时,所述MAC便会直接从与其相对应的QM模块获取从PTP引擎广播到各个QM模块的时戳作为该报文起始时刻的接收时刻时戳。
所述接收时刻时戳获取单元102还用于将所述接收时刻时戳附加在报文的尾部,跟随报文上行至入方向包处理引擎;在得到所述报文的接收时刻时戳后,将该接收时刻时戳附加在所述报文的尾部,并跟随报文上行至入方向包处理引擎,其中,所述入方向包处理引擎为内部用于对所述PTP事件信息的报文作处理的装置。
所述接收时刻时戳获取单元102还用于在所述入方向包处理引擎中将所述接收时刻时戳转移到内部的一附加报文头中。优选地,在所述入方向包处理引擎中,所述64bit的接收时刻时戳会被转移到内部的一个附加报文头中,需要说明的是,S2中所述的各步骤中,无论是实现一步模式还是两步模式,所需要进行的动作都是一致的。
如图6所示,所述报文处理单元103还用于判断所述报文的处理模式为一步模式还是两步模式;由于在此步骤中,对于采取PTP一步模式和两步模式,两种模式所采取的对于报文的处理方式是截然不同的,所以在处理之前需要判断所述报文的处理模式。
所述报文处理单元103还用于若为一步模式,则将所述附加报文头和报文一起转发到适当的目的端口,在目的端口中取得报文发送起始时刻的时戳;若为两步模式,则将所述附加报文头和报文一起发送给CPU的PTP协议栈,其中,不需要额外的寄存器记录所述接收时刻时戳。具体地,在一步模式中,报文发送起始时刻的时戳是PTP引擎广播下来的时戳取得,把发送时刻时戳减去接收时刻时戳就可以得到芯片内部的驻留时间,可以实现一步模式的透明时钟。
如图7所示,所述报文发送单元104还用于:
每个MAC在报文发送时刻将报文发送起始信号和序列标志号发送给对应的QM模块;可参照图2,图中每四个MAC对应一个QM模块,比如MAC#0、MAC#1、MAC#2、MAC#3四个媒体访问控制器与一个QM模块QM#0之间进行通信,每一个MAC在报文发送时刻将报文的报文发送起始信号macTxSfd与报文中序列号的末两位macPtpTxSeqId[1:0]发送给所述四个MAC所共用的QM模块。
每个QM模块汇聚所有与该QM模块相对应的MAC发送的报文发送起始信号和序列标志号;可参照图2,在本实施方式中,每个QM模块汇聚了四个MAC的报文发送起始信号macTxSfd与报文中序列号的末两位,也就是序列标志号macPtpTxSeqId[1:0]后,再发送给集中的PTP引擎。
所述QM模块将所有汇聚到的报文发送起始信号和序列标志号发送给所述PTP引擎,并根据所述报文发送起始信号将发送时刻时戳和所述序列标志号以及发送端口位图存储于所述PTP引擎中的FIFO存储器中。在本实施方式中,所述PTP引擎内部设有一64深度的FIFO(先进先出的数据缓存器),其数据结构如下所示:
{ macBitMap[47:0], timeStamp[63:0], sequenceId[95:0] },其中,macBitMap表示MAC的发送端口位图;timeStamp表示对应报文当前发送时刻的时戳;sequenceId表示对应的报文序列标志号;
FIFO中每个条目的记录位宽等于208bits,由于48个MAC有可能是同时发送PTP报文,所以FIFO中记录了48个MAC的端口位图、对应的报文序列标志号以及当前发送时刻的时戳。通过这种实现机制,这个64深度的FIFO最多可以一次性记录3072个(64x48)时戳供PTP协议栈实现两步模式的PTP协议和后续处理,每个发送MAC一次性最多可以记录4个发送PTP报文的时戳。通过多个MAC回送报文起始信号和报文序列标志号到PTP引擎中,并通过FIFO记录时戳,实现多个MAC发送时戳的记录,并可以实现针对一个端口记录多个发送时戳的功能。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (10)
1. 一种在多个MAC中实现PTP一步模式和两步模式的方法,其特征在于,所述方法包括以下步骤:
S1、接收PTP事件信息的报文;
S2、在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳,所述PTP引擎用以发送时刻时戳的记录;
S3、判断所述报文的处理模式,根据判断结果对所述报文进行相对应的处理;
S4、发送所述报文;其中,若处理模式为一步模式,则在发送报文的起始时刻获取从PTP引擎广播而来的时戳,以作为报文的发送时刻时戳插入到报文的合适位置后发送报文;若处理模式为两步模式,则通过多个MAC回送报文发送起始信号和序列标志号给所述PTP引擎,并记录发送时刻时戳在所述PTP引擎中。
2.根据权利要求1所述的方法,其特征在于,所述“从PTP引擎广播时戳”具体包括以下步骤:
在PTP引擎内进行漂移调整和时间差调整,以得到调整后的时戳;
将所述调整后的时戳广播到各个QM模块中,所述QM模块对应若干独立的MAC;
通过所述QM模块将所述调整后的时戳广播到与各个QM模块相对应的各个MAC中。
3.根据权利要求1所述的方法,其特征在于,所述S2步骤具体包括:
S21、在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳;
S22、将所述接收时刻时戳附加在报文的尾部,跟随报文上行至入方向包处理引擎;
S23、在所述入方向包处理引擎中将所述接收时刻时戳转移到内部的一附加报文头中。
4.根据权利要求1或3任意一项所述的方法,其特征在于,所述S3步骤具体包括:
S31、判断所述报文的处理模式为一步模式还是两步模式;
S32、若所述处理模式为一步模式,则将所述附加报文头和报文一起转发到适当的目的端口,在目的端口中取得报文发送起始时刻的时戳;若所述处理模式为两步模式,则将所述附加报文头和报文一起发送给CPU的PTP协议栈,其中,不需要额外的寄存器记录所述接收时刻时戳。
5.根据权利要求2所述的方法,其特征在于,所述S4步骤中实现两步模式的步骤具体包括:
每个MAC在报文发送时刻将报文发送起始信号和序列标志号发送给对应的QM模块;
每个QM模块汇聚所有与该QM模块相对应的MAC发送的报文发送起始信号和序列标志号;
所述QM模块将所有汇聚到的报文发送起始信号和序列标志号发送给所述PTP引擎,并根据所述报文发送起始信号将发送时刻时戳和所述序列标志号以及发送端口位图存储于所述PTP引擎中的FIFO存储器中。
6.一种在多个MAC中实现PTP一步模式和两步模式的装置,其特征在于,所述装置包括:
报文接收单元,用于接收PTP事件信息的报文;
接收时刻时戳获取单元,用于在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳,所述PTP引擎用以发送时刻时戳的记录;
报文处理单元,用于判断所述报文的处理模式,根据判断结果对所述报文进行相对应的处理;
报文发送单元,用于发送所述报文;其中,若处理模式为一步模式,则在发送报文的起始时刻获取从PTP引擎广播而来的时戳,以作为报文的发送时刻时戳插入到报文的合适位置后发送报文;若处理模式为两步模式,则通过多个MAC回送报文发送起始信号和序列标志号给所述PTP引擎,并记录发送时刻时戳在所述PTP引擎中。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括一时戳广播单元,该单元用于:
在PTP引擎内进行漂移调整和时间差调整,以得到调整后的时戳;
将所述调整后的时戳广播到各个QM模块中,所述QM模块对应若干独立的MAC;
通过所述QM模块将所述调整后的时戳广播到与各个QM模块相对应的各个MAC中。
8.根据权利要求6所述的装置,其特征在于,所述接收时刻时戳获取单元还用于:
在所述报文的起始标志获取从PTP引擎广播而来的时戳,以作为接收报文起始时刻的接收时刻时戳;
将所述接收时刻时戳附加在报文的尾部,跟随报文上行至入方向包处理引擎;
在所述入方向包处理引擎中将所述接收时刻时戳转移到内部的一附加报文头中。
9.根据权利要求6或8所述的装置,其特征在于,所述报文处理单元还用于:
判断所述报文的处理模式为一步模式还是两步模式;
若所述处理模式为一步模式,则将所述附加报文头和报文一起转发到适当的目的端口,在目的端口中取得报文发送起始时刻的时戳;若所述处理模式为两步模式,则将所述附加报文头和报文一起发送给CPU的PTP协议栈,其中,不需要额外的寄存器记录接收时刻时戳。
10.根据权利要求7所述的装置,其特征在于,所述报文发送单元还用于:
每个MAC在报文发送时刻将报文发送起始信号和序列标志号发送给对应的QM模块;
每个QM模块汇聚所有与该QM模块相对应的MAC发送的报文发送起始信号和序列标志号;
所述QM模块将所有汇聚到的报文发送起始信号和序列标志号发送给所述PTP引擎,并根据所述报文发送起始信号将发送时刻时戳和所述序列标志号以及发送端口位图存储于所述PTP引擎中的FIFO存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110260108.0A CN102983959B (zh) | 2011-09-05 | 2011-09-05 | 在多个mac中实现ptp一步模式和两步模式的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110260108.0A CN102983959B (zh) | 2011-09-05 | 2011-09-05 | 在多个mac中实现ptp一步模式和两步模式的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102983959A CN102983959A (zh) | 2013-03-20 |
CN102983959B true CN102983959B (zh) | 2015-05-13 |
Family
ID=47857724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110260108.0A Active CN102983959B (zh) | 2011-09-05 | 2011-09-05 | 在多个mac中实现ptp一步模式和两步模式的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102983959B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579535B (zh) * | 2015-01-06 | 2017-08-01 | 盛科网络(苏州)有限公司 | Ptp引擎广播时戳的方法、芯片处理时戳的方法及装置 |
CN106230540B (zh) * | 2016-06-30 | 2019-03-26 | 电信科学技术第五研究所有限公司 | 高精度ntp报文接收方法和发送方法 |
CN108429596B (zh) * | 2018-01-26 | 2019-08-02 | 武汉中元华电电力设备有限公司 | 一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447861A (zh) * | 2008-12-29 | 2009-06-03 | 中兴通讯股份有限公司 | Ieee 1588时间同步系统及其实现方法 |
CN101459502A (zh) * | 2007-12-13 | 2009-06-17 | 华为技术有限公司 | 一种网络时钟同步的方法与装置 |
CN101599894A (zh) * | 2008-06-04 | 2009-12-09 | 华为技术有限公司 | 具有时钟信息报文的处理方法、装置及系统 |
CN101977104A (zh) * | 2010-11-13 | 2011-02-16 | 上海交通大学 | 基于ieee1588精确时钟同步协议系统及其同步方法 |
CN102104476A (zh) * | 2011-02-21 | 2011-06-22 | 中兴通讯股份有限公司 | 时钟同步装置及方法 |
-
2011
- 2011-09-05 CN CN201110260108.0A patent/CN102983959B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459502A (zh) * | 2007-12-13 | 2009-06-17 | 华为技术有限公司 | 一种网络时钟同步的方法与装置 |
CN101599894A (zh) * | 2008-06-04 | 2009-12-09 | 华为技术有限公司 | 具有时钟信息报文的处理方法、装置及系统 |
CN101447861A (zh) * | 2008-12-29 | 2009-06-03 | 中兴通讯股份有限公司 | Ieee 1588时间同步系统及其实现方法 |
CN101977104A (zh) * | 2010-11-13 | 2011-02-16 | 上海交通大学 | 基于ieee1588精确时钟同步协议系统及其同步方法 |
CN102104476A (zh) * | 2011-02-21 | 2011-06-22 | 中兴通讯股份有限公司 | 时钟同步装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102983959A (zh) | 2013-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100581164C (zh) | 面向测量与控制的精确时间同步方法与系统 | |
KR101109897B1 (ko) | 메시지 교환 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
CN104836630B (zh) | Ieee1588时钟同步系统及其实现方法 | |
EP2997485B1 (en) | Media time based usb frame counter synchronization for wi-fi serial bus | |
EP3284244B1 (en) | Methods, systems, and computer readable media for emulating network devices with different clocks | |
CN112838903B (zh) | 一种时钟同步方法、设备及存储介质 | |
EP3664375B1 (en) | Packet processing method and network device | |
JP6527289B2 (ja) | 時刻同期方法、センサ収容端末、およびセンサネットワークシステム | |
CN104378193A (zh) | 时间同步系统及方法、交换机、嵌入式接口板 | |
CN107786293B (zh) | 时间同步方法、主时钟设备、从时钟设备及时间同步系统 | |
CN105027489B (zh) | 精确时钟协议同步方法和节点 | |
CN103138887A (zh) | 一种1588事件报文的处理方法及系统 | |
CN106688207A (zh) | 用于确定通信网络中的电报的传播时间的方法以及相应的网络组件 | |
CN107809295A (zh) | 一种跨平台时间同步装置及方法 | |
CN102983959B (zh) | 在多个mac中实现ptp一步模式和两步模式的方法及装置 | |
CN102916758A (zh) | 以太网时间同步装置和网络设备 | |
CN117320144A (zh) | 基于无线通信的子母钟时间同步方法和系统 | |
CN103580845B (zh) | 一种基于虚拟交换集群的时钟同步方法及装置 | |
CN102571253B (zh) | 实现精确时间同步的方法和设备 | |
CN102404103B (zh) | 提高ptp时间同步精度的方法及系统 | |
WO2023213080A1 (zh) | 基于fpga实现网络节点时间同步的方法 | |
WO2016000324A1 (zh) | 时间同步的实现方法及装置 | |
US9306695B2 (en) | Frame transmitting apparatus, frame receiving apparatus, and frame transmission/reception system and method | |
US20150106647A1 (en) | Method and a Device for Maintaining a Synchronized Local Timer Using a Periodic Signal | |
CN115551067A (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 | ||
CP03 | Change of name, title or address |
Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: 215021 unit 13 / 16, floor 4, building B, No. 5, Xinghan street, Suzhou Industrial Park, Suzhou, Jiangsu Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |
|
CP03 | Change of name, title or address |