场景
我希望让两个树莓派在同一时间采集信号, 因为信号的频率高, 所以要求他们的时间精度经可能的高.机器时间就算是采用了ntp同步,误差也比较大, 测试后发现误差仍然大于毫秒级别.所以想通过gps实现.
原理
卫星每秒会发送一个信号出去,这个信号包含了时间戳,经纬度等信息.
如果我有一个gps模块,那么它每秒都会接收到一个信息.
我在两个树莓派上都按装gps模块, 当接收到第xx秒的信号后,自动开始采集,这样能最大的保持同步.
实现
选购gps
本着便宜的原则,我买了这个
gps信号
该gps有 双模模式(GN)、GPS 模式(GP)、北斗模式(BD)
基于nema0183协议,每种模式具有一下信息
- 定位信息(GGA):时间,经纬度,海拔等
- 地理定位信息(GLL):时间,经纬度. 不是很清楚和GGA的区别在哪里, 可能是采集方式不同.
- 当前卫星信息(GSA):定位模式,类型
- 可见卫星信息(GSV):卫星方位角等
- 最简定位信息(RMC):时间,经纬度
- 地面速度信息(VTG):磁篇角,航速等
- 天线状态输出(TXT):天线正常或断开
可以看到,GGA,GLL,TXT三个信息都有时间,经纬度的信息.
我测试后发现,三个的时间,经纬度都完全相同,后面将测试过程.
查看gps输出
插入设备后(此处略), 首先通过