时间同步在分布式数据采集系统中的实现
![时间同步在分布式数据采集系统中的实现](https://img.360docs.net/imgd6/06ffs6xfw0u6ttbd9nao-61.webp)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
邮局订阅号:82-946360元/年技术创新
数采与监测
《PLC 技术应用200例》
您的论文得到两院院士关注
时间同步在分布式数据采集系统中的实现
The Implementation of the time synchronization in the distributed data collection system
(空军工程大学)
徐锋樊晓光刘东
XU Feng FAN Xiao-guang LIU Dong
摘要:文中介绍了分布式数据采集系统中精确时间同步的实现方法以及相应的测试结果。该设计方案以IEEE1588标准中的精确时间协议(PTP)为基础,通过使用美国国家半导体公司生产的以太网物理层控制芯片DP83640,使得采用以太网架构的分布式数据采集系统主从节点上的时钟达到精确的时间同步。关键词:精确时间同步;IEEE1588;DP83640中图分类号:TP393文献标识码:A
Abstract:The implementation of precise time synchronization in the distributed data collection system and test results is illuminated in this article.By use of DP83640Ethernet PHYTER produced by the National Semiconductor corporation,the design is based on the Precise Time Protocol (PTP)of the IEEE1588standard,and finally implemented the precise time synchronization between the master clock and slave clocks of the distributed data collection system based on standard Ethernet.Key words:precise time synchronization;IEEE1588;DP83640
文章编号:1008-0570(2009)11-1-0091-02
1引言
分布式数据采集系统广泛应用于采集数据多、实时性要求
较高的现场测控领域。
因此,分布式数据采集系统中的一个关键技术就是实现数据的同步传输。但由于网络传输延迟以及晶振频率漂移的原因,如果仅仅在系统启动时进行一次同步,状态数据的同步传输将会随着系统运行时间的增长而失步,因而不能够对系统的全局状态获得准确的掌握。
随着以太网技术逐渐应用于工业自动化测控领域,2002年国际电气和电子工程师协会(IEEE)发布了IEEE1588标准,该标准中的精确时间协议(Precise Time Protocol,简称PTP 协议)定义了一个以太网模式下的时间同步协议,主要应用在分布式测量和控制系统中,目的是提高工业以太网的实时性,使运行于各个独立测控节点上的时钟在系统范围内达到一个较高的同步精度。
本文以IEEE1588标准中的PTP 协议为基础,通过使用以太网物理层控制芯片DP83640,在分布式数据采集系统中实现了精确的时间同步。
2分布式数据采集系统概述
图1分布式数据采集系统结构图
分布式数据采集是带传感器的多个微计算机节点借助现
场总线或工业以太网连接在一起的分布式工业测控系统。传感器采用输出温度、压力、流量、位移等模拟量,再通过模数转换所生成数字量并由微计算机独立地进行处理,最后将局部的处理结果传输到总控单元上进行集中分析处理并得出全局状态的实时信息。拓扑结构如图1所示。
3IEEE1588标准和PTP 协议概述
IEEE1588标准的技术基础最初来源于安捷伦公司,是由安捷伦实验室的John C.Edison 以及来自其它公司和组织的12名成员共同研究的。经过多次修改后于2002年由国际电气和电子工程师协会(IEEE)正式发布。IEEE1588标准全称是:网络测量和控制系统的精密时钟同步协议标准。它定义一种在分布式测量和控制系统中实现高精度时钟同步的精确时间协议PTP 。该协议能够在所有支持多播的网络上实现,特别适合于以太网,但并不局限于以太网,目的是使分布式网络中的所有时钟保持精确的同步。
PTP 协议是一个关于时钟同步的协议标准,它被应用于由多个节点组成的分布式系统中,在系统中每个节点代表一个独立运行的时钟。PTP 协议将整个网络内的时钟分为普通时钟(ordinary clock)和边界时钟(boundary clock),而从通信关系上看又可把时钟分为主时钟(master clock)和从时钟(slave clock),整个系统中的最优时钟为最高主时钟(grandmaster clock),系统只能有一个最高主时钟,而一个PTP 协议的通信子网中只能有一个主时钟,从时钟与主时钟保持同步。
PTP 协议在现有的UDP/IP 协议基础之上实现局域网架构内的时钟同步,有关同步信息的协议报文共有4种,分别是:同步报文Sync,跟随报文Follow_up,延迟请求报文Delay_req,延迟应答报文Delay_Resp 。
PTP 协议的同步过程分为两个阶段:偏移(offset)测量阶段和延迟(Delay)测量阶段。
偏移阶段的工作是修正主时钟和从时钟之间的时间偏差。
徐锋:硕士研究生
91--
技
术创新
《微计算机信息》(测控自动化)2009年第25卷第11-1期
360元/年邮局订阅号:82-946
《现场总线技术应用200例》
数采与监测
主时钟以固定的间隔时间(默认每隔2秒钟)周期地以多播方式向从时钟发出时钟同步报文。同步报文包括该报文何时在通信路径上出现的一个时间估计值TM1,从时钟测量接收的准确时
间是TS1。
随后主时钟发出跟随报文,该报文包含对应同步报文在通信路径上出现时间的更为精确的估计值。
从时钟根据这两个报文计算出与主时钟的时间偏差,然后用这个偏差值修正本地时钟。当忽略传输路径中的延迟,那么两个时钟就会同步,偏移量通过下列公式计算:
(1)
Toffset 是主从时钟的偏移量,Delay 是同步报文在通信路径上的传输延迟,在偏移测量阶段,报文传输延迟是未知量,这里假定传输延迟为0。
延迟阶段的工作是计算出主时钟和从时钟之间的传输延迟。从时钟向主时钟发出一个延迟请求报文,从时钟测得该报的发送时间是TS3,主时钟接收该报文后,立即将接收时刻的时间戳TM3填写到延迟应答报文并发回给从时钟。根据传递时间戳TS3和主时钟提供的接收时间戳TM3,就可以计算从时钟和
主时钟之间的延迟时间。
主时钟到从时钟的传输延迟根据上一次同步报文的发送来计算。传输延迟的计算公式为:
(2)
4系统原型设计及测试分析
从上文可以看出PTP 协议实现时钟同步的核心是获得包含同步信息的PTP 协议报文中的时间戳,也就是要获得接近报文在介质上收发真实时刻的时间信息,根据以太网报文传输的逻辑路径,PTP 协议可以在三个位置获取时间戳,分别是:MII 接口、网络驱动程序和网络应用层,这三个位置依次远离传输介质,由于收发PTP 协议报文并对它们进行处理都会增加同步误差,CPU 负载和与处理中断有关的时延都会影响处理同步请求的速度,因而大多数误差是由软件增加的。为了获得精确的时钟同步应选择硬件辅助方式,也就是从MII 接口处获得时间戳。MII 接口是MAC 层与PHY 层之间的通道,在此处获得的时间信息可以十分接近报文在介质上的真实收发时间,但通常的设计方案是使用FPGA 或者其它连接在MII 接口处专用电路获取时间戳信息,这类方法不足之处在于:一是增加的系统开发的成本的周期,另一方面无法满足极低的时钟抖动(jitter)。美国国家半导体公司最新生产的以太网物理层控制器DP83640整合了IEEE1588标准的三个关键性因素,分别是:IEEE1588同步时钟生成器;对时钟同步报文封装时间信息;通过GPIO 端口完成事件触发和加盖时间戳工作。使用DP83640可以使基于PTP 协议的分布式系统达到很高的同步精度。
4.1系统原型设计
在实现真正的分布式数据采集系统之前,需要构建一个类似的、基于PTP 协议的原型系统,利用物理层控制器DP83640,从而实现主从时钟同步达到几微秒甚至纳秒级的精度。为了降低网络传输负载引起的不确定延时,同时能够测量出同步的最高潜在精度,原型系统的拓扑结构暂时先选择最简单的点对点方式,之后再通过集线器Hub 逐渐增加时钟节点。每个节点上使用的核心处理器是主频为400MHz 的S3C2440A ARM 微处理器,以太网控制器选用DM9000,但不使用DM9000固有的物理层(PHY)控制器,而将其上的MII 接口与DP83640相连接,DP83640时间触发信号通过GPIO 总线与ARM 微处理器的外
部中断引脚相连。PTP 时钟节点的硬件模块如图2所示。
图2PTP 时钟节点的硬件模块
4.2PTP 协议层软件
PTP 协议层位于UDP 协议层之上,无论通过硬件辅助还是软件方式获取的时间戳都是通过PTP 协议层进行处理,根据IEEE1588标准中PTP 协议的规定,设计开发的协议软件包括了以下了几个部分:
(1)PTP 协议引擎(engine)模块:实现PTP 协议状态机(state machine)的功能,根据默认数据集的参数动态调整PTP 端口状态。
(2)最佳主时钟算法(best master clock)模块:实现最佳主时钟算法的功能,根据网络拓扑结构,决定各个子网中的主时钟,然后在此基础上求得整个系统上的最高主时钟。
(3)报文封装模块:用于向PTP 协议报文中获取或填写相关数据。
(4)网络层模块:完成PTP 时钟之间的初始化连接、
数据的发送和接收、以及从协议报文中获取时间戳的功能。
(5)计时器模块:为主时钟周期广播发送同步报文,从时钟发送延迟请求报文,周期运行最佳主时钟算法,以及同步报文接收超时的情况提供时间参考标准。
以上5个软件模块中最佳主时钟算法是整个PTP 协议层的核心,当各个时钟上独立运行该模块时,便通过网络层模块接收其它时钟发出的有效同步报文,之后通过比较这些报文中的数据集(data set)判断整个子网中谁是主时钟,从而各个时钟根据判断依据运行PTP 协议引擎模块完成端口状态的改变,使本地时钟端口处于从时钟或者主时钟状态,其中计时器模块是PTP 时钟的时间参考依据,PTP 协议报文中的时间信息参照这个计时器进行解算,从而得出主从时钟偏差和网络传输延迟,并根据这两个值修正本的时钟,使之与主时钟形成同步。
4.3测试结果
图3主从时钟同步测试结果
(下转第111页)
92--