Precision Time Protocol (Stereo ace)#
IEEE 1588 標準定義了該協定。Basler 相機支援 IEEE 1588-2008(也稱為 PTP Version 2)。
資訊
PTP 同步的精確度很大程度上取決於您的網路硬體與設定。為了達到最高精確度,請選擇高品質的網路硬體、使用支援 PTP 的網路交換器,並在您的網路中加入配備 GPS 接收器的外部 PTP 時脈裝置。
使用此功能#
為什麼使用 PTP#
透過 PTP,多部相機的時鐘可以自動與網路中最準確的時鐘(即主時鐘或最佳主時鐘)進行同步。
根據您的系統設置,主時鐘可以是相機或外部裝置:
- 如果您的系統僅包含相機,相機會在內部進行協商以確定最準確的相機時鐘,該時鐘隨後將作為主時鐘。
- 如果您的系統包含外部裝置(例如 GPS 接收器或配置為主時鐘的額外電腦),則該外部裝置將充當主時鐘。
當相機的時鐘同步後,便可以相互比較其 Timestamp。
如果網路中的主時鐘根據國際時間標準 TAI 提供絕對時間(例如透過 GPS 接收器),則可以從相機同步時鐘產生的 Timestamp 中確定當地時間。
如果主時鐘不提供 TAI 時間,時鐘會保持同步,但其時間處於隨機時間刻度上,即所謂的任意時間刻度模式 (ARB)。在此模式下,紀元是任意的,因為它不綁定到絕對時間。此時間刻度是相對的,即它僅在該網路中有效。最佳主時鐘演算法將選擇具有最高穩定性和精確度的時鐘作為該網路的主時鐘。充當主時鐘的相機無法提供 TAI 時間,只能提供 ARB 時間。
啟用 PTP 時鐘同步#
相機開機時,PTP 預設為停用。如果您想要使用 PTP,則必須啟用它。
若要啟用 PTP:
- 如果您想使用外部裝置作為主時鐘(例如 GPS 接收器),請將該外部裝置配置為主時鐘。
- 在所有您希望透過PTP 進行同步的攝影機上,請設定
PtpEnable參數設為true. - 等待所有 PTP 網路裝置充分同步。根據您的網路設置,這可能需要幾秒鐘或幾分鐘的時間。
若要確定裝置何時同步,請檢查 PTP 時鐘同步狀態。
檢查 PTP 時鐘同步的狀態#
您必須開發自己的方法,使用 pylon SDK 來檢查 PTP 時鐘同步的狀態。
如何檢查 PTP 狀態的範例#
PTP 狀態檢查的典型實作包含以下步驟:
- 啟用 PTP。
-
等待 Best Master Clock 演算法完成。若要確定該演算法是否已完成,請在迴圈中執行以下步驟,直到
PtpStatus所有相機的參數值為Master或Slave且不超過一部相機傳回Master作為PtpStatus:- 執行
PtpDataSetLatch在每部相機上執行指令。
該指令允許您對相機目前的 PTP 狀態進行「快照」。實作「快照」可確保所有參數值都指向完全相同的時間點。 - 讀取
PtpStatus每個相機的參數。 - 等待時鐘充分同步。
請參閱以下章節以了解如何驗證這一點的說明。
- 執行
如何檢查時鐘是否已充分同步#
資訊
對於此操作,請使用 PtpOffsetFromMaster 參數,該參數表示設備時脈與主時脈的偏差程度。您應該等待,直到所有這些偏移量都低於某個閾值(由您根據您的需求指定),例如 50 µs。
由於時脈是由控制機制持續調整的,因此偏移量會在主時脈值周圍震盪一段時間,且震盪振幅會隨著時間推移而變小。Basler 建議檢查最大 PtpOffsetFromMaster 參數值是否在一段特定時間(例如 10 秒)內保持在閾值以下。
- 根據您的應用需求為偏移量定義一個閾值,例如 50 µs。
- 定義時間範圍的長度,在此期間您希望偏移量保持在閾值以下。
- 讀取當前系統時間,並將其用作時間範圍的起點,在此期間您要檢查
PtpOffsetFromMaster參數值。 - 在迴圈中執行以下步驟:
- 在每台相機上,執行
PtpDataSetLatch並讀取PtpOffsetFromMaster參數值。
記下這些值以便後續使用。 - 尋找最高的偏移量。
- 如果在指定的的時間範圍內,有一個或多個絕對偏移量高於閾值,請將時間範圍的起點重設為當前時間,並返回步驟 1。
- 如果所有絕對偏移量在整個時間範圍內均低於閾值,請停止迴圈。
現在所有時脈都已充分同步。
- 在每台相機上,執行
下圖顯示了與主時脈的偏移量如何隨時間變化。時間範圍由紅色矩形表示。與主時脈偏移量的絕對值越小,精度就越高。

使用 PTP 同步多部相機的建議#
如果您想使用 PTP 同步多台相機,請在設定網路時遵循這些建議。網路設定通常是同步失敗的最常見原因。
- 保持相機網路設定盡可能簡單,例如避免交換器/路由器級聯。
- 如果您使用的是啟用 IGMP snooping 的受管交換器,則應在交換器設定中為所有連接埠啟用 IGMP multicast。否則,用於同步的 IGMP 封包將被阻擋。
- 如果您想提高時脈精度,請使用提供 PTP grandmaster clock 的 PTP 交換器/路由器。