一种基于tdm的网络时钟恢复方法
【专利摘要】本发明涉及一种网络通信领域,特别涉及一种基于TDM的网络时钟恢复方法。包含将接收到的网络数据中控制字部分分出,并计算、调整恢复时钟的步骤;本发明提供的基于TDM的网络始终恢复系统采用数据排序和时钟恢复分径处理,处理速度更快;数据排序采用按照序列号直接存入相应位置的方法,排序效率更高,同时具有丢包、无效包处理、计数功能;同时采用针对数据序列号采样计数的方式实现数据的时钟自适应恢复,恢复所需时间短,恢复精度高;在对时钟进行调整的过程中采用离散插入脉冲方式,使得时钟调整更加平稳,时钟脉冲抖动小,采用本发明系统实现的2.048MHz恢复时钟精度高达10ppb,很好满足网络数据收发同步的目的。
【专利说明】-种基于TDM的网络时钟恢复方法
【技术领域】
[0001] 本发明涉及一种网络通信领域,特别涉及一种基于TDM的网络时钟恢复方法。
【背景技术】
[0002] 如图1所示,CES (Circuit Emulation Service)电路仿真提供一种从电路交换 网到分组交换网的平稳过渡方案,发送端PE设备将TDM数据通过实时封装,经分组网络传 输达接收端,在接收端PE设备接收端数据缓存队列恢复出同步时钟,同步时钟解封装数据 帧,重组为TDM数据流;但因为TDM网是一种同步网,分组网为典型的异步网,TDM数据在通 过分组网传送到接收端时会造成自身的时钟信息丢失,因此在接收端恢复TDM数据时的时 钟恢复技术至关重要,数据时钟信息的恢复直接影响数据传输的质量,目前的时钟恢复技 术存在着恢复所需时间长、恢复精度差等问题。
【发明内容】
[0003] 本发明的目的在于克服现有技术中所存在的上述不足,提供一种恢复精度高、恢 复所需时间短的基于TDM的网络时钟恢复系统;包括数据时钟分径模块、数据缓存模块、时 钟恢复模块、并串处理模块;所述数据时钟分径模块分别与所述数据缓存模块、时钟恢复模 块连接;所述数据缓存模块、所述时钟恢复模块均与所述并串处理模块连接。
[0004] 所述数据时钟分径模块用于将从分组网络接收到的网络数据中的控制字部分送 入时钟恢复模块。
[0005] 所述数据缓存模块用于对所述网络数据进行排序、丢包处理。
[0006] 所述时钟恢复模块用于接收所述网络数据的控制字部分,并计算、调整所述网络 数据的恢复时钟。
[0007] 所述并串处理模块用于将所述经过排序、丢包处理的网络数据和计算调整出的恢 复时钟频率进行并串处理。
[0008] 进一步的,所述时钟恢复模块包括控制模块、计数器模块、偏差计算模块和时钟调 整模块;所述控制模块分别与所述计数器模块和偏差计算模块连接;所述偏差计算模块与 所述时钟调整模块连接;所述时钟调整模块的输出端与所述计数器模块连接。
[0009]所述控制模块用于控制各个模块的运行;所述计数器模块用于根据所述时钟调整 模块输出的当前恢复时钟频率对接收到的数据进行计数;所述偏差计算模块用于计算当前 恢复时钟频率的时钟偏差;所述时钟调整模块用于根据所述偏差计算模块的计算结果调整 数据的恢复时钟,并将当前恢复时钟输出。
[0010] 进一步的,所述偏差计算模块包括时钟计数值累加模块,时钟采样次数累加模块、 平均时钟计数计算模块和平均时钟计数对比模块。
[0011] 所述时钟计数值累加模块用于累加单一计算周期内的时钟计数累加值。
[0012] 所述时钟采样次数模块用于记录单一计算周期内实际采样次数。
[0013] 平均时钟计数计算模块用于计算并存储单一计算周期内的平均时钟计数,计算周 期内的平均时钟计数=计算周期内的时钟计数累加值/计算周期内实际采样次数。
[0014] 所述平均时钟计数对比模块用于对比当前时钟周期内平均时钟计数与上一时钟 周期内的平均时钟计数的大小。
[0015] 进一步的,所述时钟调整模块中包括基准脉冲产生模块、恢复时钟产生模块和脉 冲增减模块。
[0016] 所述基准脉冲产生模块用于产生基准脉冲。
[0017] 所述恢复时钟产生模块用于根据所述基准脉冲产生当前恢复时钟。
[0018] 所述脉冲增减模块用于根据所述偏差计算模块的计算结果对当前恢复时钟包含 的基准脉冲进行增减操作。
[0019] 优选的,所述基准脉冲频率为327. 68MHz。
[0020] 优选的,所述计数器模块中采用递减的方式实现接收数据的计数。
[0021] 进一步的,所述数据缓存模块包括写入控制模块、读出控制模块、抖动缓存模块, 所述写入控制模块的输入端与数据接收端口连接,所述写入控制模块的输出端与所述抖动 缓存模块连接,所述抖动缓存模块还与所述读出控制模块连接;所述写入控制模块用于控 制网络数据的写入;所述抖动缓存模块用于存储所述网络数据;所述读出控制模块用于控 制所述抖动缓存模块中网络数据的读出。
[0022] 进一步的,所述抖动缓存模块包括标志存储模块和数据存储模块,所述标志存储 模块包括写读标志存储模块和序列号存储模块;所述数据存储模块用于存储所述网络数据 的净荷部分;所述读写标志存储模块用于存储与净荷部分一一对应的写读标志;所述序列 号存储模块用于存储网络数据的序列号部分。
[0023] 进一步的,所述写入控制模块还连接有写基准时钟产生模块,所述读出控制模块 还连接有读恢复时钟产生模块,所述写基准时钟产生模块用于产生控制所述写入控制模块 的基准时钟;所述读恢复时钟产生模块用于产生控制所述读出控制模块的恢复时钟。
[0024] 优选的,所述写入数据步骤在81. 92MHz基准时钟下工作,所述读出数据步骤在 81. 92MHz恢复时钟下工作。
[0025] 进一步的,所述数据缓存模块还包括数据包计数模块,所述数据包计数模块同时 与所述写入控制模块和所述读出控制模块连接,其用于记录系统接收到的正常包、重复包、 延时包、丢包数量。
[0026] 本发明同时提供一种恢复精度高、恢复所需时间短的基于TDM的网络时钟恢复方 法,包含以下步骤: 包含将待传送网络数据按照指定帧数进行封装的步骤。
[0027] 包含将接收到的网络数据中控制字部分分出,并计算、调整恢复时钟的步骤。
[0028] 包含将接收到的网络数据进行排序、丢包处理的步骤。
[0029] 包含将所述经过排序、丢包处理的网络数据和计算调整出的恢复时钟频率进行并 串处理的步骤。
[0030] 进一步的,所述从控制字部分提取时序序列号依照当前恢复时钟进行计数的步骤 中: 包含在单个计算周期内,按照指定采样周期tsam针对控制字部分进行采样,并根据采样 结果进行时钟计数的步骤;所述单个计算周期内包含有1个以上的采样周期tsam。
[0031] 包含计算单个计算周期内平均时钟计数的步骤,所述计算周期内平均时钟计数 Sn=计算周期内时钟计数累加值/计算周期内采样次数。
[0032] 包含将当前计算周期内平均时钟计数5"与上个计算周期内平均时钟计数Sn_i进行 比较的步骤。
[0033] 包含将下个计算周期平均分为N个调整段的步骤,N为1以上的自然数。
[0034] 包含根据比较结果对下个计算周期内当前恢复时钟每个调整段包含的基准脉冲 数进行增减调整的步骤,每次增加或者减少的脉冲数量均为额定脉冲数量IMPnUffl;IMP_为 根据需要预设的1以上的自然数。
[0035] 进一步的,根据比较结果对下个计算周期内当前恢复时钟每个调整段包含的基准 脉冲数进行增减调整的步骤中,如Sn>Sn_i,则所述下个计算周期内当前恢复时钟每个调整 段的基准脉冲数减少IMPnUffl个,否则所述下个计算周期内当前恢复时钟每个调整段的基准 脉冲数增加IMPnum个。
[0036] 进一步的,在对当前恢复时钟包含的基准脉冲进行增减调整的步骤中,每次增加 的頂P?个脉冲为离散的插入到原脉冲序列中;或,每次减少的IMPnum个脉冲为离散的从原 脉冲序列中去除。
[0037] 进一步的,所述网络时钟恢复方法按照时间先后和时钟收敛速度分为快速收敛阶 段、慢速收敛阶段和锁定收敛阶段三个阶段。
[0038] 所述快速收敛阶段、慢速收敛阶段、锁定收敛阶段均包含有一个以上的计算周期。
[0039] 其中,所述快速收敛阶段的计算周期小于所述慢速收敛阶段的计算周期,所述慢 速收敛阶段的计算周期小于所述锁定收敛阶段的计算周期。
[0040] 所述离散补偿调整方法还包含根据预设条件判断是否进入下一阶段的步骤。
[0041] 进一步的,所述预设条件为本阶段中增加时钟脉冲次数的计算周期数>1,同时, 减少时钟脉冲次数的计算周期数>1;如满足所述预设条件,则进入下一阶段。
[0042] 进一步的,所述额定脉冲数量IMP_随着所述计算周期的延长而不断减小;其中, 所述锁定收敛阶段的计算周期中,所述额定脉冲数量IMPnUffl为1。
[0043] 进一步的,任意收敛阶段中,进行比较时,如果|Sn_Sn_i| >收敛失败标 识值Fail,则本次时钟恢复终止,返回快速收敛阶段初始状态,重新开始进行时钟恢复计 算;所述收敛失败标识值Fail为根据需要设定的大于1的自然数。
[0044] 进一步的,在快速收敛阶段中,进行比较时,如果|Sn_Sn_i| >本阶段最 大额定脉冲数量IMPnum*m,则本次时钟恢复终止,返回快速收敛阶段初始状态,重新开始 进行时钟恢复计算。
[0045] 在慢速收敛阶段或锁定收敛阶段中,进行比较时,如果|Sn_Sn_i| >本阶 段最大额定脉冲数量MPnUffl*m,则本阶段时钟恢复终止,返回上一阶段初始状态,重新开 始进行时钟恢复计算。
[0046] 其中,m为根据需要设定的大于2的自然数。
[0047] 进一步的,所述将接收到的网络数据进行排序、丢包处理的步骤中包含如下写入 数据步骤: (1)系统上电,抖动缓存模块清零。
[0048] (2)根据接收到的第一个数据包的序列号SEQ值初始化序列号存储模块以及读指 针;即,将该序列号SEQ写入序列号存储模块的第一位置,并根据所述序列号存储模块的容 量,以该序列号SEQ为起始值将所述序列号存储模块向后填满;将第一数据包净荷数据写 入数据存储模块对应位置,对应写读标志设为已写标志。
[0049] (3)接收新数据,遍历所述序列号存储模块,查找是否含有新接收数据序列号SEQ, 如有,进入步骤(5),否则,进入步骤(4)。
[0050] (4)该数据包为无效包,无效包计数加1,该无效包丢弃,返回步骤3。
[0051] (5)判断与该序列号SEQ对应的写读标志是否为已写标志,如是,进入步骤(6);如 否,进入步骤(7)。
[0052] (6)该数据包为重复包,重复包计数加1 ;返回步骤(3)。
[0053] (7)在数据存储模块中该序列号对应位置写入净荷数据,将与该序列号对应的写 读标志设为已写标志;返回步骤(3)。
[0054] 进一步的,所述将接收到的网络数据进行排序、丢包处理的步骤中还包括如下读 出数据步骤: (1)从所述读指针指向的序列号SEQ开始顺序读取数。
[0055] (2)判断读指针指向的序列号SEQ对应的写读标志是否为已写标志,如是,进入步 骤(3);如否进入步骤(4)。
[0056] (3)从数据存储模块对应位置读出净荷数据;将对应写读标志清零;数据存储模 块对应位置清零;正常包计数加1,进入步骤(7)。
[0057] (4)判断写读标志存储模块是否为延时标志,如是进入步骤(5);如不是进入步骤 (6)。
[0058] (5)将该序列号SEQ对应的数据以补空包方式读出;丢包计数加1,进入步骤(7)。
[0059] (6)将对应读写标志设置延时标志;将该序列号SEQ对应的数据以补空包方式读 出;延时包计数加1,进入步骤(7)。
[0060] (7)将序列存储模块中该SEQ值加所述序列号存储模块容量值后重新覆盖该位 置,读写指针加1并返回步骤(2)。
[0061] 进一步的,所述将接收到的网络数据进行排序、丢包处理的步骤中,所述已写标志 为0X1234,所述延时标志为0X5678。
[0062] 进一步的,所述将接收到的网络数据进行排序、丢包处理的步骤中,所述写入数据 步骤在81. 92MHz基准时钟下工作,所述读出数据步骤在81. 92MHz恢复时钟下工作。
[0063] 进一步的,所述将接收到的网络数据进行排序、丢包处理的步骤中,以补空包方式 读出是指将数据设置为〇读出,即将该数据包对应数据位设置为0x00,并将该数据按照数 据位大小补充到读出序列中,以避免读出数据出现时延。
[0064] 与现有技术相比,本发明的有益效果:本发明提供的基于TDM的网络始终恢复系 统采用数据排序和时钟恢复分径处理,处理速度更快;数据排序采用按照序列号直接存入 相应位置的方法,排序效率更高,同时具有丢包、无效包处理、计数功能;同时采用针对数据 序列号采样计数的方式实现数据的时钟自适应恢复,恢复所需时间短,恢复精度高;在对时 钟进行调整的过程中采用离散插入脉冲方式,使得时钟调整更加平稳,时钟脉冲抖动小,采 用本发明系统实现的2. 048MHz恢复时钟精度高达lOppb,很好满足网络数据收发同步的目 的。
[0065]【专利附图】
【附图说明】: 图1为【背景技术】中TDM数据分组传送示意图。
[0066] 图2为本发明网络时钟恢复系统结构示意图。
[0067] 图3为本发明时钟恢复模块结构示意图。
[0068] 图4为本发明数据缓存模块结构示意图。
[0069] 图5为本发明网络数据时钟恢复方法的流程图。
[0070] 图6为本发明计算、调整时钟频率流程图。
[0071] 图7为本发明网络数据计数流程图。
[0072] 图8为本发明实施例2中分阶段恢复时钟频率流程图。
[0073] 图9为本发明实施例3中分阶段恢复时钟频率流程图。
[0074] 图10为本发明实施例中抖动缓存模块写入数据流程图。
[0075] 图11为本发明实施例中抖动缓慢模块读出数据流程图。
[0076] 图中标记:1_数据时钟分径模块,2-数据缓存模块,21-写入控制模块,22-抖动缓 存模块,23-读出控制模块,24-写基准时钟产生模块,25-读恢复时钟产生模块,26-数据包 计数模块,3-时钟恢复模块,31-控制模块,32-计数器模块,33-偏差计算模块,34-时钟调 整模块,4-并串处理模块。
【具体实施方式】
[0077] 下面结合具体实施例对本发明作进一步的详细描述。但不应将此理解为本发明 上述主题的范围仅限于以下的实施例,凡基于本
【发明内容】
所实现的技术均属于本发明的范 围。 实施例1 :如图2所不,本实施例提供一种恢复精度_、恢复所需时间短的基于TDM的 网络时钟恢复系统;包括数据时钟分径模块1、数据缓存模块2、时钟恢复模块3、并串处理 模块4;所述数据时钟分径模块1分别与所述数据缓存模块2、时钟恢复模块连接3;所述数 据缓存模块2、所述时钟恢复模块3均与所述并串处理模块4连接。
[0078] 所述数据时钟分径模块1用于将从分组网络接收到的网络数据中的控制字部分 送入时钟恢复模块3。
[0079] 所述数据缓存模块2用于对所述网络数据进行排序、丢包处理。
[0080] 所述时钟恢复模块3用用于接收所述网络数据的控制字部分,并计算、调整所述 网络数据的恢复时钟。
[0081] 所述并串处理模块4用于将所述经过排序、丢包处理的网络数据和计算调整出的 恢复时钟频率进行并串处理,从而实现所述网络数据时钟恢复。
[0082] 进一步的,如图3所示,所述时钟恢复模块3包括控制模块31、计数器模块32、偏 差计算模块33和时钟调整模块34;所述控制模块31分别与所述计数器模块32和偏差计 算模块连接33;所述偏差计算模块33与所述时钟调整模块34连接;所述时钟调整模块34 的输出端与所述计数器模块32连接,所述时钟调整模块34的输出端与所述计数器模块32 连接。
[0083] 所述控制模块31用于控制各个模块的运行;所述计数器模块32用于根据所述时 钟调整模块34输出的当前恢复时钟频率对接收到的数据进行计数;所述偏差计算模块33 用于计算当前恢复时钟频率的时钟偏差;所述时钟调整模块34用于根据所述偏差计算模 块的计算结果调整数据的恢复时钟,并将当前恢复时钟输出。
[0084] 进一步的,所述偏差计算模块33包括时钟计数值累加模块,时钟采样次数累加模 块、平均时钟计数计算模块和平均时钟计数对比模块。
[0085] 所述时钟计数值累加模块用于累加单一计算周期内的时钟计数累加值。
[0086] 所述时钟采样次数模块用于记录单一计算周期内实际采样次数。
[0087] 平均时钟计数计算模块用于计算并存储单一计算周期内的平均时钟计数,所述单 一计算周期内的平均时钟计数=单一计算周期内的时钟计数累加值/单一计算周期内实际 采样次数。
[0088] 所述平均时钟计数对比模块用于对比当前时钟周期内平均时钟计数与上一时钟 周期内的平均时钟计数的大小。
[0089] 进一步的,所述时钟调整模块34中包括基准脉冲产生模块、恢复时钟产生模块和 脉冲增减模块;所述基准脉冲产生模块用于产生基准脉冲;所述恢复时钟产生模块用于根 据所述基准脉冲产生当前恢复时钟;所述脉冲增减模块用于根据所述偏差计算模块的计算 结果对当前恢复时钟包含的基准脉冲进行增减操作。
[0090] 本实施例中,所述基准脉冲产生模块用于产生327. 68MHz基准脉冲,并用以恢复 2. 048MHz时钟频率。
[0091] 优选的,所述计数器模块32中采用递减的方式实现接收数据的计数。
[0092] 进一步的,如图4所示,本实施例中数据缓存模块2包括写入控制模块21、读出控 制模块23、抖动缓存模块22,所述写入控制模块21的输入端与数据接收端口(所述数据分 径模块1的输出端)连接,所述写入控制模块21的输出端与所述抖动缓存模块22连接,所 述抖动缓存模块22还与所述读出控制模块23连接;所述写入控制模块21用于控制网络数 据的写入;所述抖动缓存模块22用于存储所述网络数据;所述读出控制模块23用于控制 所述抖动缓存模块中网络数据的读出,所述读出控制模块23中设置有读指针,所述读指针 由系统第一次收到的网络数据序列号SEQ初始化,开始读取操作后,每读完一个数据包,所 述读指针会加1操作指向下一数据包。
[0093] 进一步的,所述抖动缓存模块22包括标志存储模块和数据存储模块,所述标志存 储模块包括写读标志存储模块和序列号存储模块;所述数据存储模块用于存储所述网络数 据的净荷部分;所述读写标志存储模块用于存储与净荷部分一一对应的写读标志;所述序 列号存储模块用于存储网络数据的序列号部分。本实施例中,抖动缓存模块按512ms计算, 当传输2. 048MHz网络数据按1帧封装时(1帧时长为125us),则所述抖动缓存模块的深 度=512*1000/125=4096,即所述抖动缓存模块可同时缓存4096帧数据。
[0094] 进一步的,所述写入控制模块21还连接有写基准时钟产生模块24,所述读出控制 模块23还连接有读恢复时钟产生模块25,所述写基准时钟产生模块24用于产生控制所述 写入控制模块21的基准时钟;所述读恢复时钟产生模块25用于产生控制所述读出控制模 块23的恢复时钟。
[0095] 进一步的,为了防止抖动缓存模块中存储的数据逸出,在所述抖动缓存模块存储 一半时开始读出数据操作,即从接收第一帧数据包开始后156ms开始读出数据操作。
[0096] 优选的,写基准时钟产生模块24产生81. 92MHz的基准时钟,其由327. 68MHz基准 脉冲分频生成,读恢复时钟产生模块25产生81. 9281. 92MHz的恢复时钟,其由2. 048MHz恢 复时钟倍频生成。
[0097] 进一步的,所述读出控制模块还连接有数据包计数模块26,所述数据包计数模块 25用于记录收到的正常包、重复包、延时包、丢包的数量。
[0098] 实施例2 :本实施例同时提供一种恢复精度高、恢复所需时间短的基于TDM的网 络时钟恢复方法,如图5所示,包含以下步骤:包含步骤S100:将待传送网络数据按照指定 帧数进行封装。
[0099] 包含步骤S200 :将接收到的网络数据中控制字部分分出,并计算、调整恢复时钟。
[0100] 包含步骤S300 :将接收到的网络数据进行排序、丢包处理。
[0101] 包含步骤S400 :将所述经过排序、丢包处理的网络数据和计算调整出的恢复时钟 频率进行并串处理,从而实现所述网络数据时钟恢复的步骤。
[0102] 进一步的,如图6所示,所述从控制字部分提取时序序列号依照当前恢复时钟进 行计数的步骤S200中:包含步骤S210 :在单个计算周期内,按照指定采样周期tsam针对 控制字部分进行采样,并根据采样结果进行时钟计数;所述单个计算周期内包含有1个以 上的采样周期tsam ;如本实施例中,采样周期tsam=4ms,计算周期根据需要设定为4096ms、 16384ms、32768ms、65536ms、131072ms;实际应用中,计算周期越长,计算精度越高、误差越 小,但在时钟恢复领域,花费总时间越少,说明时钟恢复效率越高,所以应在保证恢复精度 高和误差小的前提下,应追求最短的总花费时间。
[0103] 包含步骤S220:计算单个计算周期内平均时钟计数,所述计算周期内平均时钟计 数Sn=计算周期内时钟计数累加值/计算周期内采样次数。
[0104] 包含步骤S230:将当前计算周期内平均时钟计数Sn与上个计算周期内平均时钟 计数sn_i进行比较。
[0105] 包含步骤S240将下个计算周期平均分为N个调整段的步骤,N为1以上的自然数, 本实施例中,N取值为4、8、16、32,即每个计算周期均分为4个、8个、16个或32个调整段, 使得脉冲的增加或减少更加均匀,从而减少脉冲抖动现象。
[0106] 包含步骤S250:根据比较结果对下个计算周期内当前恢复时钟每个调整段包 含的基准脉冲数进行增减调整的步骤,每次增加或者减少的脉冲数量均为额定脉冲数量 MPnum;MPnum为根据需要预设的1以上的自然数。如本实施例中MPnum的取值可为2048、 1024、512、256、128、64、32、16、8、4、2、1。
[0107] 本实施例中,时钟恢复脉冲由327.68MHz基准脉冲经过160分频产生,用以恢 复网络数据2.048MHz时钟频率;步骤S350中,根据计算周期取值的不同(可为4096ms、 16384ms、32768ms、65536ms、131072ms),将额定脉冲数量MPnum个基准脉冲脉冲增加或减少 到下一计算周期的各个调整段中。
[0108] 进一步的,如图7所示,步骤S210中,包含步骤S211 :在采样开始前设定时钟计数 初始值。
[0109] 包含步骤S212 :依照当前系统提供的时钟频率,按照指定采样周期tsam对接收到 的网络数据进行采样。
[0110] 包含步骤S213 :根据采样结果,对时钟计数初始值进行增或减,从而实现计数。
[0111] 包含步骤S214 :在采样周期结束后将所述时钟计数值累加保存。
[0112] 包含步骤S215 :记录采样次数并重置时钟计数初始值。
[0113] 进一步的,步骤S210中,采用对时钟计数初始值递减的方式实现计数,所述时钟 计数初始值〉采样周期tsam内理论传输数据值* (计算周期/采样周期tsam);所述计算周期 为根据需要设定的采样周期tsam的整数倍,本实施例中,采样周期为tsam=4ms,计算周期根据 需要设定为 4096ms、16384ms、32768ms、65536ms、131072ms;当采用 2. 048MHz时钟发送数据 时,4ms内理论传输数据值应为8192bit由于本发明采用设定初始值后递减方式实现计数, 并保存采样周期后的计数剩余值,这种情况下,如初始值设置过小,则可能造成初始值不够 用,反之,如初始值过大,则可能造成计数剩余值累加值溢出,因此应根据需要设定初始值, 本实施例中,所述时钟计数初始值设定为100000000000000000000000 (二进制)。
[0114] 进一步的,步骤S210中,采样周期tsam结束后,重置时钟计数初始值的步骤中,包 含将本采样周期时钟计数剩余值与上一采样周期时钟计数剩余值进行比较的步骤;如I本 采样周期时钟计数剩余值-上一采样周期时钟计数剩余值I>采样周期tsam内理论传输数 据值,则,下一采样周期时钟计数初始值设定为ceil(I本采样周期时钟计数剩余值-上一 采样周期时钟计数剩余值I/采样周期%"内理论传输数据值)*采样周期tsam内理论传输 数据值+本采样周期时钟计数剩余值;否则下一采样周期时钟计数初始值设定为本采样周 期时钟计数剩余值+采样周期tsam内理论传输数据值。当采用2. 048MHz时钟发送数据时, 4ms内理论传输数据值应为8192bit,即如|本采样周期时钟计数剩余值-上一采样周期时 钟计数剩余值I>8192,则,下一采样周期时钟计数初始值设定为ceil( |本采样周期时钟 计数剩余值-上一采样周期时钟计数剩余值I/8192)*8192+本采样周期时钟计数剩余值; 否则下一采样周期时钟计数初始值设定为本采样周期时钟计数剩余值+8192。其中ceil() 为上取整函数(其返回大于或者等于指定表达式的最小整数)。
[0115] 进一步的,步骤S210中,单一采样周期结束后,还包括判断所述计算周期是否结 束的步骤:如所述计算周期没有结束,则进入下一采样周期。
[0116] 如所述计算周期结束,则计算本计算周期内平均时钟计数Sn ;计算公式为:所述计 算周期内平均时钟计数Sn=本计算周期内时钟计数累加值/本计算周期内采样次数;时钟 计数累加值清零,采样次数清零。
[0117] 进一步的,步骤S210中,在单一计算周期结束后,还包括将本计算周期平均时钟 计数Sn与上一计算周期平均时钟计数sn_i进行比较的步骤。
[0118] 如Sn>Sn_i,则发出调快时钟频率指令;否则发出调慢时钟频率指令。
[0119] 进一步的,步骤S210中,在单一计算周期结束后,还包括将本计算周期平均时钟 计数3"与上一计算周期平均时钟计数Sn_i进行比较的步骤:如|Sn-Sn_i| >收敛失败标识 值Fail,则发出本次时钟恢复失败的信号;所述收敛失败标识值Fail为根据需要设定的大 于1的自然数,如本实施例中收敛失败标识值Fail可为1024或2048或4096。
[0120] 进一步的,步骤250中,如Sn>Sn_i,则下个计算周期内当前恢复时钟每个调整 段的基准脉冲数减少頂Pnum个(頂Pnum根据阶段需要可设定为2048、1024、512、256、128、 64、32、16、8、4、2、1),否则所述下个计算周期内当前恢复时钟每个调整段的基准脉冲数增 加MPnum个;本实施例中,所述基准脉冲为327. 68MHz基准脉冲,并通过160分频以恢复 2. 048MHz时钟频率;即所述增、减IMPnum个时钟脉冲的操作均针对327. 68MHz基准脉冲进 行。
[0121] 进一步的,步骤250中,每次增加的IMPnum个脉冲为离散的插入到原脉冲序列中; 或,每次减少的IMPnum个脉冲为离散的从原脉冲序列中去除,这样可以进一步的减少因脉冲 增加或减少而造成的抖动现象。
[0122] 进一步的,如图8所示,所述计算、调整时钟频率的步骤S200中,所述网络时钟恢 复方法按照时间先后和时钟收敛速度分为快速收敛阶段、慢速收敛阶段和锁定收敛阶段三 个阶段。
[0123] 所述快速收敛阶段、慢速收敛阶段、锁定收敛阶段均包含有一个以上的计算周期。
[0124] 本实施例中,所述快速收敛阶段包含STEP0、STEP1、STEP2、STEP3、STEP4、STEP5六 个STEP段;每个STEP段均包含有1个以上的计算周期。
[0125]慢速收敛阶段包含STEP6、STEP7、STEP8、STEP9、STEP10 五个STEP段;每个STEP 段均包含有1个以上的计算周期。
[0126] 锁定收敛阶段包含STEP11 -个STEP段(STEP0至STEP11按时间先后依次进行, 图8中未显出各STEP段,仅显示包含各STEP段的快速收敛阶段、慢速收敛阶段、锁定收敛 阶段三个收敛阶段)。
[0127] 其中,所述快速收敛阶段的计算周期小于所述慢速收敛阶段的计算周期,所述慢 速收敛阶段的计算周期小于所述锁定收敛阶段的计算周期。
[0128] 所述离散补偿调整方法还包含根据预设条件判断是否进入下一收敛阶段或下一 STEP段的步骤。
[0129] 如,本实施例中,所述预设条件为本阶段中增加时钟脉冲次数的计算周期数>1, 同时,减少时钟脉冲次数的计算周期数>1 ;如满足所述预设条件,则进入下一收敛阶段或 下一STEP段,需要指出的是,在进入下一收敛阶段或下一STEP段或下一计算周期时,基准 脉冲产生的恢复时钟脉冲均为上一计算周期调整过的当前恢复时钟脉冲,而非原始未经调 整的恢复时钟脉冲。
[0130] 进一步的,所述额定脉冲数量IMP_随着所述计算周期的延长而不断减小;其中, 所述锁定收敛阶段的计算周期中,所述额定脉冲数量IMPnUffl为1。
[0131] 各个收敛阶段中各个STEP段计算周期、调整周期、调整段、额定脉冲数量MPnUffl的 对照表如表1 : 表1
【权利要求】
1. 一种基于TDM的网络时钟恢复方法,其特征在于,包含以下步骤: 包含将待传送网络数据按照指定帧数进行封装的步骤; 包含将接收到的网络数据中控制字部分分出,并计算、调整恢复时钟的步骤; 包含将接收到的网络数据进行排序、丢包处理的步骤; 包含将所述经过排序、丢包处理的网络数据和计算调整出的恢复时钟频率进行并串处 理的步骤。
2. 如权利要求1所述的基于TDM的网络时钟恢复方法,其特征在于,所述从控制字部分 提取时序序列号依照当前恢复时钟进行计数的步骤中: 包含在单个计算周期内,按照指定采样周期tsam针对控制字部分进行采样,并进行时钟 计数的步骤;所述单个计算周期内包含有1个以上的采样周期tsam ; 包含计算单个计算周期内平均时钟计数的步骤,所述计算周期内平均时钟计数Sn=计 算周期内时钟计数累加值/计算周期内采样次数; 包含将当前计算周期内平均时钟计数Sn与上个计算周期内平均时钟计数Sn_i进行比较 的步骤; 包含将下个计算周期平均分为N个调整段的步骤,N为1以上的自然数; 包含根据比较结果对下个计算周期内当前恢复时钟每个调整段包含的基准脉冲数进 行增减调整的步骤,每次增加或者减少的脉冲数量均为额定脉冲数量IMPnUffl; IMP_为根据 需要预设的1以上的自然数。
3. 如权利要求2所述的基于TDM的网络时钟恢复方法,其特征在于,根据比较结果对下 个计算周期内当前恢复时钟每个调整段包含的基准脉冲数进行增减调整的步骤中,如Sn> Sm,则下个计算周期内当前恢复时钟每个调整段的基准脉冲数减少IMP_个,否则所述下 个计算周期内当前恢复时钟每个调整段的基准脉冲数增加IMPnUffl个。
4. 如权利要求2所述的时钟恢复的离散补偿调整方法,其特征在于,在对当前恢复时 钟包含的基准脉冲进行增减调整的步骤中,每次增加的MPnUffl个脉冲为离散的插入到原脉 冲序列中;或,每次减少的IMPnum个脉冲为离散的从原脉冲序列中去除。
5. 如权利要求2所述的基于TDM的网络时钟恢复方法,其特征在于,所述网络时钟恢复 方法按照时间先后和时钟收敛速度分为快速收敛阶段、慢速收敛阶段和锁定收敛阶段三个 阶段; 所述快速收敛阶段、慢速收敛阶段、锁定收敛阶段均包含有一个以上的计算周期; 其中,所述快速收敛阶段的计算周期小于所述慢速收敛阶段的计算周期,所述慢速收 敛阶段的计算周期小于所述锁定收敛阶段的计算周期; 所述离散补偿调整方法还包含根据预设条件判断是否进入下一阶段的步骤。
6. 如权利要求5 -种时钟恢复的离散补偿调整方法,其特征在于,所述预设条件为本 阶段中增加脉冲次数的计算周期数>1,同时,减少脉冲次数的计算周期数>1 ;如满足所述 预设条件,则进入下一阶段。
7. 如权利要求5、6任一项所述的基于TDM的网络时钟恢复方法,其特征在于,所述额定 脉冲数量IMP_随着所述计算周期的延长而不断减小;其中,所述锁定收敛阶段的计算周 期中,所述额定脉冲数量IMPnUffl为1。
8. 如权利要求7任一项所述的基于TDM的网络时钟恢复方法,其特征在于,任意收敛 阶段中,Sn%sn_1进行比较时,如果|sn- Sn_i I >收敛失败标识值Fail,则本次时钟恢复终 止,返回快速收敛阶段初始状态,重新开始进行时钟恢复计算;所述收敛失败标识值Fail 为根据需要设定的大于1的自然数。
9. 如权利要求7任一项所述的基于TDM的网络时钟恢复方法,其特征在于,在快速收敛 阶段中,Sn%Sn_i进行比较时,如果|Sn- Sn_i | >本阶段最大额定脉冲数量MPnum*m,则本 次时钟恢复终止,返回快速收敛阶段初始状态,重新开始进行时钟恢复计算; 在慢速收敛阶段或锁定收敛阶段中,进行比较时,如果|Sn-Sn_i | >本阶段最 大额定脉冲数量頂PnUD*m,则本阶段时钟恢复终止,返回上一阶段初始状态,重新开始进 行时钟恢复计算; 其中,m为根据需要设定的大于2的自然数。
10. 如权利要求1所述的基于TDM的网络时钟恢复方法,其特征在于,所述将接收到的 网络数据进行排序、丢包处理的步骤中包含如下写入数据步骤: (1) 系统上电,抖动缓存模块清零; (2) 根据接收到的第一个数据包的序列号SEQ值初始化序列号存储模块以及读指针; 艮P,将该序列号SEQ写入序列号存储模块的第一位置,并根据所述序列号存储模块的容量, 以该序列号SEQ为起始值将所述序列号存储模块向后填满;将第一数据包净荷数据写入数 据存储模块对应位置,对应写读标志设为已写标志; (3) 接收新数据,遍历所述序列号存储模块,查找是否含有新接收数据序列号SEQ,如 有,进入步骤(5),否则,进入步骤(4); (4) 该数据包为无效包,无效包计数加1,该无效包丢弃,返回步骤(3); (5) 判断与该序列号SEQ对应的写读标志是否为已写标志,如是,进入步骤(6);如否, 进入步骤(7); (6) 该数据包为重复包,重复包计数加1 ;返回步骤(3); (7) 在数据存储模块中该序列号对应位置写入净荷数据,将与该序列号对应的写读标 志设为已写标志;返回步骤(3)。
11. 如权利要求10所述的基于TDM的网络时钟恢复方法,其特征在于,还包括如下读出 数据步骤: (1) 从所述读指针指向的序列号SEQ开始顺序读取数; (2) 判断读指针指向的序列号SEQ对应的写读标志是否为已写标志,如是,进入步骤 (3);如否进入步骤(4); (3) 从数据存储模块对应位置读出净荷数据;将对应写读标志清零;数据存储模块对 应位置清零;正常包计数加1,进入步骤(7); (4) 判断写读标志存储模块是否为延时标志,如是进入步骤(5);如不是进入步骤(6); (5) 将该序列号SEQ对应的数据以补空包方式读出;丢包计数加1,进入步骤(7); (6) 将对应读写标志设置延时标志;将该序列号SEQ对应的数据以补空包方式读出;延 时包计数加1,进入步骤(7); (7) 将序列存储模块中该SEQ值加所述序列号存储模块容量值后重新覆盖该位置,读 写指针加1并返回步骤(2)。
12. 如权利要求10或11所述的基于TDM的网络时钟恢复方法,其特征在于,所述已写 标志为0X1234,所述延时标志为0X5678。
13. 如权利要求10或11所述的基于TDM的网络时钟恢复方法,其特征在于,所述写入 数据步骤在81. 92MHz基准时钟下工作,所述读出数据步骤在81. 92MHz恢复时钟下工作。
14. 如权利要求11所述的基于TDM的网络时钟恢复方法,其特征在于,步骤(5)和步骤 (6)中,以补空包方式读出是指将数据设置为0读出。
【文档编号】H04J3/06GK104410475SQ201410761136
【公开日】2015年3月11日 申请日期:2014年12月12日 优先权日:2014年12月12日
【发明者】胡强, 吴援明 申请人:成都朗锐芯科技发展有限公司