gPTP時間同步流程
gPTP時間同步流程可以按照如下先后順序來進行,彼此之間存在依賴關系:
- 最佳主時鐘選擇原理
在gPTP時間同步協議中可能在同一域內存在多個可用的全局時間源,就需要通過一種方式來選擇全局最佳主時鐘,這種方法被稱為Best Master
Clock Algorithm,簡稱BMCA算法。
系統上電之后,所有設備都可以通過一條報文來參與主時鐘的競選,報文中包含各個設備的時鐘信息,每個設備都會主動比較自身與其他節點時鐘的信息,競選失敗的將退出,如此反復,直至最后選擇最佳主時鐘。
針對車載以太網,無需通過考慮最佳主時鐘選擇,車載以太網屬于靜態網絡,均已提前設定好。
- 頻率同步原理
我們知道主從時鐘底層都是通過晶振驅動來進行計時,但是不可避免的是晶振會受到外部溫度,老化等因素影響進而產生時鐘偏移。
因此為了更為精確地保證主從時鐘的同步,因此需要將主從時鐘之間的晶振頻率差異考慮在內,進而解決主從端口晶振精度不準帶來的時間同步誤差。
計算方法如下圖3所示:
圖3 主從時鐘頻率同步測量原理
基于圖3中的兩個周期性的sync報文與follow-up報文,其中followup報文傳輸的是sync報文在主時鐘節點發送時刻的時間戳,考慮主從時鐘節點對于總線傳輸的延時都是固定的,T1,T2,T3,T4都是物理層獲取的時間戳,因此主從時鐘節點的時鐘偏差可以通過如下公
式來體現:
頻率同步計算公式
- Path延時時間測量原理
從時鐘節點為了能夠跟主時鐘同步,除了上述主從時鐘節點的時鐘頻率偏差帶來的差異外,還存在一個非常重要的延時即以太網總線傳輸延時需要進行精確測量,才能夠保證時間同步的精度,測量原理如下圖4所示:
圖4 gPTP延時時間測量原理
注意,Pdelay_Req報文發起方既可以是Time Master也可以是Time Slave,本文只不過以Time Slave為例。
延時時間Pdelay time的測量具體步驟如下:
S1:Time Slave節點發送Pdelay_Req報文,Time Slave節點記錄該報文發送時刻的時間戳T1;
S2:Time Master記錄MAC層收到Pdelay_Req報文的時間戳T2;
S3:Time Master將上述T2時間通過Pdelay_Resp報文發送至Time Slave,同時Time
Master記錄發送該報文的時間戳T3,Time Slave記錄收到該報文的時間戳T4;
S4:Time Master將上述T3時間通過Pdelay_Resp_Follow_Up報文發送至Time Slave,當Time
Slave收到該報文時便知道了T1,T2,T3,T4時間戳;
考慮到主從時鐘之間的時鐘頻率偏差以及主從時鐘之間的延時對稱原理,因此Pdelay time的計算方法如下所示:
Pdelay計算公式
值得注意的是上述公式中如果主從時鐘頻率一致,那么此時P=1。
- 時間同步原理
基于上述計算出來的總線延時時間Pdelaytime以及主從時間頻率的比值,也被稱為NeighborRateRatio,那么便可以完成從時鐘節點與主時鐘之間的同步,其同步原理如下圖5所示:
圖5 gPTP時間同步原理
如上圖5所示,基于gPTP的時間同步協議通過SYNC報文與FollowUp報文來實現同步,同步流程如下:
S1:Time Master發送SYNC報文,該報文如果是單步模式,那么就需要攜帶T1時間戳信息,如果是雙步模式,該報文無需發送任何有效信息;
S2:Time Slave收到SYNC報文之后,MAC層會記錄對應時刻的時間戳T2;
S3:若基于雙步模式,Time Master再發送Follow up報文,該報文中攜帶著SYNC報文外發時刻的時間戳T1;
基于上述流程,我們便可以得到從時鐘節點與主時鐘節點的時間同步關系,設某時刻Time Master的全局時間為T6,對應此時刻的Time Slave本地時間為T5,因此時間同步關系如下:
其中Pdelay time通過上述延時時間測量過程得到,最終得到的Time Master與Time Slave的同步時間關系。
注意:gPTP時間同步過程可分為單步模式與雙步模式,單步模式(onestep)對以太網PHY硬件要求較高,需要能夠精準獲取發送時刻的時間,因此普遍采用雙步模式來完成時間同步,以便降低集成難度。
對于AUTOSAR規范中定義的gPTP時間同步協議而言,默認采用雙步模式(two step)。
-
時間
+關注
關注
0文章
40瀏覽量
19742 -
測量
+關注
關注
10文章
4774瀏覽量
111136 -
汽車
+關注
關注
13文章
3425瀏覽量
37172
發布評論請先 登錄
相關推薦
評論