
SPAD单光子雪崩二极管这两年是真的火。只要做激光雷达、手机接近感应、量子通信或者医疗影像方向几乎绕不开这三个字母。我第一次接触SPAD是被它那个“单光子就能触发雪崩”的特性唬住了——一颗光子打进去输出一个标准数字脉冲这在我们做模拟电路出身的人眼里简直是不可理喻的灵敏度。但也正因为这种“不可理喻”它才成了弱光探测赛道里最核心的器件之一。这篇文章我就从SPAD的基本原理说起一路拆到器件结构、关键参数、像素阵列设计再结合实际的dToF、iToF方案选型、激光雷达、量子成像这些前沿应用把值得注意的坑一起写出来。最近总有人问“iToF到底是用CMOS还是SPAD工艺”我也会在正文里把这个问题彻底说清楚。1. SPAD为什么会“单光子敏感”1.1 普通光电二极管和SPAD的本质差异要理解SPAD先得知道普通光电二极管是怎么回事。PN结反偏之后会形成一个耗尽区光子入射进来如果能量足够就在耗尽区激发电子空穴对。这个电子空穴对在电场作用下被扫到两边形成光电流。问题是一个光子产生的光生载流子实在太少了大概就是几个微安甚至纳安级别根本没法直接变成数字信号所以普通光电二极管后面必须接一个高增益的放大链路。SPAD的思路完全不同。它工作在击穿电压以上也就是所谓的“盖革模式”。在这个状态下PN结内部的电场强度已经高到离谱一个光生电子被电场加速后碰撞晶格产生新的电子空穴对新的电子继续加速、继续碰撞像滚雪球一样指数级增多。这个过程叫做“雪崩倍增”最终一颗光子就能引发一次宏观的电流雪崩。这个雪崩电流足够大大到可以直接被外围的比较器或者电平转换电路识别成一个数字脉冲。这个逻辑很像火箭点火一颗小小的火花一旦点燃了推进剂就会爆发出巨大的推力。普通光电二极管是“火花有多大信号就有多大”SPAD则是“只要火花存在就能点着整个火箭”。1.2 “雪崩”一旦开始怎么停下来雪崩过程听起来很猛但有个致命问题如果让雪崩无休止地持续下去器件会过热烧毁而且也没法分辨新的光子是否到来。所以SPAD工作一定需要“淬灭”机制——把雪崩电流中断让器件恢复到可以探测下一个光子的状态。最常见的方案是“被动淬灭”。在SPAD阳极串一个大阻值的电阻雪崩发生时电流突然增大在这个大电阻上产生很大的压降导致SPAD两端的偏压跌落到击穿电压以下雪崩自然停止。这个过程很快大概几纳秒量级然后偏压经过RC充电慢慢回升器件重新进入盖革模式。这个方案电路极简但恢复时间受限于RC常数死区时间相对较长。另一种是“主动淬灭”。用快速比较器监测电压跌落一旦检测到雪崩事件立刻通过一个快速开关把偏压拉低强制淬灭然后再迅速恢复偏压。这样一来可以把死区时间压缩到纳秒级别适合高速计数场景。但代价是电路复杂每个像素都得配一套主动淬灭时钟和逻辑。还有第三种“门控模式”只在极短的时间窗口内把偏压拉到击穿电压以上。这通常用在量子密钥分发这类需要精确时间片选的应用里可以在特定时刻开一个小时间窗口来接收单光子抑制暗计数和噪声。不管是哪种模式核心思想都一样让SPAD在“盖革模式-淬灭-恢复盖革模式”这个循环里反复工作每一个循环对应一个光子事件的检测。这个循环的速度直接决定了SPAD的计数率上限。2. 读懂SPAD的核心参数别被“单光子”三个字带偏2.1 光子探测概率PDP最关键的指标单光子探测概率Photon Detection Probability是SPAD最核心的参数定义为入射一个光子后被检测到的概率。PDP等于量子效率、雪崩触发概率和盖革模式几何填充因子的乘积这三个因素每个都在拉后腿。量子效率取决于材料在目标波段的光吸收能力硅在可见光波段很好但在905nm近红外波段效率就掉得厉害所以长距离激光雷达很多会选择铟镓砷材料或者上来直接用1550nm方案。雪崩触发概率受电场强度影响偏压越高、触发概率越大但暗电流也会跟着涨所以这是个权衡。填充因子则是感光面积和像素总面积的比值SPAD因为要放淬灭电路、时序逻辑感光区天然会被压缩所以阵列SPAD的填充因子经常只有百分之几到百分之十几。PDP是偏压和波长的函数千万别只看数据手册上的峰值就完事。同一个器件90nm工艺的在可见光波段可能达到百分之四十到了940nm可能只剩百分之五这个差距在实际系统里的影响比什么暗计数都大。2.2 暗计数率DCR和温度的关系暗计数率是SPAD在没有光照时自发产生脉冲的速率单位是cpscounts per second或者Hz。暗计数的来源主要是热激发和带间隧穿两者都会在强电场下产生载流子然后触发雪崩。暗计数率和温度的相关性强得让人咬牙切齿。以硅基SPAD为例温度每升高十摄氏度暗计数率可能翻一倍甚至更多。这是因为热激发载流子产生率随温度指数上升。更麻烦的是暗计数还和过压偏压正相关偏压越高、暗计数越大。我在实测中遇到过这样的情况室温下暗计数只有几百cps的SPAD在六十摄氏度的环境下暗计数直接飙到几万cps。如果你的激光雷达工作环境在夏天的引擎盖旁边又不做温度校准距离一远就很容易被暗计数淹没。所以高精度系统要么给SPAD加制冷要么做温度补偿校准要么在设计阶段选低暗计数的器件和偏压点。2.3 死区时间、后脉冲和时序抖动死区时间指的是雪崩发生后器件无法探测新光子的那段时间。被动淬灭的死区时间通常几十纳秒主动淬灭能压到十纳秒以内。死区时间决定了最大计数率如果光子到达速率超过死区时间的倒数就会产生计数丢失。更麻烦的是死区时间不是完全固定的被动淬灭的恢复过程是指数形的在恢复过程中器件虽然能探测但触发概率还没回到正常水平这会造成非线性响应。后脉冲是因为雪崩过程中一些载流子被深能级陷阱捕获延迟释放后再次触发雪崩。后脉冲会形成一个虚假计数尤其在快速重复事件里干扰很大。降低后脉冲的办法是淬灭后再留一段“等待时间”让陷阱载流子释放完再恢复但这又和减小死区时间的需求冲突。时序抖动是指光子实际到达时间和输出脉冲前沿之间的不确定度。它在dToF系统里直接决定测距精度。硅基SPAD的抖动通常在几十皮秒到几百皮秒之间换算成距离大约是毫米到厘米级。抖动太大你说精度是毫米级就是扯淡。选型的时候一定要看器件在整个动态范围内的抖动特性不能只看标称的最小值。3. SPAD像素阵列怎么做dToF/iToF工艺之争到底怎么选3.1 从单点探测到阵列化填充因子的妥协艺术单颗SPAD能做的事很有限无非是点探测、光子计数、时间测量。真正让SPAD大放异彩的是阵列化之后的空间分辨能力。然而排列SPAD像素不是把个体简单并起来那么轻松面积、功耗、布线、良率每一样都在挑战设计极限。最直接的限制是填充因子。传统SPAD像素内除了感光区还要放淬灭电路、时间数字转换器TDC、存储器和读出逻辑感光面积占比被严重挤占。为了解决这个问题工程师们发明了“SPAD前端CMOS后端”的分层方案用堆叠式工艺把像素电路和控制逻辑放在不同晶圆上再垂直互连。这样做之后填充因子从百分之几一下子提升到百分之二十甚至更高。这正是现在消费级dToF传感器能把成像质量做到肉眼可用的核心原因。另一方面阵列化的超大带宽也让人头疼。一个几百乘几百的SPAD阵列如果每个像素都独立输出光子到达时间数据量是恐怖的所以必须在片内做直方图统计、目标识别和背景光滤除这也是SPAD传感器从“裸感光芯片”变成“智能视觉芯片”的趋势。3.2 iToF到底是CMOS还是SPAD工艺这个问题现在问的人特别多尤其在做手机3D传感和机器人视觉选型的时候。答案很简单iToF用的大多是CMOS图像传感器工艺而SPAD则主要用于dToF。两者原理上就有本质区别工艺自然就分道扬镳。iToF测的是“相位差”。它向场景发射经过调制的连续波红外光传感器拿到的是反射回来的、相位偏移的调制光通过计算每个像素上信号的相位差来推算出光的往返时间。这需要的是对照度波形做相关运算的积分型探测器入射光强在整个曝光窗口内被累积本质上和普通拍照的CMOS感光过程相似只是光源做了高频调制。因此CMOS工艺天然适合iToF噪声低、像素密度高、成本成熟。dToF测的是“单光子到达时间”。它发射短脉冲传感器记录每个光子的飞行时间核心是一次次单光子事件的检测和时间戳记录。这正好是SPAD的看家本领。SPAD基于CMOS工艺兼容的制造流程可以把淬灭电路、TDC和直方图逻辑做在同一个芯片上所以从工艺角度严格说SPAD也是CMOS兼容工艺但它和iToF的CMOS图像传感器工艺重点不同。那能不能用SPAD做iToF理论上也可以毕竟SPAD也是光敏探测器也能做成积分模式。但在相同像素尺寸下SPAD的填充因子远低于专用CMOS像素成本也高所以做iToF方案纯属降维打击毫无性价比优势。反过来想用CMOS普通光电二极管做dToF信号太弱根本没法提取单光子事件完全不可行。简单总结相位差需要积分图像CMOS直接飞行时间需要单光子计数SPAD。绝大多数手机上宣传的“激光雷达扫描仪”和“dToF深度摄像头”用的都是后者。3.3 SPAD阵列中的TDC和时间戳电路阵列化的SPAD除了感光部分后端的TDC同样决定系统性能。TDC的作用是把光子到达的时间转成数字码分辨率决定了dToF系统的测距精度。一个TDC常见实现是“延迟线法”。用一串反相器组成延迟链光子信号进入后沿延迟链传播同时用一个粗计数器记录整周期数最后靠解码延迟链的位置得到精细时间。延迟链的最小单元门延迟决定了时间分辨率先进工艺下能做到几十皮秒级别。但门延迟受工艺、电压、温度影响很大所以实际芯片里会放校准回路用已知频率的参考信号去测量延迟单元的漂移实时修正。多像素共用一个TDC能省面积但会产生“排队冲突”多个像素同时来光子时后面的只能等待导致测量延迟和抖动。高端的方案是每个像素配一个TDC或者用时间到数字的共享架构加仲裁电路。这是一笔面积和性能之间的生意做产品的人必须心里有数。4. 前沿应用激光雷达到量子成像SPAD在改变什么4.1 车载激光雷达和消费级dToF激光雷达大概是SPAD商业化最成功的领域。905nm波段的硅基SPAD阵列配合高功率激光二极管可以让纯固态激光雷达实现百米的测距。相比传统机械式扫描激光雷达SPAD方案没有运动部件可靠性高、体积小适合大规模上车。消费级dToF则藏在几乎每一台旗舰手机里。苹果在iPhone上推的LiDAR扫描仪就是一颗SPAD阵列用于辅助对焦、AR深度重建和夜间人像虚化。这类模组用垂直腔面发射激光器VCSEL做光源SPAD做接收端整个模块能做到指甲盖大小。近几年来这波“dToF上手机”的浪潮直接带动了SPAD从军用、科研走向消费电子国内供应链也迅速跟进。做激光雷达和手机dToF选型时关注点略有不同。激光雷达更看重单光子灵敏度、环境光抑制能力和远距离下的信噪比手机dToF则更关注功耗、模组体积、暗光下的深度质量。同样是SPAD产品形态和评价体系差别挺大的别混为一谈。4.2 近红外增强SPAD和铟镓砷SPAD硅基SPAD在905nm左右的近红外波段还算可用但再往长波长走吸收系数降得厉害效率就上不去了。1550nm波段因为对人眼安全、大气透过率高、烟雾穿透能力强一直是远距离激光雷达和光纤传感追逐的黄金窗口但硅根本探测不了这个波段必须换材料。铟镓砷SPAD是1550nm探测的主流。它可以配合铟镓砷光电二极管吸收层和铟磷倍增层做成独立的单光子探测器通常工作在门控模式或者配合超导纳米线单光子探测器来竞争。铟镓砷SPAD的暗计数率天然比硅高不少而且需要更严格的温控所以1550nm单光子探测系统的成本和复杂度都上了一个台阶不是随便玩得起的。如果你做的是自动驾驶主激光雷达而且选择1550nm方案SPAD只是一部分你还要考虑激光器峰值功率、人眼安全等级、接收光学口径和DSP算法整个系统级问题远比器件本身复杂。4.3 量子通信、量子成像和医疗影像量子密钥分发中接收端光子数量常常低到平均每个脉冲不到一个传统探测器根本无能为力但SPAD天生就是为这种“等光子”的场景设计的。硅基SPAD在可见光波段的高探测效率、低暗计数和皮秒级抖动让它成了自由空间量子密钥分发系统的接收核心。门控模式SPAD在某个精确的时间窗口内打开接收把背景噪声压到极低这种能力是普通光电二极管做不到的。量子成像和计算成像也是时下热门SPAD相机可以通过记录每个光子的到达时间重建场景的深度和反射率甚至在极低照度下实现“单像素相机”效果。医学上正电子发射断层扫描PET探测器也用到了SPAD阵列配合闪烁晶体把伽马光子转换成可见光信号再进行检测时间分辨率直接影响图像质量。生物荧光寿命成像FLIM则是利用SPAD记录荧光团发光的时间衰减曲线来区分不同分子环境这在细胞生物学和药物筛选里有巨大的应用空间。这些场景的共同特征是光子稀少、时间敏感、环境受控正好把SPAD“单光子皮秒级定时”的核心能力发挥到极致。5. 实战经验SPAD调试中的那些坑和技巧5.1 偏压设置和过压的选择逻辑SPAD工作的核心就是“过压”这个参数也就是实际偏压超出击穿电压的幅度。不同器件的适用过压范围差异很大调好了它灵敏调不好它要么探测不到光子要么被暗计数淹死。过压太低雪崩触发概率低PDP上不去长距离探测毛都测不到。过压太高暗计数指数上涨后脉冲也变严重系统的信噪比反而下降。所以拿到一个新器件第一步应该扫描暗计数率随过压的变化曲线再扫描PDP随过压的变化曲线找一个信噪比最优的工作点。很多工程师喜欢把偏压拉到很高来追求“极致灵敏度”结果系统噪声也跟着起飞这种错误我见过太多次。另外击穿电压是温度和工艺的函数每个晶圆、每个温度下都可能不一样。量产系统不能把所有器件都钉在一个电压上要么出厂校准要么设计片上自动偏压调整环路。我现在做的方案都是用一个小DAC配合温度传感器做闭环补偿保证不同温度下过压基本恒定稳定性会好很多。5.2 怎么处理环境光干扰和窗口饱和SPAD灵敏度太高阳光直射场景下环境光会在极短时间内把像素淹成饱和你会看到输出脉冲几乎连成一片直方图彻底没法用。这时候有几个手段可以叠加使用。第一是光学窄带滤波。在接收镜头前加和激光波长匹配的窄带滤光片把大部分太阳光挡在外面。滤光片的带宽越窄环境光抑制越好但对激光器波长的温漂也更敏感VCSEL波长随温度漂移了可能就偏出带通区。第二是时间门控。只在激光脉冲发出后的一个时间窗口内开启SPAD检测窗口宽度对应你要测的最远距离更早或更晚到达的光子直接忽略。这个方案天生就能滤掉不少背景光但对系统和激光器的同步设计要求很高。第三是后端的直方图峰值检测。即使窗口内环境光污染严重只要激光回波信号在统计上形成可辨识的峰配合信号处理算法也能把距离提取出来。这要求探测到的有效事件数远大于噪声波动散射光和反射率差都会影响最终效果。环境光的处理是SPAD应用里最“系统工程”的环节器件再牛光路和后端跟不上也是白搭。5.3 串扰、散热和寿命阵列化之后的新麻烦阵列化之后相邻像素之间的光学和电学串扰变得不可忽视。光学串扰是光子入射到一个像素后产生荧光或者被反射到相邻像素再触发雪崩电学串扰则是雪崩电流通过衬底耦合过去。抑制方法包括深沟槽隔离、吸收层设计、像素间屏蔽结构等工艺层面的事选型时就该问清楚。散热也是一个不能逃避的问题。SPAD的雪崩过程、淬灭电路功耗和暗计数发热互相耦合整个传感器一旦温度升高暗计数上升信噪比下降测量精度恶化。很多商用SPAD阵列模组会配TEC制冷但耗电增加、体积变大消费级产品只能靠低功耗设计加算法补偿来缓解。SPAD器件本身在高过压下长期工作会有老化风险击穿电压漂移、暗计数增加都可能出现。做产品不能只做常温下可用要留老化余量做可靠性验证和寿命评估。6. 实测记录用SPAD搭一个简单的dToF测距验证6.1 最小系统怎么搭如果你第一次上手SPAD想快速验证dToF概念不需要一开始就买复杂的阵列模组几百块钱搞定一个单点模组就够了。一个最小验证系统包含三部分SPAD传感器模块、短脉冲激光驱动电路比如VCSEL、以及一个时间测量单元。SPAD传感器的输出是一个数字脉冲。激光驱动电路给激光器发一个起始脉冲同时启动时间测量单元计时SPAD检测到回波光子后给出停止信号时间差就是光往返时间。用示波器直接观察起始脉冲和SPAD输出脉冲的间隔你就已经完成最基本的dToF测距了。实话说这套“面包板方案”精度没法看因为触发抖动、激光上升沿、示波器采样率都会引入误差但它能帮你建立对SPAD工作机理最直观的直觉。后面要走向实用可以换用集成时间数字转换功能的多像素SPAD模组直接用串口读出深度数据。6.2 数据读出和直方图统计单次发射-接收的时间测量噪声很大一次性读出根本没有统计学意义。dToF系统通常对同一个目标做上千次甚至上万次测量统计出光子到达时间的直方图再在里面找峰值。假设系统死区时间固定每个激光周期内SPAD最多记录一次事件。目标回波光子到达的时间是一致的但背景光子和暗计数是均匀分布在整个时间轴上的。所以测到足够多次以后回波对应的那个时间bin里事件数会显著高于两边形成一个峰。用这个峰的质心位置就能估算距离精度可以远高于单个时间bin的宽度。直方图的bin宽度取决于TDC分辨率bin数目要和最大测量距离配套。更长的距离意味着更大的时间窗口同样时间内每个bin分到的有效回波就少所以长距离dToF需要更多的积累次数或更高的激光重频这就是为什么短距离消费级产品能做几十帧每秒而百米级车载激光雷达往往帧率不高。6.3 一个简单的测距精度估算假设时间测量分辨率是100ps光速约3乘以10的8次方米每秒光往返一次所以距离分辨率粗略等于光速乘时间分辨率再除以2也就是0.015米。表面看起来100ps分辨率的TDC能给出1.5厘米的精度。但实际上精度还受激光脉冲宽度、SPAD抖动、目标反射率、环境光、信号积累次数影响。激光脉冲不是理想的本身有几十皮秒到纳秒的宽度SPAD抖动几十到几百皮秒背景光会提高噪声基座反射率越低回波光子越少峰值统计置信度越低。真实系统往往要几十倍于理论分辨率的采集次数才能达到毫米级稳定性。所以看厂商宣传的“毫米级精度”要看它的测试条件是什么。是静态白墙室内还是高速移动室外车况两者难度完全不可同日而语。7. 选型建议和供应链思考7.1 自研还是买模组先想清楚系统瓶颈要不要自己做SPAD这个问题的答案取决于你做的是传感器公司还是系统公司。如果核心是“如何把深度信息可靠、低功耗地整合进产品里”那你大概率应该买成熟模组和芯片把精力聚焦在光学、算法和系统集成上。自己做SPAD设计流片费用、测试设备、可靠性验证都是一笔大投入没有足够的量根本摊不平。如果团队本身有半导体背景想从器件层做出差异化比如定制波长响应、做特殊像素架构那自研之路值得走。但要做好心理准备SPAD的良率、暗电流、后脉冲一致性等问题比普通CMOS传感器更刁钻验证周期至少按年算。从供应链看现在海外几家老牌厂商在高端SPAD阵列上依然强势但国产方案也在快速追赶尤其在消费级dToF模组方向已经有不少量产案例。选型时不能只看性能参数还要考虑FAE支持力度、批量一致性、供货稳定性和开发生态芯片这行换供应商的沉没成本高得离谱。7.2 未来趋势片上系统的融合会越来越明显SPAD和CMOS工艺的深度融合是一个不可逆的方向。单点感光、时间测量、直方图处理、深度算法加速都会往同一颗芯片里塞。你会看到SPAD传感器逐步变成“深度计算芯片”而不只是“光探测芯片”。另一个趋势是3D堆叠技术的普及。SPAD阵列和逻辑电路分开制造再堆叠既解决了填充因子低的问题也把高性能数字电路从像素工艺中解放出来。这样感光层可以用优化过的工艺去追求低暗计数、高PDP逻辑层则可以用先进工艺去做高速TDC和复杂的信号处理。波长扩展也是热点。硅基SPAD覆盖不了1550nm随着激光雷达对人眼安全和烟雾穿透的要求提升铟镓砷SPAD阵列的成熟度会逐渐提高。成本降低到一定程度车载长距离激光雷达会进一步从905nm转向1550nm这个趋势目前已经相当明显。还有一个容易被忽视的维度是算法生态。SPAD系统能输出的信息越来越丰富不仅包括深度还有强度、时序直方图、多路径反射特征。怎么把这些信息用起来是和硬件同等重要的问题。未来比拼的不只是SPAD芯片本身而是围绕SPAD的完整深度感知算法栈。8. 写在后面的个人体会做SPAD相关项目这几年我最大的感受是单光子探测听起来是玄学本质上是概率统计和工程妥协的艺术。一颗光子能不能被探测到探测到了能不能准确计时背后全是概率密度、噪声方差和系统级权衡。如果让我给新入行的朋友一句建议那就是不要只看SPAD的峰值参数要盯住“在目标使用场景的温度、背景光、反射率条件下”的实际表现。器件数据手册里的单点数值好看没有用你的系统工作环境里能稳定跑出高精度、高鲁棒性的深度数据这才是王道。最后分享一个小技巧不管你是自研还是买模组入手第一件事先搭一套完整的光路和信号链验证平台用一个移动反射目标扫一遍距离-精度曲线记录不同环境光强度下的退化情况。做完这一轮你对SPAD的理解会超越看一百篇论文。别的都是虚的实测数据最诚实。