之前笔者讨论过SPAD-SoC的相关产品:雪岭 · 激光雷达未来『最核心』器件——SPAD-SoC,以及雪岭 · 再谈SPAD-SoC——数字激光雷达的核心。
不过,前面两次讨论更多是停留在理论层面,本次我们结合已规模量产的SPAD-SoC真实案例和产品手册,探讨一下SPAD-SoC实际产品的内部构造、工作流程、关键指标和输出模式。
读100本理论,不如做1次实践。
01、基本结构
1. 基础架构
SPAD-SoC采用"感算一体"的架构设计,将单光子雪崩二极管(SPAD)阵列与完整的数字信号处理系统集成在同一芯片上。
SPAD-SoC可以同时完成光子检测、时间测量、信号处理和数据输出等全流程,可实现从光子入射到深度/图像数据的直接输出。
与传统的分立方案相比,SPAD-SoC具有集成度高、功耗低、体积小、响应速度快等优势,是目前高线束长距激光雷达和Flash短距激光雷达的核心部件,对激光雷达性能的影响最大,因此成为激光雷达厂商竞相争取的技术高地。
如下是Sony IMX459的芯片架构示意图:
如下是一款线阵SPAD-SoC实物照片,用于高线束长距激光雷达。
2. 内部结构
一个典型的SPAD-SoC芯片内部结构如下:
注意:由于各厂家设计理念有一定区别,实际SPAD-SoC产品的结构可能和上图有一定差异,具体请参考实际产品Datasheet。
SPAD-SoC内部主要包括3部分:
Part1:光子检测与时间测量。包括SPAD阵列单光子探测、淬灭电路和TDC时间测量。
Part2:信号处理。包括直方图生成、数字信号处理。其中,数字信号处理分为FIR、回波检测、FWHM、深度计算等环节。有些SPAD-SoC增加了“点云处理”模块,进一步提升SPAD-SoC的集成度。
Part3:系统控制与数据输出。通过I2C/SPI接口接收主处理器指令,完成芯片参数配置、激光发射与接收的同步工作。其他还包括电源管理、PLL、温度传感器和安全监控等模块。
3. 工作流程
SPAD-SoC基本的工作流程如下:
图片来源:Sony
其中,SPAD 阵列在盖革模式下接收回波光子并触发雪崩效应,经淬灭 / 复位电路完成单次探测循环后,多个 SPAD 组成宏像素进行信号合并。
之后,通过采样,将光子到达时间转换为数字量,生成 "时间 - 光子计数" 直方图。
最后,经 FIR 滤波降噪、多回波峰值检测和距离解算,最终通过输出接口将点云数据传输至外部处理器。
02、光子检测与时间测量
1. SPAD像素阵列
SPAD(Single-Photon Avalanche Diode)是SPAD-SoC的核心感光元件。每个SPAD工作在盖革模式(Geiger Mode),当单个光子入射时,会触发雪崩击穿,产生可被检测的电流脉冲。
成千上万个SPAD像素按二维网格排列,形成SPAD-SoC的感光核心。
SPAD像素的关键特性有:
像素尺寸:决定空间分辨率和填充因子,目前市场产品普遍为10μm×10μm左右。
像素规模:从数万到数十万不等,面阵SPAD-SoC常见配置有768×576、576×432等,线阵SPAD-SoC中,IMX459是189×600,IMX479是105×1560。
光子探测效率(PDE,Photon Detection Efficiency):衡量SPAD灵敏度的核心指标,指SPAD检测到入射光子的概率。先进的SPAD-SoC在905nm或940nm波长下PDE可达25%以上,速腾最新发布的自研SPAD-SoC的PDE超过45%。
死时间(DT,Dead Time):SPAD检测到一个光子后恢复到可检测下一个光子状态所需的时间。该指标影响最大计数率,目前通常在7ns~22ns之间。
暗计数率(DCR,Dark Count Rate):在没有入射光的情况下,SPAD自发产生雪崩脉冲的概率。DCR是主要的噪声来源之一,目前典型值约300cps至数百万cps。
后脉冲概率(APP,After Pulse Probability):SPAD雪崩结束后,由于陷阱中载流子的释放而产生虚假脉冲的概率,通常在2%~5%之间。
输出抖动(Jitter):SPAD响应时间的不确定性,影响时间测量精度,约200ps级别。
串扰(CT,Cross Talk):一个SPAD的雪崩脉冲引起相邻SPAD产生虚假脉冲的概率,通常在1%~5%之间。串扰是激光雷达非常常见的问题,串扰抑制是SPAD-SoC芯片设计的重要考量因素。
2. 淬灭电路(Quench Circuit)
淬灭电路是SPAD工作的关键配套电路,主要功能是:1)主动/被动淬灭:快速降低SPAD偏置电压,终止雪崩过程;2)复位控制:在死时间结束后,恢复SPAD至待探测状态;3)脉冲整形:将雪崩电流转换为标准数字脉冲,供TDC测量。
被动淬灭架构结构简单、功耗低,通过串联电阻实现自淬灭;主动淬灭响应更快,死时间更短,但电路复杂度和功耗更高。
3. 时间数字转换器(TDC)阵列
紧接在SPAD阵列之后,每个SPAD像素对应一个或共享一个TDC。TDC的核心功能是精确测量激光发射时刻到光子返回时刻的时间间隔(飞行时间ToF)。
TDC通常采用延迟线型或游标型架构,通过测量信号在延迟链中的传播位置来实现时间数字化。
TDC的关键指标是时间分辨率,每1ns时间分辨率对应约15cm的距离分辨率,先进的SPAD-SoC中的TDC时间分辨率可达皮秒级别。
还有另外2个指标:
时间窗口:TDC能够测量的最大时间间隔,决定了系统的最大测距距离,常见配置为672~2048个Bin;
计数深度:每个Bin在每个时间段能够统计的最大光子数,也称为计数器位宽,通常为10bit,该指标决定动态范围。
03、信号处理
1. 直方图生成
直方图生成模块是dToF信号处理中的关键环节。
由于单次光子检测会受到暗计数噪声、背景光噪声和散粒噪声的严重干扰,无法直接用于测距。因此,通常使用直方图,通过统计方法提取有效信号。
直方图生成模块会统计成百上千次激光脉冲周期的TDC时间戳数据,统计每个时间点的光子计数,生成"时间-光子计数"直方图。同时,它还会统计背景噪声的分布特性,为后续的滤波和信号提取提供依据。
直方图生成的工作流程:
累积阶段:在数百至数千次激光脉冲周期内,将TDC输出的时间戳按Bin分类计数;
直方图生成:形成"时间-光子计数"二维统计分布;
噪声统计:同步统计背景噪声的分布特性,为后续滤波提供依据;
直方图的峰值位置对应目标距离,峰值宽度反映信号质量,背景计数水平反映环境光强度。
2. FIR滤波器
FIR(Finite Impulse Response)滤波器是数字信号处理中最基础、应用最广泛的线性滤波器之一。它的核心特点是,单位冲激响应仅在有限个时间点上非零,输出仅由当前和过去的输入信号加权求和得到,没有反馈回路。
在 SPAD-SoC中,FIR 滤波器是片上信号处理流水线的核心模块,专门用于对原始 "时间 - 光子计数" 直方图进行平滑去噪,是提升信噪比、保证测距精度的关键环节。
目前产品中,常用16抽头FIR,可根据应用场景调整相关滤波系数。
3. 峰值搜索
峰值检测在滤波后的直方图中搜索局部极大值,先进的SPAD-SoC支持多回波检测(通常最多可输出5个),可同时检测穿透玻璃、树叶、雾气后的多次反射信号。有些还支持回波分裂判定,用于处理复杂反射场景。
可配置动态检测阈值,随噪声水平和时间Bin索引自适应调整。
4. 半高全宽(FWHM)计算
FWHM(Full Width at Half Maximum,半高全宽),即回波峰值高度 1/2 处的波形宽度。
FWHM可用于补偿不同反射率物体、不同距离导致的回波展宽误差,提高测距精度:
FWHM越宽表示测距误差越大,因此可通过 FWHM 进行误差补偿。
FWHM能够区分真实回波与噪声,噪声尖峰通常较窄,而真实回波具有一定的波形宽度。
FWHM还可用于判断目标反射率与距离,远距离或低反射率目标会使 FWHM 变宽。
在两个回波距离过近时,也能依靠 FWHM 判断回波是否重叠,从而实现多回波有效分辨。
5. 深度计算与误差校正
根据回波峰值的时间戳计算出最终的距离值,并结合FWHM、回波强度和噪声信息进行误差校正。
图片来源:灵明光子
04、系统控制与数据输出
1. 系统控制单元
系统控制单元是SPAD-SoC的全局运行管理核心,负责统筹芯片全生命周期的状态切换与资源调度。
主状态机:控制芯片的上电、初始化、正常运行和低功耗模式切换,协调各模块的时序与工作流程;
配置寄存器:存储曝光时间、激光脉冲宽度、ROI区域、工作模式等所有芯片参数,为各功能模块提供配置依据;
PLL时钟生成器:将外部输入的低频时钟倍频为芯片内部所需的高频时钟,保障各模块同步运行;
安全与监控模块:集成电压、温度、时钟及VCSEL触发监控功能,确保芯片安全可靠运行,特别是实现人眼安全保护;
内置温度传感器:实时监测芯片结温,用于动态调整SPAD工作电压,补偿温度变化对探测性能的影响。
2. 激光控制单元
SPAD-SoC和激光器需要严格同步工作,因此激光控制单元负责管理激光发射时序,确保SPAD-SoC与激光器之间精确同步。
激光控制单元通过激光控制单元,灵活配置激光脉冲的宽度、周期与重复率,支持多通道独立触发输出。激光控制单元同时接收触发反馈信号,获取激光实际发射时刻,校准系统时序误差。
有些SPAD-SoC还支持外部触发输入,可实现多传感器或多设备的同步工作。
激光控制单元通常还集成伪随机序列(PRBS)调制功能,有效解决多设备同场工作时的相互干扰问题。
3. 数据输出与通信接口单元
数据输出与通信接口单元负责SPAD-SoC与外部主机的双向数据交互。
其中,MIPI控制器与C-PHY/D-PHY物理层构成高速串行数据输出通道,将片上处理完成的灰度图、直方图、回波信息或深度图按照标准协议格式传输给主机。
I2C/SPI从机接口作为低速控制通道,接收外部主机发送的配置指令并写入配置寄存器,实现对芯片工作模式、参数的动态调整。
05、输出模式
SPAD-SoC通常支持如下四种数据输出模式,可通过软件配置灵活切换,满足不同应用场景的需求。
注意:有些SPAD-SoC产品的输出模式可能更多,处理流程和上图也有一定差异,不过原理类似。
1. 模式1:灰度模式(Gray Scale Mode)
该模式不进行任何测距计算,直接统计每个像素在固定时间窗口内接收到的总光子数(包括信号光和环境背景光),生成类似普通CMOS相机的灰度图像。
可以采用Z型扫描或卷帘扫描方式读出全阵列,支持全分辨率输出,曝光时间可配置(最短可达80μs),最高帧率可达300fps(取决于曝光时间和读出效率)。
该模式输出的数据主要用于:环境光强度检测与标定、反射率标定与光斑校准、暗光摄影与红外成像、传感器内参标定、光斑追踪与定位。
2. 模式2:直方图模式(Histogram Mode)
将直方图生成模块输出的原始"时间-光子计数"直方图直接输出,不进行任何滤波和信号处理。
该模式输出的数据包含所有时间Bin的完整计数分布,因此数据量很大,对后端处理器带宽要求很高。
不过由于可以拿到最原始数据,灵活性最高,支持用户自定义高级算法。输出的数据可用于芯片调试与性能验证、科研实验与自定义算法开发、系统标定与误差分析。
业内讨论的卫星激光雷达方案,通常会考虑采用这种输出模式:
图片来源:识光
3. 模式3:回波模式(Echo Mode)
该模式中,原始直方图先经过FIR滤波去除噪声,然后通过回波检测算法识别出所有有效的激光回波峰值,最后将检测到的回波信息(包括时间戳、强度、数量等)打包输出。
回波模式输出的数据量远小于直方图模式,同时保留一定程度的信号细节。
该模式可用于需要多回波信息的复杂场景,例如复杂场景避障(如穿透玻璃、树叶后的障碍物检测)、3D重建与SLAM、穿透式成像(如车窗、雨雾环境)、多路径环境下的鲁棒测距。
4. 模式4:测距模式(Ranging Mode)
测距模式的前序处理(FIR滤波 + 回波检测)与回波模式相同,主要增加了深度信息的计算。
深度信息计算根据回波峰值的时间戳计算飞行时间,结合光速换算为距离值。同时,计算噪声置信度指标,有时也会计算回波半高全宽(FWHM)与回波面积。
该模式可以输出每个像素的深度值(距离图)和噪声置信度,支持输出FWHM等信号质量指标。
该模式的数据量在四种模式中最小,是绝大多数dTOF应用的主要模式。
06、扫描模式
为了适应激光雷达的扫描应用,适配不同光学系统,SPAD-SoC一般支持多种扫描模式。
如果是线阵SPAD-SOC,通常采用线扫描模式。该模式采用卷帘快门架构,每次只读出一行或几行像素的数据。
如果是面阵SPAD-SoC,通常具有1D扫描模式和2D扫描模式:
1)1D扫描模式:其中一个方向(水平或者垂直)为完整连续光带,卷帘沿另一个方向(垂直或者水平)逐列/行移动。
图片来源:万集光电
2)2D扫描模式:水平和垂直两个方向光带被分割为多个分段,卷帘同时沿垂直和水平方向移动。可以先扫描水平分段的所有垂直行,再移至下一个水平分段,也可以反过来。
图片来源:万集光电
另外,有些SPAD-SoC还支持动态ROI扫描。通过掩膜控制有效像素区域,可实现灵活的感兴趣区域(ROI)配置,只对感兴趣的区域进行扫描和测距。
07、SPAD-SoC核心资料分享活动
激光雷达正在向高线束和面阵型快速迭代,SPAD-SoC是其中的核心器件,笔者认为,其重要性权重占整机的70%以上。
SPAD-SoC正朝着多阵列、少串扰、高PDE、低DCR等方向发展,甚至集成RGB像素,形成RGBD单芯片SPAD-SoC的多模态芯片方案。
为了深入研究SPAD-SoC相关技术和行业现状,目前雪岭飞花平台正在组织SPAD-SoC相关学习资料的收集和分享活动。
规则和之前类似,即“我为人人,人人为我”的方式:分享满足要求的学习资料,就可以免费获得活动期内收集到的全部资料。截止到发稿时,已经收集了十几份市场热点SPAD-SoC的参考资料,详细进展情况如下(腾讯文档访问链接):https://docs.qq.com/sheet/DQ3NmSVFZdURQSGtq
个人心得,坚持读完哪怕仅一篇产品手册,认知也会完全不同。
我是雪岭,研究感知、控制和人工智能的技术、产品和应用,欢迎交流。
867