分布式数据采集系统中的时钟同步.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

分布式数据采集系统中的时钟同步

?引言

随着网络技术的发展,各种分布式的网络和局域网都得到了广泛的应用[1]。分布式数据采集系统广泛应用于船舶、飞机等采集数据多、实时性要求较高的地方。同步采集是这类分布式数据采集系统的一个重要要求,数据采集的实时性、准确性和系统的高效性都要求系统能进行实时数据通信。因此,分布式数据采集系统中的一个关键技术就是实现数据的同步传输。

由于产生时钟的晶振具有频率漂移的特性,故对于具有多个采集终端的分布式系统,如果仅仅在系统启动时进行一次同步,数据的同步传输将会随着系统运行时间的增长而失步。因此时钟的同步就是保证数据同步传输的关键所在。2002年提出的IEEE1588标准旨在解决网络的时钟同步问题。它制定了将分散在测量和控制系统内的分离节点上独立运行的时钟,同步到一个高精度和高准确度时钟上的协议。

由于分布式数据采集系统工作于局域网的环境中,于是借鉴IEEE1588标准中的思想,设计出一种针对基于局域网的分布式系统的时钟同步的机制,成功地在分布式数据采集系统中实现了μs级的同步。

1时钟同步原理及实现

时钟同步原理借鉴了IEEE1588协议中的同步原理。IEEE1588定义了一个在工业自动化系统中的精确同步时钟协议(PTP协议),该协议与网络交流、本地计算和分配对象有关。IEEE1588时钟协议规定,在进行时钟同步时,先由主设备通过多播形式发出时钟同步报文,所有与主设备在同一个域中的设备都将收到该同步报文。从设备收到同步报文后,根据同步报文中的时间戳和主时钟到从时钟的线路延时计算出与主时钟的偏差,对本地的时钟进行调整[2]。

系统由各个单元的系统控制板(简称“系统板”)来完成同步的工作。同步模型与IEEE1588时钟协议一致,采用主从结构。主从单元采用相同频率的晶振,此时时钟同步的关键就是解决时钟相位对准问题和时钟漂移的问题。

系统中采用的时间同步算法,是借鉴IEEE1588的同步原理,主要是采用约定固定周期同步的算法。和IEEE1588同步算法一样,同步过程分为两个阶段:延迟测量阶段和偏移测量阶段。下面以一主一从模式为例介绍其原理。

1.1延迟测量

延迟测量阶段用来测量网络传输造成的延迟时间[3]。定义一个延迟请求信息包(DelayRequestPacket),简称“Delay_Req”。延迟测量示意图如图1所示。

图1延迟测量示意图

为了简化程序,采用固定的周期测量网络延迟,一般系统每工作一个小时进行一次测量。从属时钟TSd时刻发出延迟请求信息包Delay_Req,主时钟收到Delay_Req后再立刻返回一个延时响应包delay_back发送给从属时钟,因此从属时钟就可以非常准确地计算出网络延时:

TM2→TS2∶Delay1=TS2-Offset-TM2TS3→TM3∶Delay2=TM3-(TS3-Offset)

其中的Offset为从时钟与主时钟之间的时间偏差。

因为网络延迟时间是对称相等的,所以:

Delay=(Delay1+Delay2)/2=((TS2-TM2)+(TM3-TS3))/2

需要说明的是,在这个测量过程中,假设传输介质是对称均匀的,且线路是对称的[4]。

1.2时钟修正

时钟修正用来修正主时钟和从属时钟的时间差。在这个时间修正过程中,IEEE1588中主时钟周期性地发出一个确定的同步信息包(Sync)(一般为每2秒1次),它包含一个时间印章(timestamp),精确地描述了数据包的发出时刻[3]。本案采用的简单同步模式,主要就是约定了同步修正包的发出时刻,整秒时刻,系统会在整秒时刻不做其他工作,这样就可以省掉IEEE1588中用于发送同步包预计发包时间的同步跟随包。

假设同步前主时钟的时间为发出时钟Tm1=2000s,而从属时钟的接收时间为Ts1=2001s。如果主从时钟是同步的,则同步的接收时钟是:Tm1+Delay=2000+0.5=2000.5。只需将时钟调整为2000.5,即Ts′=Tm1+Delay。

简易时钟同步的关键就在此。同步包内可包含主端发出的时刻。从端收到后,即可与测得的Delay相加为自己的该时刻时钟。

这里要说明的是:

①上式中的Delay就是主时钟与从属时钟之间的传输延迟时间,从上面的延迟测量阶段得到。

②如果收到的同步包信息出错,从单元可以根据自己的时刻,依据临近取整原则推知主端发出的整秒时刻时间,与接收包进行对比。因为时间偏移一般都在μs级,如果误差太大,则舍弃该包。

1.3同步实现

如图2所示,从端发出延迟统计包,主端反馈后,从端求得Delay。在每个整秒左右时刻收到同步包后,进行时钟修正,即从属时钟与主时钟实现了

文档评论(0)

xuan9872 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档