图1 时钟同步原理
1 时钟同步原理图2 频率可调时钟原理框图
可调频率时钟是一种完全由数字电路组成的时钟计数器,构造简单,可以很方便地在FPGA中实现,原理如图2所示。该频率可调时钟由一个p位时钟计数器,q位累加器和r位频率补偿值寄存器组成。每个晶振周期,累加器与频率补偿寄存器中的FreqCompValue相加,并将结果保存到累加器。如果累加器发生溢出,时钟计数器的值就增加1;反之,时钟计数器保持不变。由此可以看出,晶振频率和频率补偿值FreqCompValue的大小决定了累加器的溢出速率,也决定了时钟计数器的计数频率。所以可以通过调整FreqCompValue来调节时钟频率。为了实现高精度时钟,晶振频率要比时钟频率高。设晶振频率为FreqOsc,时钟计数频率为FreqClk,分频比为DivRatio,同步周期为SyncInterval,补偿精度为Precision,p、q、r可由下列公式得出[4-5]:图3 频率调整算法在FPGA中的实现
同步报文的传输延迟SyncDelay理论上是不变的,而实际上报文在传输过程中有抖动。参考文献[3]对此进行了分析,并指出同步周期越长,报文传输延迟抖动的影响就越小,因此可以忽略不计。图4 时钟同步精度测试
图4(a)是未进行同步前两个时钟的偏差分析,X轴表示主时钟和从时钟的计时长度,Y轴表示主时钟和从时钟的计时偏差。从图中可以看出两个时钟的偏差大概为5×10-6,即1 s内的偏差可以达到5 μs。图4(b)为同步后主时钟和从时钟偏差测量结果,共测量1 000次,其10 ms内同步偏差在±20 ns。X轴表示测量时间,Y轴表示主从时钟同步偏差。图4(c)为同步后两个从时钟偏差测量结果,共测量1 000次,其10 ms内同步偏差在±40 ns。X轴表示测量时间,Y轴表示从时钟之间同步偏差。欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |