NTP/PTP/卫星授时您的自动化系统会选哪个?
NTP/PTP/卫星授时您的自动化系统会选哪个?
随着数字网络的不断发展,基于网络协议(IP)的技术不断涌现,因为它足够的方便、灵活和可扩展性。局域网(LANs)、广域网(WANs)以及蜂窝网络都是IP网络应用的常见例子。当我们在工业控制、测试和测量领域、传输声音、视频等信息的数据主干应用方面采用IP网络技术时,时间的同步是我们考虑的关键要点。例如声音和视频质量对不确定性的延迟和抖动非常的敏感,装配生产线上的机器人彼此之间也需要严格的同步。
IP网络和以太网最初设计时并没有考虑同步问题,但是这在现在非常的有必要。如果你的产品需要时间同步需要在设计上采取哪些措施呢?目前已经有几种解决方案,这里我们与大家讨论四种常见的解决方案:网络时间协议(NTP)、精简的网络时间协议(SNTP)、精确的时间协议(PTP)以及借助导航系统时间同步,比如全球定位系统GPS。幸运的是从架构的角度来看这些不同的实现方案有很多的共同之处。
主时钟源
同步网络通常都会有一个主时钟,它的来源一般都是协调世界时(UTC),UTC是基于地球的自转而确立的公立时间。UTC与国际原子时(TAI)保持着固定的关系,两者之间的固定关系是根据地球自转减慢的速度而周期性的增加到UTC上的闰秒时间而保持的,目前UTC时间比TAI时间快了将近36秒。另一个度量标准是UT1,它是以平子夜作为0时开始的格林格林威治平太阳时加上人工极移校正后的时间标准,UTC与UT1之间的关系保持在9秒以内。
目前有很多个时间服务器,但是在美国最常用的就是来自国家科学技术研究所(NIST)提供的时间,NIST提供的时间是基于UTC、UTC1和网络时间协议(NTP)服务器的,其他网络的计算机和主时钟源都是根据这个服务器来确定的,然而还有很多的辅助服务器存在,而且时间信息也可以来自于导航卫星。
时间研究要素
在网络设计中存在异步和同步的时间模型,所有同步的方法都需要有一个内聚层次的定时解决方案。参考时钟对于网络元素的同步是必须的,网络元素通常需要一个电压控制的晶体振荡器(VCXO)、锁相环(PLL)或者时钟生成器通过调整实现同步状态。目前比较流行的方案包括Abracon公司推出的超低相位噪声的VXCO和IDT公司推出的82P33814-1NLG同步管理单元,支持多种同步模式。
无论选择哪种解决方案,设计系统都需要能够提供适当的抖动衰减和相位噪声剔除,并且与网络中的其他元素保持适当的同步公差。时间设计方面要包括一定的保持特性,即在被通知同步状态之前保持时钟的能力以防止主时钟或参考时钟出现故障。
常用的同步解决方案
网络时间协议(NTP)和精简网络时间协议(SNTP)
最常用的公共网络时间同步方法就是NTP以及其精简版SNTP,公共的NTP子网在所有大陆甚至在海底都设有服务器,为全球互联网上无数的计算机提供时间支持服务。NTP服务器时间是基于UTC的,但是NIST组织架设了一个基于UT1的NTP服务器。
NTP协议使用软件时间戳来实现精确的时间同步,精度范围从100µs 到100ms 或者更大。很多因素会导致差异,但是通常都是由于网络延迟、硬件、操作系统、环境温度变化引起的振荡器漂移以及时间更新引起的时间间隔引起的。
当我们确定需要对客户端的本地时间进行调整时,还需要将往返时间延迟考虑在内。NTP和SNTP使用相同的过程来确定校正因子,计算结果是假设往返两方向的延迟都是相同的而确定的,因此在客户端与服务端之间一共发生了四个数据包交换。
NTP和SNTP之间的主要区别是SNTP客户端需要周期性的直接从单个SNTP服务器同步它们的时间,因此,SNTP主要用于不需要太高精度要求的应用程序,NTP则采用基于状态的复杂算法来提升精度。
图2:前三层的同步路径
NTP支持多播/任播、客户端/服务器、点对点模式,而SNTP通常应用于客户端-服务端模式,NTP系统广播时间信息是分层的并建立不同的层级,每个级别被分配给一个对应层级(Stratum)的序号,Stratum 1服务器是最底层,提供全局的时间同步服务,上层的需要根据底层的时间信息来同步。(网络事件结构为进一步研究提供了很好的使用信息来源,并且提供了一个参考实现方案称为NTPd,适用于Unix和Windows操作系统)
IEEE 1588 精确时间协议(PTP)
PTP迅速变成以太网数据包网络首选的时间同步解决方案,尤其适用于工业控制、电信、测试与测量等应用,相比NTP协议它更加的精确、更加的确定。PTP协议与NTP协议有很多相似之处,但是有几个关键的区别。首先客户端的时间戳采用硬件来实现而不是软件,并尽可能的将其放在接近网络接口的地方,从而消除与客户端软件相关的不规则延迟,这样会提升几纳秒的精确性,其次PTP网络主时钟选择过程更具健壮性。
图3:同步机制和延迟计算-便宜校正=ó
在PTP协议中,时间信息会以主从结构的形式分层次的贯通到整个网络中,事件源是基于TAI标准的,“最好主时钟(BMC)”软件算法会从所有可用时钟源中选择最合适的时钟,时间信息会被传递给PTP的所有子网络中。
PTP协议的所有子网络中的主时钟的选择也采用BMC算法,多播传输是时钟的主要传输方式,但是终端客户端会采用直接通信的方式与主时钟进行同步,以单播的形式定时发送时间同步请求。当然还会存在一个“透明时钟”的可能性,即网络交换机有可能在将PTP消息传递给PTP子网的过程中修改时间戳。这种修改是通过计算本地设备延迟来提升接收子网的时间戳的精确性。
完美的PTP解决方案肯定存在,但是选择还是要归结于收发器的解决方案结合微控制器控制的PTP软件协议栈或者基于微控制器的解决方案和协议栈。网络时间组织提供了一个开源的PTP协议栈实现方案称为PTPd,可以免费下载。最广泛的分布式解决方案是TI公司推出的DP83640,作为通用模块在不同操作模式下都会输出一个从时钟,这个时钟与主时钟在频率和相位都保持同步,然后传递给下级子网络,精度在亚纳秒范围内,当然它也具有NTP协议的时间戳,TI公司提供了详细的应用说明,比如如何进行配置,如何实现较高的精度等。
全球定位系统(GPS)
图4:基于空间的导航系统包含一组环绕地球的卫星
基于空间的导航系统包括一组环绕地球的卫星,这些系统能够提供非常精确的时间和位置信息。美国系统成为“全球定位系统(GPS)”,俄罗斯称之为“全球导航卫星系统(GLONASS)”,中国的“北斗导航卫星系统(BeiDou-2)”,以及印度的“印度区域导航导航卫星系统(IRNSS)”,当然其他国家也都在开发自己的导航系统。
GPS卫星上都具备原子时钟,它们之间互相同步并且定期进行调整与地面时钟同步。时间是根据至少四颗卫星周期性发送来的时间戳来计算出来的,延迟的计算也相对简单,因为信号以光速进行传播,卫星会定期发送其位置信息。
与NTP和PTP协议不同,GPS系统的可变延迟问题则不一样,因为时间信息都直接来自于卫星,唯一限制的因素是接收器必须有一条畅通无阻的通路,大气环境以及卫星相对接收器的位置都会对精度产生影响。因为给每个网络元素都集成一个接收器会很昂贵,因此工程师们会有效的控制成本,不过GPS时代相关产品已经便宜很多了,使得实际的解决方案的同步精度能够达到100ns以内。
GPS系统接收器还有一个好的特性就是它可以应用于封闭网络,即没有互联网连接。它们同样可以为PTP网络提供精确的主时钟源。
总结
除了上文提到的时间同步方法,当然还有其他的方案比如“同步网络(SyncE)”和“范围内仪表组时间编码(IRIG)”,这些都值得我们深入去研究。这些技术都是通过分发信号实现同步但是都需要专用的硬件平台。
“同步网络”已经成为一种标准受到越来越多的欢迎,传统的时间划分多路复用网络演变为基于IP的切换和多路复用实现方案(上文提到的DP83640就是基于SyncE技术实现的)。为了进一步的探索,可以参考国际电信联盟相关标准:ITU-T Rec.G8261,62,64。
网络时间同步解决方案也可以通过上文提到的方法组合来实现,比如基于PTP的工业控制网络可以从GPS接收器获取其主时钟源,当然也可以从NTP衍生服务器获取。许多可行的方法和组合可以一起工作,最终目标是通过网络实现精确的时间同步,但是每种技术都有自己独特的功能特性,而且随着网络和技术的发展逐渐都能够满足现代应用的大部分需求。