1. ToF技术全景概览:从原理到应用,一张图看懂ToF测距的三种主流方案

各位工程师朋友,咱们直接进入正题。

ToF,全称Time of Flight,翻译过来就是“飞行时间”。说白了,就是通过测量光从发射到反射回来所用的时间,来算出目标距离。这个原理听起来简单,但真正落地到产品里,坑可不少。我最早接触ToF是在2016年做扫地机避障项目,那时候市面上方案还不多,踩过的雷现在想起来都心疼。

今天这一章,咱们先把ToF的三种主流方案理清楚。你只有知道它们各自是什么、能干什么、不能干什么,后面调优的时候才不会走弯路。

1.1 一张图看懂三种方案

先别急着看文字,我习惯用一张图把核心逻辑串起来。下面这张SVG图,是我自己总结的,把iToF、dToF、扫描式ToF的测距原理、优缺点、典型场景都画进去了。

ToF测距三种主流方案全景图 iToF dToF 扫描式ToF 原理:连续波调制 测量相位差 优点 • 分辨率高 • 成本低 • 芯片成熟 缺点 • 多径干扰严重 • 远距离精度差 • 易受环境光影响 典型场景 手机人脸识别 手势控制 近距离避障 原理:脉冲飞行时间 直接计时 优点 • 测距远(可达百米) • 抗环境光强 • 多径抑制好 缺点 • 分辨率较低 • 成本高 • 功耗较大 典型场景 激光雷达 自动驾驶 AR/VR深度感知 原理:单点/线扫描 逐点测距 优点 • 精度极高 • 视场角大 • 抗干扰强 缺点 • 帧率低 • 体积大 • 机械结构复杂 典型场景 工业测量 建筑测绘 高精度3D建模 选型口诀:近距离高帧率选iToF,远距离抗干扰选dToF,高精度大视场选扫描式

这张图我建议你保存下来。每次做方案选型的时候,拿出来看一眼,基本不会选错。

1.2 iToF:连续波调制的“相位差”玩法

iToF,全称是indirect Time of Flight,间接飞行时间。它不直接测量光飞行的时间,而是通过发射连续调制的光波,测量发射光和反射光之间的相位差,再换算成距离。

你想想看,这就像你扔出去一个球,不数它飞了多久,而是看它回来时和出发时的“节奏”差了多少。这个思路很巧妙,但有个天然缺陷——相位差有周期性,超过一个周期就模糊了。所以iToF的测距范围受调制频率限制。

核心公式:

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

其中c是光速,Δφ是相位差,f_mod是调制频率。

我在项目中遇到过最头疼的问题,就是iToF的多径干扰。举个例子,你对着一个墙角测距,光在墙角和地面之间来回反射,最后传感器收到的是多个路径叠加的信号。这时候算出来的距离,既不是墙角也不是地面,而是一个“四不像”的值。嗯,这个坑后面我们会专门讲怎么填。

我的经验:iToF在0.3米到5米范围内表现最好。超过8米,信噪比下降很快。如果你要做手机人脸识别或者手势控制,iToF是性价比之王。

1.3 dToF:直接计时的“硬核”方案

dToF,direct Time of Flight,直接飞行时间。它比iToF更“暴力”——直接发射一个短脉冲,然后用高精度计时器测量光往返的时间。时间乘以光速再除以2,距离就出来了。

说白了,这就是个“秒表”思路。但难点在于,光速太快了——1纳秒光能跑30厘米。你要测1厘米的精度,计时精度就得达到皮秒级。这可不是普通单片机能干的事,得用专门的SPAD(单光子雪崩二极管)和TDC(时间数字转换器)。

参数iToFdToF
测距原理相位差直接计时
典型测距范围0.1~10m0.1~100m+
精度(近距离)±1~3cm±1~5cm
抗环境光能力
多径干扰严重较好
典型芯片TI OPT系列ST VL53L系列
成本中高

我曾经在一个自动驾驶项目中用过dToF激光雷达。当时遇到的问题是,在强阳光下,SPAD的噪声急剧增加,导致误触发。后来我们加了光学滤波片和算法上的噪声门限自适应,才算搞定。这个经验后面会详细讲。

注意:dToF虽然测距远,但它的分辨率通常不如iToF。因为SPAD阵列的像素尺寸大,很难做到高分辨率。如果你需要同时兼顾远距离和高分辨率,那就得考虑融合方案了。

1.4 扫描式ToF:逐点扫描的“工匠”方案

扫描式ToF,说白了就是用一个单点或者线阵的ToF传感器,配合机械或者MEMS振镜,逐点扫描整个视场。它不追求一次拍一张深度图,而是像打印机一样,一行一行、一点一点地把距离数据“扫”出来。

这种方案的好处很明显——精度极高。因为每个点都是独立测量的,没有像素间的串扰。而且视场角可以做得很大,甚至360度。但代价就是帧率低,而且有机械运动部件,可靠性和体积都是问题。

我记得有一次做工业检测项目,客户要求测量一个大型铸件的三维轮廓,精度要求0.1毫米。iToF和dToF都达不到,最后我们用了线扫描式ToF,配合高精度编码器,才勉强过关。那段时间天天调算法,头发都掉了不少。

三种方案选型速查:

  • 选iToF:预算有限、近距离(<5m)、需要高帧率(>30fps)、对多径不敏感的场景。比如手机、平板、智能家居。
  • 选dToF:需要远距离(>10m)、强光环境、多径干扰严重的场景。比如车载激光雷达、无人机避障。
  • 选扫描式:需要超高精度、大视场角、不介意帧率低的场景。比如工业测量、文物3D扫描。

1.5 避坑指南:我踩过的三个大坑

做ToF这么多年,有些坑是绕不过去的。我分享三个最典型的,你遇到了至少知道往哪个方向排查。

坑一:环境光饱和

我第一次用iToF做户外测试,大晴天,传感器直接“瞎”了——输出全是噪声。后来才知道,环境光中的红外成分会饱和像素单元。解决方案是加窄带滤光片,或者用算法做背景光抑制。

坑二:多径干扰导致“鬼影”

这个在iToF里尤其常见。你对着一个玻璃茶几测距,传感器会收到茶几表面和地面两个反射信号,结果算出来的距离在两者之间飘。我后来用多频率调制+解卷积算法,才把这个问题压下去。

坑三:温度漂移

dToF的TDC对温度很敏感。有一次我们在实验室调得好好的,拿到现场(40度高温)就偏了2厘米。后来加了温度补偿查表,才算稳定。这个细节很多新手会忽略。

我的建议:不管选哪种方案,第一版硬件回来之后,先做三个测试——强光测试、多径测试、高低温测试。这三个过了,后面算法调优才有基础。

1.6 本章小结

这一章咱们把ToF的三种主流方案过了一遍。iToF靠相位差,适合近距离高帧率;dToF直接计时,适合远距离强光;扫描式逐点测量,精度最高但帧率低。没有完美的方案,只有最适合你应用场景的方案。

下一章,我会带你深入iToF的算法细节,包括调制频率怎么选、相位解包裹怎么做、多径干扰怎么抑制。这些都是实战中绕不开的硬骨头。


公众号:蓝海资料掘金营,微信deep3321