Apex AD10 PPS接口#

PPS接口,是指米文设备将自己的系统时间转换为高精度的PPS信号,对外输出。该接口无法编程,主要用于脱离GPS设备,来构建整个传感器系统的同步。

硬件定义#

引脚定义:

Pin

Signal

1

GND

2

PPS_A_RX

3

PPS_A_TX

5

GND

6

PPS_A_SYNC

Pin

Specification

PPS_SYNC

3.3V

UART

RS232

使用方式#

PPS OUT功能#

设备输出PPS信号(每秒产生一个脉冲,脉宽50ms),并通过串口(UART/RS232)的Tx引脚发送该脉冲上升沿产生时间的NMEA GPRMC消息,消息示例:

$GPRMC,060249.000,A,3949.63046,N,11616.48565,E,0.296,,291118,,,A*4d

其中“060249.000”为每秒产生脉冲时的时间戳(UTC时间),格式为“时分秒.000”,正常时间都是整秒格式。支持PPS同步模式的传感器会通过收到的PPS以及GPRMC消息对自身时钟系统进行校时,使之与设备的系统时钟保持一致。传感器的采样时间会作为时间戳(timestamp),与数据一起被发送至设备。至此,系统获取了传感器采样的系统时间,完成同步。

PPS同步原理图

同步功能验证方法(以RS-LiDAR-16激光雷达为例):

当传感器只有数据输入接口与设备相连,未连接设备的PPS_A_SYNC口和PPS_A_TX时,传感器的ROS node向操作系统上传数据中的时间戳为硬件时间戳(hardware timestamp),即传感器内部时钟计器的时间(多数传感器会设定一个固定的初始时间作为计时起点,每次上电后开始计时)。此时在Ubuntu操作系统中打印该硬件时间戳,并与设备的系统时间进行比较,可发现二者的偏差较大。


当传感器连接设备的PPS_A_SYNC及PPS_A_TX后,传感器的ROS node向操作系统上传数据中的硬件时间戳为传感器内部时钟经过PPS授时后的时间,与设备的系统时间一致。此时在Ubuntu操作系统中打印接收到的硬件时间戳,并与收到该数据时的系统时间(ros::time::now)比较,当二者的差值小于100ms时,说明PPS功能生效。

数据时间戳与系统时间对比