LV010-ToF的基本原理
一、基本原理
如图所示,一个光源发射一束光,并记录发射时间。这束光反射在目标上并被接收器捕获,记录接收时间。这两个时间点之间的差异,记为 t,可计算出距离 d = 光速 c * t /2。

二、光源
1. 脉冲光源
对于使用脉冲光源的 ToF 相机,它会测量脉冲光线从光源传递到物体上然后再反射回来所需的时间。由于光速是已知的,这样就可以轻松用数学方法计算出所有点的距离。

2. 常量光源
使用常亮光源时,相机会记录反射光的相移。通过调制振幅来产生已知频率的正弦光源,检测器可以根据这个原理来识别相移。

3. 波长选择
虽然 TOF 的原理听上去很简单,发出一个光脉冲,然后检测什么时候返回了一个光脉冲,通过计算这个中间经过的时间,就可以知道距离。但是传感器本身是一直在进行接收能量的,如何知道传感器在某个时间点 t 接收到的光就是发出去的光呢?
(1)发射足够亮的光(相对于噪声)以达到足够的信噪比,传感器接收到高于环境光的能量就可以知道这是发射出去的光。如果是电子消费品,用于生活环境中,自然环境光强范围十分大,波长范围也很广,同时一个电子消费品很难发射非常强的光强,一方面要考虑激光安全,要根据 IEC60825 的要求限制激光的能量,另一方面也要考虑耗电的问题。所以选择合适的波长发射光十分重要。
(2)找一个应用场景中不存在的波长或者能量最低的波长,这样就可以在这个波长发射相对弱一些的光脉冲,然后传感器前面 放置窄带滤波片,这样,传感器只能收到这个波长的光。
(3)对发射的光进行编码,让其有可以识别的特征,比如发射光亮暗亮暗亮暗,接收端接收到这个形式的光的时候,就知道这是发射出去的光了,这就像黑夜中的 SOS 手电筒闪烁。
太阳光的光谱如下图所示,黄色为大气层上方的太阳光谱,红色为经过大气吸收后的太阳光谱,在近红外区,可以看到有氧气和水蒸气的吸收峰(在某些特定波长下,水蒸气能够强烈吸收太阳辐射。这种吸收作用减少了到达地面的太阳辐射量,因此环境光强会变小)。这些吸收峰的波长位置理论上都可以作为 TOF 系统应用的波长。大部分 TOF 应用都会选择 850nm 和 940nm,

(1)这两个波长的发光源器件可以使用 VCSEL 实现,再长的波长可能需要 EEL 实现;
(2)接收端传感器对 850nm 是最敏感的,可以提供最佳的信噪比,940nm 的感光度会比 850nm 低,如果波长更长,传感器的制造更难,电子消费品中很少选择。
(3)人眼对近红外(NIR)波长范围的光不敏感,但人眼可以感知 850 nm 的光,看不到 940 nm 的光
(4)虽然可见光谱区域中的太阳光最强,但 NIR 区域中的能量仍然很大。阳光(更一般地说是环境光)会增加景深噪声,缩短 ToF 摄像头的有效距离。幸运的是,由于大气吸收,阳光辐照度在 920 nm 至 960 nm 区域中急剧下降,与 850 nm 区域相比要小一半以上。在室外应用中,工作在 940 nm 的 ToF 系统可以更好地抑制环境光,实现更好的景深测量性能。
二、dTOF(direct Time-of-Flight)
1. 简介
director time of flight,直接测量距离法,顾名思义,是直接测量光子飞行时间的方法。其关键组件,单光子雪崩二极管(SPAD),灵敏度足以检测单个光子。简单来说该种传感器具有探测单个光子的灵敏度,只要有一个光子击中 SPAD,SPAD 就会最终输出一个脉冲。SPAD 输出这个脉冲后,可以很快复位,准备接收下一个光子。
可是即使在 850nm 和 940nm,环境光也是存在的,这意味,只要 SPAD 开始计数,就可能不停的有光子会撞击 SPAD 并令其激活并输出脉冲,那如何分辨接收到的光子是发射端发出,被目标物反射回来的这个光子呢。首先要使用合适的窄带滤波+衰减,让大部分场景的环境光不能透过滤光片,以降低噪声,但是在 850nm 的衰减滤波是固定的,不可能满足在所有光照场景下,刚刚好环境光强度不会激发 SPAD,然后发射光能量刚好有光子进入;而且依赖于滤光片和衰减,测量误差可能非常大。
2. 测量方法
dTOF 使用的方法叫 时间相关单光子计数法(TCSPC,Time correlated single photon counting),名字听起来很复杂,实际上就是“数光子出现的时间”。基本原理图如下:

