2、ToF测距原理:飞行时间法、相位法、直接与间接ToF、精度与误差来源
ToF(Time of Flight,飞行时间)测距的核心思想非常直观:通过测量光信号在发射端与目标物体之间往返传播的时间差,乘以光速并除以2,即可得到距离。然而,工程实现上远非“计时”这么简单——光速约为3×10⁸ m/s,意味着1米的距离对应约6.67纳秒的往返时间。要在消费级或工业级模组中实现毫米级精度,时间测量分辨率需要达到皮秒(ps)量级,这对电路设计、像素架构和算法补偿都提出了极高要求。本章将从物理原理出发,系统拆解飞行时间法、相位法、直接与间接ToF的区别,并深入分析精度与误差来源,为后续原理图设计和固件调试打下理论基础。
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图像传感器像素内的解调结构实现。
2.2 直接ToF(dToF)原理与系统架构
dToF的核心组件包括:VCSEL脉冲激光器、SPAD像素阵列、TDC电路和直方图处理引擎。其工作流程如下:
- 发射脉冲:VCSEL在驱动电路的控制下发出极窄的光脉冲(典型脉宽100ps~2ns),重复频率通常在10MHz~100MHz之间。
- 光子检测:SPAD工作在盖革模式,单个光子到达即可触发雪崩,产生一个数字脉冲。
- 时间量化:TDC记录从发射脉冲到SPAD触发之间的时间间隔,分辨率可达10~50ps。
- 直方图统计:由于SPAD每次只能检测到第一个到达的光子,且存在暗计数和背景光噪声,因此需要重复发射多次(通常数千至数万次),将每次测量的时间值累加到直方图中。
- 峰值提取:直方图的峰值位置对应真实目标的飞行时间,通过峰值拟合算法(如质心法、高斯拟合)得到亚像素级的时间估计。
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))
同时可以计算幅度和偏移量,用于质量评估和环境光抑制。
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,环境光会占据电荷存储节点的容量,压缩有效信号动态范围。
抑制环境光的措施包括:
- 在接收光路中安装窄带滤光片(带宽通常为10~30nm),匹配VCSEL的发射波长(通常为850nm或940nm)。
- 在固件中实现背景光减除算法,通过测量无发射光时的背景电荷,从信号中减去。
- 对于dToF,可以通过时间门控技术,只统计发射脉冲后特定时间窗口内的光子,大幅降低背景光计数。
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),频率偏低会导致计算距离偏大,与高温下的正误差一致。
实际操作步骤:
- 在固件中增加温度-频率补偿表,每5°C一个采样点,通过线性插值实时修正调制频率值。
- 对iToF像素进行逐像素相位偏移标定,在产线上使用已知距离的靶标(0.5m、1m、2m、3m、5m)采集校正系数,存储到OTP中。
- 优化直方图峰值提取算法,从简单的最大值法改为高斯拟合,减少量化误差。
- 增加多频测量(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抑制算法。
本章从飞行时间法的物理原理出发,详细对比了直接ToF和间接ToF的技术路径,深入剖析了相位法测距的数学基础,并系统梳理了四大类误差来源及其工程应对策略。理解这些原理,是后续进行原理图设计(如VCSEL驱动电路、SPAD偏置电路、时钟树设计)和固件调试(如标定流程、补偿算法、噪声滤波)的基础。在实际项目中,建议工程师建立一份误差预算表,将系统误差、随机噪声、MPI和环境光干扰的贡献量化,从而指导设计决策和调试优先级。