IEEE1588(PTP)协议实现精确授时
1、绝对时间信息的获取
IEEE1588 协议,又称 PTP( precise time protocol,精确时间协议),能够实现准确的时间授时,其基本功能是使分布式网络内的最精确时钟与其他时钟保持同步。一般是采用BDS或者GPS接收到准确的绝对时间,然后利用网络通信通过1588协调来实现分布式总线系统中的传感器、执行器以及其他终端设备中的时钟进行亚微秒级同步。在对设备进行授时时一般采用以下拓扑。(这篇主要对卫星授时架构和1588协议原理进行分析,下篇对1588组包和FPGA实现进行分析)
上图中时间同步设备主要对BDS或者GPS信号进行解调得到绝对的时间信息。由于BDS或者GPS信号存在中断或者被遮挡等情况会导致天线接收信号较弱,从而影响授时的准确性,因此在对时间同步设备设计时需要对BDS或者GPS解调出的时间信息进行守时。时间同步设备架构如下图:
上图架构设计主要是解决卫星信号的解调以及卫星信号短时丢失后系统准确的时间输出。上述架构设计的主要思路是在抓取到卫星信号后解调出时间信息,然后根据卫星绝对时间信息来对系统本身高精度晶振进行调制,使得系统自身产生的绝对时间与卫星产生的绝对时间处在一定的误差范围,然后通过1588协议输出准确的时间信息。如果在完成高精度晶振的调制后卫星信号丢失,直接把系统自身产生的时间信息输出,并且持续抓取卫星信号。通过上面的方式实现卫星绝对时间的解调和输出。
2、时间信息的传递和使用
在得到卫星时间后通过1588协议输出到从设备上。从设备主要进行1588协议的解调和时间信息的分发。这里主要对1588协议基本原理进行分析。
为了得到1588协议里的绝对时间,我们需要知道时间信息的整个传递流程:
时间信息从时间解调设备通过一系列物理路径到达目的设备,而时间解调设备和时间接收设备分别处在不同的时钟系统下,因此要想实现时间的同步需要知道一下时间信息:
1、时间解调设备时钟下输出的绝对时间T1和接收设备时钟下的时间T2。
2、时间接收设备时钟系统下发出的时间T3和时间解调设备收到T3信息的绝对时间T4。
在知道上述四个时间信息后我们就可以得到时间接收设备的时间相对于时间解调设备的绝对时间的偏移量和网络传输延时。
上面四个时间信息的获得过程如下图所示:
1、上述的处理过程主要分为两个阶段。偏移测量阶段用来修正主、从时钟的时间差;延迟测量阶段用来测量网络传输造成的延迟时间。
2、时间解调设备发出含有绝对时间T1信息报文Sync,时间接收设备收到报文时间T2。(这里的时间T1和时间T2分别在各自系统时钟下的时间)
3、在完成上述信息交换后,时间接收设备发出包含时间T3的时间延时请求报文Deali_req,时间解调设备收到报文的绝对时间为T4,然后时间解调设备发出包含T4时间信息的报文Deali_resp。
4.网络延时Delay和时间偏移Offset的计算公式:
通过上述2和3的描述,T2-T1 = Delay + Offset; T4-T3 = Delay – Offset;
所以可以得到:Delay= [ T2-T1 + T4-T3 ] /2
Offset= [ T2-T1-T4+T3 ] /2
上面的计算都是基于系统网络上行和下行网络延时Delay是一致的情况下进行的。
3、常见的PTP报文种类
PTP的信息报文种类:
1.PTP协议定义了2种消息:时间消息和通用消息。其区别是,事件消息需要在发送和接收的时候打上精确的时间戳。而通用消息不需要。
a)事件消息包括:
Sync
Delay_Req
Pdelay_Req
Pdelay_Resp
b)通用消息包括:
Announce
Follow_Up
Delay_Resp
Pdelay_Resp_Follow_Up
Management
Signaling
Sync, Delay_Req, Follow_Up, Delay_Resp.消息是用来产生和交互时间信息的,这些信息用来同步时间的。
Pdelay_Req, Pdelay_Resp, Pdelay_Resp_Follow_Up用来测量link延时。
Announce消息用来建立同步层次。
Management消息用来查询和设置PTP时钟的时钟数据。
Signaling消息是用来PTP时钟之间进行交互(如协商消息的周期等)
所有消息均使用TLV格式以利于扩展。
4、1588协议处理的前提和实现需要注意的点
1、时间解调设备和时间接收设备分别处在自己的时钟系统下进行信息的交互和处理。
2、Sync报文是一个周期性的报文,是同时间解调设备时钟下产生的。
3、网络延时Delay和时间偏移Offset的计算都是在时间接收设备下进行的计算。
4、网络延时Delay是基于系统网络上行和下行网络延时一致的情况下进行的。