您好,欢迎来到独旅网。
搜索
您的当前位置:首页利用VCXO进行频率跟随实现高精度时钟同步的方法研究

利用VCXO进行频率跟随实现高精度时钟同步的方法研究

来源:独旅网


时钟同步的方法研究

马毅超

武 杰

张 杰

宋洪治

孔 阳

(中国科学技术大学近代物理系快电子实验室 合肥 230026)

摘要 讲述了时钟同步协议的原理,分析了影响同步精度的因素。首先借鉴广泛使用的IEEE1588同步协议结

并合分布式数据采集系统的结构特点,利用微控制器的内置计数器实现了对数据通信协议包的收发时刻的准

确计时,实现了高精度的硬件时间打戳,使时钟的同步精度达到了1 µs。在此基础上又进一步将跟随的从设

备的时钟源由传统的固定频率的晶体改成可以进行精细时钟频率调节的压控振荡器(VCXO),保持了分布式时

钟在频率上的一致性,减小了时钟的漂移,从而实现了更高精度的时钟同步。实验表明在24MHz 时钟频率情

况下,通过此方法可使系统的同步精度达到10ns 量级,远高于常用软件时钟同步方法能达到的微秒量级精度。

关键词 精密时钟协议,时钟同步,频率同步,压控振荡器,传感器网络,分布式数据采集

中图分类号 TN393

时钟同步技术在家庭、办公、工业自动化领域中有着广泛的应用[1]。在分布式系统中,常需一个

全局时间来确定系统中各种事件发生的先后、协调

各种消息的传输等,以控制和监视系统的状态。这

就须将系统中各个部件的局部时间统一,进行时钟同步[2] 。常用的同步方法有 NTP(Net Work Time Protocol), SNTP, PTP (Precision Timing Protocol)[3] 等。实际使用和测试表明使用 NTP SNTP 在广域 范围内同步精度仅数十毫秒,在局域范围内同步精 度为 0.1 ms[4]PTP IEEE1588 精确时钟协议的简 称,用来提升网络系统定时同步能力的规范,同步 精度已达纳 秒量级甚至 更高;用一
些成熟的 IEEE1588 芯片还可获得纳秒甚至更高量级的同步 精度。但这些芯片也有其不足之处。首先,应用接 口单一,一般仅适合于以太网;其次,对参考时钟 要求高,参考时钟一般需有高精度的恒温晶体振荡 器(OCXO);最后,须从编码数据中恢复出时钟,所 以芯片时刻都得处于工作状态。大规模传感器网络 中功耗和成本是两个的重要的考虑因素[5],所以成 熟的 IEEE1588 芯片并不适合应用在大规模传感器 网络中。

间戳精度带来影响,并在对时间隙进行累积,带来同步漂移,影响同步精度。即使没有时钟频率偏差两个时钟也会存在起始时刻的不同,这种起始时刻的不同称为相位差[7],相位差也会对同步精度带来一定的影响;3)延迟的不对等:但实际应用中由于网络抖动等原因,传输延迟不一定对等。所以会对同步精度带来影响[8]

随着计算机网络的发展,越来越多的应用对时间同步精度提出了更高的要求[9]。在大规模传感器网络中更要求时钟的高同步度,同时也需要考虑成本、功耗、可靠性等因素。

本文针对硬件时间戳的实时性对PTP协议进行简化,并消除时间戳精度不足带来的影响,然后通过对压控振荡器的精细时钟调节来消除时钟频率偏差带来的影响,最终达到提高时钟同步精度,减少主/从时钟间漂移的目的。本文方案的同步精度可达10ns 量级,该方案具有低成本、低功耗等特点,较适合于大规模传感器网路特别是分布式数据采集系统中应用。

一般来说影响同步精度的主要因素有:1)

1

用微控制器的计数器实现硬件时间同步





间戳的精度:由于时钟同步方法是直接根据时间戳来计算时间差,所以时间戳的精度直接影响同步的 精度[6]2) 时钟频率偏差:时钟频率的偏差会对时

——————————————
国家科技重大专项(2008ZX05008-005-004)资助

利用硬件时间戳来进行时钟同步,可避免软件处理过程中的不确定延时,如软件中断处理延时等。

由此可提高时间戳的精度,以提高时钟同步精度。

第一作者:马毅超,男,1984 9 月出生,现为中国科学技术大学博士研究生,研究方向为高速数据采集及嵌入式系统

通讯作者:武 杰