假设我们使用发射端 VCSEL 快速发射 100 个激光脉冲,记录 SPAD 每次收到脉冲的时间 Δt,我们就有了 100 个 Δt,见左图;把这些不同 Δt 出现的次数画成直方图,其中某个时间段的 Δt 出现频率最高,就是最可能的物体位置造成的 Δt,而其他的 Δt 出现的地方可能是 SPAD 自己的噪声,环境光噪声,光线多径反射后返回传感器的噪声等。

在实际应用中,VCSEL 可以达到非常高的调制脉冲速度,VCSEL 的每个脉冲宽度可以在 ps 到 ns 级别;SPAD 也可以实现非常快的相应速度。举一个例子,实际模组中,可以实现用 200ns 发射 100 个 1ns 的脉冲,占空比 50%;每 1ms 进行一次这样的发射,得到一个距离结果;每 10ms 求 10 次结果的平均反馈给操作系统使用;如此该 TOF 可以实现 100 次每秒的测距。
3. 核心组件
3.1 激光驱动
Laser Driver 是发射端电路的主要部分,负责驱动 Laser,控制电路发出数字脉冲信号,一般使用该信号控制 MOSFET 进行开关,控制激光发射。
3.2 激光器
在 dTOF 中,激光器负责发射激光。采用激光的主要原因是激光光谱窄,能量强度高,调制速度快,而且易于集成。电子消费品的 dTOF 应用中,主要使用的是垂直腔表面发射激光 Vertical Cavity Surface Emitting Laser (VCSEL)。在一些其他平台或者应用中,尤其是车载激光雷达中,会更多的使用功率更高的 EEL(Edge Emitting Laser)和光纤激光器。一般,电子消费品使用的 dTOF 会选择 850nm 或者 940nm 的激光。(根据第一章我们的说明,850nm 和 940nm 处的太阳光谱都有水的吸收峰。940nm 的环境光强更小,所以噪声小;但是传感器在 850nm 的量子效率(QE)是 940nm 处的两倍,接收信噪比更好。)
数字电路产生的脉冲方波输入给激光驱动,变成实际的光脉冲后,在时域上可以看到由完美方波,变成了不那么完美的方波(图示里是画的比较夸张,实际上,VCSEL 的脉冲调制性能已经非常好了)。由于激光驱动的响应速度,这里在时域上产生了一个不确定性的参数,即为 δ-laser(图中的 δ-t)
3.3 发射端光学
发射端一般为一个简单的光学镜头,把激光能量发射到需要的视场角内,有一些应用也会使用准直镜+DOE 等元器件,把 VCSEL 发出的光线先准直,然后分成很多束光线指向不同的视场角方向。
3.4 接收端光学
接收端光学零部件需要的主要是收集期望测量的视场角内的光线,这种镜头 F 数越小越好,相对照度越高越好,同时镜片上可以进行一定的镀膜增强透光性,同时接收端会使用尽量窄带的滤光片,去滤除其他波长的杂光干扰。
3.5 接收传感器 SPAD
dTOF 应用中主要使用的接收传感器为 single-photon avalanche diode (SPAD)单光子雪崩二极管或 Silicon photomultipliers(SiPM)硅光子光电倍增管,他们的主要区别是每一个 SiPM 像素里包含多个 SPAD 像素。不同于传统 CMOS 传感器,对于光的接收时积分形式的,既接收某一时间段内的光强,转换为电流;SPAD 如其名字所描述的,可以对单一光子进行相应,只需要一个光子就能触发一次强的雪崩,产生电流信号。可以说,SPAD 输出的就是有光 1 和没光 0 两种状态(见下图)。SPAD 传感器芯片每次被光子激活后,电子淬灭电路降低二极管中的电压使其在短时间内低于阈值电压,因此雪崩停止,经过一段恢复时间,探测器可以探测其它的光子,这个恢复时间决定了传感器的识别速度。
SPAD 的像素相对于传统 CMOS 图像传感器来说还无法做的很小,比如一款传统图像传感器,三星的 GN1,50MP,1/1.31”大小,像素大小 1.2um。而 SPAD 的像素大小很大,这是由于其需要各种电路对 SPAD 进行复位造成的。比如根据机构的分析,iPhone 中使用的 Lidar 是 Sony 的 SPAD 传感器,只有 30K 的像素数,每个像素 10um 大小。所以 SPAD 的传感器限制了 dTOF 的空间分辨率。
信号被 SPAD 接收后,会再产生一个一个时间不确定性因素 δ-tSPAD,这个是 SPAD 的响应速度决定的。


3.6 TDC 电路
Time-to-digital converter(TDC),时间数字转换器,是将模拟信号转换成以时间表示的数字信号的电路,TDC 输出了每一个脉冲与所设起始点相比被记录下来的时间。这些脉冲被记录下来后,转换成直方图,然后通过比较哪个时间的直方数量最大,确认目标物的位置。TDC 电路的精度也会对时域信号产生影响,引入了一个不确定性 δ-tTDC。通过 TDC 电路后的电路,都是数字电路。
4. 脉冲调制(Pulsed Modulation)
为什么需要调制?这就要提到前面的问题:如何知道传感器在某个时间点 t 接收到的光就是发出去的光呢?在解决这个问题的时候已经解答过了,其实就是通过调制光信号来提高测量的精度、抗干扰能力和效率。
脉冲调制方案的照射光源一般采用方波脉冲调制,这是因为它用数字电路来实现相对容易。接收端的每个像素都是由一个感光单元(如光电二极管)组成,它可以将入射光转换为电流,感光单元连接着多个高频转换开关(下图的 G0,G1)可以把电流导入不同的可以储存电荷(下图 S0,S1)的电容里。

相机上的控制单元打开光源然后再关闭,发出一个光脉冲。在同一时刻,控制单元打开和关闭接收端的电子快门。接收端接收到的电荷 S0 被存储在感光元件中。
然后,控制单元第二次打开并关闭光源。这次快门打开时间较晚,即在光源被关闭的时间点打开。新接收到的电荷 S1 也被存储起来。具体过程如下图所示。

因为单个光脉冲的持续时间非常短,此过程会重复几千次,直到达到曝光时间。然后感光传感器中的值会被读出,实际距离可以根据这些值来计算。记光的速度为 c,tp 为光脉冲的持续时间, S0 表示较早的快门收集的电荷, S1 表示延迟的快门收集的电荷,那么距离 d 可以由如下公式计算:
最小的可测量距离是:在较早的快门期间 S0 中收集了所有的电荷,而在延迟的快门期间 S1 没有收集到电荷,即 S1 = 0。代入公式会得出最小可测量距离 d = 0。
最大的可测量的距离是:在 S1 中收集了所有电荷,而在 S0 中根本没有收集到电荷。然后,该公式得出 d = 0.5 x c x tp。因此最大可测量距离是通过光脉冲宽度来确定的。例如,tp = 50 ns,代入上式,得到最大测量距离 d = 7.5m。
5. 优缺点
- 优点
(1)测量方法简单,响应较快。
(2)由于发射端能量较高,所以一定程度上降低了背景光的干扰。
- 缺点
(1)发射端需要产生高频高强度脉冲,对物理器件性能要求很高。
(2)对时间测量精度要求较高。
(3)环境散射光对测量结果有一定影响。
三、iToF(indirect Time-of-Flight)
1. 简介
iToF(indirect Time-of-Flight):间接测量时间差,来计算出实际距离。即发射经过一 定手段调制的光波,通过传感器在不同时间窗口采集到能量值的比例关系,解析出信号相位 偏差 Δφ,间接测量发射信号和接收信号的时间差,间接求计算距离。发射调制光波,相位差 Δφ 的获取是关键。
iTOF 可以使用标准的图像传感器架构,测量随时间变化的光强度。iTOF 按发射光波的调制方式可以进一步细分为连续波调制(CW-iTOF)和脉冲调制(Pulsed-iTOF)。CW-iTOF 测量发射和接收的正弦波之间的相位偏移,而 Pulsed-iTOF 使用方波信号计算相位偏移。
iTOF 的主要优势是和 dTOF 比起来相对简单低速的硬件电路,可以实现更高的帧率,以及空间分辨率,同时模组成本也更低;但是 iTOF 有着测量精度随距离增加下降,多路串扰以及相对比较高功耗等问题。
2. 测量方法
下图是发射的正弦波和接收的正弦波的示意图:

具体的公式就没有详细去看了,了解一下即可。
3. 核心组件
下图展示了 iTOF 的系统架构,发射端 iTOF 主要也使用 VCSEL,但是有一些应用里,iTOF 可以使用 LED。激光或 LED 的光线经过 diffuser 匀光片照射被测场景。接收端使用传感器进行接收。dTOF 和 iTOF 在传感器端的区别是 iTOF 使用的是 CMOS 工艺开发的 CIS 传感器(Camera Image Sensor)以及配套电路,而 dTOF 需要使用 SPAD 传感器。CW-iTOF 和 Pulsed-iTOF 在硬件架构上没有很大区别,主要是控制和传感电路的一些调制解调电路区别。下图二展示了一个实际的 iTOF 模组(由 Leica 和 pmd 联合研发),可以从外观上看到发射端的 diffuser 和接收端的镜头。

