软硬件协同下PTP同步的工作过程

目录

1. 初始化阶段(协商出一个master)

2. 同步阶段(时钟同步和时间同步)

2.1 时钟同步阶段(频率同步,有相位差)

2.2 时间同步阶段(无相位差)

2.3 ACS9521的例子


1. 初始化阶段(协商出一个master)

在初始化阶段,每个被设置为master的节点都会发送包含了自身时钟参数的SYNC packets,每个接收到SYNC packets的有潜能作为master的节点的软件会将自身的时钟参数与接收到的时钟参数进行比较,如果别人家的时钟更好,该节点的软件就老实地做slave,并且不再发SYNC packets,它会暂时将这个比它更好的节点当作master,它心有不甘,它会不停地接收别人发的SYNC packets,并将它与自己的master比较,如果别人家的更好,它会毫不犹豫地转认新master,最终所有节点会找出来那个最强的节点作为master,其他的节点都是slave,都要听命于这个最强master。

2. 同步阶段(时钟同步和时间同步)

时间同步阶段分为时钟同步阶段和时间同步阶段。

2.1 时钟同步阶段(频率同步,有相位差)

这个阶段,slave根据master的时钟校准自己的时钟

1)master软件发送SYNC packets后,会设置一个标志位,以通知master硬件记录发送时间,master硬件将该时间放在一个寄存器中,master软件读取该寄存器的值,将其放在Follow_UP packets。

2)slave会捕获SYNC packets,记录自己的接收时间T2,slave之后会捕获Follow_UP packets,从中获取master软件发送SYNC packets的时间T1,slave软件会根据T1和T2计算出master使用自己的时钟时连续的packets之间的时间间隔,然后slave软件以此为目标,调整自己的时钟以达到同样的时间间隔。使用此种方法完成slave时钟校准到master时钟。
 

软硬件协同下PTP同步的工作过程_第1张图片

图2.1 时钟同步阶段图示

 

2.2 时间同步阶段(无相位差)

这个阶段,slave实现时间同步,达到完全同步至master

软硬件协同下PTP同步的工作过程_第2张图片

图2.2 时间同步阶段图示

master软件发送Sync packets,通知master硬件记录发送时间T1,slave软件通知slave硬件记录接收时间T2,master再发送Follow_Up packets,里面会携带T1,slave软件之后会返回Delay_Req packets,slave硬件会记录发送时间T3,master软件接收到Delay_Req packets后,通知master硬件记录接收时间T4,master软件再发送Delay_Response packets,里面会携带T4,slave软件接收到该packets后,它就获取到了T1、T2、T3和T4,根据下面的公式可以计算出slave需要调整的时间,最终实现时间同步。
Slave Adjust Time = - [(T2-T1) - (T4-T3)] / 2

2.3 ACS9521的例子

软硬件协同下PTP同步的工作过程_第3张图片

图 2.3 Block diagram of PTP functions

需要关注几点:

  • 当ACS9521工作在slave模式,上图红色框内的目的在于产生path delay,它用于实现slave与master的相位同步(时间同步)。
  • 当ACS9521工作在master模式,Frequency and Time Generator产生的PTPoutClk[3:0]与1PPS/1Hz/1PPns[1:0]时间同步,后者与PTPInClk[7:0]中的一个时间同步,所以最终,这三个都是时间同步的。
  • PTP Ports工作在MAC层,即是说PTP message在以太网帧中封装,使用下图的格式:

图2.4 PTP Message Over Layer 2

  • 时间戳使用Frequency and Time Generator产生的本地时间基准。

 

你可能感兴趣的:(01_硬件)