以下是基于 Imsys、Systronix 和 IEEE 1588 主席 John Eidson 在 2007 年的嵌入式系统会议 (ESC) 演示文稿中对精确时间协议的同步机制的简短技术描述。
IEEE 1588 的目的
该标准旨在实现或多或少复杂网络中分布式系统节点的同步。
IEEE 1588 的目标
- 网络分布式测量和控制系统组件中实时时钟的亚微秒同步
- 最初它旨在用于工业自动化和测试和测量环境中典型的相对本地化的系统,后来对其进行了修改,以在版本 2 中包含更复杂的环境。
- 适用于支持组播通信的局域网(包括但不限于以太网)。在版本 2 中,引入了使用单播通信的选项。
- 简单、免管理安装
- 支持具有不同精度、分辨率和稳定性的异构时钟系统
- 对网络和主机组件的资源要求最低。
IEEE 1588 同步原理
- 时钟层次结构建立,主从关系由多播同步消息确定
- 每个从站根据以下消息同步到其主站:Sync、Delay_Req、Follow_Up 和 Delay_Resp。
在单个子网上选择主时钟
- 基于时钟特性和网络拓扑的自配置
- 基于“同步”消息中包含的信息
- 所有时钟运行相同的“最佳主时钟”算法
- 启动时的时钟侦听时间 SYNC_RECEIPT_TIMEOUT
- 主时钟(处于 PTP_MASTER 状态的时钟)发出周期性的同步消息(周期称为 sync_interval)
- 主时钟可能会收到来自其他时钟(目前认为他们是主时钟)的同步消息,它称之为“外国主时钟”
- 每个主时钟使用最佳主时钟算法来确定它应该保持主时钟还是让给外部主时钟。
- 每个非主时钟使用最佳主时钟算法来确定是否应该成为主时钟
多子网同步
- 边界时钟用于对网络进行分段。它的下游端口成为子网的普通时钟主机,需要运行最佳的主机时钟算法。
- 边界时钟在内部选择将“最佳时钟”视为单个从端口的端口。此端口是所选上游子网中的从属端口。边界时钟的所有其他端口在内部同步到该从端口。
- 系统中最好的时钟是大师时钟。
IEEE 1588 时间尺度
- IEEE 1588 系统中的时基是大师时钟的时基,它决定了日期时间和计数率。
- 所有其他时钟(可能通过边界时钟)与主时钟同步。
- 大师时钟时基取决于实现和应用程序。
- 如果主时钟保持 UTC 时基,则 IEEE 1588 协议将闰秒信息分发给从属设备(如果可用)。
推荐阅读:时间服务器