玩家篇_树莓派 Pi 5 核心效能结合 DM9058 1588 扩展 (二):解锁 One-Step 纳秒级同步
摘要:双雄对决!两台 Pi 5 直连解锁 IEEE 1588 One-Step 终极奥义
上一回,我们用“Pi 5 + DM9058”这头猛兽去单挑 PC,感受到了硬件 PTP 的威力。但说实话,PC 那个非实时的 Windows/Linux OS 总是让人觉得有一丝丝的不完美——那不可控的系统延迟和抖动,就像是赛车场上的减速带。
今天,我们要玩把大的!抛弃 PC,直接让两台“Pi 5 + DM9058”正面硬刚!
这篇“进阶玩家篇”将带你进入纯粹的嵌入式同步领域。我们将搭建 两套完全相同的 Pi 5 系统,启用 DM9058 的杀手锏功能——One-Step (单步骤) 模式。这就像是把两个顶尖的高手关在同一个房间里对表,排除一切外界干扰,看看纳秒级的同步究竟能有多狠!
一、 为什么要组“双 Pi 5”战队?(The Ultimate Rig)
单一 Pi 5 对 PC 固然好用,但 PC 的网卡和驱动往往受限于通用的 x86 架构,难以完全发挥 1588 的极致性能。
两台 Pi 5 直连的意义在于:
-
完全对称的硬件: 就像另外那个世界的“镜像”,没有硬件差异带来的奇怪延迟。
-
纯净的 OS 环境: 都是实时性调教过的 Raspberry Pi OS,没有 PC 后台乱七八糟的服务干扰。
-
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 网口) |
架构图:简单粗暴的直连
![[assets/Direct connect.png]]
三、 硬核科普:One-Step vs Two-Step
这也是很多玩家容易搞混的地方,用最通俗的话来说:
-
Two-Step (传统模式): Master 发出
Sync封包时,心里还没底(不知道确切发出的时间)。发出去之后,赶紧看了一眼手表,记录下时间 t_1,然后再发一个Follow_Up封包告诉 Slave:“嘿,刚才那个包是 t_1 时间发出的。”-
缺点:多发一个包,啰嗦。
-
-
One-Step (极速模式): Master 发出
Sync封包。当封包经过 DM9058 硬件的那一瞬间,DM9058 像个神枪手一样,直接把当前精确时间 t_1 刻在了正在飞出去的封包里! Slave 收到封包时,里面就已经有 t_1 了。-
优点:不需要 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 后,你会发现整个世界清净了。只有 Sync、Delay_Req 和 Delay_Resp 在跳舞。那个烦人的 Follow_Up 彻底消失了。 ![[assets/wireshark-1-step-2.jpg]] (看着这清爽的封包列表,强迫症患者表示极度舒适)
证据二:Sync 封包里的秘密 随便抓一个 Sync 封包打开看,找到 Precision Time Protocol -> flags。 你会发现 twoStepFlag 是 False (0)。 ![[assets/wireshark-1-step-1.jpg]] 这代表 DM9058 已经在封包离港的瞬间,把以此为证的时间戳狠狠地盖了上去。
六、 总结:这才是工业级的浪漫
通过这个实验,我们不仅验证了 DM9058 的硬实力,更在 Pi 5 上实现了一个完全独立的纳秒级同步网络。
One-Step 模式不仅节省了 50% 的 Sync 网络开销,更减少了软件协议栈的处理时间。这就是为什么在稍微高端一点的工业自动化、雷达阵列或者音频系统中,大家都抢着要用 One-Step。
现在,你手上的这两台 Pi 5,已经不再是普通的单板电脑了,它们是两台可以进行精密协同作战的精密仪器。去开发你的分布式麦克风阵列、去调试你的多臂机器人吧——因为在时间同步这个问题上,你已经毕业了。
下课!
前一篇: 玩家篇_树莓派 Pi 5 核心效能结合 DM9058 1588 扩展 (一):高速 SPI 介面应用教学
下一篇: 玩家篇_树莓派 Pi 5 核心效能结合 DM9058 1588 扩展 (三):挑战极限!验证 DM9058 的纳秒级同步精度