收稿日期:2010-11-8,修回日期:2011-01-16

I/O SR

硬件时间戳是指利用一些硬件特性在收到/发送数据时刻记录当前时间。在分布式数据采集网络 中数据传输方式多样。为避免不同传输方式带来的 影响,可在传输芯片接收数据后进行时间戳的捕获。 在数据帧到来时用 SR 触发器锁定该数据帧第一个 数据并获取时间戳。当接收完一帧数据对 SR 触发 器进行复位。继续锁定下一帧数据的时间戳。同样 发送数据时刻也可以利用同样思路获取时间戳。

1.2 同步过程实现步骤

硬件时间戳的特点是能在数据包发送的同时获 得时间戳,并作为此包的一部分进行发送。根据硬 件时间戳的这个特点,PTP 协议中的 sync 包和 follow_up 包可合并成一个包,协议就可简化成如图1 所示。简化后的同步过程包括如下几个步骤: Sync1 包到从机,Sync1 包含主机的1)
主机发送 发送时刻的时间戳。

2) 从机接收 Sync1 包并记下接收的时刻 t2

3) 从机发送 Sync_rep 包并且记录下发送时刻 t3

器进行复位,这样在发送每一帧时SR触发器都给出一个脉冲,该脉冲的起始时刻和对应帧的起始时刻保持同步。用 STM32微控制器中的计数器来捕获该脉冲从而得到发送时刻的时间戳。同样,接收方的微控制器的计数器可得到接收时刻的时间戳。在串口发出帧的第一个字节时就可拿到发送该帧的时间戳,随后把时间戳作为当前帧的一部分进行发送。

2 测试系统结构图
Fig.2Testsystem block diagram.

4) 主机接到 sync_rep 包并且记录下接收时刻 t4

1.3

时钟频率差带来的同步误差

5)

主机向从机发送 Sync2 包,包中含有主机接收





sync rep 包的时刻 t4

由图 1,通过主机和从机间的 3 次通讯,从机

间的时钟偏差 Toffset= (t2t1+ t3t4)/2。从机记下当前

Toffset,需对主机和从机同时进行操作时,从机给设

定的时间加上 Toffset,就可得到同步操作。

Master

Slave

Slave

time

t1 Sync 1

§1.1所述方法同步主机和从机时钟,测试环境为:主机晶体频率 24 MHz,从机的压控振荡器配置为晶体模式,只用来提供 24MHz 时钟,同步包频率 4 s/次,收到同步包Sync2后主机从机分别通过计数器模块来控制 10 ms
I/O给出脉冲。测试结果见图 3。由于主从时钟频率不严格相同,一般晶体的时钟频率差值在 50–80ppm[10],在10ms 时间内由于晶体频率差值带来的同步脉冲时间差可

t4

Sync rep

t2

t1, t2

大致估算为 1–1.6 µs。与图 3 中测量的结果相符合。

可以看出,使用硬件时间戳以后同步精度有所改善

t3

t1, t2, t3

(1),但是由于频率差的影响,同步精度很难有进

Sync 2

t1, t2, t3,

一步提高。





t4

1 简化的同步原理图
Fig.1 Simplified synchronization schematic.

为测量硬件时间戳对同步精度带来的改善,我 们设计了图 2 所示的下测试系统。两实验板间用 MLVDS 电平进行通讯,SR 触发器和微控制器的计 数器模块用来进行时钟计数和获取时间戳,晶体(主 机)和压控振荡器(从机)用来提供系统时钟,微控制 器工作在 24 MHz。微控制器中 DAC 输出可调节的 电压,用来调节压控振荡器输出的时钟频率。串口 发送帧的第一个字节时候 SR 触发器被置位,串口


Frequency













































































































































































































































































































































































3 频率同不

步情况下测试结果

Fig.3 Testresult of step frequency non-synchronous case.


Table 1 Comparison of accuracy of several commonly used method of the clock synchronization

同步方法

同步精度(峰峰值)


1 2

其中σf =σVKf0=1.8Kf0/4096= 0.12 ppm·f0可见

σf KDAC精度相关,对12bit DACσf

Synchronized method

Synchronization

可达 0.12 ppm

accuracy


(peakto peakvalue)

2.2

频率同步的实现方案

PTP 软件时间戳无补偿

50 µs


§2.1 可以得出结论:如能及时甄别出由于频

PTP Software timestamp

uncompensated

100 ns [11]

率不同造成的同步误差,就可大大提高两时钟的同

