2、ToF测距原理:飞行时间法、相位法、直接与间接ToF、精度与误差来源

ToF(Time of Flight,飞行时间)测距的核心思想非常直观:通过测量光信号在发射端与目标物体之间往返传播的时间差,乘以光速并除以2,即可得到距离。然而,工程实现上远非“计时”这么简单——光速约为3×10⁸ m/s,意味着1米的距离对应约6.67纳秒的往返时间。要在消费级或工业级模组中实现毫米级精度,时间测量分辨率需要达到皮秒(ps)量级,这对电路设计、像素架构和算法补偿都提出了极高要求。本章将从物理原理出发,系统拆解飞行时间法、相位法、直接与间接ToF的区别,并深入分析精度与误差来源,为后续原理图设计和固件调试打下理论基础。

ToF测距原理总览 光源驱动 VCSEL / LED 调制频率 f_mod 发射光学 扩散片 / DOE 视场角 FOV 目标物体 距离 d 反射率 ρ 接收光学 带通滤光片 接收透镜 ToF传感器 SPAD / CIS像素 解调 / 直方图 发射光 反射光 直接ToF (dToF) 单光子雪崩二极管 (SPAD) 时间数字转换器 (TDC) 直方图统计 测量单个光子往返时间 → 适合远距离、抗多路径干扰 间接ToF (iToF) 连续波调制 (CW) 相位差测量 4-tap / 2-tap 解调 积分电荷计算相位 → 高分辨率、适合中短距离 相位法测距 d = (c × Δφ) / (4π × f_mod) 模糊距离 d_max = c / (2f_mod) 多频解模糊 非线性校正 → 本质是iToF的数学表达 主要误差来源 系统误差 温度漂移 非线性响应 随机误差 散粒噪声 暗电流 多路径干扰 镜面反射 散射叠加 环境光干扰 阳光/室内照明 背景光噪声

2.1 飞行时间法的物理基础与实现路径

飞行时间法测距的基本公式为:

d = (c × t_tof) / 2

其中,d为单程距离,c为光速(真空中约2.998×10⁸ m/s),t_tof为光脉冲从发射到接收的总往返时间。除以2是因为光走了“发射→目标→接收”的双程路径。在实际工程中,光速在空气中的变化可以忽略不计(约0.03%的差异),因此该公式在绝大多数应用场景下足够精确。

根据时间测量方式的不同,ToF技术分为两大流派:直接ToF(dToF)和间接ToF(iToF)。dToF直接测量单个光子的飞行时间,通常使用SPAD(单光子雪崩二极管)作为感光元件,配合TDC(时间数字转换器)将时间量化为数字码。iToF则通过测量发射信号与接收信号之间的相位差来间接推算飞行时间,通常使用CMOS图像传感器像素内的解调结构实现。

工程经验:选择dToF还是iToF,首先看测距量程和精度需求。dToF在远距离(>5m)和强环境光下表现更优,因为SPAD的盖革模式对单光子敏感,且时间直方图可以滤除大部分背景噪声。iToF在近距离(<5m)和中高精度场景(如人脸识别、手势控制)中更有优势,因为相位测量可以达到亚毫米级分辨率,且像素阵列可以输出深度图。

2.2 直接ToF(dToF)原理与系统架构

dToF的核心组件包括:VCSEL脉冲激光器、SPAD像素阵列、TDC电路和直方图处理引擎。其工作流程如下:

  1. 发射脉冲:VCSEL在驱动电路的控制下发出极窄的光脉冲(典型脉宽100ps~2ns),重复频率通常在10MHz~100MHz之间。
  2. 光子检测:SPAD工作在盖革模式,单个光子到达即可触发雪崩,产生一个数字脉冲。
  3. 时间量化:TDC记录从发射脉冲到SPAD触发之间的时间间隔,分辨率可达10~50ps。
  4. 直方图统计:由于SPAD每次只能检测到第一个到达的光子,且存在暗计数和背景光噪声,因此需要重复发射多次(通常数千至数万次),将每次测量的时间值累加到直方图中。
  5. 峰值提取:直方图的峰值位置对应真实目标的飞行时间,通过峰值拟合算法(如质心法、高斯拟合)得到亚像素级的时间估计。

dToF的测距精度主要受限于TDC的时间分辨率和直方图的统计噪声。以50ps的TDC分辨率为例,对应的距离分辨率为:

Δd = (c × Δt) / 2 = (3×10⁸ × 50×10⁻¹²) / 2 = 7.5mm

这意味单次测量的距离分辨率约为7.5mm,但通过多次测量取平均,可以显著提升精度。例如,1000次测量后,随机噪声降低约√1000≈31.6倍,理论精度可达0.24mm。

