iT邦幫忙

1

玩家篇_樹莓派 Pi 5 核心效能結合 DM9058 1588 擴展 (二):解鎖 One-Step 納秒級同步

  • 分享至 

  • xImage
  •  

摘要:雙雄對決!兩台 Pi 5 直連解鎖 IEEE1588 One-Step 終極奧義

上一回,我們用“Pi 5 + DM9058”這頭猛獸去單挑 PC,感受到了硬體 PTP 的威力。但說實話,PC 那個非即時的 Windows/Linux OS 總是讓人覺得有一絲絲的不完美——那不可控的系統延遲和抖動,就像是賽車場上的減速帶。

今天,我們要玩把大的!拋棄 PC,直接讓兩台“Pi 5 + DM9058”正面硬剛!

這篇“進階玩家篇”將帶你進入純粹的嵌入式同步領域。我們將搭建 兩套完全相同的 Pi 5 系統,啟用 Davicom(聯傑)的 DM9058 殺手鐧功能——One-Step (單步驟) 模式。這就像是把兩個頂尖的高手關在同一個房間裡對表,排除一切外界干擾,看看納秒級的同步究竟能有多狠!


一、 為什麼要組“雙 Pi 5”戰隊?(The Ultimate Rig)

單一 Pi 5 對 PC 固然好用,但 PC 的網卡和驅動往往受限於通用的 x86 架構,難以完全發揮 PTP1588 的極致性能。

兩台 Pi 5 直連的意義在於:
1.  完全對稱的硬體: 就像另外那個世界的“鏡像”,沒有硬體差異帶來的奇怪延遲。
2.  純淨的 OS 環境: 都是即時性調教過的 Raspberry Pi OS,沒有 PC 後臺亂七八糟的服務干擾。
3.  One-Step 模式解鎖: 這是今天的重頭戲。只有在這樣的環境下,我們才能無痛開啟並驗證 One-Step 模式,減少網路負載,提升同步精度。


二、 硬體軍火庫 (Gear Up)

要玩這一票,你需要雙份的快樂:

角色 裝備清單
Master (指揮官) Pi 5 (4GB/8GB) + DM9058 擴展板 + 27W 原廠電源
Slave (跟隨者) Pi 5 (4GB/8GB) + DM9058 擴展板 + 27W 原廠電源
連接介質 一根高品質的 Cat.5e 或 Cat.6 網線 (直接捅進兩邊的 DM9058 網口)

架構圖:簡單粗暴的直連

https://ithelp.ithome.com.tw/upload/images/20260210/20181669QUlcupGi9b.png


三、 硬核科普:One-Step vs Two-Step

這也是很多玩家容易搞混的地方,用最通俗的話來說:

*   Two-Step (傳統模式):
    Master 發出 Sync 封包時,心裡還沒底(不知道確切發出的時間)。發出去之後,趕緊看了一眼手錶,記錄下時間 t1,然後再發一個 Follow_Up 封包告訴 Slave:“嘿,剛才那個包是 t1 時間發出的。”
    *   缺點:多發一個包,囉嗦。

*   One-Step (極速模式):
    Master 發出 Sync 封包。當封包經過 DM9058 硬體的那一瞬間,DM9058 像個神槍手一樣,直接把當前精確時間 t1 刻在了正在飛出去的封包裡
    Slave 收到封包時,裡面就已經有 t1 了。
    *   優點不需要 Follow_Up 封包! 乾淨、俐落、流量減半,逼格拉滿。


四、 實戰演練:開啟 One-Step 模式

假設你的兩台 Pi 5 都已經按照上一篇教程裝好驅動了(網口通常是 eth1)。

1. 驗明正身 (Check Capabilities)

在兩台機器上都跑一下 ethtool,確認它們都有 One-Step 的超能力:

sudo ethtool -T eth1

盯著輸出看,必須要有這一行,沒有就得去檢查驅動編譯了:

Hardware Transmit Timestamp Modes:
    ...
    onestep-sync  <-- 就是這個!核心技能!

2. Master 端設置 (指揮官就位)

Master (Site A) 上,我們要載入特定的設定檔來開啟 One-Step。驅動包裡已經貼心地備好了。

開火指令:

# 注意:確保你在 dm9058_linux_driver 目錄下
sudo ptp4l -i eth1 -m -H -f ptp4l_config/one_step_master.cfg

[!WARNING]
老鳥注意: 這裡的設定檔是專為 LinuxPTP v4.4 準備的。如果你用的是早於 v4.4 的版本,可能會報錯。既然玩 Pi 5 了,軟體也要跟上時代啊!

