用树莓派 DIY 一个 PTP Grandmaster 时钟
用树莓派 DIY 一个 PTP Grandmaster 时钟
2025年3月28日
简而言之:我搭建了一个开源的 Time Pi project,使用 Raspberry Pi 构建一个 stratum 1 的 PTP 和 NTP 时间服务器。
时间对现代社会至关重要,我们大多数人手腕上的时钟比人类历史上任何时候都更精确。但是,高度精确 的时间在许多行业中都很重要,尤其是在机器人、金融和媒体制作领域。随着 VR 等技术进入家庭,精确的时间在 那里 也可能变得更加重要。
时序行业有许多用于 “grandmaster” 时钟的解决方案,这些时钟从 GPS、GNSS 或其他原子钟支持的时间源获取高度精确的时间,并使用 PTP 以 极高的 精度(低至纳秒级)将其分发到本地网络。

从历史上看,设置 DIY PTP grandmaster 时钟服务器是一项痛苦且昂贵的尝试,大多数爱好者都负担不起。因此,我将介绍一个已经开发了一段时间的项目:Time Pi,一个基于 Raspberry Pi 5 的 stratum 1 PTP 和 NTP 时间服务器。
在上图中,它安装在 LabStack module 内部的一个 3U RackMate TT (DeskPi 的迷你机架的一个尚未发布的版本——我正在与他们合作改进设计) 中。 我使用一个 PoE 转 USB-C 电源分配器,从我的 GigaPlus 2.5 Gbps PoE+ switch 为它供电。
视频
我很幸运能和 Masterclock 位于同一城市,这是一家时序解决方案公司,在我生命的大部分时间里,他们一直在制造时间服务器和时钟。
我与他们讨论我的项目已经一年多了,他们为我的工作室提供了两个 PoE 供电的 NTP 时钟,以及用于 Time Pi 的测试(模拟/数字混合时钟如上图所示,1U 机架式时钟如下所示):

Demetrios Matsakis 博士曾任美国海军天文台的首席科学家(该天文台协助协调 UTC 时间!),现在是 Masterclock 的首席科学家。他和 John Clark (CTO) 非常荣幸地参观了我的工作室,并与我聊了 他们 的新时间服务器 GMR6000,以及关于时间和 DIY 解决方案。

(特别感谢 Dave Bour 提供以上照片。)
我在我的 YouTube 频道上发布的一个视频包括我和他们的对话(以及关于 Time Pi 的更多细节)。你可以在下面观看:
Time Pi
假设你不想观看完整视频,我也将在此处描述硬件本身 - 因为它是围绕 TimeHAT from TimeAppliances 构建的。
TimeHAT 是一个用于 Pi 5 的 200 美元的 HAT,它包括一个带有 PTP 硬件时间戳支持的 Intel i226 2.5 Gbps NIC。有两个 SMA 连接器用于 PPS 输入/输出(可配置),一个额外的 U.fl 连接器连接到 NIC 上的另一个 PPS 端口,以及一个为自定义 GPS 模块布线的 M.2 插槽。

该插槽有点有趣,它被描述为 “OCP M.2 GNSS 2242 Slot”,它遵循 Open Compute Project 的 M2 Sync Module Form Factor。目前我只能找到一个商业上可用的选项:OCP M.2 Neo-M9N GNSS,一个 195 美元的附加组件,带有一个以时序为中心的 u-blox GPS 模块。
该 HAT 通过 PCIe(用于 Intel i226 NIC)和 GPIO(用于 GPS 通信和配置)与 Pi 5 接口。
我 确实 遇到了一些 i226 NIC 的硬件问题,但这些问题似乎与 TimeHAT 或 Pi 无关,而是与 Intel 的 Linux 驱动程序有关。似乎 i225 和 i226 都有各种奇怪的问题,我遇到的主要问题是 它 无法以 2.5 Gbps 工作,但可以以 1 Gbps 工作。
在软件方面,我使用 Ansible 配置所有内容(Chrony、NTP 和 PTP)。Raspberry Pi OS / Debian 是基础操作系统,这使得配置所有适当的软件变得容易。Linux 有一套非常强大的与时序相关的库和包,尤其是对于 PTP。
我不会在这篇文章中详细介绍整个设置过程——为此,请访问 time-pi repository。
结论
我的第一篇文章和视频是关于 Time Pi 硬件,并将其与一些商业产品进行比较。它已经在我的工作室中稳定运行作为 NTP 时间服务器几个月了,甚至在靠近外墙之一的电池一起使用时,我也已经让 GPS 工作进行计时。
但我将继续进行更多与时序相关的冒险(将在此处和 YouTube 上记录):
- 与我的父亲永久安装一个室外 GPS 天线,并探索对抗 GPS 干扰的方法
- 配置 PTP 并测试各种目标设备(包括消费级 Intel 主板!)的同步
- 测试各种时钟选项,包括更深入地研究 Masterclock 自己的时钟(如上图所示)
- 再次尝试让 Pi 与开源 Time Card 接口,使用其芯片级原子钟 (CSAC) 以获得 严重过剩 的保持性能
- (希望)与 Masterclock 构建一个集成时钟,看看我们是否可以通过将我们的时钟组合在一起来提高整体计时精度。