win10上如何开启ptp客户端,实现微秒级时间同步

IEEE 1588,也称为Precision Time Protocol (PTP),是一种用于实现分布式网络中设备间高精度时间同步的协议。其主要目的是在网络中的各个节点之间提供精确的时间对齐,这对于需要高精度时间同步的应用场景(如工业自动化、电信网络、数据中心等)至关重要。IEEE 1588v2是该协议的一个版本,它在2008年发布,提供了更高的精度和更多的功能。

NTP:NTP旨在提供毫秒级别的时间同步精度。在局域网(LAN)中,NTP通常能够达到1毫秒(ms)以内的同步精度,在广域网(WAN)中,精度可能降低到几十毫秒。

PTP:PTP提供更高的时间同步精度,可以达到亚微秒(10^-6秒)甚至纳秒(10^-9秒)级别。PTPv2版本特别适用于需要极高时间精度的应用场景。

Windows10 V1809包括一个PTP客户端。win11加强了这一功能。windows中对PTP的支持不如Linux中的支持那样功能性和成熟。

ptpclient仅支持 UDP 传输和 two-step 模式,这与 Linux PTP 的默认设置相匹配。但是,它要求在总线时钟设置中 currentOffsetUtcValid 标志必须为 1。(如果没有这个设置,我的 Windows 机器会非常精确地同步到偏差 37 秒。)你可以在树莓派上使用 pmc 来设置这个。我使用以下的 shell 脚本:

#!/bin/sh
pmc -u -b 0 \
"set GRANDMASTER_SETTINGS_NP
        clockCss              6
        clockAccuracy           0x20
        offsetScaledLogVariance 0xffff
        currentUtcOffset        37
        leap61                  0
        leap59                  0
        currentUtcOffsetValid   1
        ptpTimescale            1
        timeTraceable           0
        frequencyTraceable      0
        timeSource              0xa0
"

然后,为了配置ptpclient,请打开管理员权限的PowerShell并执行以下步骤。

1.配置防火墙以打开必要的端口

2.添加一些注册表键。同时启用MulticastTx,运行命令 reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\PtpClient /t REG_DWORD /v EnableMulticastTx /d 1。如下图。

f035227ca363262125c2e95e5358fcf5.jpeg

3.在Windows 11上,你现在可以使用 w32tm /ptp_monitor /duration:10 来检查你是否正确接收到PTP数据包。如果这不起作用,那么PTP将无法工作。

4.现在重启时间服务。使用 stop-service w32time 然后 start-service w32time。

5.现在使用 w32tm /query /status /verbose 来查看一切是否正常工作。你也可以使用事件查看器查看,如下图。

e595683ace1a8774926c1b828c6a8d5e.jpeg

同时将Windows时间服务的启动类型设置为自动。

我在让它工作时遇到了一些麻烦。似乎有一个bug阻止了PTP与某些驱动程序的工作。有一段时间,它在我的一个网络适配器上工作(主板上的Realtek 2.5GbE RTL8125BG),但在另一个上不工作(10GbE Aquantia卡)。其他人也有类似的问题。在Windows 11 22H2中,Aquantia卡开始工作,然后在我更新NIC固件/驱动程序时停止工作;另一个更新(KB5019509)使它再次工作。所以,如果它对你不起作用,可以尝试另一个网络适配器或尝试更新到Windows 11 22H2。注意,这里的问题不是驱动程序没有PTP硬件支持。

我没有找到许多支持硬件时间戳的Windows驱动程序。用于I210、I211和I350的Intel E1R驱动程序有支持。

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qjcz开发者日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值