精確時間協議(PTP)是用于在網絡中進行時鐘同步的協議。當與硬件支持結合使用時, PTP 能夠達到亞微秒的精度,這遠好于通常使用的 NTP 。 PTP 支持分為內核空間和用戶空間。該協議的實際實現稱為linuxptp,它是 PTPv2 根據 Linux 的 IEEE 標準 1588 實現的。所述linuxptp包包括ptp4l和phc2sys用于時鐘同步的程序。該ptp4l程序實現了 PTP 邊界時鐘和普通時鐘。硬件時間戳用于將 PTP 硬件時鐘與主時鐘同步,軟件時間戳用于將系統時鐘與主時鐘同步。
認識PTP
同步的時鐘按 PTP 按照主從層次結構組織。從站與它們的主站同步,而主站可能是他們自己的主站的從站。層次結構由最佳主時鐘( BMC ) 算法自動創建和更新,該算法在每個時鐘上運行。當一個時鐘僅具有一個端口,它可以是主或從屬,這樣的時鐘被稱為普通時鐘(OC)。具有多個端口的時鐘可以在一個端口上作為主時鐘,在另一個端口上作為從時鐘,這樣的時鐘稱為邊界時鐘 ( BC )。頂級master被稱為grandmaster 時鐘,可以使用全球定位系統( GPS ) 時間源進行同步。通過使用基于 GPS 的時間源,可以高度準確地同步不同的網絡。
PTP的優勢
PTP 與網絡時間協議( NTP ) 相比的主要優勢之一是各種網絡接口控制器( NIC ) 和網絡交換機中需要硬件時間戳支持。這種專用硬件可以 PTP 解決消息傳輸中的延遲,并大大提高時間同步的準確性。雖然可以在網絡中使用不支持 PTP 的硬件設備(如不支持PTP的交換機),但這通常會導致抖動增加或在延遲中引入不對稱性,從而導致同步不準確。為獲得盡可能高的準確性,建議將所有網絡設備之間的 PTP 時鐘的 PTP 硬件是啟用的。并非所有網絡硬件都支持 PTP 。大型網絡中的時間同步可能更適合 NTP。在硬件 PTP 支持下,NIC 擁有自己的板載時鐘,用于為接收和傳輸的 PTP 消息添加時間戳。正是這個板載時鐘與 PTP 主機同步,計算機的系統時鐘 PTP 與網卡上的硬件時鐘同步。在軟件 PTP 支持下,系統時鐘用于對 PTP 消息打時間戳,并直接與主站同步。硬件 PTP 支持提供了更高的準確性,因為 NIC 可以在PTP 數據包發送和接收的確切時刻標記數據包,而軟件 PTP 支持需要 PTP 操作系統對數據包進行額外處理。
實踐1-檢查硬件時間戳
為了使用 PTP ,網絡接口的內核網絡驅動程序必須支持軟件或硬件時間戳功能。除了驅動程序中存在的硬件時間戳支持之外,NIC 還必須能夠在物理硬件中支持此功能。驗證特定驅動程序和 NIC 的時間戳功能的最佳方法是使用ethtool查詢接口,如下所示:
~]# ethtool -T eth3Time stamping parameters for eth3:Capabilities: hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) software-system-clock (SOF_TIMESTAMPING_SOFTWARE) hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)PTP Hardware Clock: 0Hardware Transmit Timestamp Modes: off (HWTSTAMP_TX_OFF) on (HWTSTAMP_TX_ON)Hardware Receive Filter Modes: none (HWTSTAMP_FILTER_NONE) all (HWTSTAMP_FILTER_ALL)
其中eth3是您要檢查的接口。對于軟件時間戳支持,參數列表應包括:
SOF_TIMESTAMPING_SOFTWARE SOF_TIMESTAMPING_TX_SOFTWARE SOF_TIMESTAMPING_RX_SOFTWARE
對于硬件時間戳支持,參數列表應包括:
SOF_TIMESTAMPING_RAW_HARDWARE SOF_TIMESTAMPING_TX_HARDWARE SOF_TIMESTAMPING_RX_HARDWARE
實踐2-安裝linuxptp
yum安裝
sudo yum install linuxptp
apt-get安裝
sudo apt-get install linuxptp
git安裝
sudo git clone git://git.code.sf.net/p/linuxptp/code linuxptp cd linuxptp sudo make sudo make install
測試:
~]# ptp4l -h usage: ptp4l [options] Delay Mechanism -A Auto, starting with E2E -E E2E, delay request-response (default) -P P2P, peer delay mechanism 。..
實踐3-運行程序
硬件時間戳,主從模式測試主時鐘:
sudo ptp4l -i enp0s31f6 -m –H
從時鐘:
sudo ptp4l -i eno1 -m -H –s
運行結果,從鐘:
主偏移值是以納秒為單位測量的主偏移。的 s0 , s1 , s2 串表示不同的時鐘伺服狀態:s0 被解鎖,s1 是時鐘步驟和 s2 被鎖定。一旦伺服處于鎖定狀態( s2 ),除非 pi_offset_const 在配置文件中將該選項設置為正值,否則時鐘將不會步進(僅緩慢調整)。該 freq 值是時鐘的頻率調整,以十億分之一 (ppb) 為單位。路徑延遲值是從主站發送的同步消息的估計延遲(以納秒為單位)。端口 0 是用于本地 PTP 管理的 Unix 域套接字。端口 1 是 eth3 接口。 INITIALIZING、LISTENING、UNCALIBRATED 和 SLAVE 是一些可能的端口狀態,它們會在 INITIALIZE、RS_SLAVE、MASTER_CLOCK_SELECTED 事件上發生變化。在最后一個狀態更改消息中,端口狀態從UNCALIBRATED 更改為 SLAVE,表明與 PTP 主時鐘成功同步。
在新的工業 4.0 理念正在改變技術格局的世界中,提出了更高的時間同步要求。虹科 & ELPROMA 提供世界領先的時間同步解決方案。ELPROMA(1992年起)提供先進的NTP PTP / IEEE1588時間服務器,用來確保從時鐘高度穩定和準確。
高可用性支持(HA)
兩路冗余天線
便捷式型號可選
MTBF 391000 小時
支持NTP/PTP/IRIG/1PPS+ToD
電信,電力等多行業PTP標準支持
責任編輯:haq
-
控制器
+關注
關注
112文章
16332瀏覽量
177813 -
Linux
+關注
關注
87文章
11292瀏覽量
209335 -
PTP
+關注
關注
0文章
50瀏覽量
8655
原文標題:【虹科】Linux PTP 高精度時間同步實踐
文章出處:【微信號:Hongketeam,微信公眾號:廣州虹科電子科技有限公司】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論