参数典型值对精度的影响
TDC分辨率10~50 ps决定单次测量量化误差
SPAD暗计数率100~1000 cps增加直方图背景噪声
VCSEL峰值功率1~10 W影响信噪比和最大测距
脉冲重复频率10~100 MHz影响测量速度和功耗
直方图bin数1024~4096决定最大可测距离范围

2.3 间接ToF(iToF)与相位法测距

iToF采用连续波调制方式,发射光信号为正弦波或方波调制,接收端通过解调电路测量发射信号与接收信号之间的相位差Δφ。距离计算公式为:

d = (c × Δφ) / (4π × f_mod)

其中f_mod为调制频率。相位差Δφ的范围是0~2π,因此存在一个最大不模糊距离:

d_max = c / (2 × f_mod)

例如,f_mod = 20MHz时,d_max = 7.5m;f_mod = 100MHz时,d_max = 1.5m。为了扩展测距范围,iToF系统通常使用多个调制频率进行测量,通过中国剩余定理或最小二乘拟合来解算模糊距离。

iToF像素的解调原理基于电荷积累。以4-tap像素为例,像素内包含4个电荷存储节点,分别对应0°、90°、180°、270°四个相位窗口。在一个调制周期内,光生电荷根据接收信号的相位被分配到不同的存储节点。通过读取4个节点的电荷量Q0、Q1、Q2、Q3,可以计算出相位差:

Δφ = arctan((Q3 - Q1) / (Q0 - Q2))

同时可以计算幅度和偏移量,用于质量评估和环境光抑制。

相位法测距的精度优势:相位测量的分辨率远高于时间测量。以100MHz调制频率为例,1°的相位误差对应约0.42mm的距离误差。现代iToF传感器在良好信噪比下可以达到0.1°~0.5°的相位精度,对应0.04~0.2mm的距离精度,远优于dToF的量化分辨率。

2.4 精度与误差来源深度分析

ToF测距的误差来源可以归纳为四大类:系统误差、随机噪声、多路径干扰和环境光影响。理解这些误差的物理机制,是进行固件补偿和算法优化的前提。

2.4.1 系统误差

系统误差是确定性误差,可以通过标定和补偿来消除。主要来源包括:

  • 温度漂移:VCSEL的波长随温度变化(典型0.07nm/°C),导致光学系统的折射率变化;同时,TDC的时钟源(通常为PLL或晶振)也会随温度漂移。工程上需要在固件中集成温度传感器,建立温度-误差查找表进行实时补偿。
  • 非线性响应:iToF像素的电荷转移效率、SPAD的死区时间、TDC的微分非线性(DNL)和积分非线性(INL)都会引入系统偏差。出厂标定通常在每个像素上存储一组校正系数。
  • 调制频率误差:如果调制频率偏离标称值,相位-距离转换系数就会产生偏差。例如,100MHz调制频率偏差0.1%,在3m处会产生约4.5mm的误差。

2.4.2 随机噪声

随机噪声决定了测量的重复性精度,主要来源包括:

  • 散粒噪声:光子的量子特性导致到达率存在泊松分布波动。信噪比与接收光功率的平方根成正比,因此增加VCSEL功率或延长积分时间可以降低散粒噪声。
  • 暗电流噪声:SPAD的暗计数和iToF像素的暗电荷都会增加背景噪声。降低传感器温度可以有效减少暗电流(约每降低7°C,暗电流减半)。
  • 读出噪声:iToF像素的电荷读出过程会引入KTC噪声和放大器噪声。现代传感器采用相关双采样(CDS)技术来抑制固定模式噪声。

2.4.3 多路径干扰(Multi-path Interference, MPI)

当目标物体表面存在镜面反射、透明物体或凹角结构时,接收信号可能包含多个路径的光线叠加。在iToF中,多路径干扰会导致相位测量值偏离真实值,表现为距离测量偏大或偏小。例如,在墙角场景中,直接反射和墙面二次反射的光线同时到达传感器,叠加后的相位是两者的加权平均,导致测距结果出现系统性偏差。

工程上缓解MPI的方法包括:使用更高调制频率(减少多路径叠加的相位差)、采用多频测量后处理算法(如基于深度不连续性的滤波)、以及使用主动照明图案(如结构光辅助)来区分直接光和间接光。

2.4.4 环境光干扰

环境光(尤其是阳光)会在传感器上产生额外的光生电荷,降低信噪比。对于dToF,环境光会增加SPAD的触发率,导致直方图背景抬高;对于iToF,环境光会占据电荷存储节点的容量,压缩有效信号动态范围。

抑制环境光的措施包括:

  1. 在接收光路中安装窄带滤光片(带宽通常为10~30nm),匹配VCSEL的发射波长(通常为850nm或940nm)。
  2. 在固件中实现背景光减除算法,通过测量无发射光时的背景电荷,从信号中减去。
  3. 对于dToF,可以通过时间门控技术,只统计发射脉冲后特定时间窗口内的光子,大幅降低背景光计数。