PTP 软件时间戳并进行软件频率偏

步度。为甄别并减小由于频率不同造成的同步误差,

移补偿

1 µs

采用发送调节包的方法。调节包内含有主机发该次

PTP Software timestamp with

调节包时刻的时间戳信息。具体做法如图 4 所示:

software frequency offset

compensated

时刻主机发送调节包调节包里包含 t1 时刻时间戳,

硬件时间戳

从机接收到时刻为 t2 并记录下该时间戳。tp 时间后

Hardware timestamp

10 ns [12]

t3 时刻主机发送同步包从机接收到的时刻为 t4

PTP 芯片同步精度

于是就可得到:

(DP83640 非同步以太网模式)

PTP chip synchronization

t2 = t1+ toffset1+ tdelay1

(2)

accuracy (DP83640 non-

700 ps[12]

t4 = t3+

toffset2+ tdelay2

(3)

synchronize with Ethernet )

PTP 芯片同步精度

(DP83640 同步以太网模式)

Master

Slave

PTP chip synchronization

t1

adj1

accuracy (DP83640

synchronize with Ethernet)

件时间戳并进行频率同步

10 ns

tp

t2

Hardware timestamp with
frequency synchronization

t3

adj 2

2

利用压控振荡器提高时钟同步精度

tp

Sync1

t

4

为尽可能减少时钟偏差对同步的误差,本文用压控振荡器 VCXO 对时钟进行精细调节,以减小时 钟频率偏差。

Sync rep

Sync2

ts1

adj3

ts2

tk

t5

2.1

STM32 中的 DAC 和压控振荡器进行时钟

t6
4 频率同步原理
Fig.4 Frequency synchronization principle.

频率调节





STM32 微控制器内有 12 bit DAC,其输出连接

压控振荡器的 Vctrl 脚。改变 DAC 输出电压可控制

压控振荡器的输出频率。DAC 1LSB 等效的电压

值为:σV = Vcc/4096。压控振荡器在 0.5–1.4 V 电压

范围中可调节输出频率为 ±130 ppm。此过程中,

压控振荡器输出频率变化值和输入电压系线性关

系:DAC 输出调节 1LSB,频率变化为 σ f = σVKf0,

式中 K 为压控振荡器的电压/输出频率曲线的斜率。

由此可判断对于相同标称频率晶体和压控振荡器,

总会找到一个合适的 DAC 输入值:在 DAC 输入为

n n +1 时使 f2< f0< f1f1f2 分别为 DAC 输入为 n

n +1 时压控振荡器的输出频率,f0 为晶体频率,

假设在t2t4时间段内从机时钟频率为fst1

t3时间段内主机时钟频率为fm则有:t1t3=m/fm

t2t4=n/fs,其中mn分别为t1t3时间段内主机

时钟走过的周期数和t2 t4 时间段内从机时钟走

过的周期数。分布式数据采集网络中,两节点相对

位置以及传输路径固定,可认为两次传输过程中外

部条件保持不变,则传输延时tdelay1等于tdelay2。式

(2)(3)相减可得:(t2t4)–(t1t3)= toffset1toffset2。用

周期数和频率表示:m/fmn/fs=toffset1toffset2

如果主机和从机时钟频率相等,mn就相等。

但若主机和从机在这段时间内时钟周期差大于一个

周期,mn就会有差别,这可用来鉴别两个时钟

的快慢。根据mn的关系,不断调整DAC输出改

fs1

fs2

Frequency









































































































































































































































































































































































































5 同 情况 测

步下试结果

稳定的情况下,从时钟一定处于这两个频率之一,

fs1fs2 满足式(1)。发包间隔长度 tp 可以从以下推

导得出:

( 11 )T f <1 p m
fm fs1 fm

(4)

( 1 1 )T f < p m
fm fs2

1

(5)

fm



由式(1)可以得出

abs( fm fs1) σ f

(6)

Fig.5 Test results

of h t e synchronous case.

abs( fm fs

2 ) σ f

(7)

fs2 频率上的概率分析:如果在 nTp 时间内由主时钟

f 和从时钟 m f 频率差造成的相位差为 s1 360 °,在 mT

p





把式(4)(5)代入式(2)(3)可得:

T <

1

= 0.12 ppm f


(8)

p

σ f


0


由式(6)的推论过程可得出,肯定存在一个 tp

使在时间段 Tk1= ntp,从机压控振荡器频率为 fs1;在

