1、 南 京 林 业 大 学 论文题目: 基于 IEEE 1588 协议的时间同步系统研究 作 者: 邹磊 专 业: 测试计量技术及仪器 研究方向: 智能仪器仪表 指导教师: 周国平 副教授 二 一二 年 六 月 分类号 TQ041 TM930 学位代码 309 308 密 级 GK GK 学校代码 10298 10298 学 号 3090224 研 究 生 硕 士 学 位 论 文 致谢 至此,我的论文工作已经接近尾声,同时也意味着我的硕士研究生的生活也快结束了。回想起这三年来 硕士生活中的酸甜苦辣,心中不免感慨万分。在这三年的硕士生活中,我的老师、同学、朋友和家人无论是生活上还是学习上都对我给予
2、了莫大的关心与帮助,论文得以顺利完成与他们的支持是分不开的,籍此机会,谨向他们表示衷心的感谢。 首先要感谢我的导师周国平老师。周老师严谨的治学态度、一丝不苟的工作精神给了我极大的启迪和感染,为我树立了榜样。在毕业设计上给予了我许多宝贵的指导意见,并不辞辛苦的帮我修改了论文。非常感谢周老师! 感谢我的师兄师弟以及我的舍友,有他们的陪伴才使我三年的硕士生活变得更充实更有意义。 再要感谢我的父母 ,你们总是一如既往地、默默地、无私地在背后支持我、鼓励我,使我脚踏实地的做人、做事和学习。 最后,衷心地感谢从百忙之中抽出宝贵时间评审本论文的各位专家、学者。 摘要 随着网络技术的发展,分布式控制系统越来越
3、多地应用在通信、导航和电力等领域。时钟同步是分布式控制系统的基础,且随着系统的复杂程度和数据交换速度的增加,其对时钟同步精度的要求越来越高。本文通过比较现今各种时钟同步方法的优劣,选择了基于 IEEE 1588 协议的高精度网络时间同步方法作为研究对象,设计了一套主从时钟时间同步系统,为以后时钟同步领域的研 究与探索提供了一定的参考价值。 首先,论文详细介绍了 IEEE 1588 协议的同步原理、时钟类型、关键技术、网络报文等方面,从理论上阐述了 IEEE 1588 协议。然后,通过对大量有关 IEEE 1588 协议资料的分析与研究,提出了 LPC1768+DP83640 的 IEEE 15
4、88 硬件实现方案。接着,选择 C/OS-II 嵌入式操作系统来管理各个任务,并完成了其在LPC1768 上的移植。另外,移植了轻量级的网络协议栈 (Lwip)作为 IEEE 1588 网络通信的基础。最后重点设计了 IEEE 1588 的软件部分,包括: GPS 串口信息的解析、时间值的相互转换、 DP83640 中时间戳的提取以及 PTP 网络报文的服务器和客户端的通信程序等。 通过实验室模拟环境对主从时钟之间的时间同步性能进行了测试。实验结果表明:时钟同步误差为 150ns 达到了次微秒级精度,可满足大多数分布式测控系统对高精度时钟同步的要求,具有较好的应用前景。 关键词 : IEEE
5、1588 标准 ;时钟同步 ;C/OS-II;Lwip; The Research of Time Synchronization System Based on IEEE 1588 Abstract With the development of network technology, distributed control systems are increasingly used in communications, navigation and electric power. Clock synchronization is the basis of distributed contr
6、ol systems.With the complexity of the system and data exchange speed increasing, the demand of clock synchronization precision becomes higher.Comparing with the various methods of clock synchronization,the IEEE 1588 high-precision network time synchronization method is determined as the papers study
7、.In this paper,a master-slave clock time synchronization system is designed.This system will provide some reference value for the future research and exploration of clock synchronization field. Firstly,the synchronization principles of the IEEE 1588 protocol , clock type, key technologies and networ
8、k packets are all introduced in detail.These are the theoretical part of the IEEE 1588 protocol. Secondly, through the analysis and research of the material for the IEEE 1588 protocol , the LPC1768 + DP83640 hardware implementation about IEEE 1588 is designed in the paper. Then, C/OS-II, embedded op
9、erating system,is selected to manage the various tasks, and it is migrated to the LPC1768. In addition, a lightweight portable network protocol stack (Lwip) is migrated to operating system as the basis of IEEE 1588 network communications. Finally,the design of the IEEE 1588 software is a key point i
10、n the paper. the IEEE 1588 software includes: the analysis of GPS serial port information, the conversion of different time value, DP83640 timestamps extraction and the PTP network packet communication procedures of server and client. Through the time synchronization performance test between master-
11、slave clock in the laboratory simulation environment,The results show that the clock synchronization precision is sub-microsecond,meeting the requirement of high precision of clock-synchronizing in most distributed measurement and control systems,and there would be a brighter propesct by applying it
12、 into pratice. Key Words: IEEE 1588 standard; clock synchronization; C/OS-II; Lwip; I 目 录 第一章 绪论 . 1 1.1 引言 1 1.2 现有时间同步方法的比较 1 1.3 国内外发展现状 2 1.3.1 国外应用状况 2 1.3.2 国内应用状况 2 1.4 研究的目的和意义 2 1.5 本论文的组织结构 3 第二章 IEEE 1588 标准时间协议的分析 . 4 2.1 IEEE 1588 协议简介 . 4 2.2 IEEE 1588 同步原理 . 4 2.3 IEEE 1588 时钟类型 . 5 2
13、.4 IEEE 1588 协议的关键技术 8 2.4.1 最佳主时钟算法 8 2.4.2 PTP 状态机 11 2.5 PTP 报文 14 2.5.1 PTP 系统的数据类型 14 2.5.2 PTP 报头的封装格式 15 2.5.3 PTP 报文的封装格式 17 2.5.4 PTP 报文传输的承载方式 18 2.6 本章小结 19 第三章 PTP 节点的硬件设计 20 3.1 硬件系统的总体方案 . 20 3.2 主要电路的介绍 20 3.2.1 电源电路 . 20 3.2.2 串口通信电路 21 3.2.3 网络接口电路 21 3.2.4 DP83640 的电路 . 22 3.3 主芯片的
14、选型 23 3.4 DP83640 分析与研究 23 3.4.1 物理层芯 片的选择 23 3.4.2 DP83640 简介 23 3.4.3 DP83640 中有关的 IEEE 1588 因素 24 3.5 RMII 接口 26 3.5.1 MII 接口 26 3.5.2 MII 接口分类 . 26 II 3.5.3 RMII 接口 27 3.5.4 MDIO 口的管理数据帧 28 3.6 本章小结 28 第四章 嵌入式操作系统的移植 29 4.1 实时嵌入式操作系统 . 29 4.2 C/OS-II 简介 29 4.3 选择 C/OS-II 的原因 29 4.4 C/OS-II 在 LPC
15、1768 上的移植 30 4.4.1 C/OS-II 的移植条件 . 30 4.4.2 C/OS-II 的文件结构 31 4.4.3 应用相关的配置文件 32 4.4.4 OS_CPU.H 文件的编写 . 32 4.4.5 OS_CPU_C.C 文件的编写 . 33 4.5 本章小结 38 第五章 嵌入式网络协议栈的移植 39 5.1 标准的 TCP/IP 模型 . 39 5.2 轻量级 TCP/IP 协议栈和标准 TCP/IP 协议栈比较 . 40 5.3 Lwip 的简介 . 40 5.4 UDP 协议分析与实现 . 41 5.4.1 UDP 封装格式 41 5.4.2 端口和套接字 41
16、 5.4.3 UDP 协议的实现 42 5.5 IP 协议分析与实现 . 42 5.5.1 IP 封装格式 42 5.5.2 IP 协议的实现 44 5.6 Lwip 的移植 . 45 5.6.1 与 CPU 或编译器的相关部分 45 5.6.2 与操作系统 C/OS-II 相关的函数 . 45 5.6.3 Lwip 的网络接口 . 46 5.7 本章小结 . 49 第六章 PTP 节点的软件设计 50 6.1 本系统的开发环境 50 6.2 整体的软件结构 51 6.3 系统软件各部分的设计与实现 52 6.3.1 串口时间信息的解码 . 52 6.3.2 PTP 系统中的时间转换 54 6
17、.3.3 DP83640 中 PTP 时间值 . 55 6.3.4 IEEE 1588 网 络通信程序设计 56 III 6.4 本章小结 . 59 第七章 IEEE 1588 时间同步性能测试 60 总结与展望 . 65 参考文献 . 67 附录 69 1 第一章 绪论 1.1 引言 时间同步的目的是维护一个全局一致的物理时钟或逻辑时钟,使得系统中的信息和事件有统一的时间解释。随着电力、电信、测试与测量、工业自动化控制、网络传感器 等分布式系统的发展,时钟同步变得越来越重要。此时,如果不能保证高精度的时间同步,系统就难以进行协调、管理和控制。特别是在网络化的分布式控制系统中,考虑到调度和控制
18、的实时性,对时间同步的精度要求就更为严格。 目前,越来越多的分布式系统以以太网为构建基础。但是,庞大的网络系统在复杂的环境下往往存在计算机本地时钟漂移、网络线路延时不稳定、时钟同步精度低和同步能力差等因素。因此,研究和寻求一种针对基于以太网的分布式应用系统的时钟同步方法就成为亟待解决的问题,而能够实现高精度的时钟同步将具有较大的意义和应用价值。 1.2 现有时间同步方法的比较 目前主要的时间同步方式有以下四种: 脉冲同步 1(包括秒脉冲、分脉冲、时脉冲 )。利用 GPS、 BD 等时钟源输出的脉冲进行时间的同步校准。 编码同步。编码时间信号有多种,国内常用的有 IRIG 和 DCF77 两种。
19、 IRIG串行时间码共有 6 种格式,即 A, B, D, E, G, H。其中 B 码应用最为广泛。编码同步就是将时钟源的时间信息经过编码 ,然后传送至各个时钟信息的接收端,进行时间的同步校准。 串口方式同步。利用串行口输出的时间信息进行同步校准。串口校时的时间报文包括年、月、日、时、分、秒 ,也可包含用户指定的其他特殊内容,例如接收 GPS 卫星数、告警信号等,报文信息格式为 ASCII 码或 BCD 码或十六进制码。 网络方式同步。例如网络时间协议 (NTP)、简单网络时间协议 (SNTP)以及精确时间同步协议 (PTP),就是将时钟源的时间信息以以太网包的形式传送至各个时钟信息的接收端
20、,进行时间的同步校准。 以上几种方式都有其待改进之处。第 1 种方式虽然精度很高 ,但没有具体的时间信息且精度受传输距离的影响,每米的传输延迟时间在 3.33 纳秒左右。第 2种方式虽然与第一种方式一样精度很高 ,但所含时间信息较少,传输 距离也有限 ,传输距离越长则精度越差。第 3 种其精度受传输的波特率的影响,且传输距离也有限。第 4 种网络时间报文同步方式是目前时间同步系统的发展趋势 ,不存在前 3种方式的局限 ,但是由于以太网传输过程中存在延时的不确定性 (例如交换机交换延时、设备响应时间同步报文延时等 ),精度不能满足电力系统所有的业务需求 ,2 据调研 ,目前的 NTP 和 SNT
21、P 在局域网中可以达到 1 ms 的精度 ,在广域网中只能达到几十毫秒的精度。而 IEEE 1588 精确时间同步协议能够达到次微秒级的精度,因此能够很好的满足于现今分布式控制系统对时间同步精度的要 求。 1.3 国内外发展现状 1.3.1 国外应用状况 国外许多组织都己经决定将 IEEE 1588 协议用于其基于现场总线的以太网络中。 2003 年 ODVA(开放式网络设备供应商协会 )计划在其实时控制应用的通用工业协议 CIP(Common industrial Protocol)中加入时间同步。 EPSG(Ethernet Power link 标准联盟 )己经计划将 IEEE 1588
22、 协议作为 EPL(Ethernet Powerlink)第三版本的固定内容 2。 工业应用上也较早的采用了 IEEE 1588 协议。特别是在自动控制和数据采集领域已经有所收获。 Rockwell Automation 公司也在其开发的分布式控制系统样机中使用了 IEEE 1588。 symmetricom 公司生产的一种涡轮机控制系统,板上安装的精确时钟采用了 IEEE I588 协议通过以太网与系统主时钟同步,并进行相关控制以及采样。该公司基于 IEEE 1588 V2 协议生产的 IEEE 1588 Servers 、 IEEE 1588 Clients 以及 TC100 网络交换机等
23、一系列产品,其同步精度优于 30ns。 1.3.2 国内应用状况 国内方面,对 IEEE I588 协议的研究比国外要晚,还未有相关的工业应用实例。国内支持 IEEE 1588 协议的相关产品主要以中国科学院国家授时中心自主研发的 NT-1588 时间同步系统为主。其主钟和辅钟在 2、 3 级普通交换机下测试同步精度优于 1 微秒。其次是上海奇微公司的 Keywie IEEE 1588 V2 主从时钟 , 支持 IEEE 1588 V2 版本,其主从时钟直接相连的同步精度优于 50ns。 由此可知,国内对 IEEE 1588 的研究尚处在理论阶段,真正对 IEEE 1588 的硬件实现还比较少
24、,且还不能够 将 IEEE 1588 协议很好的应用到电力系统、通信系统等领域当中。特别是现在数字化变电站对时间同步精度的要求越来越高,能够将 IEEE 1588 高精度时间同步协议很好的应用于数字化变电站的通信体系结构当中是当下研究的热点课题。 1.4 研究的目的和意义 国内能够生产关于 IEEE 1588 高精度时间协议的时间同步产品的厂家寥寥无几,大部分人对 IEEE 1588 的研究尚处在理论阶段。由于 IEEE 1588 高精度网络时间对时是以后时间同步方式中的趋势,因此,对 IEEE 1588 高精度时间协议的具体硬件实现 并能够成功的应用于分布式网络当中是目前研究人员的共同愿望。
25、 本课题研究的目的在于通过对 IEEE 1588 高精度时间协议的理论分析,运用3 ARM+DP83640 的方法,对 IEEE 1588 时间节点进行具体的硬件实现,并将其产品化,提高性价比,且能够成功的应用到数字化变电站等自动化系统当中,这对IEEE 1588 的实际应用有一定的意义。 1.5 本论文的组织结构 本文研究了一种基于物理层打时间戳来实现 IEEE 1588 时间同步通信的方法,其论文的组织结构安排如下: 第一章:通过比较现有各时间同步方法的优 劣,阐述了 IEEE 1588 的优势并分析了 IEEE 1588 国内外的研究状况,表明了本课题的目的与意义。 第二章:通过详细研究
26、了 IEEE 1588 的同步原理、时钟模型、关键技术以及网络报文等关键理论内容,为 IEEE 1588 的软硬件实现打下了基础。 第三章:设计了 LPC1768+DP83640 的 IEEE 1588 节点的硬件电路。 第四章:实现了 C/OS-II 在 LPC1768 上的移植,为 IEEE 1588 节点的软件设计提供了系统支持。 第五章:实现了 Lwip 在 C/OS-II 上的移植,为 IEEE 1588 节 点的通信提供了网络支持。 第六章:编写了 IEEE 1588 节点的应用程序,实现了 IEEE 1588 节点服务器和客户端之间的网络通信。 第七章:测试本设计的 IEEE 1
27、588 时钟节点的同步性能。 最后是全文的总结 ,并指出了今后需要完善和努力的地方。 4 第二章 IEEE 1588 标准时间协议的分析 2.1 IEEE 1588 协议简介 IEEE 1588 最初由 Agilent Laboratories(安捷伦实验室 )的 John Eidson 以及来自其它公司和组织的 12 名成员开发,后 来得到 IEEE 的赞助,并于 2002 年 11月得到 IEEE 批准,正式形成了 IEEE 1588 标准。 IEEE 1588 精确时间同步协议(Precision Time Protocol 即 PTP),借鉴了前面的 NTP 和 SNTP 技术通过迭代
28、消除了往返的路径延时 ,而且利用以太网物理层 (PHY 层 )打时间戳技术 ,消除了设备响应时间同步报文的不确定延时 ,可以达到次微秒级的同步精度。因此 ,很大程度地提高了时间同步精度。其高精度和较低的开销为在时间同步系统中的应用提供了现实可行的途径。 2008 年提出了 IEEE 1588 的改进版 本即 IEEE 1588 V2 版本。 IEEE 1588 V2对 02 年的 IEEE 1588 协议有了比较大的改进,归纳之其主要体现在两个方面:第一:在信息包中增加了时间修正域的概念。第二:增加了透明时钟模型。 IEEE 1588 V2 进一步提高了时间同步的精度,且对网络连接设备提出了一
29、个新的解决方案,从而使网络连接设备变得更加容易实现。 2.2 IEEE 1588 同步原理 IEEE 1588 协议的时间同步是通过主从时钟之间相互发送报文来完成的。其时钟同步的过程可分为两个阶段:偏移测量阶段和延时测量阶段 3456。 (1)偏移测量阶段 偏移测量是指测量主时钟与从时钟之间的时间偏移量,并在从时钟上消除这些偏移。在偏移测量阶段中,主时钟首先采用多播方式周期性 (缺省值为 2s)的发出同步报文 (Sync 报文 )给从时钟,该同步报文中包含同步报文离开主时钟 PTP端口时间戳的估计值,也可以不包含。然后紧接着发出跟随报文 (Follow_Up 报文 )给从时钟,该报文中包含同步
30、报文发出时的精确时间戳值。从时钟接收同步报文并记下接收的时间戳值。 (2)延时测量阶段 延时测量阶段用于确定主、从时钟间帧传输过程中的网络延时。从 时钟采用单播方式发出延迟请求报文 (Delay_Req 报文 )给主时钟,并记下发出的时间戳值。主时钟收到延迟请求报文后,记下接收的时间戳值,并随之产生延迟请求响应报文 (Delay_Resp 报文 )反馈给从时钟,该报文包含延迟请求报文的接收时间戳值。 最后从时钟根据这四个记录的时间值由同步算法计算出与主时钟的时间偏差,从而根据时间偏差来调整从时钟的本地时间,以实现和主时钟的时间同步。如图 2.1 所示,主从时钟之间在第 k 次同步时,主时钟发出
31、同步报文时的时间值用 Tmk 表示,从时钟接收到同步报文时的时间值用 Tsk 表示,从时 钟发出延迟请求报文时的时间值用 Ts(k+1)表示,主时钟接收到延迟请求报文时的时间值用5 Tm(k+1)表示。在 PTP 协议中,为了防止报文发送时产生碰撞,因此,在从时钟接收到跟随报文后并不是立即发送延迟请求报文,而是随机的等待一段时间即图中的 tsq,与 tsq 对应的主时钟的时间为 tmq。 Toffset 表示主从时间的时间偏差, Tdelay 表示报文传输过程中的延迟时间,由图 2.1 可得以下方程组: )()( 1kmd e l a yo f f s e t1ksskd e l a yo f
32、fs e tmk TTTT TTTT (2-1) 从而解得的 Toffset 和 Tdelay 的值分别为: 2 TTTTT 1ks1kmskmko ffs e t )()( (2-2) 2 TTTTT 1ks1kmmkskd e l a y )()( (2-3) 因此可以根据上面的公式 算出偏差值,以实现主从时钟的偏差补偿。 图 2.1 主从时钟的同步过程图 2.3 IEEE 1588 时钟类型 IEEE 1588 标准规定了三种时钟:普通时钟、边界时钟和透明时钟。 (1)普通时钟 普通时钟是指网络中一般的 PTP 节点,该节点可以是主时钟也可以是从时钟。在实际应用中,电信网中的基站,或者工
33、业自动化网络中的测量仪器都可以作为 PTP 系统中的普通时钟。 (2)边界时钟 边界时钟一般安装在路由器、交换机等具有数据接收转发功能的网络设备之6 上。当主从时钟之间距离较长时,则易受网络波动的影响从而 产生很大的非对称性误差,这将严重影响时钟同步的精度。边界时钟的引入是为了在物理上将某个大型网络分割成若干个小的子网,改善网络的拓扑结构,从而降低非对称性对时钟同步精度的影响。 边界时钟带有多个 PTP 端口,可以连接多个 PTP 节点,若某个端口连接着主时钟,则该端口表现为从时钟的属性 .反之,若某个端口连接着从时钟,则该端口表现为主时钟的属性。在主从时钟之间布置若干个边界时钟,逐级同步,边
34、界时钟既是上级时钟的从时钟,也是下级时钟的主时钟,由不同的端口来实现主从功能。 (3)透明时钟 78 透明时钟和边界时钟一 样也是用在距离较长的主从时钟之间,改善网络拓扑结构,减少网络抖动的影响,其概念是 IEEE 1588 V2 版本提出的。透明时钟又分为:端到端透明时钟 (E2E)和点到点透明时钟 (P2P)。 1.E2E 透明时钟 E2E 透明时钟像一个普通的桥、路由器或中继器那样转发所有的消息。而对于 PTP 事件消息,其则会测量消息穿越透明时钟时所需要的时间即驻留时间。这个时间会写入到这个 PTP 事件消息或者其后续消息 (Follow_Up 消息 )的特定字段 correction
35、Field(时间修正域 )中。从时钟做同步校正时,会根据 correctionField字段中的值修改时间。 图 2.2 E2E 透明时钟 如图 2.2 所示,总的驻留时间 T 为: T=(t2-t1)+(t4-t3)+(t6-t5) (2-4) 这个总的驻留时间保存到 correctionField 字段中,主从时钟之间的同步消息穿过透明时钟,完成一次同步传递之后,可得到时间偏差为: Offset=t7-t0-Delay-correctionField (2-5) 其中路径延时 Delay 在延时测量阶段得到。 2.P2P 透明时钟 E2E 透明时钟只测量 PTP 事件消息穿越它的时间。 P
36、2P 透明时钟除此之外 ,还计算每个端口和与它分享这条链接的另一端 (也要支持 P2P 透明时钟 )的链路延迟。 P2P 透明时钟使用对等延迟机制测量端口与端口之间的链路延迟,如图 2.37 所示 : 图 2.3 对等延迟机制 含有 P2P 的链路不再发送 Delay_Req 和 Delay_Resp,代替它们的是 Pdelay_ Req、 Pdelay_Resp 和 Pdelay_Resp_Follow_Up。链路中的所有 P2P 没有主从之分,只是分别扮演请求者和响应者的角色。 P2P 透明时钟只能与支持对等延时机制的时钟进行同步。图 2.3 中,端口 A 在 t1 时刻发送 Pdelay
37、_Req 消息,端口 B 在 t2时刻收到该消息。端口 B 紧接着在 t3 时刻发送 Pdelay_Resp 消息,并将 t2 的时间值传给 A 端口。 Pdelay_Resp_Follow_Up 消息则是记录的 Pdelay_Resp 消息离开B 端口的精确时间, Pdelay_Resp 消息到达 A 端口的时间为 t4。假设端口 A 和端口 B 的传输时间 是对称的,也就是 tAB 和 tBA 是相等的,则可计算出传输延迟Delay。 Delay=(t2-t1)+(t4-t3)/2 (2-6) 对于 PTP 时间消息, P2P 透明时钟只更正和转发 Sync 和 Follow_Up 消息。
38、这些消息中的 correctionField 字段会被 Sync 消息的驻留时间和链路延迟时间更新。 图 2.4 P2P 透明时钟 如图 2.4 所示总的驻留时间 TA 仍为: 8 TA=(t2-t1)+(t4-t3)+(t6-t5) (2-7) 各段路径的延迟之和 TB 为: TB=tD1+tD2+tD3+tD4 (2-8) 因此,主时钟与从时钟之间同步一次之后,从时钟得到的时间偏差为 Offset=t7-t0-Delay-correctionField (2-9) correctionField 包括路径延时、驻留时间,也就是 TA 和 TB 的和。 透明时钟与边界时钟的不同之处在于透明时
39、钟提高了时钟同步的质量。其模型的建立使得网络连接设备对 PTP 事件信息包的处理变得简单、易于实现 ,降低了 PTP 协议的实施难度。而且同步域中的所有设备都是直接与最佳主时钟进行同步 ,不再需要边界时钟式的逐级时钟传递 ,减小了误差 ,提高了同步精度。在实际的应用之中 ,透明时钟模型将逐渐地取代边界时钟模型 ,成为网络连接设备的主要解决方案。 2.4 IEEE 1588 协议的关键技术 2.4.1 最佳主时钟算法 最佳主时钟算法决定 PTP 系统所有的时钟当中哪一个是最好的主时钟。该算法在 PTP 系统中每个时钟上独立地运行,不需要同系统中的其他时钟进行协商。最佳主时钟算法包含两部分 9,一
40、部分是数据集比较算法 (DCA),另一部分是状态决定算法 (SDA)。 (1)数据集比较算法 时钟数据集存在于每个时钟中以及收发的同步报文中。对于每个现场设备时钟来说,时钟数据集主要用于协议的决策以及对相关报文的数据域进行赋值。它是由若干成员项组成的集合,这些集合能够反映和时钟有关的很多 属性。 PTP 协议的时钟数据集包含 6 种数据集,分别是:缺省数据集、当前数据集、双亲数据集、全局时间属性数据集、端口配置数据集、外部主时钟数据集,下面分别对其进行简单的介绍。 1.缺省数据集:该数据集定义了本地时钟的一些固有属性,当本地时钟成为网络中的主时钟时需要使用此数据集中的相关属性。表 2.1 中列
41、出了数据集中的主要属性。 9 表 2.1 缺省数据集中主要属性 2.当前数据集:用于保存时钟的本地时间同主时钟时间的偏移以及 PTP 消息在两个时钟之间的传播延迟。 3.双亲数据集:在某条通信路径上,若时钟为从时钟则该数据集保存了其 主时钟以及最高级时钟的一些属性值;如果该时钟在 PTP 系统中是最高级时钟,则该数据集保存的是本地时钟的一些属性值。 4.全局时间属性数据集:描述 PTP 时间与 UTC(世界协调时)时间的关系。 5.端口配置数据集:用于提供本地时钟网络通信端口的基本配置信息,包括端口状态、端口地址以及发送报文的序号,封装数据报文的时候往往需要使用此数据集。 6.外部主时钟数据集
42、:如果一条通信路径上有多个时钟在发送同步报文,那么除了该节点主时钟以外,其他发送同步报文的时钟都称为该时钟的外部主时钟。而外部主时钟数据集则保存外部主时 钟的一些属性信息。通过最佳主时钟算法的比较,如果外部主时钟中有比当前主时钟更准确的时钟,那么就选择这个外部主时钟作为该节点的主时钟。 数据集比较算法是两个数据集中属性之间的比较,这两个数据集可以是本地时钟缺省数据集和接收的同步报文数据集,也可以是接收到的两个同步报文数据集。现假设有两个数据集 A 和 B,则该比较 算法的流程如下: a)若 A 和 B 的最高级主时钟是同一个时间节点,即同步时间源相同则按图2.5 所示流程执行算法: 属性名 说
43、明 Clock_uuid_field 时钟标识域 Clock_stratum 时钟的层次 Clock_followup_capable 时钟是否能够发送跟随报文 Preferred 时钟是否优先考虑成为主时钟 Is_boundary_clock 时钟是否为边界时钟 Sync_interval 时钟发送同步报文的间隔 Subdomain_name 时钟所处子域的名称 Number_ports 时钟具有的 PTP 端口数目 10 开 始时 钟 到 最 高 级 主 时 钟 的通 道 数 是 否 相 等 ?是 否 由 同 一 个 P T P 时 钟发 送 的 消 息 ?最 高 级 主 时 钟 发 送
44、消 息的 序 号 是 否 相 等 ?本 地 时 钟 发 送 消 息的 序 号 是 否 相 等 ?YYNYN选 择 任 意 数 据 集结 束选 择 数 值 小 的 数 据 集Y选 择 数 值 大 的 数 据 集NN图 2.5 数据集比较算法 b)若 A 和 B 的最高级主时钟不是同一个时间节点,即同步时间源不同。数据集比较算法则比较两个最高级主时钟缺省数据集中的属性,且无论其它属性值如何,都假定 Preferred=ture 的时钟要好于 Preferred=false 的时钟。 (2)状态决定算法 状态决定算法是根据数据集比较算法的结果来决定当前 PTP 协议引擎应处的状态。假设 PTP 时钟
45、 C 的缺省数据集为 D,端口数目为 N,则状态决定算法执行流程为: a)某端口上使用数据集比较算法比较该端口收到的所有 Sync 消息,既包括主时钟发送的消息,也包括外部主时钟发送的消 息,把最好的消息标记为 Eabest那么时钟 C 一共有 N 个 Eabest。 b)比较这 N 个 Eabest,并把最好的一个标记为 Ebest。 c)若 D 数据集中的时钟等级在 1 或 2 层,则根据图 2.6 更新每个端口的状态。若不是则根据图 2.7 更新每个端口的状态。 11 开 始返 回D 属 性 值 优 于 Ea b e s t?端 口 进 入 主 时 钟 状 态 端 口 进 入 未 定 义
46、 状 态NY开 始返 回D 属 性 值 优 于 Eb e s t?Eb e s t属 性 值 = Ea b e s t?Ea b e s t属 性 值 优 于 Eb e s t?端 口 进 入 主 时 钟 状 态端 口 进 入 从 时 钟 状 态 端 口 进 入 被 动 状 态YYNNYN 图 2.6 状态决定算法 1 图 2.7 状态决定算法 2 2.4.2 PTP 状态机 PTP 状态机管理着所有状态的转换,其转换的发生是需要一定的条件的。在状态机管理中, 有两个关键因素,一个是 STATE_CHANGE_EVENT(状态改变事件 )的发生,另一个是时钟同步间隔。状态改变事件的发生一般是最
47、佳主时钟算法 (BMC)运行的结果,时钟同步间隔指的是主时钟端口相继发送两个 sync 报文的时间差。这个时钟同步间隔决定所有端口如何重新安排其端口状态。 PTP 时钟总共有以下几种状态: 12 1.PTP_INITIALIZING 初始化状态。处于该状态的时钟端口,表明时钟正在初始化本地数据集、硬件和通信属性。 2.PTP_FAULTY 故障状态。处于该状态的时钟端口,将停止 PTP 同步通信直至故障被清除。 3.PTP_DISABLED 失效状态。处于该状态的时钟端口,将不收发任何时钟报文。对于边界时钟,应该禁止处于该状态的时钟端口影响边界时钟的其它端口。 4.PTP_LISTENING
48、侦听状态。处于该状态的时钟端口,将会等待接收同步报文直至接收超时。 5.PTP_PRE_MASTER 预备主时钟状态。处于该状态的时钟端口,将会和处于 PTP_MASTER 状态端口的行为一样,不同之处在于其不会放置任何管理报文。 6.PTP_MASTER 主时钟状态。处于该状态的时钟 端口,将会作为一个主时钟来执行。它在同步报文发送时,会记录相应的时间戳。 7.PTP_PASSIVE 被动状态。处于该状态的时钟端口,将不发送任何报文。 8.PTP_UNCALIBRATED 未校准状态。当某个时刻端口检测到多个比自己更准确的时钟时,该端口则会通过最佳主时钟算法确定出一个最佳主时钟,在选择最佳主时钟的时候,该端口将会处于未校准状态。 9.PTP_SLAVE 从时钟状态。处于该状态的时钟端口,同步于被选择出来的主时钟。 由图 2.8 可知,各框表示 PTP 端口的状态,状态转换都是由各种事件 触发的。设备上电后,时钟系统将处于初始化状态,对本地时钟数据集以及通信设备进行初始化。完成初始化操作后,系统进入侦听状态,侦听网络上的 PTP 同步报文。为防止系统长期处于侦听状态,需要设定侦听定时器,如果定时器超时,系统则会自动进入到主时钟状态。若在侦听时收到同步报文,应该进行最佳主时钟算法,如果发现本地时钟系统是最优的,则它将进入预备主时钟状态。等待一段时间