PTPv2時間同步協定的實作細節

介紹

電力產業建置「數位化變電站」的概念要求同步精度達到1μs。金融交易也需要微秒的精準度。在這些應用中,NTP 時間精度不再足夠。

IEEE 2v1588 標準所描述的 PTPv2 同步協定可實現數十奈秒的同步精度。 PTPv2 可讓您透過 L2 和 L3 網路傳送同步封包。

PTPv2 使用的主要領域是:

  • 活力;
  • 控制和測量設備;
  • 軍工聯合體;
  • 電信;
  • 金融部門。

這篇文章解釋了 PTPv2 同步協定的工作原理。

我們在工業上有更多的經驗,在能源應用中經常看到這個協議。因此,我們將謹慎進行審查 用於能源.

為什麼有必要?

目前,PJSC Rosseti 的 STO 34.01-21-004-2019 和 PJSC FGC UES 的 STO 56947007-29.240.10.302-2020 包含透過 PTPv2 組織具有時間同步功能的製程匯流排的要求。

這是由於繼電器保護終端和測量設備連接到製程匯流排,它們透過製程匯流排傳輸瞬時電流和電壓值,使用所謂的SV流(多重播放流)。

繼電器保護終端利用這些值來實現間隔保護。如果時間測量的準確度很小,那麼某些保護可能會誤動作。

例如,絕對選擇性的防禦可能會成為「弱」時間同步的受害者。這種防禦的邏輯通常是基於兩個數量的比較。如果這些值相差足夠大的值,則會觸發保護。如果這些值是用 1 ms 的時間精度測量的,那麼如果用 1 μs 的精度測量的話,你會得到一個很大的差異,而這些值實際上是正常的。

PTP 版本

PTP 協定最初於 2002 年在 IEEE 1588-2002 標準中進行了描述,被稱為「網路測量和控制系統的精密時鐘同步協定標準」。 2008年,更新的IEEE 1588-2008標準發布,其中描述了PTP版本2。該版本的協定提高了準確性和穩定性,但沒有保持與第一版本協定的向後相容性。此外,2019 年發布了 IEEE 1588-2019 標準版本,描述了 PTP v2.1。該版本對 PTPv2 進行了細微改進,並向後相容於 PTPv2。

換句話說,我們有以下版本的圖片:

PTPv1
(IEEE 1588-2002)

PTPv2
(IEEE 1588-2008)

PTPv2.1
(IEEE 1588-2019)

PTPv1 (IEEE 1588-2002)

-
不符

不符

PTPv2 (IEEE 1588-2008)

不符

-
兼容

PTPv2.1 (IEEE 1588-2019)

不符

兼容

-

但是,一如既往,存在細微差別。

PTPv1 和 PTPv2 之間的不相容性意味著啟用 PTPv1 的裝置將無法與 PTPv2 上執行的準確時鐘同步。他們使用不同的訊息格式來同步。

但仍可將具有 PTPv1 的設備和具有 PTPv2 的設備組合在同一網路上。為了實現這一點,一些製造商允許您選擇邊緣時脈連接埠上的協定版本。也就是說,邊界時鐘可以使用 PTPv2 進行同步,並且仍然使用 PTPv1 和 PTPv2 同步與其連接的其他時鐘。

PTP 設備。它們是什麼以及有何不同?

IEEE 1588v2 標準描述了多種類型的設備。所有這些都顯示在表中。

這些設備使用 PTP 透過 LAN 相互通訊。

PTP 設備稱為時鐘。所有腕錶均採用大師腕錶的準確時間。

手錶有5種類型:

大師鐘

準確時間的主要來源。常配備連接GPS的介面。

普通時鐘

可以是主設備(主時鐘)或從設備(從時鐘)的單一連接埠設備

主時鐘(主時鐘)

它們是其他時鐘同步的準確時間的來源

從時鐘

從主時鐘同步的終端設備

邊界時鐘

具有多個連接埠的設備,可以是主設備或從設備。

也就是說,這些時鐘可以同步上級主時鐘並同步下級從時鐘。

端對端透明時鐘

具有多個連接埠的設備,既不是主時鐘也不是從時鐘。它在兩個手錶之間傳輸 PTP 數據。

