使用gpsd连接gps模块授时遇到的坑

使用gpsd连接gps模块授时遇到的坑

问题描述:

在使用 gpsd 服务与 gps 模块进行通讯时,遇到了通讯异常的问题。表现为 gpsd 可能频繁尝试重新配置 gps 模块,这可能影响了系统对 gps 模块的正常使用和时间信息的准确获取,同时也可能导致系统资源的不必要消耗。

分析过程:

初步怀疑是 gpsd 的默认配置行为导致其不断尝试重新配置 gps 模块,可能与 gps 模块的某些特性或当前的系统环境有关。经过查阅 gpsd 的文档和相关资料,发现 -p 选项可能有助于解决此问题,该选项可以阻止 gpsd 不断尝试重新配置 gps 模块,使通讯更加稳定。

解决措施:

对 gpsd 的服务启动命令进行了修改,在gpsd的系统服务中添加了 -p 选项。

### TBox 时间同步测试方法 #### 测试环境准备 为了验证TBox的时间同步功能,需确保以下条件已满足: - 安装并配置 `gpsd` 和 `chrony` 软件包[^1]。 - 启动 `gpsd` 服务,并确认其正常运行状态[^2]。 ```bash sudo systemctl enable gpsd sudo systemctl start gpsd sudo systemctl status gpsd ``` - 配置 `chrony` 使用 GPS 提供的时间源以及 PPS (Pulse Per Second) 信号来校准系统时间。 #### NTP 时间同步测试 通过 `ntpdate` 或者 `chronyc` 命令可以手动触发一次时间同步操作: ```bash # 手动同步到指定NTP服务器 sudo ntpdate pool.ntp.org # 查看当前 chrony 的跟踪信息 chronyc tracking ``` 上述命令可以帮助检查网络上的标准时间服务器是否能够成功更新本地系统的日期和时间。如果一切设置无误,则应该看到来自远程NTP服务器的新鲜时间戳被应用到了本机上。 对于基于GPS的精确授时而言,在完成初步安装调试之后还需要进一步检验PPS输入的有效性和准确性。这通常涉及观察串口日志数据流里是否有规律性的秒脉冲标记出现,同时借助专门工具比如`pps-tools`来进行更深入分析: ```bash # 显示实时捕获到得PPS事件统计情况 ppstest /dev/pps0 ``` 当所有软硬件层面准备工作都完成后就可以正式开展针对整个链路性能评估工作了——即从源头GNSS模块直到末端外设节点之间全程传播延迟测量实验。具体做法可采用循环比较各环节记录下来时刻差值的方法实现定量描述整体误差范围大小的目的。 #### GPS 授时精度验证 利用专业设备或者开源软件库如libgpstime解析原始卫星报文中携带的标准UTC参考瞬间位置参数并与实际采集所得物理量作对比得出结论关于绝对偏差数值指标方面的表现如何;另外一方面也可以考虑引入第三方权威机构发布的公开可用的世界协调时钟作为参照系从而获得相对意义上的评判依据更加公平公正可靠一些。 ```python import libgpstime as gpstime def convert_gps_to_utc(gps_week, gps_seconds): utc_time = gpstime.gps_to_utc(gps_week, gps_seconds) return utc_time.strftime('%Y-%m-%d %H:%M:%S') ``` 以上代码片段展示了怎样把由全球定位系统计算出来的周数加上内部计数器读数转换成我们日常生活中使用的公历表达形式以便于直观理解两者之间的映射关系。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值