CN108429596B - 一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法 - Google Patents
一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法 Download PDFInfo
- Publication number
- CN108429596B CN108429596B CN201810078074.5A CN201810078074A CN108429596B CN 108429596 B CN108429596 B CN 108429596B CN 201810078074 A CN201810078074 A CN 201810078074A CN 108429596 B CN108429596 B CN 108429596B
- Authority
- CN
- China
- Prior art keywords
- module
- message
- field
- mac
- ptp
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法,包括MAC接收模块和MAC发送模块;所述MAC接收模块负责所有以太网报文接收,在FPGA或ASIC上实现;所述MAC发送模块负责所有以太网报文发送,MAC发送模块还负责将发送以太网报文发送时间戳返回给PTP协议栈;所述MAC发送模块由软件程序和硬件逻辑构成;所述MAC发送模块软件程序安装在CPU或DSP平台上,负责与PTP时间戳相关部分辅助计算及MAC部分控制功能;所述MAC发送模块硬件逻辑在FPGA或ASIC上实现,负责PTP时间戳处理、与时间戳相关部分实时计算、MAC层协议实现;本发明MAC接收模块与PTP协议栈之间、MAC发送模块与PTP协议栈之间以及MAC发送模块的软件程序和硬件逻辑之间的交互减少,且相互之间均不需要等待。
Description
技术领域
本发明涉及一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法,应用于通过以太网实现IEEE 1588v2同步的领域,适用于10/100/1000兆以太网,适用于两层和三层以太网。
背景技术
根据IEEE 1588v2协议(也称PTP协议,IEC已将其化为IEC61588-2004标准)的规定,PTP报文携带设备的时间信息在以太网中传输,从而使互连的设备间达到精确的时间和频率同步;其突出特点是采用硬件时间戳提高了同步的精度,而使用硬件时间戳的难点在于软件处理的实时性和高效性。
一般情况下,PTP报文在发送时,需要先发送一部分并获取其发送时间戳,然后将发送时间戳回填到报文的相应字段后再发送剩余部分。如果采用纯软件的方式来实现以太网MAC(Media Access Control,介质访问控制),则在实时性上根本得不到保证,而且效率不高。若使用具有PTP功能的PHY芯片来实现,则由于PHY芯片与MAC之间MDIO接口带宽的限制,无法处理大流量的PTP报文。
发明内容
本发明为了克服上述现有技术存在的问题,提供一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法,本发明的MAC接收模块负责所有以太网报文的接收,在FPGA或ASIC上实现;本发明的MAC发送模块负责所有以太网报文的发送,MAC发送模块在需要的时候还负责将发送以太网报文的发送时间戳返回给PTP协议栈。本发明的MAC发送模块由软件程序和硬件逻辑构成;MAC发送模块软件程序安装在CPU或DSP平台上,负责与PTP时间戳相关部分的辅助计算及MAC部分控制功能;MAC发送模块硬件逻辑在FPGA或ASIC上实现,负责PTP时间戳处理、与时间戳相关部分的实时计算、MAC层协议实现;
基于本发明,MAC接收模块与PTP协议栈之间、MAC发送模块与PTP协议栈之间以及MAC发送模块的软件程序和硬件逻辑之间的交互减少,且相互之间均不需要等待,能够达到与普通MAC一样的报文处理带宽。
本发明的技术方案为:
一种用于IEEE 1588v2协议的以太网MAC模块实现装置,包括MAC接收模块和MAC发送模块;其特征在于:
所述的MAC接收模块负责所有以太网报文的接收,在FPGA或ASIC上实现;
所述的MAC接收模块由输入控制模块、PTP报文接收时间戳处理模块组成,输入控制模块完成CRC检查及格式检查,PTP报文接收时间戳处理模块对所有报文打上符合IEEE1588v2协议格式的时间戳,并对时间戳进行延迟补偿和校正。
所述的MAC发送模块负责所有以太网报文的发送,MAC发送模块在需要的时候还负责将发送以太网报文的发送时间戳返回给PTP协议栈;
所述的MAC发送模块由软件程序和硬件逻辑构成;所述MAC发送模块软件程序安装在CPU或DSP平台上,负责与PTP时间戳相关部分的辅助计算及MAC部分控制功能;所述MAC发送模块硬件逻辑在FPGA或ASIC上实现,负责PTP时间戳处理、与时间戳相关部分的实时计算、MAC层协议实现;
所述的MAC发送模块由报文控制字段生成及添加模块、控制字段解析模块、UDP报文CHECKSUM(校验和)计算模块、PTP报文CORRECTION_FIELD(校正域)计算模块、PTP报文时间戳处理模块、输出控制模块和时间戳返回控制模块组成;所述的报文控制字段生成及添加模块为软件程序,安装在CPU或DSP平台上;所述的控制字段解析模块、UDP报文CHECKSUM计算模块、PTP报文CORRECTION_FIELD计算模块、PTP报文时间戳处理模块、输出控制模块和时间戳返回控制模块为硬件逻辑,在FPGA或ASIC上实现;所述的报文控制字段生成及添加模块具有:①接收PTP协议栈下发的报文,辅助计算PTP报文中与时间戳相关部分字段的内容并生成控制字段;②将生成的控制字段与PTP协议栈下发报文合并,发送给控制字段解析模块;所述的控制字段解析模块具有:①对输入报文进行解析,提取控制字段;②分析控制字段的内容,控制UDP报文CHECKSUM计算模块、PTP报文CORRECTION_FIELD计算模块、PTP报文时间戳处理模块、输出控制模块和时间戳返回控制模块的工作;③计算UDP报文CHECKSUM的偏移位置,计算PTP报文的CORRECTION_FIELD和发送时间戳的偏移位置;所述的UDP报文CHECKSUM计算模块具有:根据已有控制信息及重新计算后的CORRECTION_FIELD字段或发送时间戳字段,实时重新计算UDP报文的CHECKSUM字段;所述的PTP报文CORRECTION_FIELD计算模块具有:根据已有控制信息及获取的报文发送时间戳,按照公式:旧CORRECTION_FIELD+(发送时间戳-接收时间戳),实时计算PTP报文的新CORRECTION_FIELD;所述的PTP报文时间戳处理模块具有:包括时间戳的获取、补偿、填充及保持功能;从输出控制模块获取时间戳后,先对获取时间戳进行处理延迟及传输延迟补偿,获得补偿时间戳;然后根据当前报文的类型将补偿时间戳填充到发送报文中或者先将补偿时间戳保持;若是保持,还要将补偿时间戳填充到下一个发送报文中;所述的输出控制模块具有:将更改后的输入报文进行PAD填充及CRC计算,然后按照节拍发送出去,在发送时记录报文的发送时间戳;输出控制模块实现的功能与普通MAC类似;所述的时间戳返回控制模块具有:在需要返回报文的发送时间戳时,负责按照规定的格式组成返回数据包,发送给PTP协议栈。
一种利用所述的用于IEEE 1588v2协议的以太网MAC模块实现装置的实现方法,其特征在于按以下步骤进行:MAC接收模块将接收时间戳附在以太网报文的头部,组包传输给PTP协议栈;MAC发送模块接收PTP协议栈的发送报文,PTP协议栈的发送报文首先进入报文控制字段生成及添加模块,报文控制字段生成及添加模块生成发送报文的控制字段,然后将控制字段和PTP协议栈的发送报文合并在一起,下发给控制字段解析模块;控制字段解析模块收到报文后,首先剥离下发报文的控制字段并分析,然后控制UDP报文CHECKSUM(校验和)计算模块和PTP报文CORRECTION_FIELD(校正域)计算模块进行计算,控制PTP报文时间戳处理模块进行时间戳获取、补偿、填充及保持,控制输出控制模块启动/停止发送,控制时间戳返回控制模块构造和上传时间戳返回包。
本发明的优势:1.通过合理定义MAC模块与PTP协议栈之间以及MAC发送模块的软件程序与硬件逻辑之间的数据格式,将与硬件时间戳相关的工作交给硬件逻辑来处理,软件程序实现控制功能并辅助进行与硬件时间戳无关部分的计算,可充分发挥软件程序的灵活优势和硬件逻辑的精度优势及并行计算优势;2.MAC接收模块与PTP协议栈之间、MAC发送模块与PTP协议栈之间以及MAC发送模块的软件程序和硬件逻辑之间的交互减少(在主钟模式/TC模式下,数据通路与普通MAC一样;在从钟模式下,仅增加一路返回发送时间戳通路),且相互之间均不需要等待,能够达到与普通MAC一样的报文处理带宽,从而提高发包效率;3.MAC接收模块和MAC发送发送模块均可对时间戳进行精确控制及延迟补偿,提高时间戳精度;MAC发送模块可边发送报文边计算,没有浪费处理时间,效率高。
本发明考虑到报文时间戳的变化只涉及到报文中有限个字段的值的变化,对报文整体结构没有影响,这正是FPGA或ASIC等硬件善于处理的事情。因此,本发明:①接收时,MAC模块只负责对所有报文打上时间戳,PTP协议栈来处理其它操作;②发送时,MAC模块的软件程序部分提前将PTP协议栈下发报文中需要硬件逻辑部分修改的内容计算一部分,然后将剩余与时间戳相关的待计算部分通过控制信息下发给MAC模块的硬件逻辑部分;MAC模块的硬件逻辑部分负责根据控制信息完成剩余的计算任务,然后发送报文。
附图说明
图1为本发明的MAC模块结构示意图。
图2为本发明的MAC接收模块结构示意图。
图3为本发明的MAC发送模块结构示意图。
具体实施方式
结合附图对本发明作进一步描述。
本发明一种用于IEEE 1588v2协议的以太网MAC模块实现装置,包括MAC接收模块和MAC发送模块;其特征在于:
如图1所示,所述的MAC模块由MAC接收模块和MAC发送模块组成,MAC接收模块负责所有以太网报文的接收,在FPGA或ASIC上实现;MAC发送模块负责所有以太网报文的发送,MAC发送模块在需要的时候还负责将发送报文的发送时时间戳返回给PTP协议栈;所述的MAC发送模块由软件程序和硬件逻辑构成;所述MAC发送模块软件程序安装在CPU或DSP平台上,负责与PTP时间戳相关部分的辅助计算及MAC部分控制功能;所述MAC发送模块硬件逻辑在FPGA或ASIC上实现,负责PTP时间戳处理、与时间戳相关部分的实时计算、MAC层协议实现。
如图2所示,所述的MAC接收模块由输入控制模块、PTP报文接收时间戳处理模块组成,输入控制模块完成CRC检查及格式检查,PTP报文接收时间戳处理模块对所有报文打上符合IEEE 1588v2协议格式的时间戳,并对时间戳进行延迟补偿和校正。
如图3所示,所述的MAC发送模块由报文控制字段生成及添加模块、控制字段解析模块、UDP报文CHECKSUM(校验和)计算模块、PTP报文CORRECTION_FIELD(校正域)计算模块、PTP报文时间戳处理模块、输出控制模块和时间戳返回控制模块组成;所述的报文控制字段生成及添加模块为软件程序,安装在CPU或DSP平台上,所述的控制字段解析模块、UDP报文CHECKSUM计算模块、PTP报文CORRECTION_FIELD计算模块、PTP报文时间戳处理模块、输出控制模块和时间戳返回控制模块为硬件逻辑,在FPGA或ASIC上实现;所述的报文控制字段生成及添加模块具有:①接收PTP协议栈下发的报文,辅助计算PTP报文中与时间戳相关部分字段的内容并生成控制字段;②将生成的控制字段与PTP协议栈下发报文合并,发送给控制字段解析模块;所述的控制字段解析模块具有:①对输入报文进行解析,提取控制字段;②分析控制字段的内容,控制UDP报文CHECKSUM计算模块、PTP报文CORRECTION_FIELD计算模块、PTP报文时间戳处理模块、输出控制模块和时间戳返回控制模块的工作;③计算UDP报文CHECKSUM的偏移位置,计算PTP报文的CORRECTION_FIELD和发送时间戳的偏移位置;所述的UDP报文CHECKSUM计算模块具有:根据已有控制信息及重新计算后的CORRECTION_FIELD字段或发送时间戳字段,实时重新计算UDP报文的CHECKSUM字段;所述的PTP报文CORRECTION_FIELD计算模块具有:根据已有控制信息及获取的报文发送时间戳,按照公式:旧CORRECTION_FIELD+(发送时间戳-接收时间戳),实时计算PTP报文的新CORRECTION_FIELD;所述的PTP报文时间戳处理模块具有:包括时间戳的获取、补偿、填充及保持功能;从输出控制模块获取时间戳后,先对获取时间戳进行处理延迟及传输延迟补偿,获得补偿时间戳;然后根据当前报文的类型将补偿时间戳填充到发送报文中或者先将补偿时间戳保持;若是保持,还要将补偿时间戳填充到下一个发送报文中;所述的输出控制模块具有:将更改后的输入报文进行PAD填充及CRC计算,然后按照节拍发送出去,在发送时记录报文的发送时间戳;该模块实现的功能与普通MAC类似;所述的时间戳返回控制模块具有:在需要返回报文的发送时间戳时,负责按照规定的格式组成返回数据包,发送给PTP协议栈。
一种利用所述的用于IEEE 1588v2协议的以太网MAC模块实现装置的实现方法,其特征在于按以下步骤进行:MAC接收模块将接收时间戳附在以太网报文的头部,组包传输给PTP协议栈,接收MAC模块上传给PTP协议栈的报文数据格式见表1;MAC发送模块接收PTP协议栈的发送报文,PTP协议栈的发送报文首先进入报文控制字段生成及添加模块,报文控制字段生成及添加模块生成发送报文的控制字段,然后将控制字段和PTP协议栈的发送报文合并在一起,下发给控制字段解析模块;PTP协议栈下发给MAC发送模块的数据格式如表2;报文控制字段生成及添加模块下发给控制字段解析模块的数据格式如表3;控制字段解析模块收到报文后,首先剥离下发报文的控制字段并分析,然后控制UDP报文CHECKSUM(校验和)计算模块和PTP报文CORRECTION_FIELD(校正域)计算模块进行计算,控制PTP报文时间戳处理模块进行时间戳获取、补偿、填充及保持,控制输出控制模块启动/停止发送,控制时间戳返回控制模块构造和上传时间戳返回包。图3中箭头表示了控制信息及数据的流动方向。
表1接收MAC模块上传给PTP协议栈的报文数据格式(RSV为保留字段)
LENGTH:以字节为单位的数据包总长度,不包括LENGTH所在的行;TIMESTAMP:数据包的接收时间戳;DATA:接收以太网数据。
表2为PTP协议栈下发给MAC发送模块的数据格式
LENGTH:以字节为单位的数据包总长度,不包括LENGTH所在的行;
T2:表示报文的接收时间戳;当发送响应报文或计算驻留时间时,需要将相应报文的接收时间戳填入该字段以便于MAC发送模块进行相关的计算;
OLD_CORRECTION_FIELD:表示接收到的PTP报文中原本携带的CORRECTION_FIELD字段;
DATA:发送以太网数据。
表3为报文控制字段生成及添加模块下发给给控制字段解析模块的数据格式
表3中,从FLAG0到PACK_ID的前8行是控制字段,DATA是需要发送出去的数据字段。各控制/数据字段的含义如下:
FLAG0:’1’表示该数据包是UDP报文,’0'表示不是UDP报文;当报文为UDP报文时,表示该报文可能需要重新计算UDP CHECKSUM;见OLD_CHECKSUM字段的描述;
PTP_PKT_OFFSET:表示PTP报文部分在整个数据字段中的起始字节偏移,偏移位置从数据字段(DATA部分)开始计算;MAC发送模块的硬件逻辑通过该值及协议规定的PTP报文格式,自动定位PTP报文的CORRECTION_FIELD字段和发送时间戳字段;PTP报文以三层UDP协议传输时,由于UDP头部后紧跟PTP报文,因此通过该字段可间接定位UDP头部的CHECKSUM字段。发送PTP报文时,由报文控制字段生成及添加模块计算出PTP报文的起始偏移值,然后填入该字段;
FLAG1:’1’表示该数据包需要返回发送时间戳给PTP协议栈,’0'表示不需要;对于从钟,PTP协议栈需要报文的发送时间戳以进行对时相关的计算;此时,PTP协议栈将该位置置’1’,MAC发送模块则将获取到的报文发送时间戳按照表4的格式组包,然后返回给PTP协议栈;
LENGTH:以字节为单位的数据包总长度,不包括LENGTH所在的行;
F_CTRL:表示发送数据包的类型,从而决定MAC发送模块的硬件逻辑需要执行哪些操作;
“0”表示该数据包为普通数据包,不需要做任何处理;除LENGTH外的其它控制字段将被忽略,MAC发送模块的硬件逻辑直接将报文中的DATA部分发送出去,无其它操作。该字段为’0’时适用于以下报文①非PTP报文;②PTP Announce、Management、Signaling报文;③作主时钟时的Delay_Resp报文以及双步模式下的Pdelay_Resp、Pdelay_Resp_Follow_Up报文;④作从时钟时的Delay_Req、Pdelay_Req报文;
“1”表示该数据包需要进行驻留时间(发送时间戳-接收时间戳)的运算,并修改报文中的CORRECTION_FIELD字段;具体操作流程见“PTP报文CORRECTION_FIELD计算模块”详述;该字段为’1’时适用于以下报文①单步模式下的Pdelay_Resp报文;②作透明时钟时的所有PTP事件报文;③作主钟或从钟时需要进行不对称性校正的PTP事件报文;
“2”表示该数据包需要重填其发送时间戳;该字段为’2’时适用于作主钟时,采用单步模式时的Sync报文;
“3”表示需要将上一个数据包的发送时间戳填入当前数据包中。应用于主钟双步模式下发送Sync报文时,不需要将Sync报文的时间戳上传,直接填入下一个报文。PTP协议栈保证下一个报文为Follow_Up报文;这样Sync报文的发送时间戳被MAC发送模块的硬件逻辑直接填入Follow_Up报文的相应字段;
OLD_CHECKSUM:报文控制字段生成及添加模块计算的UDP报文的CHECKSUM值。当F_CTRL不为“0”且FLAG0为1时,报文控制字段生成及添加模块将计算UDP报文的CHECKSUM(不用取反)填入该字段;注意在计算该CHECKSUM时:若F_CTRL为1,则需要将报文的CORRECTION_FIELD字段置为0;若F_CTRL为1或2,则需要将报文的发送时间戳字段置为0;
T2:表示报文的接收时间戳;当发送响应报文或计算驻留时间时,需要将相应报文的接收时间戳填入该字段以便于MAC发送模块进行相关的计算;与表2中的T2相同;
OLD_CORRECTION_FIELD:表示接收到的PTP报文中原本携带的CORRECTION_FIELD字段;与表2中的OLD_CORRECTION_FIELD相同;
PACK_ID:表示当前发送数据包的编号,64位循环计数值。在返回报文发送时间戳给PTP协议栈时,MAC发送模块将该编号与报文发送时间戳一起组包上传,PTP协议栈通过该字段去匹配对应的发送报文;
DATA:发送数据包内容,包括MAC地址及数据包类型、用户数据等,不包括前导码定界符及CRC部分;与表2中的DATA相同。
“报文控制字段生成及添加模块”详述:
报文控制字段生成及添加模块为软件程序,与PTP协议栈直接通过软件编程接口。报文控制字段生成及添加模块收到PTP协议栈下发的报文后,首先判断当前报文的类型,继而确定FLAG0、PTP_PKT_OFFSET、FLAG1和F_CTRL的值;其次,若下发的报文是UDP类型的PTP报文且F_CTRL不为0,则将报文的CORRECTION_FIELD或发送时间戳字段置0,然后计算出一个CHECKSUM(不用取反),即为OLD_CHECKSUM;最后为该报文分配一个PACK_ID值;完成以上步骤后,按照表格3组成新的报文,下发给控制字段解析模块;
“UDP报文CHECKSUM计算模块”详述:
PTP报文在IPv4或IPv6上传播时,使用的是UDP协议,UDP头部的CHECKSUM(校验和)涵盖了PTP报文的所有内容;因此在修改了PTP报文的内容后,必须对UDP头部的CHECKSUM进行重新计算。报文控制字段生成及添加模块通过置FLAG0为1来标记当前报文为UDP报文,通过PTP_PKT_OFFSET字段标识UDP头部的起始位置(UDP头部是固定的,因此可以通过这个偏移找到CHECKSUM字段的位置)。
CHECKSUM先由报文控制字段生成及添加模块计算一部分,然后填入控制字段的OLD_CHECKSUM位置下发给控制字段解析模块。UDP报文CHECKSUM计算模块根据控制字段解析模块的指示,将需要修改部分的CHECKSUM计算出来,然后再与OLD_CHECKSUM做运算,得到UDP报文真实的CHECKSUM;最后将该真实的CHECKSUM值填入报文的CHECKSUM字段,交给输出控制模块发送。
“PTP报文CORRECTION_FIELD计算模块”详述:
PTP报文经过本设备需要进行驻留时间计算及修改时,报文控制字段生成及添加模块将报文的接收时间戳放在控制字段的T2部分,同时将报文中的CORRECTION_FIELD字段放在控制字段的OLD_CORRECTION_FIELD部分,然后置F_CTRL为1下发给控制字段解析模块;报文开始发送后,PTP报文时间戳处理模块先获取该报文的发送时间戳(一般表示为T3),然后由本模块计算OLD_CORRECTION_FIELD+(T3-T2)得到真实的CORRECTION_FIELD值。同时通过PTP_PKT_OFFSET找到报文的CORRECTION_FIELD字段的偏移位置,最后将上文的计算结果填入该字段,将报文的剩余部分发送出去。
“PTP报文时间戳处理模块”详述:
除了时间戳的获取、补偿、填充及保持外,本模块的另外一个重要的功能是将发送时间戳填充到需要更新发送时间戳的报文中去。同理,通过PTP_PKT_OFFSET找到报文的发送时间戳字段的偏移位置,然后将发送时间戳填入该位置。
“输出控制模块”详述:
输出控制模块负责进行常规的MAC发送处理,包括报文PAD填充、CRC计算及负责将数据按照发送节拍进行发送;输出控制模块还负责记录报文的发送时间戳;该模块在发送时不区分发送报文的类型,将记录所有发送报文的时间戳,且该时间戳符合IEEE 1588v2规定格式。
“时间戳返回控制模块”详述:
当需要返回发送PTP报文的发送时间戳时,需要使控制字段的FLAG1为1;MAC发送模块在该条件下会将获取到的报文的发送时间戳与下发报文中的PACK_ID按照表4的格式组包,然后发送给PTP协议栈。该返回数据包长度固定为20字节。
表4MAC发送模块发送给PTP协议栈的数据格式
LENGTH:以字节为单位的数据包总长度,不包括LENGTH所在的行;固定为20;
PACK_ID:发送数据包的顺序编号;
TIMESTAMP:数据包的发送时间戳。
Claims (3)
1.一种用于IEEE 1588v2协议的以太网MAC模块实现装置,包括MAC接收模块和MAC发送模块;其特征在于:
所述的MAC接收模块负责所有以太网报文的接收,在FPGA或ASIC上实现;
所述的MAC发送模块负责所有以太网报文的发送,MAC发送模块在需要的时候还负责将发送以太网报文的发送时间戳返回给PTP协议栈;
所述的MAC发送模块由软件程序和硬件逻辑构成;所述MAC发送模块软件程序安装在CPU或DSP平台上,负责与PTP时间戳相关部分的辅助计算及MAC部分控制功能;所述MAC发送模块硬件逻辑在FPGA或ASIC上实现,负责PTP时间戳处理、与时间戳相关部分的实时计算、MAC层协议实现;
所述的MAC发送模块由报文控制字段生成及添加模块、控制字段解析模块、UDP报文CHECKSUM计算模块、PTP报文CORRECTION_FIELD计算模块、PTP报文时间戳处理模块、输出控制模块和时间戳返回控制模块组成;所述的报文控制字段生成及添加模块为软件程序,安装在CPU或DSP平台上;所述的控制字段解析模块、UDP报文CHECKSUM计算模块、PTP报文CORRECTION_FIELD计算模块、PTP报文时间戳处理模块、输出控制模块和时间戳返回控制模块为硬件逻辑,在FPGA或ASIC上实现;所述的报文控制字段生成及添加模块实现:①接收PTP协议栈下发的报文,辅助计算PTP报文中与时间戳相关部分字段的内容并生成控制字段;②将生成的控制字段与PTP协议栈下发报文合并,发送给控制字段解析模块;所述的控制字段解析模块实现:①对输入报文进行解析,提取控制字段;②分析控制字段的内容,控制UDP报文CHECKSUM计算模块、PTP报文CORRECTION_FIELD计算模块、PTP报文时间戳处理模块、输出控制模块和时间戳返回控制模块的工作;③计算UDP报文CHECKSUM的偏移位置,计算PTP报文的correction_Field和发送时间戳的偏移位置;所述的UDP报文CHECKSUM计算模块实现:根据已有控制信息及重新计算后的CORRECTION_FIELD字段或发送时间戳字段,实时重新计算UDP报文的CHECKSUM字段;所述的PTP报文CORRECTION_FIELD计算模块实现:根据已有控制信息及获取的报文发送时间戳,按照公式:旧correction_Field+(发送时间戳-接收时间戳),实时计算PTP报文的新correction_Field;所述的PTP报文时间戳处理模块实现:包括时间戳的获取、补偿、填充及保持功能;从输出控制模块获取时间戳后,先对获取时间戳进行处理延迟及传输延迟补偿,得到补偿时间戳;然后根据当前报文的类型将补偿时间戳填充到发送报文中或者先将补偿时间戳保持;若是保持,还要将补偿时间戳填充到下一个发送报文中;所述的输出控制模块实现:将更改后的输入报文进行PAD填充及CRC计算,然后按照节拍发送出去,在发送时记录报文的发送时间戳;所述的时间戳返回控制模块实现:在需要返回报文的发送时间戳时,负责按照规定的格式组成返回数据包,发送给PTP协议栈。
2.根据权利要求1所述的用于IEEE 1588v2协议的以太网MAC模块实现装置,其特征在于:所述的MAC接收模块由输入控制模块、PTP报文接收时间戳处理模块组成,输入控制模块完成CRC检查及格式检查,PTP报文接收时间戳处理模块对所有报文打上符合IEEE 1588v2协议格式的时间戳,并对时间戳进行延迟补偿和校正。
3.一种利用权利要求1或2所述的用于IEEE 1588v2协议的以太网MAC模块实现装置的实现方法,其特征在于按以下步骤进行:MAC接收模块将接收时间戳附在以太网报文的头部,组包传输给PTP协议栈;MAC发送模块接收PTP协议栈的发送报文,PTP协议栈的发送报文首先进入报文控制字段生成及添加模块,报文控制字段生成及添加模块生成发送报文的控制字段,然后将控制字段和PTP协议栈的发送报文合并在一起,下发给控制字段解析模块;控制字段解析模块收到报文后,首先剥离下发报文的控制字段并分析,然后控制UDP报文CHECKSUM计算模块和PTP报文CORRECTION_FIELD计算模块进行计算,所述的UDP报文CHECKSUM计算模块实现:根据已有控制信息及重新计算后的CORRECTION_FIELD字段或发送时间戳字段,实时重新计算UDP报文的CHECKSUM字段;所述的PTP报文CORRECTION_FIELD计算模块实现:根据已有控制信息及获取的报文发送时间戳,按照公式:旧correction_Field+(发送时间戳-接收时间戳),实时计算PTP报文的新correction_Field;控制PTP报文时间戳处理模块进行时间戳获取、补偿、填充及保持,控制输出控制模块启动/停止发送,控制时间戳返回控制模块构造和上传时间戳返回包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810078074.5A CN108429596B (zh) | 2018-01-26 | 2018-01-26 | 一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810078074.5A CN108429596B (zh) | 2018-01-26 | 2018-01-26 | 一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108429596A CN108429596A (zh) | 2018-08-21 |
CN108429596B true CN108429596B (zh) | 2019-08-02 |
Family
ID=63156261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810078074.5A Active CN108429596B (zh) | 2018-01-26 | 2018-01-26 | 一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108429596B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109756361B (zh) * | 2018-11-20 | 2022-02-22 | 北京计算机技术及应用研究所 | 基于通用平台的实时以太网设计方法 |
CN112887045B (zh) * | 2019-11-29 | 2023-03-24 | 杭州海康威视数字技术股份有限公司 | 报文传输方法、装置、fpga及电子设备 |
CN111147176A (zh) * | 2019-12-04 | 2020-05-12 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于ieee1588协议的高精度时间同步系统 |
CN117240392A (zh) * | 2023-08-30 | 2023-12-15 | 中科驭数(北京)科技有限公司 | 一种基于现场可编程门阵列的ieee1588时钟同步方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101977104A (zh) * | 2010-11-13 | 2011-02-16 | 上海交通大学 | 基于ieee1588精确时钟同步协议系统及其同步方法 |
CN102983959A (zh) * | 2011-09-05 | 2013-03-20 | 盛科网络(苏州)有限公司 | 在多个mac中实现ptp一步模式和两步模式的方法及装置 |
CN103346853A (zh) * | 2013-07-12 | 2013-10-09 | 武汉中元华电科技股份有限公司 | 一种基于IEEE1588v2协议的主时钟及其产生方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7995621B2 (en) * | 2008-10-01 | 2011-08-09 | Nortel Netwoeks Limited | Techniques for time transfer via signal encoding |
CN103138887B (zh) * | 2011-12-05 | 2018-01-30 | 中兴通讯股份有限公司 | 一种1588事件报文的处理方法及系统 |
US9806835B2 (en) * | 2012-02-09 | 2017-10-31 | Marvell International Ltd. | Clock synchronization using multiple network paths |
-
2018
- 2018-01-26 CN CN201810078074.5A patent/CN108429596B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101977104A (zh) * | 2010-11-13 | 2011-02-16 | 上海交通大学 | 基于ieee1588精确时钟同步协议系统及其同步方法 |
CN102983959A (zh) * | 2011-09-05 | 2013-03-20 | 盛科网络(苏州)有限公司 | 在多个mac中实现ptp一步模式和两步模式的方法及装置 |
CN103346853A (zh) * | 2013-07-12 | 2013-10-09 | 武汉中元华电科技股份有限公司 | 一种基于IEEE1588v2协议的主时钟及其产生方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108429596A (zh) | 2018-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108429596B (zh) | 一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法 | |
CN102833062B (zh) | 智能变电站ieee1588主从时钟同步报文对时方法及系统 | |
CN103929293B (zh) | 非对称延迟的时间同步方法及系统 | |
CN101455014B (zh) | 传送所发送的或者所接收的消息的发送时间信息或者接收时间信息的方法和装置 | |
US8982912B2 (en) | Inter-packet gap network clock synchronization | |
CN108650051B (zh) | 通用全硬件一步式1588的时钟同步装置及方法 | |
CN103138887B (zh) | 一种1588事件报文的处理方法及系统 | |
US11588568B2 (en) | Packet processing method and network device | |
EP2472754A1 (en) | A method for realizing time and clock synchronization and a transmission device thereof | |
CN108155982B (zh) | 一种时间戳处理方法及设备 | |
CN109787703A (zh) | 一种时间戳的修正方法、时钟同步方法及系统 | |
CN105846941B (zh) | 基于ieee 1588标准的时钟透明传输装置及方法 | |
CN102843620B (zh) | 一种实现时间同步传送的otn设备及方法 | |
CN108880722B (zh) | 时钟同步的方法、系统和光传输设备 | |
US20080075122A1 (en) | Network Clock Synchronization Floating Window and Window Delineation | |
EP2288070A1 (en) | Time synchronizing method, device and system of master clock side and slave clock side in synchronous network | |
CN107786293B (zh) | 时间同步方法、主时钟设备、从时钟设备及时间同步系统 | |
US9042411B1 (en) | System and method for accurate time sampling in presence of output delay | |
CN107579793A (zh) | 一种通信网络设备间时间同步的优化方法、装置及设备 | |
CN106506107B (zh) | 一种基于硬件时间戳的ntp服务器授时实现方法 | |
CN103067112A (zh) | 时钟同步方法、装置及网络设备 | |
WO2018120549A1 (zh) | 以太网无源光网络时间戳处理方法和装置、存储介质 | |
CN110808807B (zh) | 一种局域网络中设备的时钟同步方法 | |
CN107294633A (zh) | 时间同步方法和装置 | |
CN103746878A (zh) | 一种测定SpaceWire数据包的传输时间的仿真系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |