4. 数据采集基础与时间同步
在 IGX 平台上做多传感器采集,真正决定数据可用性的往往不是“采到了没有”,而是“每一帧数据属于哪个时刻”。相机、激光雷达、毫米波雷达、IMU、GNSS 各自的输出频率、接口和内部时钟都不同,如果时间基准不统一,融合算法拿到的就是一组彼此错位的数据。本节从采集链路、时间戳机制讲到 PTP/gPTP 硬件同步,并给出多传感器同步采集的落地方法。
一、传感器数据采集的基本链路
以 GMSL2 相机为例,典型链路是:图像传感器曝光 → 串行器打包 → 同轴线缆传输 → IGX 侧解串器(如 MAX9296)→ MIPI CSI-2 → SoC 的 VI(Video Input)模块 → 写入内存缓冲区 → 应用层取帧。激光雷达通常走以太网 UDP,IMU 走 SPI/I²C,GNSS 走串口并附带 PPS 秒脉冲。不同链路引入的延迟差异可达毫秒级,因此采集系统必须回答两个问题:时间戳在哪里打,以及各设备的时间戳是否同源。
时间戳按打点位置可分为三类:
- 传感器端时间戳:由传感器内部时钟在曝光/采样瞬间记录,最接近物理事件,但需要与系统时间对齐。
- 接收端硬件时间戳:由解串器、网卡 PHY 或 MAC 在数据到达时打点,精度高且不受软件调度影响。
- 软件时间戳:应用层调用系统时钟记录,受中断、调度、拷贝延迟影响,抖动通常在百微秒到毫秒级。
工程上优先使用硬件时间戳,软件时间戳只作为兜底。IGX 的 Orin SoC 提供 TSC(Timestamp Counter)与 GTE(Generic Timestamp Engine),可把外部 PPS 和 PTP 时间映射到统一计数器,供 VI、网卡等模块共享。
二、PTP 与 gPTP 硬件时间同步
PTP(IEEE 1588)通过在主从设备间交换 Sync、Follow_Up、Delay_Req、Delay_Resp 报文,测量链路往返延迟并校正时钟偏移。gPTP(IEEE 802.1AS)是 PTP 的简化剖面,面向车载以太网,要求交换机支持透明时钟,并把同步周期缩短到 125 ms 甚至更快。
同步精度的关键在于硬件时间戳:报文进出网卡时由 PHY/MAC 记录时刻,避免协议栈抖动。若使用软件时间戳,典型偏差在几十微秒;启用硬件时间戳后,直连链路可做到亚微秒级。IGX 上通常把一块网口配置为 gPTP Grandmaster,其余传感器或交换机作为 Slave。
# 查看网口是否支持硬件时间戳
ethtool -T mgbe0_0 | grep -E "hardware|SOF_TIMESTAMPING"
# 使用 ptp4l 以 gPTP 模式运行,指定硬件时间戳
ptp4l -i mgbe0_0 -f /etc/linuxptp/gPTP.cfg -m -H
# 用 phc2sys 把网卡 PHC 同步到系统时钟
phc2sys -s mgbe0_0 -c CLOCK_REALTIME -w -m
运行后观察 ptp4l 输出的 master offset:稳定在 ±100 ns 以内说明硬件同步正常;若持续在微秒级抖动,应检查是否误用了软件时间戳、交换机是否为非透明时钟、以及是否存在大量非 PTP 流量抢占。
三、多传感器同步采集方案
多传感器同步分两个层次:时钟同步(所有设备共享同一时间基准)和触发同步(各设备在同一物理时刻采样)。前者靠 gPTP/PPS,后者靠硬件触发线或同步信号。
常见做法是:GNSS 接收机输出 PPS 与 UTC 时间,作为全局基准;IGX 通过 gPTP 把该时间分发到相机、雷达;相机支持外部触发输入(FSYNC),由 IGX 的 PWM/GPIO 按固定频率发出同步脉冲,使多路相机在同一时刻曝光。激光雷达通常不支持外部触发,则依赖 PTP 时间戳在软件层做时间对齐。
下面这张图展示了一个典型的多传感器同步采集拓扑:GNSS 提供 PPS 与 UTC,IGX 作为 gPTP 主时钟,相机通过 FSYNC 硬件触发,雷达与 IMU 通过 PTP 或时间戳对齐,最终所有数据带上统一时间基准写入采集缓冲区。
四、同步效果的验证与常见问题
同步是否真正生效,不能只看 ptp4l 的 offset,还要看数据本身。一个实用的验证方法是让相机拍摄高频闪烁的 LED 或秒表,同时记录 IMU 的振动信号,检查同一物理事件在两类数据中的时间戳差是否稳定。若差值恒定,说明存在固定延迟,可在标定后补偿;若差值抖动大,说明同步链路有问题。
常见问题与排查方向:
- offset 持续在微秒级:检查是否启用硬件时间戳,确认交换机支持 802.1AS 透明时钟。
- 相机帧时间戳跳变:检查 FSYNC 触发频率与相机曝光模式是否匹配,避免触发丢失导致帧率不稳。
- 雷达与相机对齐偏差大:雷达内部处理延迟通常较大,需通过标定获得固定延迟并在融合前补偿。
- 系统时间被 NTP 回拨:采集期间应禁用 NTP 步进,改用 phc2sys 平滑同步,避免时间戳非单调。
把时间基准统一之后,多传感器数据才具备融合的前提。下一阶段的工作,是在这套同步采集链路上构建可复现的数据记录与云端回传流程。