1、什么是PTP?
Precision Time Protocol (PTP) 习惯上使用 IEEE1588-2008版本,也是发布的第二个版本,不兼容之前的2002年的版本。
它描述了如何在基于数据包的网络(以太网)上分发时间消息(相位、频率和绝对时间)的一种机制,数据的传输和同步使用的是同一个网络。能够同步精度达到亚微秒的精度,能够通过BMCA(Best Master Clock Algorithm最佳主时钟算法)来确定时钟的等级。
2、相对于其他协议,为什么使用PTP协议?
①、为什么比PPS(Pulse Per Second 秒脉冲)好?
PPS需要专用的PPS同步网络,所经过的路径延时需要手动人为的设置,没有提供绝对时间。PPS是每秒输出一次高逻辑电平的信号。它不包含有关一天或一年中特定时间的信息。脉冲宽度一般为100ms。一般GPS模块可以输出PPS信号,可以将这个PSS信号通过驯服OCXO或者铷钟得到的高稳定频率信息作为整个系统的主时钟来使用(比如自动驾驶的时候当汽车进入隧道的时候,GPS信号会丢失,这时候驯服钟可以以自己的频率继续运行,当信号恢复的时候则继续校准即可)与PTP在无人驾驶中是结合使用的。
②、 为什么比IRIG-B(Inter-range Instrumentation Group Timecodes)好?
IRIG-B 是携带绝对时间的编码 TLL 信号。它类似于每秒脉冲 (PPS) 信号,但 IRIG-B 不是每秒输出单个均匀脉冲,而是发送构成一秒长数据帧的编码位,并且它会重复或重新同步每个数据帧 IRIG-B 规定每秒传输一次 100 位时间帧,每个位表示一个 10 ms 周期。它需要一个专门的IRIG同步网络,路径延时也必须手动设置。
③、 为什么比NTP(Network Time Protocol 网络时间协议)好?
NTP客户端发起与 NTP 服务器的时间请求交换。然后客户端能够计算链路延迟及其本地偏移,并调整其本地时钟以匹配服务器计算机上的时钟。其精度会比PTP差很多, 一般在实际使用中,现有的NTP可以达到5ms以内的精度。对于一般应用场景没有什么问题,但对于自动驾驶传感器的融合和电力、电信行业来说还是不够的。
3、PTP的局限性
PTP需要硬件的支持,一般在工程中需要所有的设备都支持PTP协议。由于需要计算精确的时间延时,一般在MAC层或者PHY层进行处理,所以简单来说,精度越高的要求下我们的网卡就需要支持硬件的PTP支持才可以实现。
如图所示为TI的DP83630支持1588 V2时钟的PHY芯片,通常我们常见的型号为DP83640,但这个PHY的速率为100MHz,通过查阅资料我们也知道Nvidia的Xavier NX上面的是Marvell的88E1512P或Realtek的RTL8211,这两颗PHY都是支持千兆的。我们要知道需要支持PTP这个协议是需要硬件支持的,后续有机会研究下这些PHY的使用。
4、PTP的应用场景
哪些场合需要亚微秒精度的需求?
①、自动化和控制:同步多轴驱动系统或者同步具有周期性操作的子系统
②、基于网络的分布式数据采集,将分布式获取的数据进行时间相关性分析和记录时间戳(自动驾驶就是这样的)。
③、电力生成、传输和分配系统,用于控制开关操作和重构网络活动和事件;还有其他电信的网络,例如手机通过不同基站的时候切换的同步等等。
4、PTP协议的发展历史
1994年3月31日至4月1日,NIST召开了传感器网络通信会议,来自工业界、学术界和政府的代表参加了会议。会议得出的结论是,商业组织希望为传感器和执行器制定一个通用的网络通信接口标准,并在通常用于测量和控制应用的设备中提供同步时钟。因此,Kang Lee 及其 NIST 团队与私营部门合作,对传感器和执行器的智能传感器接口进行了研究和开发,最终为工业自动化中的分布式系统制定了 IEEE 1451 系列标准。
到 2000 年 11 月,人们对启动时钟同步标准化活动产生了足够的兴趣,有必要组建一个委员会并寻求赞助。最初的委员会于 2001 年 4 月举行了第一次会议,决定寻求电气和电子工程师协会 (IEEE) 仪器与测量协会传感器技术技术委员会的赞助,该委员会还与 NIST、IEEE 一起赞助了1451 活动。委员会成员包括来自自动化、机器人、测试和测量以及计时行业的工程师以及来自 NIST 和军方的代表。该委员会向IEEE提交了正式申请,并于2001年6月18日获得批准。
该委员会制定了一份标准草案,并于 2002 年 4 月根据通常的 IEEE 规则提交投票。第一次投票通过了,但审查投票者提交了许多有用的意见。该委员会采纳了这些建议,并重新提交该标准进行第二次投票,并于 2002 年 5 月通过。该委员会已将最终投票版本提交给 IEEE 标准委员会审查委员会进行最终批准。该草案于2002年9月12日被审查委员会批准为IEEE标准。该标准于2002年11月发布。IEEE 1588-2002标准后来经过修订,成为IEEE 1588-2008标准,业界许多人将其称为IEEE 1588版本2标准。
五年后,即 2013 年 6 月 14 日,项目授权请求 (PAR) 获得批准,修订 IEEE 1588-2008 标准,以反映各行业对新版本 IEEE 1588 标准的共同需求,该标准将满足一种更安全的精密时钟同步协议,可同时与 IPv4 和 IPv6 配合使用,也适用于亚纳秒范围内的更高速度应用。