STM32
直播中

carey123

10年用户 1586经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

为什么精确授时需要pps和NMEA缺一不可呢

激光雷达和相机的内部时钟同步是怎样的?

为什么精确授时需要pps和NMEA缺一不可呢?

回帖(1)

王希予

2021-11-10 15:32:21
  激光雷达和相机的内部时钟同步
  
  激光雷达和相机的内部时钟同步示意图
  GPS到激光雷达的时间同步
  这个需要参考的激光雷达说明文档啦,像速腾激光雷达,还对PPS和NMEA串口信号的格式做个限制,所以需要提前用示波器看买来的GPS模块是否符合要求。这一步成功之后,在RSVIEW的web端的GPS Data一栏会显示串口信息、GPS Status和PPS Status一栏Locked。
  GPS到树莓派的时间同步/树莓派做PTP授时服务器
  这一步比较麻烦。这里主要使用的是gpsd、chronyd、ptp4l这几个软件。博主假设树莓派已经刷了官方系统,接好了各种外设。
  树莓派串口配置
  由于树莓派外设一共包含两个串口,一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0)。硬件串口由硬件实现,有单独的波特率时钟源,性能高、可靠。树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。但是我们不能使用mini串口,因此得把硬件串口分配给GPIO串口 TXD0、RXD0。具体的方法在网上可以查到很多资源,这里推荐树莓派的官方教程。这一步做完后,接好线,然后使用串口工具cutecom就可以查到GPS发过来的串口信号了。也可以使用gpsmon对GPS信号进行解析。
  开启树莓派pps-gpio
  为什么精确授时需要pps和NMEA缺一不可呢?这是因此设备处理NMEA信息(通常是串口信号)需要较长时间,处理完就已经早就错过NMEA信息所描述的那个时刻了。而PPS是一个1hz的方波,方波的上升沿可以触发设备的硬件中断功能,同时记录下这个时刻,这样处理完NMEA信息的时候,就知道对应的是哪个时刻了。开启树莓派pps-gpio功能的教程是这个。配置完成后,重启树莓派,使用ppstest去测试。
  关闭树莓派ntpd功能
  因为我们需要让树莓派跟gps同步,因此需要关闭树莓派ntpd功能,避免树莓派通过网络时间同步。在命令行输入rcconf,安装提示操作就可以了,很简单。
  使用gpsd和chronyd对树莓派进行授时,使用ptp4l把树莓派配置为授时服务器
  终于到重点了,这里先对这三个软件的功能做一个介绍。
  gpsd的功能是解析NMEA信息和pps信号,获取当前GPS时间,但是它没有办法给树莓派系统授时;chronyd能够给树莓派系统授时,但是需要从gpsd获取当前GPS时间,chronyd和gpsd的通讯是通过共享内存实现的,这需要对chronyd做一定的配置;ptp4l是PTP同步,即精确网络时间同步协议的软件,它需要从chronyd获取系统当前时间,然后发布到局域网,给相机和工控机授时,ptp4l与chronyd的通讯也是通过共享内存。下面分别介绍怎么配置这三个软件:
  gpsd配置
  其实并不需要配置,直接开启就完事了哈哈。
  树莓派到工控机的时间同步
  由于树莓派已经配置为PTP授时服务器(master),那么工控机只要配置成PTP授时客户端(slave)即可。工控机使用的是ptp4l和chronyd两个软件,ptp4l与树莓派通讯获取当前时间,并通过共享内存的方式传递给chronyd,而chronyd更改系统时间,使系统时间与树莓派同步。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分