风险提示:在户外强光环境下(如正午阳光直射),即使使用窄带滤光片,环境光功率仍可能超过信号光功率的100倍以上。此时需要提高VCSEL的峰值功率或增加积分时间,但这会带来功耗和发热问题。设计阶段必须评估目标应用场景的光照条件,合理选择传感器型号和光学方案。

2.5 案例拆解:一款手机ToF模组的精度优化过程

某旗舰手机ToF模组在开发初期遇到测距精度不达标的问题,规格要求是:在0.2m~5m范围内,深度误差小于1%(即5m处误差不超过5cm),但在实际测试中,3m处的误差达到8cm,且在不同环境温度下表现不一致。

初始现象与数据:

  • 常温(25°C)下,3m处测量值为3.08m,误差+2.7%;
  • 高温(55°C)下,3m处测量值为3.15m,误差+5%;
  • 低温(-10°C)下,3m处测量值为2.96m,误差-1.3%;
  • 误差随距离增加呈非线性增长趋势。

分析判断过程:

首先,误差随温度变化明显,且高温时误差为正(测距偏大),低温时误差为负(测距偏小),这符合VCSEL波长漂移和TDC时钟漂移的特征。其次,误差随距离非线性增长,排除了简单的固定偏移,指向调制频率偏差或非线性响应问题。

通过读取模组内部的温度传感器数据和TDC校准寄存器,发现TDC的参考时钟(标称100MHz)在高温下实际频率为99.2MHz,偏差0.8%。根据公式d = (c × Δφ) / (4π × f_mod),频率偏低会导致计算距离偏大,与高温下的正误差一致。

实际操作步骤:

  1. 在固件中增加温度-频率补偿表,每5°C一个采样点,通过线性插值实时修正调制频率值。
  2. 对iToF像素进行逐像素相位偏移标定,在产线上使用已知距离的靶标(0.5m、1m、2m、3m、5m)采集校正系数,存储到OTP中。
  3. 优化直方图峰值提取算法,从简单的最大值法改为高斯拟合,减少量化误差。
  4. 增加多频测量(20MHz + 50MHz双频),通过相位差解算消除模糊距离,同时降低MPI影响。

结果对比:

测试条件优化前误差优化后误差
25°C,3m+2.7%+0.3%
55°C,3m+5.0%+0.5%
-10°C,3m-1.3%-0.2%
25°C,5m+3.5%+0.6%

风险与代价:增加温度补偿表需要额外的Flash存储空间(约2KB),多频测量使帧率从30fps降至25fps,但换来了精度的大幅提升。高斯拟合算法增加了约15%的CPU负载,在低功耗模式下需要权衡。

复盘经验:ToF模组的精度问题很少是单一原因造成的,往往是温度漂移、非线性响应和算法量化误差的叠加。在开发阶段就要建立完整的误差预算表,将每个环节的误差贡献量化,才能有针对性地优化。

2.6 常见误区与设计建议

在ToF模组的实际开发中,工程师常陷入以下误区:

  • 误区一:认为dToF一定比iToF精度高。实际上,dToF的精度受限于TDC分辨率和统计次数,而iToF在近距离下可以达到更高的精度。选择哪种方案应基于量程、功耗、成本和环境光条件综合评估。
  • 误区二:忽略温度补偿。很多团队在实验室恒温环境下调试通过后,直接进入量产,结果在用户手中出现明显的精度漂移。温度补偿是ToF模组量产的必要环节。
  • 误区三:只关注传感器本身,忽视光学设计。滤光片的中心波长偏移、透镜的色差、VCSEL的发光角度都会影响最终精度。光学和传感器必须联合设计。
  • 误区四:认为多路径干扰只在复杂场景出现。即使是简单的平面墙,在斜入射时也会产生多路径效应。建议在固件中始终启用MPI抑制算法。
设计建议:在原理图设计阶段,就要为精度优化预留硬件接口——包括温度传感器(I2C接口)、VCSEL驱动器的电流调节引脚(用于温度补偿)、以及传感器与主控之间的同步信号线(用于精确控制发射和接收时序)。这些硬件资源在后续固件调试中会发挥关键作用。

本章从飞行时间法的物理原理出发,详细对比了直接ToF和间接ToF的技术路径,深入剖析了相位法测距的数学基础,并系统梳理了四大类误差来源及其工程应对策略。理解这些原理,是后续进行原理图设计(如VCSEL驱动电路、SPAD偏置电路、时钟树设计)和固件调试(如标定流程、补偿算法、噪声滤波)的基础。在实际项目中,建议工程师建立一份误差预算表,将系统误差、随机噪声、MPI和环境光干扰的贡献量化,从而指导设计决策和调试优先级。