Raspberry Pi与GPS构建NTP服务器

A) ntp服务器简介

参考

NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。时间按NTP服务器的等级传播。按照离外部UTC源的远近把所有服务器归入不同的Stratum(层)中。

NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。按照离外部UTC 源的远近将所有服务器归入不同的Stratum(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。

B) GPS模块

目前在淘宝买高端版的UBLOX gps模块并不方便,原因在于国内为了扶持北斗系统采取了一定的禁售。目前gps比北斗的定位仍然比较优秀,而授时服务基本没有差距。
根据我们的需求,我们只需购买对应的国产的双模接受模块(GPS+北斗)
我们选择了淘宝上的UM220-III型芯片,模块照片如图:
UM220-III
我们使用上方的串口1进行设置和测试,相应的引脚分别是:

vcc_3, RXD1, TXD1, GND

带有短接帽的引脚连接的是pps信号和一颗led,在短接帽连接下,pps信号会驱动led一闪一闪。由于我们要使用pps,拔出短接帽,使用右边的pps信号来源口。

B.a) TTL和RS232电平

参考TTL电平与RS232电平的区别

电平名称 输出L 输出H 输入L 输入H
TTL <0.8V >2.4V <1.2V >2.0V
RS232 +3~+15V -3~-15V +3~+15V -3~-15V
CMOS <0.1*Vcc >0.9*Vcc <0.3*Vcc >0.7*Vcc

B.b) GPS模块测试

按照淘宝说明在windows下连接测试可用

B.c) 模块配置

默认的波特率是9600, 主要完成3方面的配置:

  • 关闭北斗频点,只使用GPS(由于后面的ntpd只识别GPS的NMEA语句,不支持扩展的北斗NMEA语句,故我们只使用GPS)
  • 设置授时脉冲,周期为1000ms,脉冲长为100ms,脉冲上升沿与整秒对齐。只在授时有效时才输出授时脉冲(这一点暂时保留争议,看后续的使用)
  • 设置动态模型为车载模式

C) Raspberry-Pi

参考:
https://www.raspberrypi.org/documentation/usage/gpio/README.md

使用的是Raspberry-Pi 3 model B。
这里写图片描述
其GPIO接口定义如下:
这里写图片描述
我们将要使用其中的串口15作为gps的NMEA语句接收端口,GPIO 18作为pps的接收端口。

raspberry pi的系统我们使用官方推荐raspbian,安装参考官方的安装说明

C.a) 连线

raspberry pi gps model
3.3v vcc_3
Ground GND
GPIO 15 TXD1
GPIO 18 pps

C.b) 准备Raspberry-pi的串口

参考:
https://www.modmypi.com/blog/raspberry-pi-gps-hat-and-python
http://blog.csdn.net/qishi_blog/article/details/52843696
http://wengkai.github.io/ntpserver/ntpserver.html
http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html

C.b.a) 关闭串口登陆功能

关闭树莓派的串口登陆功能,使得树莓派可以使用GPIO 14和GPIO15作为串口通信。
进入系统后,进行配置:

sudo raspi-config

找到Serial这一项,disable之

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值