时间段 Tk2= mtp,从机压控振荡器频率为 fs2。主机

从机时钟的周期数差值在 Tk1 时间段内,能满足 mn

= (Tk1/fm)(1/fs1 – 1/fm), 其中 2>(Tk1/fm)(1/fs1 –1/ fm)≥1

主机从机时钟的周期数差值在 Tk2 时间段内也能满

mn = (Tk2/fm)(1/fs2 –1/fm),其中2>(Tk1/fm)(1/fs1 –1/

fm)≥–1。这样主机和从机时钟由于频率不相同而累

积的时间差永远控制在 2 个周期以内。

通过以上推导可以得出主从两个系统的时钟频

率可以通过发送调节包交换时间戳信息,并根据得

出的时间戳信息调节压控振荡器输出频率的方法进

行频率同步。对时钟的频率漂移有很好的抑制作用。

时间内由主时钟fm和从时钟fs2频率差造成的相位

差为恰好也为360°。从时钟处于频率fs1fs2的时

间比例为Tk1:Tk2 =m:n = abs(1/fm –1/fs1): abs(1/fm

1/fs2)。但是实际测试过程中发包的时间间隔tp

不是严格满足上述条件而是近似满足上述条件,但

是所以相位差点对于频率点上的分布并不是严格的

m:n。而是比较近似的m:n。对于同步脉冲来说:从

时钟落在f 部分造成相位差为θ,落在f 部分造s1 1 s2

成的相位差为θ2如图3所示,t s1 t 为给出测试s2

脉冲的时间,tk150ms,所以ts1ts2=0.15/[fs(1/fs

1/fm)]=18 ns。根据计算会在18ns 处形成一个峰

值。但是由于测试中发包间隔并不是严格满足

Tk1:Tk2=m:n=abs(1/fm–1/fs1):abs(1/fm–1/fs2)(晶体频

率与标称频率的误差导致fmfs不能准确得出),而

是近似满足以上关系,所以峰值会有误差,如图4(b)

所示峰值在22 ns 处出现。峰峰值的间隔是只跟频

率相关,跟测试中发包间隔无关,24MHz 测试时

钟情况下峰峰值间隔为1/24MHz=41 ns。与图5

峰值的间隔吻合(41ns)

3

同步测试结果以及分析

本文给出的用硬件时间戳来提高时间戳的精确

3.1

同步测试结果

度,同时采用压控振荡器来进行频率同步方法,经

过测试同步精度可以达到 10 ns 量级,高于其他的

测试方法:主机晶体频率为 24 MHz,从机压

软件实现精度但是低于成熟的 PTP 芯片精度(1)





控振荡器频率为 24 MHz,每 4 s 由主机向从机发送

一次调节包来进行频率同步。通过§1.1 给出的同步

过程来消除 toffset。收到同步包 Sync2 后主机从机分

别通过写计数器的捕获/比较寄存器来控制 150 ms

(4 ts1ts2 时刻)I/O 给出脉冲,测量获得数据

如图 5 所示 。

STM32控制器可以通过中断从休眠模式唤醒,主控

CPU并不需要时刻工作从而节省了系统功耗。高精

度的PTP芯片,比如国家半导体的DP83640芯片,

在同步以太网模式下并且使用OCXO 作为主参考

时钟,同步精度可以达到次纳秒精度。但是由于同

步模式需要从平衡编码中恢复出时钟也就是说物理

层上一直会有数据,芯片不能休眠,功耗难以减小。

3.2

测试结果分析

DP83640 需要使用精确的参考时钟 OCXO

DP83640 工作在非同步以太网模式下同步精度与本





由式(1)可知从时钟位于 fs1 fs2 频率上,所以

k/fm = ∑(m/fs1+ n/fs2),其中 k 为主时钟经过的周期

数,m n 分别为从时钟处于 fs1 fs2 频率上的周

期数,并且满足 fs1fs2 = σf。从时钟频率落在 fs1

文给出方法的精度大致相当。本文提出方法相比更精确的 PTP芯片,具有低成本,低能耗,适用性广


目多,如果能降低单个节点的功耗以及成本对整个

5

Software. 2007 24(9):54–56.

Benyuan Liu, Towsley D. Mobile Ad-hoc and Sensor

系统来说将是很大的改进。

4

结论

6

Systems, 2004 IEEE International Conference on. 2004,

475–483.

目前本方案已经在分布式数据采集系统中的多

刘明哲, 徐皑冬, 赵伟. 仪器仪表学报, 2006, 27z(3):