傳輸資料時,透明時鐘會修正所有 PTP 訊息。

透過將該裝置上的延遲時間新增至所傳輸訊息的標頭中的校正欄位來進行校正。

點對點透明時鐘

具有多個連接埠的設備,既不是主時鐘也不是從時鐘。
它在兩個手錶之間傳輸 PTP 數據。

傳輸資料時,透明時鐘會修正所有 PTP 訊息 Sync 和 Follow_Up(更多資訊請見下文)。

此校正是透過將發送裝置上的延遲和資料傳輸通道上的延遲新增至發送分組的校正欄位來實現的。

管理節點

配置和診斷其他手錶的設備

主時鐘和從時鐘使用 PTP 訊息中的時間戳進行同步。 PTP協定中有兩種類型的訊息:

  • 事件訊息是同步訊息,涉及在發送訊息和接收訊息時產生時間戳記。
  • 一般訊息 - 這些訊息不需要時間戳,但可能包含相關訊息的時間戳

事件消息

一般訊息

Sync
延遲請求
延遲請求
延遲回應

宣布
跟進
延遲回應
Pdelay_Resp_Follow_Up
管理
信令

下面將更詳細地討論所有類型的消息。

基本同步問題

當同步資料包透過本地網路傳輸時,它會在交換器和資料鏈路中發生延遲。任何切換都會產生大約10微秒的延遲,這對PTPv2來說是不可接受的。畢竟,我們需要在最終設備上實現 1 μs 的精度。 (這是如果我們談論的是能源。其他應用可能需要更高的精度。)

IEEE 1588v2 描述了幾種允許您記錄時間延遲並修正它的操作演算法。

工作算法
在正常運作期間,協議分兩個階段運作。

  • 第 1 階段 - 建立「主時鐘 - 從時鐘」層次結構。
  • 第 2 階段 - 使用端對端或點對點機制的時鐘同步。

第一階段-建立主從層次結構

常規或邊緣時鐘的每個連接埠都有一定數量的狀態(從時鐘和主時鐘)。該標準描述了這些狀態之間的轉換演算法。在程式設計中,這樣的演算法稱為有限狀態機或狀態機(更多詳細資料請參閱 Wiki)。

連接兩個時鐘時,此狀態機使用最佳主時鐘演算法 (BMCA) 來設定主時鐘。

此演算法可讓手錶在上游大師手錶失去GPS訊號、離線等情況下接手大師手錶的職責。

下圖總結了根據 BMCA 的狀態轉換:
PTPv2時間同步協定的實作細節

有關「線路」另一端手錶的資訊透過特殊訊息(公告訊息)發送。一旦收到此訊息,狀態機演算法就會運行並進行比較,以確定哪個時鐘更好。最好的手錶上的端口成為主表。

下圖顯示了一個簡單的層次結構。路徑1、2、3、4、5可能包含透明時鐘,但它們不參與建立主時鐘-從時鐘層次結構。

PTPv2時間同步協定的實作細節

第 2 階段 - 同步常規時鐘和邊緣時鐘

在建立「主時鐘-從時鐘」層次結構後,常規時鐘和邊界時鐘的同步階段立即開始。

為了同步,主時鐘會向從時鐘發送包含時間戳記的訊息。

主時鐘可以是:

  • 單級;
  • 兩階段。

單級時鐘發送一條Sync訊息進行同步。

兩級時鐘使用兩個訊息進行同步 - Sync 和 Follow_Up。

同步階段可以使用兩種機制:

  • 延遲請求回應機制。
  • 對等延遲測量機制。

首先,讓我們來看看最簡單的情況下的這些機制——不使用透明手錶的情況。

延遲請求回應機制

此機制涉及兩個步驟:

  1. 測量主時脈和從時脈之間傳送訊息的延遲。使用延遲請求回應機制來執行。
  2. 執行精確時移的校正。

延遲測量
PTPv2時間同步協定的實作細節

t1-主時鐘發送Sync訊息的時間; t2-從時鐘接收同步訊息的時間; t3-從時脈發送延時請求(Delay_Req)的時間; t4 – 主時脈的 Delay_Req 接收時間。

