基于PTP帧的频率同步装置及方法
技术领域
本发明涉及通信领域,特别是涉及一种基于PTP帧的频率同步装置及方法。
背景技术
IEEE1588v2(IEEE制定的1588时间同步协议v2版本)协议是一种精确时间同步协议,简称PTP(Precision Time Protocal,精确时间协议),采用软件硬件结合的方式,基于PTP报文以及时戳,进行设备间的时间同步,IEEE1588V2可达到亚微秒级的时间精度。PTP协议可以运行在UDP/IP或者802.3、以太网、DeviceNET等协议之上。分组网时间同步网的实现主要包括以下三个步骤:(1)建立主从关系;(2)频率同步;(3)时间同步。时间同步是通过时刻比对将分布在不同地方的钟的时刻值调整到一定的准确度或一定的符合度。频率同步是通过频率比对将分布在不同地方的频率源的频率值调整到一定的准确度或一定的符合度。前者称为绝对时间同步(也称对时),后者称为相对时间同步。在建立主从关系后,必须进行频率同步,但是IEEE1588V2协议并没有规定频率同步的算法。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于PTP帧的频率同步装置及方法,通过硬件与软件结合,能够完全独立于同步以太网进行频率同步。
本发明提供一种基于PTP帧的频率同步装置,包括时钟单元、MAC接收单元、MAC发送单元、PTP帧处理单元和CPU;
时钟单元,用于:为所有功能模块提供时钟,让所有功能模块正常工作,并在相应的功能模块里正确产生时戳;
时钟单元包括时钟同步子单元,时钟同步子单元用于处理时钟,时钟同步子单元包括秒脉冲接收模块、秒脉冲发送模块和全局时钟处理模块;
秒脉冲接收模块,用于:接收从外部输入的秒脉冲信号;
秒脉冲发送模块,用于:发送秒脉冲信号;
全局时钟处理模块,用于:产生IEEE1588功能实现中所用到的全局时钟;
PTP帧处理单元,用于:解析并完成对PTP帧的接收与发送;
PTP帧处理单元包括PTP帧解析模块、PTP帧转发模块、PTP帧发送模块、PTP帧接收控制模块和PTP帧发送控制模块;
MAC接收单元包括时戳接收处理模块,MAC发送单元包括时戳发送处理模块;
时戳接收处理模块,用于:在接收方向,从GE端口送来的以太网帧在MAC的入口位置产生一个接收时间戳,时间戳的标准时间源由时钟单元送过来,在以太网的帧头位置获得,将该时间戳作为帧的描述信息向下传送到PTP帧解析模块;
时戳发送处理模块,用于:在发送方向,系统从以太网数据流中插入CPU组装的PTP帧,CPU通过描述信息向时戳发送处理模块表明哪个类型的PTP帧被采集时间戳;
PTP帧解析模块,用于:对送来的所有以太网帧进行解析,判断是否为PTP帧,决定是否将此帧转发给CPU;
PTP帧转发模块,用于:通过送来的描述信息识别PTP帧,将时间戳打包到PTP数据帧头,并放入缓存,同时发出中断信号,等待CPU来读取PTP帧;
PTP帧接收控制模块,用于:将各个业务端口接收来的PTP帧通过轮询的方式,集中写到一个缓存里进行排队,然后向CPU发起中断,由CPU统一将所有端口的PTP帧读取并进行处理;
PTP帧发送控制模块,用于:将CPU向各个端口发送的PTP帧进行缓存,然后按照端口号,写入各个发送端口的缓存中;
PTP帧发送模块,用于:将CPU产生的PTP帧插入GE的数据流中;对PTP的组帧和封装,则由软件完成,再经由CPU转发至PTP帧发送模块;
CPU,用于:读取PTP帧转发模块的PTP帧,并将PTP帧中的时间戳值进行记录用于计算;将组成的PTP帧转发至PTP帧发送模块;将提取出的时间戳值全部记录用于计算频率差并进行补偿:提取一个持续时间段中的PTP帧中的同步帧,从同步帧中获取时间戳值进行计算,得到频率偏移补偿值OUTPUT_DRIFT,并进行补偿。
在上述技术方案的基础上,所述时钟同步子单元还用于:在非同步以太网模式下,选择从外部的125Mhz时钟管脚输入的125Mhz时钟作为工作时钟,该时钟的来源是外部的锁相环,该锁相环要同步到时钟同步子单元的秒脉冲时钟管脚输出的时钟上;在非同步以太网模式下,业务接口工作时钟和1588工作时钟完全独立,远端时间服务节点的125Mhz时钟管脚恢复的时钟与数据通道的GE125MHz时钟管脚的工作时钟没有关系。
在上述技术方案的基础上,所述PTP帧接收控制模块、PTP帧发送控制模块是硬件与CPU连接的控制接口。
本发明还提供一种应用上述装置的基于PTP帧的频率同步方法,包括以下步骤:
A、硬件从GE端口接收到以太网帧,在MAC入口位置产生一个接收时戳,之后将以太网帧送入PTP帧解析模块,如果是PTP帧,则由PTP帧转发模块放入缓存,并同时发出中断信号,等待CPU来读取PTP帧;
B、当CPU从缓存中读取到同步帧时,记录同步帧发送的时戳T1、同步帧到达的时戳T2,计算出第一次发送时戳与到达时戳之间的偏差值drift_offset_t1:drift_offset_t1=T2-T1;
再次收集同步帧发送的时戳T1ˊ、同步帧到达的时戳T2ˊ,计算出第二次发送时戳与到达时戳之间的偏差值drift_offset_t2:drift_offset_t2=T2ˊ-T1ˊ;
比较第一次发送时戳与到达时戳之间的偏差值drift_offset_t1的秒部分与第二次发送时戳与到达时戳之间的偏差值drift_offset_t2的秒部分,若秒部分不同,则认为此次记录值无效,丢弃;若秒部分相同,则比较两者大小,计算并记录drift_offset_t1与drift_offset_t2之间的偏差值drift_value:drift_value=|drift_offset_t1-drift_offset_t2|;
C、计算同步帧两次发送的时戳T1、T1ˊ之间的偏差值drift_frenquency:drift_frenquency=|T1-T1ˊ|,若drift_frenquency在0~2s的范围内,则记录下drift_frenquency,计算出频率偏移补偿值OUTPUT_DRIFT并进行补偿:
OUTPUT_DRIFT=(1073741824/drift_frenquency)*drift_value。
与现有技术相比,本发明的优点如下:
本发明提供了一种基于IEEE1588V2的PTP帧的频率同步的装置及方法,通过硬件与软件结合,能够完全独立于同步以太网进行频率同步。
附图说明
图1是本发明实施例中基于PTP帧的频率同步装置的结构框图。
图2是本发明实施例中时钟单元的结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种基于PTP帧的频率同步装置,包括时钟单元、MAC接收单元、MAC发送单元、PTP帧处理单元和CPU,其中:
时钟单元,用于:为所有功能模块提供时钟,让所有功能模块正常工作,并在相应的功能模块里正确产生时戳;
时钟单元包括时钟同步子单元,时钟同步子单元用于处理时钟;
时钟同步子单元包括秒脉冲接收模块、秒脉冲发送模块和全局时钟处理模块;
秒脉冲接收模块,用于:接收从外部输入的PPS(1 Pulse per Second,秒脉冲)信号;
秒脉冲发送模块,用于:发送PPS信号;
全局时钟处理模块,用于:产生IEEE1588功能实现中所用到的全局时钟;
PTP帧处理单元,用于:解析并完成对PTP帧的接收与发送;
PTP帧处理单元包括PTP帧解析模块、PTP帧转发模块、PTP帧发送模块、PTP帧接收控制模块和PTP帧发送控制模块;
MAC接收单元包括时戳接收处理模块;
时戳接收处理模块,用于:在接收方向,从GE端口送来的以太网帧在MAC的入口位置产生一个精确的接收时间戳,时间戳的标准时间源由时钟单元送过来,在以太网的帧头位置获得,将该时间戳作为帧的描述信息向下传送到PTP帧解析模块;
MAC发送单元包括时戳发送处理模块;
时戳发送处理模块,用于:在发送方向,系统从以太网数据流中插入CPU组装的PTP帧,CPU通过描述信息向时戳发送处理模块表明哪个类型的PTP帧被采集时间戳;
PTP帧解析模块,用于:对送来的所有以太网帧进行解析,判断是否为PTP帧,从而决定是否将此帧转发给CPU;
PTP帧转发模块,用于:通过送来的描述信息识别PTP帧,从而将时间戳打包到PTP数据帧头,并放入缓存,同时发出中断信号,等待CPU来读取PTP帧;
PTP帧接收控制模块、PTP帧发送控制模块是硬件与CPU连接的控制接口;
PTP帧接收控制模块,用于:将各个业务端口接收来的PTP帧通过轮询的方式,集中写到一个缓存里进行排队,然后向CPU发起中断,由CPU统一将所有端口的PTP帧读取并进行处理;
PTP帧发送控制模块,用于:将CPU向各个端口发送的PTP帧进行缓存,然后按照端口号,写入各个发送端口的缓存中;
PTP帧发送模块,用于:将CPU产生的PTP帧插入GE的数据流中;对PTP的组帧和封装,则由软件完成,再经由CPU转发至PTP帧发送模块;
CPU,用于:读取PTP帧转发模块的PTP帧,并将PTP帧中的时间戳值进行记录用于计算;将组成的PTP帧转发至PTP帧发送模块;将提取出的时间戳值全部记录用于计算频率差并进行补偿;IEEE1588V2并未规定频率同步的算法,本发明中主要通过提取一个持续时间段中的PTP帧中的同步帧,从同步帧中获取时间戳值进行计算,得到频率偏移补偿值OUTPUT_DRIFT,并进行补偿。
参见图2所示,时钟同步子单元还用于:在非同步以太网模式下,选择从外部的125Mhz时钟管脚clk_time_sync_125输入的125Mhz时钟作为工作时钟,这个时钟的来源是外部的锁相环,这个锁相环需要同步到时钟同步子单元的秒脉冲时钟管脚PPS_TOD_CLK输出的时钟上;在非同步以太网模式下,业务接口工作时钟和1588工作时钟是完全独立的,远端时间服务节点的125Mhz时钟管脚clk_time_sync_125恢复的时钟与数据通道的GE125MHz时钟管脚的工作时钟clk_ge_125没有任何关系。
在上述频率同步装置的基础上,本发明实施例还提供一种基于PTP帧的频率同步方法,包括以下步骤:
A、硬件从GE端口接收到以太网帧,在MAC入口位置产生一个精确的接收时戳,之后将以太网帧送入PTP帧解析模块,如果是PTP帧,则由PTP帧转发模块放入缓存,并同时发出中断信号,等待CPU来读取PTP帧;
B、当CPU从缓存中读取到同步帧时,记录同步帧发送的时戳T1、同步帧到达的时戳T2,计算出第一次发送时戳与到达时戳之间的偏差值drift_offset_t1:drift_offset_t1=T2-T1;
再次收集同步帧发送的时戳T1ˊ、同步帧到达的时戳T2ˊ,计算出第二次发送时戳与到达时戳之间的偏差值drift_offset_t2:drift_offset_t2=T2ˊ-T1ˊ;
比较第一次发送时戳与到达时戳之间的偏差值drift_offset_t1的秒部分与第二次发送时戳与到达时戳之间的偏差值drift_offset_t2的秒部分,若秒部分不同,则认为此次记录值无效,丢弃;若秒部分相同,则比较两者大小,计算并记录drift_offset_t1与drift_offset_t2之间的偏差值drift_value:drift_value=|drift_offset_t1-drift_offset_t2|;
C、计算同步帧两次发送的时戳T1、T1ˊ之间的偏差值drift_frenquency:drift_frenquency=|T1-T1ˊ|,若drift_frenquency在0~2s的范围内,则记录下drift_frenquency,计算出频率偏移补偿值OUTPUT_DRIFT并进行补偿:
OUTPUT_DRIFT=(1073741824/drift_frenquency)*drift_value。
时钟同步子单元在非同步以太网模式下,选择从外部的125Mhz时钟管脚输入的125Mhz时钟作为工作时钟,该时钟的来源是外部的锁相环,该锁相环要同步到时钟同步子单元的秒脉冲时钟管脚输出的时钟上;在非同步以太网模式下,业务接口工作时钟和1588工作时钟完全独立,远端时间服务节点的125Mhz时钟管脚恢复的时钟与数据通道的GE125MHz时钟管脚的工作时钟没有关系。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。