点传输网络上试验成功,成功的给分布式数据采集

2009–2011.

系统了高同步精度的时钟。实验结果表明:由于这

7

LIU Mingzhe, XU Aidong, ZHAO Wei. Chinese Journal

种方法基于单向同步消息发送机制,仅需要少量的

of Scientific Instrument. 2006, 27z(3):2009–2011.

数据交换就可以得到 10 ns 精度的同步时钟。由于

Ill-Keun Rhee, Jaehan Lee, Jangsub Kim, et al. Clock

低带宽消耗,低能量消耗,同步精度高的特性,所

8

Synchronization in Wireless Sensor Networks: An

以在对同步精度要求很高的大型传感器网络特别是

大型分布式数据采集系统有着广泛的实用价值。

Overview. Sensors, 2009, 9(1): 56–85.

王相周, 陈华婵 . 计算机工程与设计, 2009 30(8):

预期本方案可以达到更高的同步精度,未来进

一步提高同步精度的手段有:

1846–1849.

WANG Xiangzhou, CHEN Huachan. Computer

1)

提高时钟频率,提高时钟频率可以有效的降低

9

Engineering and Design, 2009 30(8): 1846–1849.

Kendal R. Harris, Anatoly Moldavansky, Sivaram

最大同步误差。

Balasubramaniar. The Application of IEEE 1588 to a

2)

提高 DAC 精度,DAC 精度每提高 1 位时钟同

Distributed

Motion

Control

System.

Rockwell

步的精度就提高 1 倍。

Automation. Proceedings of the Workshop on IEEE1588,

3)

提高调节包发送频率减少晶体误差累积程度。

2003.

参考文献

10

Eidson

J

C,

Bruce

Hamilton,

IEEE-1588

Node

11

Synchronization

Improvement

by

High

Stability

1

Kannisto J, Vanhatupa T, Hannikainen M, et al. Local and

Oscillators. Proceedings of the Workshop on IEEE1588.

Metropolitan Area Networks, The 14th IEEE Workshop on.

September 24, 2003.

2005, 6.

桂本烜, 冯冬芹, 褚健, . 工业仪表与自动化装置,

2

Ferrari P, Flammini A, Marioli D, et al. Instrumentation

12

2006, 4: 20–23.

and Measurement Technology Conference, 2006. IMTC

GUI Benxuan, FENG Dongqin, CHU Jian, et al.

2006.Proceedings of the IEEE. 2006: 1926–1930.

Industrial Instrumentation & Automation, 2006, 4:20–23

3

IEEE std. 1588–2002 “IEEE-1588 stander for a precision

National Semiconductor, Application Note 1730

clock

synchronization

protocol

for

networked

DP83640 Synchronous Ethernet Mode: Achieving

measurement and control systems.”, 2002.

Sub-nanosecond Accuracy in PTP Applications. 2007.

4

徐强, 汪芸. 计算机应用与软件 2007 24(9): 54–56.

Amethod of high accuracy clock synchronization by frequency followingwith VCXO

MA Yichao

WU Jie

ZHANG Jie

SONG Hongzhi

KONG Yang

(FastElectronics Laboratory, Department of Modern Physics, University ofScience and Technology of China, Hefei 230026, China)

Abstract Inthis paper, the principle of the synchronous protocol of the IEEE1588is analyzed, and the factors that affect the accuracy ofsynchronization is summarized. Through the hardware timer in amicrocontroller, we give the exactly the time when a package is sentor received. So synchronization of the distributed clocks can reach 1µs in this way. Another method to improve precision of thesynchronization is to replace the traditional fixed frequency crystalof the slave device, which needs to follow up the master clock, by anadjustable VCXO. So it is possible to fine tune the frequency of thedistributed clocks, and reduce the drift of clock, which shows greatbenefit for the clock synchronization. A test measurement shows thesynchronization of distribute clocks can be better than 10 ns usingthis method, which is more accurate than the method realized bysoftware.

Keywords PTP,Synchronization, Frequency synchronization, VCXO, Sensor network,Distributed data acquisition CLC TN393


file:///D|/我的资料/Desktop/新建文本文档
.txt

ApplianceError (configuration_error)

Yourrequest could not be processed because of a configuration error:"Could not connect to LDAP server."

Forassistance, contact your network support team.

file:///D|/我的资料/Desktop/新建文本文档.txt2012-07-12
20:42:52

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dcrkj.com 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务