當從時脈知道時間t1、t2、t3、t4時,就可以計算出傳輸同步訊息時的平均延遲(tmpd)。計算方法如下:

PTPv2時間同步協定的實作細節

當傳送 Sync 和 Follow_Up 訊息時,計算從主站到從站的時間延遲 - t-ms。

當發送Delay_Req和Delay_Resp訊息時,計算從機到主機的時間延遲-t-sm。

如果這兩個值之間出現某種不對稱,則在校正精確時間的偏差時會出現錯誤。這個錯誤是由於計算的延遲是 t-ms 和 t-sm 延遲的​​平均值而引起的。如果延遲彼此不相等,那麼我們將無法準確調整時間。

修正時移

一旦知道主時鐘和從時鐘之間的延遲,從時鐘就會執行時間校正。

PTPv2時間同步協定的實作細節

當從主時鐘向從時鐘傳輸資料包時,從時鐘使用 Sync 訊息和可選的 Follow_Up 訊息來計算準確的時間偏移。使用以下公式計算偏移量:

PTPv2時間同步協定的實作細節

對端延遲測量機制

該機制也使用兩個步驟進行同步:

  1. 設備透過所有連接埠測量到所有鄰居的時間延遲。為此,他們使用對等延遲機制。
  2. 修正準確的時移。

測量支援點對點模式的設備之間的延遲

支援對等機制的連接埠之間的延遲是使用以下訊息測量的:

PTPv2時間同步協定的實作細節

當連接埠1知道時間t1、t2、t3和t4時,它可以計算平均延遲(tmld)。它是使用以下公式計算的:

PTPv2時間同步協定的實作細節

然後,連接埠在計算通過裝置的每個 Sync 訊息或可選 Follow_Up 訊息的調整欄位時使用該值。

總延遲將等於透過該設備傳輸期間的延遲、透過資料通道傳輸期間的平均延遲以及上游設備上啟用的該訊息中已包含的延遲總和。

訊息 Pdelay_Req、Pdelay_Resp 和可選的 Pdelay_Resp_Follow_Up 可讓您取得從主機到從裝置以及從裝置到主裝置的延遲(循環)。

這兩個值之間的任何不對稱都會引入時間偏移校正誤差。

調整準確的時移

PTPv2時間同步協定的實作細節

當從主時鐘向從時鐘傳輸資料包時,從時鐘使用 Sync 訊息和可選的 Follow_Up 訊息來計算準確的時間偏移。使用以下公式計算偏移量:

PTPv2時間同步協定的實作細節

對等機制的優點調整-每個Sync或Follow_Up訊息的時間延遲是在其在網路中傳輸時計算的。因此,改變傳輸路徑不會以任何方式影響調整的準確性。

當使用這種機制時,時間同步不需要像基本交換中那樣計算同步資料包所經過的路徑上的時間延遲。那些。不發送Delay_Req和Delay_Resp訊息。在此方法中,主時脈和從時脈之間的延遲簡單地在每個Sync或Follow_Up訊息的調整欄位中求和。

另一個優點是主時鐘不再需要處理Delay_Req訊息。

透明時鐘的工作模式

因此,這些都是簡單的例子。現在假設交換器出現在同步路徑上。

如果您使用不支援 PTPv2 的交換機,同步資料包將在交換器上延遲約 10 μs。

支援 PTPv2 的交換器在 IEEE 1588v2 術語中稱為透明時鐘。透明時鐘不與主時鐘同步,也不參與「主時鐘-從時鐘」層次結構,但在傳輸同步訊息時,它們會記住訊息被它們延遲了多長時間。這允許您調整時間延遲。

透明時鐘可以以兩種模式運作:

  • 端到端。
  • 點對點。

端對端(E2E)

PTPv2時間同步協定的實作細節

E2E 透明時鐘在所有連接埠上廣播 Sync 訊息和隨附的 Follow_Up 訊息。即使是那些被某些協定(例如 RSTP)阻止的協定。