3.1 激光驱动
Laser/LED Driver 是发射端电路的主要部分,负责驱动激光或者 LED,控制电路发出调制信号,控制光源发射。发射调制的信号可以是脉冲型或者连续波型。
3.2 激光器或 LED
在 iTOF 中,根据不同应用场景的模组,选择使用 VCSEL 或者 LED。和 LED 相比,激光器的调制速度快很多,高频 LED 的 3dB roll-off 频率一般为 10MHz 到 30MHz,而 VCSEL 的 3dB roll-off 频率一般高于 100MHz。iTOF 主流还是使用 VCSEL。因为调制速度越高,深度测量的精度就越高,下图展示了 LED 和激光调制能力的对比。

3.3 发射端光学
iTOF 发射端一般直接使用 diffuser 进行光束整形,让光源均匀照射被测场景,diffuser 一般是玻璃基底上的规则或者非规则微结构,将 VCSEL 阵列发出的光进行均匀化,最后形成 top hat 形式的光束。

3.4 接收端光学
和 dTOF 系统一样,接收端光学零部件需要的主要是收集期望测量的视场角内的光线,这种镜头 F 数越小越好,相对照度越高越好,同时镜片上可以进行一定的镀膜增强透光性,同时接收端会使用尽量窄带的滤光片,去滤除其他波长的杂光干扰。
3.5 接收传感器 CMOS
iTOF 接收端是基于 CMOS Image Sensor 工艺制程的,主要使用的是 (CAPD)像素工艺。如我们第一章介绍,iTOF 是一个调制解调信号的过程,为了能更准确的计算发射信号和接收信号的相位偏移,使用 Current-Assisted Photonic Demodulator(电流辅助光子解调 CAPD)像素工艺,该种工艺可以同步取样发射光和接收光信号。同时 CAPD 允许在每一个像素的光电二极管中加载可转换方向的偏转电压,制造一个漂移电场,这样可以把光信号产生的电子拉向两个不同的半导体结。如下图所示,VCSEL 发射出来的光,进入传感器,被转换成电子,每个像素点在不断转换的电压的辅助下,持续输出成两个信号,通过这两个信号,就可以计算相位偏移。

以 Sony 的 IMX556 为例:
- 背照式 CMOS 工艺
- 640 x 480 像素
- Global Shutter
- 10.0um 像素大小
- 1/2”传感器大小

提供 iTOF 的传感器供应商有 Sony, Infineon, Melexis, Analog Devices, EPC Photonics, Samsung, Artilux 等。
3.6 电路
iTOF 不需要特别的额外电路,传感器输出的信号经过一定的处理后和发射信号进行对比即可计算出相位偏移,但是为了实现比较好的效果,算法比较复杂。iTOF 的 CMOS 输出是模拟信号,为了进行数字处理,还需要进行模数转换电路,但是 ADC 电路本身就非常普遍。dTOF 直接输出的就是数字信号。
四、dToF 与 iToF
| dTOF | iTOF | |
| 基本原理 | 直接测量光子飞行时间 | 使用测量发射的正弦波/脉冲信号与接收的正弦波/脉冲信号之间的相位差的方法间接计算出飞行时间 |
| 核心组件 | VCSEL 激光器, SPAD, TDC 电路等 | CMOS 传感器, diffuser 等 |
| 探测距离 | 较远(可达 10m 以上) | 受限于原理, 使用场景都为较近场景小于 10m |
| 探测精度 | 探测精度, 受限于脉冲宽度, 不随距离降低 | 探测精度反比于调制频率, 测量精度和距离呈线性关系(高调制频率会降低测量量程) |
| 误差 | 激光, SPAD, TDC 等产生的时间误差 | 时钟精度, 发射端电路调制精度, VCSEL 的调制脉冲速度, 接收传感器的精度, 读出电路噪声等 |
| 距离歧义 | 无 | 有 |
| 空间图像分辨率 | < 较低 | 较高, VGA~2MP |
| 抗背景光干扰能力 | < 高 | 低 |
| 抗多径干扰 | < 强 | 弱 |
| 功耗 | 较低 | 较高 |
| 工艺 | SPAD 传感器制造复杂, 模组整体工艺复杂 | 类似于照相机模组工艺, 相对简单 |
| 成本 | 较高 | 较低 |
| 应用领域 | 手机人脸识别(如华为)、AR 手势交互等 | 苹果 iPad Pro LiDAR、自动驾驶感知等 |
参考资料:
DTOF(direct Time-of-Flight,直接飞行时间)-CSDN 博客
什么是 ToF (Time-of-Flight) ? | Basler AG
深度解析:ToF 深度测量原理与应用:精度挑战与优化策略-CSDN 博客
[一文搞懂 TOF 传感器概念:TOF、iTOF 和 dTOF 是什么?-CSDN 博客](file:///C:/Users/huangke13/Documents/HikLink_Files/huangke13/received/1248_141225193.html)