一种分组网中时钟频率同步方法 技术领域 本发明属于通信与信息系统中的异步时钟同步技术领域, 具体涉及一种分组网中 时钟频率同步方法。
背景技术 分组网本质上是异步的, 并不需考虑端到端的时钟同步问题, 但在电路交换网向 分组交换网演进过程中, 必须考虑原有 TDM 业务信号, 如传统话音、 2M 租用线、 GSM 基站等信 号, 如何通过分组网传输问题, 这些信号通过分组网传输后, 必须有准确的时钟同步和定时 才能正确恢复 ; 此外在分组网络行为测量, 基于 IP 网络或以太网的分布式系统、 测控系统、 传感系统中, 都需要对分组网的时钟进行同步。
目前分组网络中时钟频率同步实现方式可以分成 2 个基本类别 : 第一类是具有公 共参考时钟的系统, 如有来自电路交换网络、 GPS 的参考时钟, 这样的分组网时钟同步问题 是由系统外部解决的, 统称为外同步方法, 显然这种方法需要在分组网外建单独的同步网 ;
第二类是分组网中没有公共同步参考时钟的系统, 可以采用专门的时钟恢复方法, 如同步 以太网和自适应时钟恢复方法, 统称为内同步方法。自适应时钟恢复方法可用于分组网络 节点无公共时钟, 也不需传输网络任何改造的情况, 这是分组网络中最普遍的情况, 但自适 应时钟恢复方法的性能与承载网络密切相关, 会受到网络帧传输时延变化的严重影响。
自适应时钟恢复方法最早是在 ATM 网上传输 TDM 信号时采用的技术, 通过接收帧 队列深度 ( 简称水位 ) 变化来控制压控振荡器 (VCO) 产生恢复时钟, 简称水位法, 华为公司 2005 年申请的中国发明专利 “包交换网络中的时钟同步方法及装置” , 中国专利 ( 申请号 : 200510132327.5) 就公开了一种类似方法。分组网的帧时延主要由节点时延、 网络传输时 延、 排队时延等组成, 帧传输时延序列是非线性、 非平稳的随机序列。帧时延可以分为两部 分, 一部分由系统本身产生的时延值是固定不变的, 称固有时延, 另一部分由帧排队等原因 产生的时延值是随机的称随机时延, 帧时延可以表示为 :
τ(n) = τ0+τ1(n)
式中, τ0 是固有时延值为常数, τ1(n) 为随机时延值。帧随机时延变化对自适 应时钟恢复方法的时钟同步精度影响很大, 如何减小帧随机时延的影响是研究的重点, 上 海贝尔阿尔卡特申请的中国发明专利 “一种用于包交换网络的自适应时钟恢复方法” , 申请 号: 03141883.X, 公开了先采集一组水位数据, 然后用最小二乘线性回归算法计算斜率, 再 用斜率值控制 VCO 调节时钟恢复的方法, 减小了帧随机时延对时钟同步精度的影响。国内 外有大量研究自适应时钟恢复方法的文章和相关专利, 不再一一列举。 发明内容
本发明的目的在于, 提出一种新的分组网中时钟频率同步方法及实现的装置。
为了实现上述任务, 本发明采取如下的技术解决方案 :
一种分组网中时钟频率同步方法, 其特征在于采用如下步骤 :1) 源节点 A 定时发送同步帧, 同步帧中包含发帧时刻值 ; 目标节点 B 接收同步帧, 并记录同步帧接收时刻值 ;
2) 源节点 A 的帧发送时刻 CA 由 A 节点时钟 CLKA 度量 ; 目标节点 B 的帧接收时刻 CB 由目标节点 B 节点的时钟 CLKB 度量 ;
源节点 A、 目标节点 B 节点发送和接收一系列的同步帧, 构成了同步帧收发时刻序 列 {CA(1), CA(2),…, CA(n),… }, {CB(1), CB(2),…, CB(n),… } ;
3) 源节点 A 与目标节点 B 的时钟是异步的, 即存在一定的频率差, 设 CLKA 的时钟 周期为 TA(n), CLKB 的时钟周期为 TB(n), 定义时钟周期比值 K(n) = TB(n)/TA(n), 则在目 标节点 B 从同步帧收发时刻序列中求出 K(n) 值, 用 K(n) 值修正 CLKB, 得到恢复的源节点 A 时钟 CLKA, 实现时钟频率的同步。
上述 K(n) 值的求解步骤如下 :
1) 定义源节点 A、 目标节点 B 间帧时延值 :
τ(n) = τ(n-1)+[ΔCB(n)-K0*ΔCA(n)] ; n = 2, 3, Λ;
式中, ΔCB(n) = CB(n)-CB(n-1), ΔCA(n) = CA(n)-CA(n-1), τ(1) = 0 ;
K0 为设定的 K(n) 初值, 为常数 ;
2) 设置当前最小时延值 τmin 初值为一个大正整数, 并作如下处理 :
If(τ(n) < τmin)
τmin = τ(n) ;
τmin(n) = τ(n) ;
{ 进行最小二乘法迭代计算 ; 更新迭代参数 }
else
{ 本帧 τ(n) 值丢弃 ; 保持上次最小二乘法迭代参数不变 ; }
End ;
3) 在步骤 2) 中所述最小二乘法迭代算法用 {τmin(n)} 和对应 {CA(n)} 作为输入, 即 τmin(n) 的估计值为 :
式中, w0(n) 为估计的直线斜率, w1(n) 为估计的直线截距 ; 估计误差 : 最小二乘拟合使目标函数 为最小值, 其中, λ 为遗忘系数, 按实际情况合理设置 ;
4) 在步骤 2) 中所述最小二乘迭代算法分两种状态进行, 一个是捕获状态, 另一个 是跟踪状态, 称两状态最小二乘直线拟合处理方法 ;
5) 在步骤 4) 中所述两状态最小二乘直线拟合处理方法首先处于捕获状态, 若检 测到 τ(n) < τmin 值, 进行当前序列号为 n 的直线迭代拟合, 并置 dK(n) = w0(n)。求估计 的直线斜率 w0(n) 的差分值 : Δw0(n) = w0(n)-w0(n-1), 若 |Δw0(n)| 持续小于设定门限值, 则进入跟踪状态 ;
6) 在步骤 4) 中所述两状态最小二乘直线拟合处理方法在跟踪状态, 若检测 到 τ(n) < τmin 值后, 进行当前序列号为 n 的直线迭代拟合, 检测 w0(n) 的差分值 ; 若|Δw0(n)| 小于等于设定门限值, 则确认本帧是固有时延帧, 更新迭代参数有效, 置 dK(n) = w0(n) ; 若 |Δw0(n)| 大于设定门限值, 则确认本帧不是固有时延帧, 本次迭代参数丢弃, 保 持上次迭代参数不变, 置 dK(n) = dK(n-1) ; 若 |Δw0(n)| 持续大于设定值, 则确认为失锁, 重新进入捕获状态 ;
7) 源节点 A、 目标节点 B 的时钟频率同步参数为 : K(n) = K0+dK(n) ;
求出 K(n) 值后, 进一步用两状态最小二乘直线拟合处理方法滤波, 即用 K(n) 代替 τmin(n), n 代替 CA(n) 作为输入, 拟合 K(n) 估计值作为滤波输出 : 式中, a0(n) 为估计的直线斜率, a1(n) 为估计的直线截距。
上述捕获状态与跟踪状态的转换或者通过检测直线拟合误差 e2(n) 实现 ; 具体判 别方法与检测 |Δw0(n)| 相似, 或者根据具体情况选择其他的相似判据进行捕获状态与跟 踪状态的转换。
本发明的分组网中时钟频率同步方法, 可广泛用于分组网中时钟频率的同步和网 络单向时延测量。
附图说明
图 1 是分组网中时钟频率同步系统模型图 ; 图 2 是节点 A、 B 间同步帧收发时刻与帧时延示意图 ; 图 3 是 K0 修正后节点 A、 B 间同步帧时延示意图 ; 图 4 是时钟频率同步参数 K(n) 值示意图 ; 图 5 是本发明在局域以太网中的一种具体实施系统框图 ; 图 6 是实测 A、 B 节点时钟频率未同步的时延值 ; 图 7 是用本发明方法进行时钟频率同步后得到的时延值 ; 下面结合附图和实施例对本发明作进一步的详细说明。具体实施方式
本发明的分组网中时钟频率同步方法, 具体包括如下步骤 :
1) 源节点 A 定时发送同步帧, 同步帧可以是专门的帧, 也可以是一般数据帧中插 入帧发送时刻值的帧, 目标节点 B 接收同步帧, 并记录同步帧接收时刻, 其系统模型如图 1 所示。
2) 源节点 A 的帧发送时刻 CA 由 A 节点时钟 CLKA 度量, 具体值与帧发送参考点有 关, 即由帧发送时刻计数器记录帧通过发送参考点的计数值即是 CA 值 ; 参考点越靠近节点 的物理层, CA 值受节点软、 硬件时延的影响越小 ; 同理, 目标节点 B 的帧接收时刻 CB 由 B 节 点的时钟 CLKB 度量, 由帧接收时刻计数器记录帧通过接收参考点的计数值即是 CB 值。收 发一系列的同步帧, 构成了同步帧收发时刻序列 {CA(1), CA(2),…, CA(n),… }, {CB(1), CB(2),…, CB(n),… }, 如图 2 所示。
3) 在步骤 1) 和步骤 2) 所述系统模型中, 源节点 A 与目标节点 B 的时钟是异步的, 即存在一定的频率差。设 CLKA 的时钟周期为 TA(n), CLKB 的时钟周期为 TB(n), 定义时钟 周期比值 K(n) = TB(n)/TA(n), 则在目标 B 节点求出 K(n) 值就可以实现时钟频率的同步, 即目标节点 B 跟踪源节点 A 的时钟频率 f(n) = K(n)·fB(n), 其中 fB(n) = 1/TB(n)。4) 定义源节点 A、 目标节点 B 间帧时延值 :
τ(n) = τ(n-1)+[ΔCB(n)-K0*ΔCA(n)] ; n = 2, 3, Λ
式中, ΔCB(n) = CB(n)-CB(n-1), ΔCA(n) = CA(n)-CA(n-1), τ(1) = 0 ;
合理设定 K0 值, 使帧时延值 τ(n) 的最小值随 n 减小, 如图 3 所示。
5) 设置当前最小时延值 τmin 初值为一个大数, 然后逐帧跟踪比较 τ(n) 值, 检测 出当前最小值 τmin(n) 和对应 CA(n) 值, 并如下处理 :
if (τ(n) < τmin )
τmin = τ(n) ;
τmin(n) = τ(n) ;
{ 进行最小二乘法迭代计算 ; 更新迭代参数 }
Else
{ 本帧 τ(n) 值丢弃 ; 保持上次最小二乘法迭代参数不变 ; }
End
6) 在步骤 5) 中最小二乘法迭代算法用 {τmin(n)} 和对应 {CA(n)} 作为输入, 拟合 出直线如图 3 虚线所示, 即 τmin(n) 的估计值为 :
式中, w0(n) 为估计的直线斜率, w1(n) 为估计的直线截距。 估计误差 : 最小二乘拟合使目标函数 为最小值, 其中 λ 为遗忘系数, 需按实际情况合理设置。
7) 上述 τmin(n) 的最小二乘直线拟合过程分两种状态进行, 一个是捕获状态, 另 一个是跟踪状态, 称两状态最小二乘直线拟合处理方法。
8) 首先处于捕获状态 : 若检测到 τ(n) < τmin 值, 进行当前序列号为 n 的直线迭 代拟合, 并置 dK(n) = w0(n)。 求估计的直线斜率 w0(n) 的差分值 : Δw0(n) = w0(n)-w0(n-1), 若 |Δw0(n)| 持续小于设定门限值, 则进入跟踪状态。
9) 在跟踪状态。若检测到 τ(n) < τmin 值后, 进行当前序列号为 n 的直线迭代拟 合, 检测 w0(n) 的差分值 ; 若 |Δw0(n)| 小于等于设定门限值, 则确认本帧是固有时延帧, 更 新迭代参数有效, 置 dK(n) = w0(n) ; 若 |Δw0(n)| 大于设定门限值, 则确认本帧不是固有时 延帧, 本次迭代参数丢弃, 保持上次迭代参数不变, 置 dK(n) = dK(n-1) ; 若 |Δw0(n)| 持续 大于设定值, 则确认为失锁, 重新进入捕获状态。
10) 源节点 A、 目标 B 节点时钟同步参数 : K(n) = K0+dK(n), 如图 4 所示。
11) 进一步可用上述步骤 6) 到步骤 9) 所述的两状态最小二乘直线拟合处理方法, 用 K(n) 代替 τmin(n), n 代替 CA(n) 作为输入, 拟合 K(n) 估计值 :
式中, a0(n) 为估计的直线斜率, a1(n) 为估计的直线截距。 估计误差 : 最小二乘拟合使目标函数7为最小值, 其中 λ 为遗忘系数, 需按102412954 A CN 102412967说明书5/6 页实际情况合理设置。输出
作为滤波后的源 A 节点、 目标 B 节点时钟同步参数。12) 上述捕获状态与跟踪状态的转换也可以通过检测直线拟合误差 e2(n) 实现, 判 别方法与检测 |Δw0(n)| 相似 ; 也可以根据具体情况选择其他的相似判据进行捕获状态与 跟踪状态的转换。
以下是发明人给出的一个具体的实施例。
本实施例在局域以太网中的一种具体实现方式, 系统框图如图 5 所示, 包括如下 实施步骤 :
1) 现场可编程门阵列 (FPGA) 实现的源节点 A 中, 设计帧发送时刻计数器 ACOUNT, 该计数器时钟为 A 节点时钟 CLKA ; 在以太网帧发送的物理层 (PHY) 输入处, 设定帧发送参 考点, 当同步帧第一位通过该参考点时, 用帧发送使能信号锁存 ACOUNT 计数器值 CA 作为同 步帧的发送时刻, 并随下一个同步帧发送到目标节点。源节点 A 定时发送同步帧。
2) 在 FPGA 实现的目标节点 B 中, 设计帧接收时刻计数器 BCOUNT, 该计数器时钟为 B 节点时钟 CLKB ; 在以太网帧接收物理层 (PHY) 输出处, 设定帧接收参考点, 当同步帧最后 一位通过该参考点时, 用帧接收使能信号锁存 BCOUNT 计数器值 CB 作为同步帧的接收时刻。 在 B 节点中, 从收到帧中得到同步帧发送时刻序列值 : {CA(1), CA(2),…, CA(n),… }, 从 BCOUNT 计数器得到对应的接收时刻序列值 {CB(1), CB(2),…, CB(n),… }, 如图 2 所示。
3) 根据源节点 A、 目标 B 节点时钟的精度范围, 设定 K0 值, 如 A、 B 节点时钟精度若 为 50ppm, 设定 K0 >= 1.00005, 则计算的帧时延值 τ(n) 的最小值将随 n 减小, 如图 3 所 示。
4) 编制程序, 在目标 B 节点中用软件计算出值。 具体是设置 τmin 初值为一个大数, 然后迭代计算如下 :
if(τ(n) < τmin )
τmin = τ(n) ;
τmin(n) = τ(n) ;
{ 进行最小二乘法迭代计算 ; }
else
{ 本帧 τ(n) 值丢弃 ; 保持最小二乘法迭代参数不变 ; }
End
5) 上述最小二乘法迭代算法的一种具体实现算法如下 :
设: Xk = [CA(n), 1]T, Wn = [w0(n), w1(n)]T, P0 = [0, 0]T, 则迭代公式 :
Pk = λPk-1+τmin(n)·Xk
Wn = Sk·Rk
本实施例中, 取 λ = 0.97。
6) 上述 τmin(n) 的最小二乘直线拟合过程分两种状态进行, 一个是捕获状态, 另 一个是跟踪状态。先处于捕获状态, 置状态标志 LOCK = 0, 清计数器 Lcnt = 0。若检测到 τ(n) < τmin 值, 进行当前序列号为 n 的直线迭代拟合, 并置 dK(n) = w0(n)。求估计的直线斜率 w0(n) 的差分值 : Δw0(n) = w0(n)-w0(n-1), 若 |Δw0(n)| <= Tw, 则 Lcnt 加 1 ; 当 Lcnt 大于设定值后, 进入锁定跟踪状态, 置 LOCK = 1, 清计数器 Lcnt = 0。Tw 为设定的判决门限值。
7) 在跟踪状态, LOCK = 1。若检测到 τ(n) < τmin 值后, 进行当前序列号为 n 的 直线迭代拟合, 检测 w0(n) 的差分值 ; 若 |Δw0(n)| <= Tw, 则确认本帧是固有时延帧, 迭代 参数有效, 置 dK(n) = w0(n), 并清计数器 Lcnt = 0 ; 若 |Δw0(n)| > Tw, 则确认本帧不是固 有时延帧, 本次迭代参数 Sk, Pk, Wn 丢弃, 保持上次迭代参数不变, 置 dK(n) = dK(n-1), 计数 器 Lcnt 加 1 ; 若计数器 Lcnt 值大于设定值, 则确认为失锁, 置 LOCK = 0, 清计数器 Lcnt = 0, 重新进入捕获状态。
8)A、 B 节点时钟同步参数 : K(n) = K0+dK(n)。
9) 进一步可用两状态最小二乘直线拟合处理方法, 用 K(n) 代替 τmin(n), n 代替 CA(n) 作为输入, λ = 0.997, 拟合 K(n) 估计值作为输出 :
式中, a0(n) 为估计的直线斜率, a1(n) 为估计的直线截距。
10) 在 算 法 具 体 实 施 中, 一 般 ACOUNT 计 数 器 设 置 为 32bit, 当 ACOUNT 计 数 器 满时, 下一个计数值将回零, 需进行计数器回绕处理, 即若 ΔCA(n) < 0, 则 ΔCA(n) = 式中 CAmax 为 ACOUNT 计数器的最大值。 当 BCOUNT 计数器满时类似处理。 ΔCA(n)+(CAmax+1) ;
11) 在以太网电路仿真应用中, 用 K(n) 值控制小数分频电路, 修正 B 节点时钟 CLKB, 再用锁相环电路消除时钟抖动, 可得到恢复的 A 节点时钟。
12) 在以太网单向随机时延测量应用中, 用 K(n) 按下式计算随机时延值 :
τ(n) = τ(n-1)+[ΔCB(n)-K(n)*ΔCA(n)] ; n = 2, 3, Λ。
可以消除 A、 B 节点时钟不同步的影响。
图 6 为局域以太网中, 用本实施例实测的 A、 B 节点时钟未同步时的随机时延值, 可 以看到明显的时钟不同步产生的随机时延最小值变化。时延单位为时钟周期数。
图 7 为局域以太网中, 用本实施例实测的 A、 B 节点时钟同步时的随机时延值, 可以 看到随机时延最小值几乎无变化, 表明 A、 B 节点时钟频率相等。
以上结合附图, 实施例对本发明进行了详细说明, 本领域的技术人员可根据本发 明内容, 在具体实施中作出各种具体实施方案变动, 本实施例的具体细节不构成对本发明 的限制, 本领域的技术人员对本申请的技术方案作出的非必要的添加或等效的替换, 均视 为本发明的保护范围。