我有一个Raspberry Pi与GPS模块连接。因为所有的GPS卫星都有非常精确的原子钟,我想让Pi的时钟和卫星的时钟同步。我知道如何从卫星上获取日期和时间,并将Pi的时间设置为:
sudo date -s "MAR 14 2016 14:53:09"
但这是准确的秒,我想至少有毫秒,但我更喜欢纳秒。
我知道date +%s%N
以纳秒为单位返回时间。
如何以纳秒为单位设定时间?
发布于 2016-03-14 20:28:13
当数据通过USB/ be 232接口到达您的PC机时,分辨率和精度都不会很好。最后,如果没有专用设备,最好还是留在NTP。
从这个GPS同步教程
市面上有许多便宜的GPS接收器。他们中的大多数使用RS232或USB连接将他们的信息发送到附加的计算机。虽然接收器内部的时钟本身运行精度为纳秒,但将数据传送给计算机会造成如此大的延迟,因此实际上不可能以超过几毫秒的精度使本地计算机的时钟与该信号同步。这种准确性也可以通过连接到因特网上一个免费的NTP时间服务器来获得。只有GPS设备与计算机具有一种快速、准确的同步方法,才能作为时间同步装置。要做到这一点,最昂贵和最准确的方法是使用GPS接收器,它适合本地PCI或PCIex插槽的计算机。但是这些卡非常昂贵,而且不普及。另一种解决方案是使用缓慢和不准确的RS232或USB接口发送通用数据,并与脉冲进行时间同步。
正如@dfc正确指出的那样,使用PPS的RS232完成了工作。然而,该设备必须支持它。
在大多数具有脉冲能力的GPS设备上,脉冲每秒钟发送一次,从每秒钟开始发送一次。这就是为什么这些GPS设备通常被称为带有PPS的GPS,用于每秒的脉冲。遗憾的是,没有大量的GPS接收机具有额外的PPS输出。我在哈萨克斯坦使用Garmin GPS接收器进行我的旅游活动,因此我首先看了这家制造商提供的设备。目前有两个可以直接与计算机连接使用的Garmin GPS接收机: Garmin GPS 16 x LVS和Garmin GPS 18 x LVC。它们都工作在+5伏特的电源电压上,直接从计算机上获得,它们都通过RS232接口发送NMEA协议中的通用数据,并且都有PPS输出。
https://unix.stackexchange.com/questions/269751
复制相似问题