IEEE1588精密时钟同步分析
时间:08-31
来源:互联网
点击:
测试与测量(Test and Measurement,T&M)的发展以测试总线的发展为标志。测试总线从GPIB到VXI再到PXI,测试仪器也由机架式发展到了插卡式。但是T&M对数据传输与处理综合要求的逐步提高使得这种发展已经远远不能满足人们的需求,于是以太网以其优秀的传输性能开始被广泛采用。
人们开始在测试与测量系统中直接接入以太网,然后使用GPIB、VXI或者PXI总线连接仪器,达到向远程地点传输数据或者从远程地点接收命令的目的。去年9月,Agilent公司和VXI科技公司联合推出了LXI(LAN?based eXtensions for Instruments),这是一种适用于测试系统的新一代基于LAN的模块化平台标准。LXI总线不受带宽、软件和计算机背板体系结构的限制,而且能利用日益增长的Ethernet吞吐能力。
LXI是一种基于网络的仪器接口规范,为实现各种终端设备之间的同步控制,采用了以太网的精密时间协议(Precision Time Protocol,PTP),即IEEE1588。IEEE1588定义了一个在测量和控制网络中,与网络交流、本地计算和分配对象有关的精确同步时钟的协议(PTP)。下面介绍这种精密时钟协议的体系结构、工作原理以及它的精度分析。
1 IEEE1588体系结构
1.1 关于精密时钟
一个1588精密时钟(PTP)系统包括多个节点,每一个都代表一个时钟,时钟之间经由网络连接。按工作原理,时钟可以分为普通时钟和边界时钟两种。二者的区别是普通时钟只有一个PTP端口,而边界时钟包括多个PTP端口。在网络中,每一个时钟都可能处于下面3种状态:从属时钟(SLAVE)、主时钟(MASTER)和原主时钟(PASSIVE)。每个时钟所处的状态是根据最优化的时钟算法决定的,图2IEEE1588的三层结构这些状态随着网络构造的改变而改变。
1.2 PTP参考体系结构
PTP体系结构的特别之处在于硬件部分与协议的分离,以及软件部分与协议的分离,因此,运行时对处理器的要求很低。事实上,下面可以看到,PTP的体系结构是一种完全脱离操作系统的软件结构。
PTP参考体系结构如图1所示。硬件单元由一个高度精确的实时时钟和一个用来产生时间印章的时间印章单元(TSU)组成。软件部分通过与实时时钟和硬件时间印章单元的联系来实现时钟同步。
图1同步元件组成框图
PTP这种体系结构的目的是为了支持一种完全脱离操作系统的软件组成模型,如图2所示。根据抽象程度的不同,PTP可分为3层结构: 协议层、OS抽象层和OS层。
协议层包含完成网络时钟同步的精密时钟协议,它能运用在不同的通信元件中(如PC、集线器、路由器等)。协议层中使用的仅仅是ANSI/ISO C中的保角函数(Conformal Functions),因此无需对不同平台的接口功能函数有很深的了解,就能很容易地移植该协议。协议层与OS抽象层之间的通信是通过一个序列和3个精确定义的接口实现的。
OS抽象层包含了基于操作系统的功能函数,