交換機會記住連接埠上接收到同步封包 (Follow_Up) 以及從連接埠發送同步封包時的時間戳記。根據這兩個時間戳,計算出交換器處理該訊息所需的時間。在標準中,這個時間稱為停留時間。

處理時間被加入到Sync(一步時鐘)或Follow_Up(兩步時鐘)訊息的 CorrectionField 欄位。

PTPv2時間同步協定的實作細節

端對端透明時脈測量透過交換器的Sync和Delay_Req訊息的處理時間。但重要的是要了解主時鐘和從時脈之間的時間延遲是使用延遲請求回應機制計算的。如果主時脈發生變化或從主時脈到從時脈的路徑發生變化,則重新測量延遲。這會增加網路發生變化時的轉換時間。

PTPv2時間同步協定的實作細節

P2P 透明時脈除了測量交換器處理訊息所需的時間外,還使用鄰居延遲機制來測量到其最近鄰居的資料鏈路上的延遲。

延遲是在每個鏈路的兩個方向上測量的,包括被某些協定(例如 RSTP)阻止的鏈路。如果主時鐘或網路拓撲發生變化,這使您可以立即計算同步路徑中的新延遲。

發送 Sync 或 Follow_Up 訊息時,交換器的訊息處理時間和延遲會累積。

交換器支援的 PTPv2 類型

交換器可以支援 PTPv2:

  • 以程式方式;
  • 硬體.

在軟體中實作 PTPv2 協定時,交換機會向韌體請求時間戳記。問題是韌體循環工作,您必須等到它完成當前週期、接受處理請求並在下一個週期後發出時間戳記。這也需要時間,我們也會遇到延遲,儘管沒有 PTPv2 軟體支援那麼嚴重。

只有對 PTPv2 的硬體支援才能讓您保持所需的精確度。在這種情況下,時間戳會由安裝在連接埠上的特殊 ASIC 發出。

訊息格式

所有 PTP 訊息均包含以下欄位:

  • 標頭 – 34 位元組。
  • 正文 - 大小取決於訊息的類型。
  • 後綴是可選的。

PTPv2時間同步協定的實作細節

所有 PTP 訊息的標頭欄位都相同。它的大小是 34 個位元組。

標頭欄位格式:

PTPv2時間同步協定的實作細節

訊息類型 – 包含正在傳送的訊息類型,例如 Sync、Delay_Req、PDelay_Req 等。

訊息長度 – 包含 PTP 訊息的完整大小,包括標頭、正文和後綴(但不包括填充位元組)。

網域名稱 – 確定訊息屬於哪個 PTP 域。

域名 - 這些是在一個邏輯群組中收集的多個不同時鐘,並從一個主時鐘同步,但不一定與屬於不同域的時鐘同步。

標誌 – 此欄位包含各種標誌來標識訊息的狀態。

校正場 – 包含以奈秒為單位的延遲時間。延遲時間包括透過透明時脈傳輸時的延遲,以及使用Peer-to-Peer模式時透過通道傳輸時的延遲。

來源連接埠標識 – 此欄位包含有關該訊息最初從哪個連接埠傳送的資訊。

序號 – 包含單一訊息的識別號碼。

控製字段 – 工件欄位 =) 它保留在標準的第一個版本中,包含有關此訊息類型的資訊。本質上與 messageType 相同,但選項較少。

日誌訊息間隔 – 此欄位由訊息類型決定。

美體

如上所述,存在多種類型的消息。這些類型描述如下:

公告訊息
公告訊息用於「告知」同一域內的其他時鐘其參數。此訊息可讓您設定主時鐘 - 從時鐘層次結構。
PTPv2時間同步協定的實作細節

同步訊息
Sync 訊息由主時鐘傳送,包含產生 Sync 訊息時主時鐘的時間。如果主時鐘是兩階段的,則Sync訊息中的時間戳記將被設定為0,並且當前時間戳將在關聯的Follow_Up訊息中發送。同步訊息用於兩種延遲測量機制。

該訊息使用組播傳輸。您可以選擇使用單播。

PTPv2時間同步協定的實作細節

Delay_Req訊息

Delay_Req訊息的格式與Sync訊息相同。從時脈發送Delay_Req。它包含從時脈發送 Delay_Req 的時間。此訊息僅用於延遲請求回應機制。