3. Slave 端設置 (跟隨者就位)

Slave (Site B) 其實很聰明,它會自動識別 Master 發來的是什麼格式。但為了保持隊形,我們還是給它一個標準的啟動指令。

啟動指令:

sudo ptp4l -i eth1 -m -H -s

五、 見證奇跡的時刻 (Verification)

1. 終端機資料的一場狂歡

盯著 Slave 端 的螢幕,你會看到 master offset 開始瘋狂收斂。
由於是 Pi 5 對 Pi 5 加上 直連,這裡的數值會比連 PC 時更穩、更小。


[... after 20 steps ...]:
ptp4l[8896.888]: master offset         12 s2 freq   +9750 path delay       365
ptp4l[8897.888]: master offset          8 s2 freq   +9750 path delay       365
ptp4l[8898.889]: master offset          5 s2 freq   +9749 path delay       365
ptp4l[8899.888]: master offset          1 s2 freq   +9747 path delay       366
ptp4l[8900.889]: master offset          1 s2 freq   +9747 path delay       366
ptp4l[8901.889]: master offset        -42 s2 freq   +9704 path delay       369
ptp4l[8902.889]: master offset          0 s2 freq   +9734 path delay       369
ptp4l[8903.889]: master offset         13 s2 freq   +9747 path delay       369
ptp4l[8904.889]: master offset         14 s2 freq   +9752 path delay       369
ptp4l[8905.889]: master offset          9 s2 freq   +9751 path delay       369
ptp4l[8906.889]: master offset          8 s2 freq   +9752 path delay       366
ptp4l[8907.889]: master offset          2 s2 freq   +9749 path delay       366
ptp4l[8908.889]: master offset          2 s2 freq   +9749 path delay       364
ptp4l[8909.889]: master offset          1 s2 freq   +9749 path delay       362
ptp4l[8910.889]: master offset         -1 s2 freq   +9747 path delay       362
ptp4l[8911.889]: master offset         -2 s2 freq   +9746 path delay       362
ptp4l[8912.889]: master offset         -1 s2 freq   +9746 path delay       362
ptp4l[8913.889]: master offset         -4 s2 freq   +9743 path delay       366
ptp4l[8914.889]: master offset         -2 s2 freq   +9744 path delay       366
ptp4l[8915.889]: master offset         -1 s2 freq   +9744 path delay       369

看到那一個個個位數的納秒誤差了嗎?這就是金錢(硬體)的力量!

2. Wireshark 抓包實錘

口說無憑,還是得看包。我們在 Slave 端 跑個 Wireshark,來看看 One-Step 到底長啥樣。

證據一:Follow_Up 消失了?!
沒錯,你的過濾欄輸入 ptp 後,你會發現整個世界清淨了。只有 SyncDelay_ReqDelay_Resp 在跳舞。那個煩人的 Follow_Up 徹底消失了。

https://ithelp.ithome.com.tw/upload/images/20260210/20181669kdNZ1w2kU7.png
(看著這清爽的封包列表,強迫症患者表示極度舒適)

證據二:Sync 封包裡的秘密
隨便抓一個 Sync 封包打開看,找到 Precision Time Protocol -> flags
你會發現 twoStepFlagFalse (0)

https://ithelp.ithome.com.tw/upload/images/20260210/20181669erF9TiW70d.png
這代表 DM9058 已經在封包離港的瞬間,把以此為證的時間戳記狠狠地蓋了上去。


六、 總結:這才是工業級的浪漫

通過這個實驗,我們不僅驗證了Davicom(聯傑)的 DM9058 的硬實力,更在 Pi 5 上實現了一個完全獨立的納秒級同步網路。

One-Step 模式不僅節省了 50% 的 Sync 網路開銷,更減少了軟體協定棧的處理時間。這就是為什麼在稍微高端一點的工業自動化、雷達陣列或者音訊系統中,大家都搶著要用 One-Step。

現在,你手上的這兩台 Pi 5,已經不再是普通的單板電腦了,它們是兩台可以進行精密協同作戰的精密儀器。去開發你的分散式麥克風陣列、去調試你的多臂機器人吧——因為在時間同步這個問題上,你已經畢業了。

下課!

上一篇:玩家篇_樹莓派 Pi 5 核心效能結合 DM9058 1588 擴展 (一):高速 SPI 介面應用教學

下一篇:玩家篇_樹莓派 Pi 5 核心效能結合 DM9058 1588 擴展 (三):挑戰極限!驗證 DM9058 的納秒級同步精度


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言