一种适用于网络自同步的时钟控制方法
摘 要: 时钟同步是网络通信系统中保证数据正确和有效传输的前提,广泛应用于传统电话网络、IP网络、光网络和无线传输网络等。针对目前网络时钟同步控制的复杂性,在分析网络结构、时钟控制和弹性缓冲区原理的基础上,提出一种基于FPGA、CPU和DDS技术的网络自同步时钟控制方法。通过软硬件相结合的处理方式,以最小开销实现网络时钟快速同步。然后对其原理进行了分析,给出实现的硬件框图、FPGA信号流程和CPU设计流程,并在设备和网络中进行了验证,验证结果表明该方法是正确、可行和有效的。
关键词: 时钟同步; 弹性缓冲; FPGA; DDS
中图分类号: TN964⁃34 文献标识码: A 文章编号: 1004⁃373X(2013)18⁃0080⁃04
0 概 述
时钟同步就是使多个不同设备或系统的时钟保持在相同的频率范围内,时钟同步的目的就是尽量消除设备之间的时钟偏差,保证数据的可靠传输[1]。在通信系统里,时钟同步是系统稳定工作的保证,因此如何保证系统时钟同步是网络设计必须考虑的内容,常用的时钟同步方式有准同步、主从同步、授时同步方式等。
传统的通信系统对时钟同步的要求很高。准同步就是两个完全独立的时钟系统,要实现时钟同步对时钟精度要求很高,优点是技术实现非常简单,缺点是时钟源价格很高,增加成本。主从同步就是通过时钟锁相原理,将系统的从时钟调节成与主时钟频率相同,最后整个系统都稳定在主时钟频率点上,优点是时钟可以动态调整,缺点是系统需要配置主从关系,而且只能一个作主多个作从。授时同步与主从同步类似,只是应用范围和网络环境更广泛,例如目前主流的GPS和IEEE 1588就是典型授时同步,优点是同步精度高、收敛速度快,缺点是技术复杂、成本高。由于传统的时钟同步处理需要确定中心的主时钟,在机动的军用通信网络里不是很实用,因为军用网络拓扑频繁变化,无法确定中心时钟。因此,下面提出一种不需要中心时钟的时钟自同步控制方法,基于直接数字频率合成器(Direct Digital Synthesizer,DDS)技术,通过CPU和现场可编程门阵列(Field Programmable Gate Array,FPGA)进行控制,能快速实现网络时钟同步收敛。
1 时钟自同步原理
1.1 时钟控制原理
在某些规模较小的网络系统里,设备之间采用时钟自同步方式进行组网。自同步方式不需要高精度时钟源,它是通过比较输入时钟与本地时钟的频率差,由CPU综合各端口的情况,经过运算,送出控制字,去调整本地时钟源。在系统正常运行过程中,各设备时钟源始终处于动态调整过程,调整步长越来越小,最后全网的时钟稳定在一个频率点附近,从而将滑动幅度和滑动时间间隔控制在要求的范围内,达到网络时钟同步的目的。图1是时钟自同步网络的一种设备互连拓扑结构。
自同步组网对时钟的参数要求是:时钟精度≤20 PPM,频率控制范围为±50 PPM,自同步方式下时钟平均收敛时间≤1 min。
1.2 弹性缓冲原理
自同步组网技术通过时钟控制技术和数据缓冲控制机制实现的。为保证设备采用自同步组网后无滑码,在设备的接口处设计了滑动窗口的数据弹性缓冲器,来吸收读写时钟的频率和相位偏差,只要读写时钟在缓冲区控制的范围内滑动,就不会发生数据丢失(下溢)或重读(丄溢),即不会产生滑码现象[2]。图2是滑动窗口的数据缓冲示意图。
在图2中,Wp为缓冲区的写时钟(线路输入时钟);Rp为缓冲区的读时钟(本地时钟);缓冲区长度为n比特,复位时Wp和Rp拉开距离为[n2]b(即固定缓冲延时);收时钟和本地发时钟的频率偏差只要控制在±[n2] Hz范围内,使Wp和Rp首尾不相等,就不会发生滑码(如n=256时,时钟滑动范围为±128 Hz)。
考虑到网络节点和拓扑变化,以及链路传输信道延时和时钟恢复抖动的影响,滑动缓冲区长度n的值不能太小,太小会因为时钟控制区域太窄造成缓冲区频繁溢出而发生滑码;n值太大会增加缓冲时延影响传输性能,不同速率可采用不同的缓冲区长度。(如n=256时,当接口速率为2 048 Kb/s时缓冲时延为62.5 μs)。
若缓冲区长度n=256,当中继接口速率为2 048 Kb/s时,监视设备输出的2 048 kHz时钟滑动范围应该为128个时钟周期[2562=128]。时钟频率为2 048 kHz,偏差为50 PPM的时钟周期为102(2.048×50)。由于128>102,缓冲区深度完全满足时钟偏差的指标要求。
2 时钟控制方案
2.1 原理框图
图3是同步时钟控制的硬件原理框图,该方案采用“FPGA+CPU+DDS+Buffer”的硬件结构实现了时钟控制和数据缓冲的处理。其中FPGA,CPU和DDS完成时钟控制,Buffer完成数据缓冲。
图3中每个模块之间的工作流程如下:
FPGA使用本地晶振时钟(CLK_OSC)对链路输入时钟(CLK_IN[i],i=0~n)和设备输出时钟(CLK_OUT)进行计数,计数结果定时汇报至CPU。
CPU定时从FPGA获取输入时钟和输出时钟计数值,根据计数值计算平均值,将平均值作为参考,将时钟控制字写入DDS用于调整DDS时钟输出。
DDS根据控制字和晶振参考时钟,进行频率合成,输出调整后的时钟到FPGA、Buffer和外部链路。
每路时钟和数据对应一个Buffer,输入时钟(CLK_IN[i],i=0~n)作为入数据(Di)写入时钟(Wp),输出时钟(CLK_OUT)作为出数据(Do)读出时钟(Rp)。
2.2 时钟调整
图4中的5个节点时钟频率分别是fa~fe,中心频率分别是fs.a~fs.e,各节点的中心频率是与其相邻的所有节点时钟与本节点时钟的平均值。
频率调整步长为中心频率与节点频率的差值再与缓冲区深度的半值(128)取模。如果步长为正值,则需要增加节点时钟频率(称为正调整);如果步长为负值,则需要减少节点时钟频率(称为负调整)。
每个节点时钟计算的节点数量、中心频率和调整步长如表1所示。
从图4和表1中可以看出,每个节点的网络拓扑和相邻互连的节点数量不完全一样,因此中心频率和调整步长也不完全相同,由于每个节点的时钟频率都在动态调整,因此中心频率和步长也在动态变化,总的变化趋势是节点频率越来越接近中心频率,步长越来越小,最后整个网络各节点时钟都基本相同,处于平衡状态。
3 时钟控制实现
3.1 输入时钟的采用
在图5中,锁相倍频器对外部的群路输入时钟Clk_In进行倍频处理[4],将不同频率的时钟统一锁定到8.192 MHz频率上,然后由计数器对锁相后的时钟进行计数。由本地时钟Clk_Osc通过定时器产生100 ms定时信号,通过当前计数寄存器对计数器的值进行定时锁存,当前计数寄存器与上次计数寄存器通过计数加法器进行相减,得到100 ms的定时计数差值,然后对差值进平滑处理后送到总线Q[23:0],通过定时器控制中断发生器产生的中断信号通知CPU定时从总线Q[23:0]读取计数值。
需要说明的是图5中的计数器滚动计数,计数过程中不清零,计数减法器的值可能为负数,需要通过平滑处理后再送给CPU。由于8.192 MHz时钟的100 ms计数值为819 200,十六进制为0xC8000,因此选用24位的计数器和总线即可满足要求。在100 ms定时中断发生时,CPU需要同时把所有输入时钟计数器数据都读取出来,并记录。
3.2 输出时钟的控制
图6是 输出时钟控制的流程图,时钟控制的计算主要由CPU完成,根据当前输入时钟的频率,计算出需要调整的参数,控制DDS输出需要的频率时钟。
在图6中,整个程序采用中断方式处理,即由外部产生100 ms的定时中断请求信号,在100 ms内完成所有的参数判断、计算和处理。时钟隔离判决主要是对输入的时钟进行偏差判决,对于频率偏差在50 PPM以外的时钟进行隔离,不参与时钟自同步的计算,主要是避免时钟偏差的继续扩散。平滑DDS频率参数主要是根据频率调整步长进行处理,由于DDS是12位A/D精度的数字频率合成器芯片,需要将频率步长转换为DDS的频率控制字[5]。其他的功能模块在前面都有过描述。
4 测试结果与分析
为了验证网络时钟同步的最长收敛时间,需要对图4中的5个节点的初始时钟进行最大偏差设置,然后每隔10 s分5个时间点对每个节点进行频率记录,如表2所示。
从表2中可以看出,每个节点的时钟频率都在朝中心频率8 192 000 Hz进行调整,在50 s后基本处在8 192 000 Hz上下范围内进行微调,处于动态平衡状态。因此,验证了网络最恶劣时钟偏差情况下,可以在1 min内实现时钟收敛,达到全网时钟同步。
5 结 语
自同步组网技术非常适用于特殊环境下网络拓扑频繁变化的情况,具有网络拓扑变化的适应能力,由于不需要中心时钟,当网内某个节点的定时系统发生失效(关机、停振,不受控或频率漂移额定值过大等)或与之相连的任何方向链路发生故障时,不影响其他节点和其他方向链路正常工作。
自同步组网技术还具有时钟故障诊断和隔离能力,在本设备的时钟控制有故障的情况下,能够诊断出来,并通知其他相邻节点设备进行时钟隔离,并且本设备自动切换到主从时钟方式下工作。
本文提出了一种基于FPGA,CPU和DDS技术实现网络自同步的时钟控制方法,采用软硬件结合的方式,极大简化时钟处理过程,快速实现网络时钟收敛。该方案已应用到综合数字交换机中,并且已形成产品化,经过和多个设备之间构建不同网络拓扑的互联测试,网络系统时钟同步稳定,数据传输可靠,证明该方法是切实可行的。本文只讨论了有线链路传输的处理情况,若要处理无线链路或混合链路,只需要根据链路传输延时情况对时钟调整周期进行调整即可。
参考文献
[1] 谢希仁.计算机网络[M].北京:电子工业出版社,2008.
[2] 陈建亚.现代交换原理[M].北京:人民邮电出版社,2006.
[3] Xilinx Corp. VertexTM⁃E FPGA family data sheet [EB/OL]. [2010⁃06⁃10]. http://.
[4] 黄志伟.锁相环与频率合成器电路设计[M].西安:西安电子科技大学出版社,2008.
[5] 王亮亮.基于DDS和PLL技术的高分辨率可变频综器设计[D]. 长沙:国防科学技术大学,2011.
[6] 尚守卫,胡健,龚代圣.基于工业网络的分布式时钟同步算法研究[J].现代电子技术,2012,35(23):55⁃58.
[7] 项春萍.基于DDS的高速定时同步方法[J].现代电子技术,2012,35(9):68⁃69.
下一篇:IC设计人员面临设计思想变革