邮局订阅号
:82-946
360元/年技
术
创
新数采与监测
《PLC技术应用200例》您的论文得到两院院士关注
时间同步在分布式数据采集系统中的实现
TheImplementationofthetimesynchronizationinthedistributeddatacollectionsystem
(空军工程大学
)徐锋樊晓光刘东
XUFengFANXiao-guangLIUDong
摘要:文中介绍了分布式数据采集系统中精确时间同步的实现方法以及相应的测试结果
。该设计方案以IEEE1588标准中的
精确时间协议(PTP)为基础,通过使用美国国家半导体公司生产的以太网物理层控制芯片DP83640,使得采用以太网架构的
分布式数据采集系统主从节点上的时钟达到精确的时间同步
。
关键词:精确时间同步;IEEE1588;DP83640
中图分类号:TP393文献标识码:A
Abstract:Theimplementationofprecisetimesynchronizationinthedistributeddatacollectionsystemandtestresultsisilluminated
inthisarticle.ByuseofDP83640EthernetPHYTERproducedbytheNationalSemiconductorcorporation,thedesignisbasedonthe
PreciseTimeProtocol(PTP)oftheIEEE1588standard,andfinallyimplementedtheprecisetimesynchronizationbetweenthemaster
clockandslaveclocksofthedistributeddatacollectionsystembasedonstandardEthernet.
Keywords:precisetimesynchronization;IEEE1588;DP83640文章编号:1008-0570(2009)11-
1-0091-02
1引言
分布式数据采集系统广泛应用于采集数据多、实时性要求
较高的现场测控领域。因此
,分布式数据采集系统中的一个关键
技术就是实现数据的同步传输。但由于网络传输延迟以及晶振
频率漂移的原因
,如果仅仅在系统启动时进行一次同步
,状态数
据的同步传输将会随着系统运行时间的增长而失步
,因而不能
够对系统的全局状态获得准确的掌握。
随着以太网技术逐渐应用于工业自动化测控领域
,2002年
国际电气和电子工程师协会
(IEEE)发布了
IEEE1588标准
,该标
准中的精确时间协议
(PreciseTimeProtocol,简称
PTP协议
)定
义了一个以太网模式下的时间同步协议
,主要应用在分布式测
量和控制系统中
,目的是提高工业以太网的实时性
,使运行于各
个独立测控节点上的时钟在系统范围内达到一个较高的同步
精度。
本文以
IEEE1588标准中的
PTP协议为基础
,通过使用以
太网物理层控制芯片
DP83640,在分布式数据采集系统中实现
了精确的时间同步。
2分布式数据采集系统概述
图
1分布式数据采集系统结构图
分布式数据采集是带传感器的多个微计算机节点借助现场总线或工业以太网连接在一起的分布式工业测控系统。传感
器采用输出温度、压力、流量、位移等模拟量
,再通过模数转换所
生成数字量并由微计算机独立地进行处理
,最后将局部的处理
结果传输到总控单元上进行集中分析处理并得出全局状态的
实时信息。拓扑结构如图
1所示。
3IEEE1588标准和PTP协议概述
IEEE1588标准的技术基础最初来源于安捷伦公司
,是由安
捷伦实验室的
JohnC.Edison以及来自其它公司和组织的
12
名成员共同研究的。经过多次修改后于
2002年由国际电气和
电子工程师协会
(IEEE)正式发布。
IEEE1588标准全称是
:网络测
量和控制系统的精密时钟同步协议标准。它定义一种在分布式
测量和控制系统中实现高精度时钟同步的精确时间协议
PTP。
该协议能够在所有支持多播的网络上实现
,特别适合于以太网
,
但并不局限于以太网
,目的是使分布式网络中的所有时钟保持
精确的同步。
PTP协议是一个关于时钟同步的协议标准
,它被应用于由
多个节点组成的分布式系统中
,在系统中每个节点代表一个独
立运行的时钟。
PTP协议将整个网络内的时钟分为普通时钟
(ordinaryclock)和边界时钟
(boundaryclock),而从通信关系上看
又可把时钟分为主时钟
(masterclock)和从时钟
(slaveclock),整个
系统中的最优时钟为最高主时钟
(grandmasterclock),系统只能
有一个最高主时钟
,而一个
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的
S3C2440AARM微处
理器
,以太网控制器选用
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)最佳主时钟算法
(bestmasterclock)模块
:实现最佳主时钟
算法的功能
,根据网络拓扑结构
,决定各个子网中的主时钟
,然后
在此基础上求得整个系统上的最高主时钟。
(3)报文封装模块
:用于向
PTP协议报文中获取或填写相关
数据。
(4)网络层模块
:完成
PTP时钟之间的初始化连接、数据的
发送和接收、以及从协议报文中获取时间戳的功能。
(5)计时器模块
:为主时钟周期广播发送同步报文
,从时钟发
送延迟请求报文
,周期运行最佳主时钟算法
,以及同步报文接收
超时的情况提供时间参考标准。
以上
5个软件模块中最佳主时钟算法是整个
PTP协议层
的核心
,当各个时钟上独立运行该模块时
,便通过网络层模块接
收其它时钟发出的有效同步报文
,之后通过比较这些报文中的
数据集
(dataset)判断整个子网中谁是主时钟
,从而各个时钟根
据判断依据运行
PTP协议引擎模块完成端口状态的改变
,使本
地时钟端口处于从时钟或者主时钟状态
,其中计时器模块是
PTP时钟的时间参考依据
,PTP协议报文中的时间信息参照这
个计时器进行解算
,从而得出主从时钟偏差和网络传输延迟
,并
根据这两个值修正本的时钟
,使之与主时钟形成同步。
4.3测试结果
图
3主从时钟同步测试结果
(下转第
111页
)
92
--