APEX ORIN NX 同步IO PPS接口#

注意#

需要使用额外的串口接口,来作为PPS UART接口。

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

硬件定义#

引脚定义:

Pin

Signal

1

GND

6

PPS_A_SYNC

Pin

Specification

PPS_A_SYNC

5V

使用方式#

配置串口以获得GPRMC#

vim  /opt/miivii/config/sync/pps_out.cfg
修改uart_dev:后的信息 NONE改为/dev/ttyUART_232_A或者B
重启设备

配置GPRMC串口的波特率#

修改/etc/systemd/sync_auto.sh
其中
/usr/local/bin/pps_sync 9600 > /var/log/pps_sync.log & 中的9600即为PPS的波特率

PPS OUT功能使用说明#

PPS OUT规格#

默认波特率为9600

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操作系统中打印该硬件时间戳,并与设备的系统时间进行比较,可发现二者的偏差较大。

RS-LiDAR-16未同步时硬件时间戳与系统时间戳对比#

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

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

​设备PPS信号校准异常通用排查指南#

现象1:使用命令行工具测试PPS信号时提示“连接超时”​#

解决办法:#

​1、检查硬件物理连接

1)确认PPS信号线已牢固插入设备的指定接口,避免松动或插错位置;

2)观察信号线接口是否有明显氧化、损坏或弯折;

3)建议重新插拔一次信号线后,再测试是否仍提示超时;

4)若信号源为外部设备(如GPS模块),尝试更换另一台正常设备验证信号输出。

​2、验证信号源状态

1)在终端输入命令查看当前识别的PPS信号源:

# 替换为实际设备节点  
sudo cat /dev/pps0  

2)正常输出:持续显示时间戳和序列号(示例):

source 0: 1715652256.000018408 sequence: 7929  

3)无输出或报错:检查信号源设备是否正常工作。

现象2:系统无法识别PPS信号源#

解决办法:#

​1、检查驱动安装状态

1)输入命令验证驱动是否加载:

dmesg | grep -i "pps"  

2)若输出包含 No PPS source found→ 重新安装或更新PPS驱动。

​2、重新配置输入端口

1)编辑系统配置文件,指定正确的PPS设备节点:

# 或其他配置文件路径 
sudo vim /etc/pps.conf  

2)修改后重启服务:

sudo systemctl restart pps.service  

现象3:PPS信号周期不稳定或误差过大#

解决办法:#

​1、排除环境干扰

1)检查设备周边是否存在强电磁干扰源(如大功率电机、高频通信设备)。

2)将设备移至屏蔽环境测试,观察信号是否恢复稳定。

​2、校准本地时钟

1)输入命令同步本地时钟与PPS信号:

# 使用校准工具验证同步精度  
sudo ppscheck -s /dev/pps0  

2)若输出显示偏差超过阈值(如±1ms),需检查信号线长度或更换高质量屏蔽线。

技术支持#

若按照上述步骤全部排查后未解决您的问题,可尝试如下操作:

​1、系统镜像修复:重新烧录系统镜像(操作前备份数据),完成后重新配置PPS服务。

2、若问题依旧,提交以下信息至技术支持:

1)信号源设备型号与固件版本;

2)终端命令完整输出截图;

3)配置文件修改记录。