Precision Time Protocol (blaze)#
IEEE 1588 標準定義了此協定。Basler 相機支援 IEEE 1588-2008(也稱為 PTP Version 2)。
資訊
PTP 同步的精確度很大程度上取決於您的網路硬體與設定。為了達到最高精確度,請選擇高品質的網路硬體、使用支援 PTP 的網路交換器,並在網路中新增配備 GPS 接收器的外部 PTP 時鐘裝置。
使用功能#
為什麼使用 PTP#
Precision Time Protocol (PTP) 功能可讓 blaze 相機使用 Synchronous Free Run (blaze) 功能。
透過 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 同步 blaze 相機與 2D 相機的建議#
如果您想要使用 PTP 將 2D 相機與 blaze 相機進行同步,請在設定網路時遵循這些建議。網路設定通常是導致同步失敗的最常見原因。
- 保持相機網路設定盡可能簡單,例如避免交換器/路由器級聯。
- 如果您使用的是啟用 IGMP snooping 功能的受管交換器,則應在交換器組態中為所有連接埠啟用 IGMP multicast。否則,用於同步的 IGMP 封包將會遭到阻擋。
- 如果您想要提高時脈精度,請使用提供 PTP grandmaster clock 的 PTP 交換器/路由器。