因此,这一层操作者必须掌握。这一层中包含PTP的3个通信接口:时间印章接口、时钟接口、端口接口。时间印章接口通过对Sync和DelayReq信号加盖时间印章来提供精密时钟协议,同时根据精度需要决定到底是硬件还是软件产生时间印章。产生“软件时间印章”的最好方法是依赖操作系统的NIC网络接口卡驱动,并且要在传输媒介中取得越近越好。通过时钟接口能够对本地时钟进行读和更改的操作,当然,这些操作是建立在熟知各类功能函数的基础上。该接口包含了与时钟同步质量(如精确度、稳定度等)密切相关的控制算法。端口接口用来分配/接收PTP信息。
这种模块化的软件平台在Windows与Linux中的应用是通过软件中的时间印章实现的。纯粹的软件实现也能达到大约100μs 的精确度,而且精确度很有可能达到小于10μs的精确度。
1.3 IEEE1588 与集线器
IEEE1588的精确度与所基于网络拓扑结构的偏移抖动(latency jitter)密切相关。测量时,点对点连接能提供最高的精确度,而Hub的使用会产生网络抖动(jitter)。当负载很低或者根本没有负载时第二层集线器(Layer 2 switches)的处理时间很短,一般是2μs"10μs外加信息包接收时间。但是,集线器是以序列的方式处理和储存数据,采取“存储-转发”方式进行数据交换的。因此仅仅一个序列的最大长度信息包就会给下面的信息包造成大约122μs的延迟,而且在高负载条件下,往往不止存在一个序列。
该协议的精确度的第二个问题是,(在下面的分析中可以看出)当考虑偏移(latency)的时候假设从主时钟到从属时钟以及从从属时钟到主时钟是完全对称的,很显然,在较高的网络负载中这一点几乎是无法保证的。
IEEE802.2D/p信息包的优先权(Prioritization)根本无法真正解决上述问题。因为在这种协议中,至少在同步信息包的前面必须有一个长信息包,因此,在传输的过程中就会产生122μs的抖动,而且一般在优先程序(priority scheduler)后面会存在一个有2到8个信息包的序列,而且还可能不止一个序列,这就意味着在重负载的条件下,将会存在360μs到1ms的抖动。 这个问题的解决方法是在集线器中使用IEEE1588边界时钟。这样就只存在点对点连接,在主时钟和从属时钟之间几乎不存在抖动,而且,集线器内部序列的延迟(抖动)(delay/jitter)也不会有任何关系了。在本文精度测试的试验中就是接入了边界时钟后进行的测试,如图3所示。
图3边界时钟的使用2IEEE1588的时间同步实现
同步过程分为两个阶段:偏移测量阶段和延迟测量阶段。
人们开始在测试与测量系统中直接接入以太网,然后使用GPIB、VXI或者PXI总线连接仪器,达到向远程地点传输数据或者从远程地点接收命令的目的。去年9月,Agilent公司和VXI科技公司联合推出了LXI(LAN?based eXtensions for Instruments),这是一种适用于测试系统的新一代基于LAN的模块化平台标准。LXI总线不受带宽、软件和计算机背板体系结构的限制,而且能利用日益增长的Ethernet吞吐能力。
LXI是一种基于网络的仪器接口规范,为实现各种终端设备之间的同步控制,采用了以太网的精密时间协议(Precision Time Protocol,PTP),即IEEE1588。IEEE1588定义了一个在测量和控制网络中,与网络交流、本地计算和分配对象有关的精确同步时钟的协议(PTP)。下面介绍这种精密时钟协议的体系结构、工作原理以及它的精度分析。
1 IEEE1588体系结构
1.1 关于精密时钟
一个1588精密时钟(PTP)系统包括多个节点,每一个都代表一个时钟,时钟之间经由网络连接。按工作原理,时钟可以分为普通时钟和边界时钟两种。二者的区别是普通时钟只有一个PTP端口,而边界时钟包括多个PTP端口。在网络中,每一个时钟都可能处于下面3种状态:从属时钟(SLAVE)、主时钟(MASTER)和原主时钟(PASSIVE)。每个时钟所处的状态是根据最优化的时钟算法决定的,图2IEEE1588的三层结构这些状态随着网络构造的改变而改变。
1.2 PTP参考体系结构
PTP体系结构的特别之处在于硬件部分与协议的分离,以及软件部分与协议的分离,因此,运行时对处理器的要求很低。事实上,下面可以看到,PTP的体系结构是一种完全脱离操作系统的软件结构。
PTP参考体系结构如图1所示。硬件单元由一个高度精确的实时时钟和一个用来产生时间印章的时间印章单元(TSU)组成。软件部分通过与实时时钟和硬件时间印章单元的联系来实现时钟同步。
图1同步元件组成框图
PTP这种体系结构的目的是为了支持一种完全脱离操作系统的软件组成模型,如图2所示。根据抽象程度的不同,PTP可分为3层结构: 协议层、OS抽象层和OS层。
协议层包含完成网络时钟同步的精密时钟协议,它能运用在不同的通信元件中(如PC、集线器、路由器等)。协议层中使用的仅仅是ANSI/ISO C中的保角函数(Conformal Functions),因此无需对不同平台的接口功能函数有很深的了解,就能很容易地移植该协议。协议层与OS抽象层之间的通信是通过一个序列和3个精确定义的接口实现的。
OS抽象层包含了基于操作系统的功能函数,

因此,这一层操作者必须掌握。这一层中包含PTP的3个通信接口:时间印章接口、时钟接口、端口接口。时间印章接口通过对Sync和DelayReq信号加盖时间印章来提供精密时钟协议,同时根据精度需要决定到底是硬件还是软件产生时间印章。产生“软件时间印章”的最好方法是依赖操作系统的NIC网络接口卡驱动,并且要在传输媒介中取得越近越好。通过时钟接口能够对本地时钟进行读和更改的操作,当然,这些操作是建立在熟知各类功能函数的基础上。该接口包含了与时钟同步质量(如精确度、稳定度等)密切相关的控制算法。端口接口用来分配/接收PTP信息。
这种模块化的软件平台在Windows与Linux中的应用是通过软件中的时间印章实现的。纯粹的软件实现也能达到大约100μs 的精确度,而且精确度很有可能达到小于10μs的精确度。
1.3 IEEE1588 与集线器
IEEE1588的精确度与所基于网络拓扑结构的偏移抖动(latency jitter)密切相关。测量时,点对点连接能提供最高的精确度,而Hub的使用会产生网络抖动(jitter)。当负载很低或者根本没有负载时第二层集线器(Layer 2 switches)的处理时间很短,一般是2μs"10μs外加信息包接收时间。但是,集线器是以序列的方式处理和储存数据,采取“存储-转发”方式进行数据交换的。因此仅仅一个序列的最大长度信息包就会给下面的信息包造成大约122μs的延迟,而且在高负载条件下,往往不止存在一个序列。
该协议的精确度的第二个问题是,(在下面的分析中可以看出)当考虑偏移(latency)的时候假设从主时钟到从属时钟以及从从属时钟到主时钟是完全对称的,很显然,在较高的网络负载中这一点几乎是无法保证的。
IEEE802.2D/p信息包的优先权(Prioritization)根本无法真正解决上述问题。因为在这种协议中,至少在同步信息包的前面必须有一个长信息包,因此,在传输的过程中就会产生122μs的抖动,而且一般在优先程序(priority scheduler)后面会存在一个有2到8个信息包的序列,而且还可能不止一个序列,这就意味着在重负载的条件下,将会存在360μs到1ms的抖动。 这个问题的解决方法是在集线器中使用IEEE1588边界时钟。这样就只存在点对点连接,在主时钟和从属时钟之间几乎不存在抖动,而且,集线器内部序列的延迟(抖动)(delay/jitter)也不会有任何关系了。在本文精度测试的试验中就是接入了边界时钟后进行的测试,如图3所示。
图3边界时钟的使用2IEEE1588的时间同步实现
同步过程分为两个阶段:偏移测量阶段和延迟测量阶段。
- 一种新型防伪读码器的设计(01-01)
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)
- 基于FPGA安全封装的身份认证模型研究(05-27)
- 高精度压力测控系统的试验研究(04-08)