該訊息使用組播傳輸。您可以選擇使用單播。

PTPv2時間同步協定的實作細節

後續訊息

Follow_Up 訊息可選地由主時鐘發送,包含發送時間 同步訊息 掌握。只有兩級主時鐘發送Follow_Up訊息。

Follow_Up 訊息用於兩種延遲測量機制。

該訊息使用組播傳輸。您可以選擇使用單播。

PTPv2時間同步協定的實作細節

Delay_Resp訊息

Delay_Resp訊息由主時脈發送。它包含主時脈接收到 Delay_Req 的時間。此訊息僅用於延遲請求回應機制。

該訊息使用組播傳輸。您可以選擇使用單播。

PTPv2時間同步協定的實作細節

Pdelay_Req消息

Pdelay_Req 訊息由請求延遲的裝置發送。它包含從該設備的連接埠發送訊息的時間。 Pdelay_Req僅用於鄰居延遲測量機制。

PTPv2時間同步協定的實作細節

Pdelay_Resp訊息

Pdelay_Resp 訊息由收到延遲請求的裝置發送。它包含該設備接收 Pdelay_Req 訊息的時間。 Pdelay_Resp訊息僅用於鄰居延遲測量機制。

PTPv2時間同步協定的實作細節

訊息 Pdelay_Resp_Follow_Up

Pdelay_Resp_Follow_Up訊息可選地由已接收到延遲請求的裝置發送。它包含該設備接收 Pdelay_Req 訊息的時間。 Pdelay_Resp_Follow_Up訊息僅由兩級主時脈發送。

該訊息也可用於代替時間戳記來表示執行時間。執行時間是從接收到Pdelay-Req 到發送Pdelay_Resp 的時間。

Pdelay_Resp_Follow_Up 僅用於鄰居延遲測量機制。

PTPv2時間同步協定的實作細節

管理訊息

需要 PTP 控制訊息在一個或多個時鐘與控制節點之間傳輸訊息。

PTPv2時間同步協定的實作細節

轉移到LV

PTP 訊息可以在兩個層級上傳輸:

  • 網路 – 作為 IP 資料的一部分。
  • 通道——作為乙太網路幀的一部分。

透過 UDP、IP、乙太網路進行 PTP 訊息傳輸

PTPv2時間同步協定的實作細節

乙太網路上的 UDP 上的 PTP

PTPv2時間同步協定的實作細節

個人資料

PTP有相當多的靈活參數需要設定。例如:

  • BMCA 選項。
  • 延遲測量機制。
  • 所有可設定參數的間隔和初始值等

儘管我們之前說過 PTPv2 設備彼此相容,但事實並非如此。設備必須具有相同的設定才能進行通訊。

這就是所謂的 PTPv2 設定檔的原因。設定檔是一組配置的設定和定義的協定限制,以便可以為特定應用程式實現時間同步。

IEEE 1588v2 標準本身只描述了一種設定檔-「預設設定檔」。所有其他配置檔案均由各種組織和協會創建和描述。

例如,功率設定檔(Power Profile)或 PTPv2 功率設定檔(PTPv37.238 Power Profile)是由 IEEE 電力與能源協會的電力系統繼電器和變電站委員會創建的。該設定檔本身稱為 IEEE C2011-XNUMX。

設定檔描述了可以傳輸PTP:

  • 僅透過 L2 網路(即乙太網路、HSR、PRP、非 IP)。
  • 訊息僅透過組播廣播傳輸。
  • 延遲測量機制採用對等延遲測量機制。

預設網域為0,建議網域為93。

C37.238-2011的設計理念是減少選用功能的數量,只保留設備之間可靠互動所必需的功能,提高系統穩定性。

此外,也確定了訊息傳輸的頻率:

PTPv2時間同步協定的實作細節

事實上,只有一個參數可供選擇-主時鐘的類型(單級或兩級)。

精度應不超過1μs。換句話說,單一同步路徑最多可以包含 15 個透明時鐘或 XNUMX 個邊界時鐘。

PTPv2時間同步協定的實作細節

來源: www.habr.com

添加評論