首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >怎样才能保持覆盆子计时的精确性?

怎样才能保持覆盆子计时的精确性?
EN

Stack Overflow用户
提问于 2017-07-14 09:52:24
回答 5查看 1.6K关注 0票数 8

我有3台Raspberry 3型B型设备。他们的操作系统是Windows 10 IOT,他们安装在同一天(昨天)。

我有非常奇怪的经验,他们的计时,他们是非常不准确的。他们中的一些人落后于正确的时间,而另一些人则是3-4分钟.通常的行为是不准确的。

我试图通过在启动计划脚本中调用"w32tm /resync /force“来强制每个启动时同步。这似乎一点帮助也没有。

我还试着使用不同的Wi网络(来自不同的供应商),所有这些都存在问题。

当w32tm /query /status查询时间状态时,我得到以下结果:

设备1

跳跃指示器:3(最后一分钟有61秒)地层:0(未指定)精度:-23 (每蜱119.209ns)根延迟:0.000000S根色散:0.0000000 ReferenceId: 0x00000000 (未指定)最后成功同步时间:未指定源:本地CMOS时钟极间隔: 10 (1024s)

器件2

跳跃指示器:0(无警告)地层:3(次级参考-由(S)NTP同步)精度:-23 (每蜱119.209ns)根延迟: 0.1734432s根色散: 0.4173777s ReferenceId: 0x338C7FC5 (源IP: 51.140.127.197)最后成功同步时间: 7/14/2017 7:48:12 AM源: time.windows.com,0x9 Poll间隔: 15 (32768 S)

设备3

跳跃指示器:0(无警告)地层:3(次级参考-由(S)NTP同步)精度:-23 (每蜱119.209ns)根延迟: 0.1850726s根色散:16.72260S ReferenceId: 0x338C7FC5 (源IP: 51.140.127.197)最后成功同步时间: 7/14/2017 11:42:52 AM源: time.windows.com,0x9 Poll间隔: 10 (1024s)

我在网上读到了有关这个问题的话题,但我找不到任何可行的解决办法。我觉得很奇怪,时间应该是大多数申请中的关键因素,所以必须有一个解决办法。

你能帮我解决这个问题吗?任何建议都是非常有用的!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-07-29 08:54:24

首先,我必须声明我还没有碰过Windows 10,也还没有碰过Raspberry。另一方面,我看到下面的方法解决了各种各样的Windows机器的所有时间同步问题,您可以试一试。

The problems (根据我的经验):

1) time.windows.com是非常不可靠的。在我的设置和几个客户的设置中,大多数情况下,在开箱即用的Windows安装之后,即使不涉及无线连接,即使存在可靠的高数据速率/低延迟连接,时间也无法可靠地同步。

2) Windows似乎以一种不同寻常的方式(我们也可以说:错误)查询NTP服务器。虽然我对NTP还不够深入,无法给出详细的解释,但Windows作为客户端似乎将所谓的“对称活动”数据包发送到服务器,而不是普通的“客户端数据包”。因此,一开始,它与其他(标准) NTP服务器也非常不可靠地工作。

可能的解决方案

问题1的解决方案是显而易见的:在网络的某个地方安装一个标准的NTP服务器。如果您手头有一个Linux盒,我最终可以帮助您正确地配置它。然后,通过电缆将Raspberrys连接到此NTP服务器,并在Raspberrys上应用解决方案2(见下文)。

问题2的解决方案不那么明显,它涉及为Windows time服务设置一个无文档标记(至少在Windows 7 Pro中是无文档的)。您已经查询了Windows时间服务状态,并向我们显示了输出。请注意输出的以下部分(例如装置2):

Source: time.windows.com,0x9 Poll Interval: 15 (32768s)

问题是0x9,它应该是0x8。若要更改该标志,请以管理员身份打开命令行窗口(仅属于管理组是不够的),并执行以下命令:

w32tm /config /manualpeerlist:xxx.xxx.xxx.xxx,0x8 /syncfromflags:MANUAL

注意如何添加正确的标志0x8 (当然,xxx.xxx是NTP服务器的IP地址,但也可以给出一个正常的主机名(例如ntpserver.example.org) )。基本上,上面的行告诉Windows时间服务它应该同步到哪个服务器,它应该只同步到该服务器,并且应该向该服务器发送正常的客户端请求数据包(而不是活动的对称数据包)。

完成此操作后,您必须通过更新其配置重新启动Windows时间服务(我更喜欢第一个配置)来应用更改。

如果再次查询状态,则输出中将包含以下部分:

Source: xxx.xxx.xxx.xxx,0x8 Poll Interval: xx (xxxxxs)

注意,输出中的标志现在已经从0x9更改为0x8

两点最后笔记

1)我不确定问题2的解决方案是否有效,如果您坚持要同步到time.windows.com。由于它不可靠,我已经多年没有使用它了。如果您将said标志从0x9更改为0x8,但仍然使用time.windows.com作为NTP服务器,情况可能会变得更糟。

在您的本地网络中设置您自己的NTP服务器是一个非常好的主意,原因有几个(我不会在这里详细介绍,因为它将是一个非主题)。如果您不能或不想这样做,我建议使用其他公共时间服务器(通过访问http://www.ntp.pool.org开始搜索)而不是使用time.windows.com。他们肯定会解决问题2)。

2)作为最后手段,您可以尝试在Windows中安装另一个时间服务。例如,有一个完整的端口NTP软件的Windows,但AFAIK,只有英特尔平台。因为我对Raspberry (ARM)平台一无所知,所以我不知道是否还有其他的时间服务软件,所以这只是一个想法,以防其他方法失败。

票数 2
EN

Stack Overflow用户

发布于 2017-07-21 15:22:44

设备1似乎根本不使用时间服务器,在所有设备上强制执行相同的配置。

我建议你试试不同的计时器。我也曾遇到过类似的问题,有时这甚至与硬件无关,而是一个网络问题。没有人知道你和一个时间服务器之间是什么,那么尝试一个不同的网络就足够了。

http://www.pool.ntp.org/en/use.html

代码语言:javascript
复制
w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org"

应该够好的..。 RPi上没有实时时钟。你可以为raspberry pie rtc买一个谷歌。

在没有RTC的情况下,RPi用它的CPU周期构建一个时间。这些并不是超精确的,而且当你超过CPU的时钟时,可能会更容易漂移。

这个问题也许可以在https://raspberrypi.stackexchange.com/上得到更好的回答。

如果你不想买芯片,你可以尝试改变电压,让时间更新更经常从定时器。

票数 4
EN

Stack Overflow用户

发布于 2017-07-26 00:40:16

由于Pi缺乏实时时钟,您应该选择双管齐下的方法来获得最佳效果。

选择一个不同的时间服务器进行长期校正,然后在上面安装与此类似的实时时钟模块,以便在未连接到网络时保持非常接近的时间。该模块采用温度稳定,不需要焊接,使用无所不在的I2C接口,具有高精度和长电池寿命的要求。对很多Adafruit产品都很满意。

至于时间服务器,请看一看这个资源。它们甚至包括(在其服务条款中)关于如何设置ntp以便最佳使用的指南(以及在其池上的分布式负载)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45099931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档