2、Camera Sensor基础:光电转换原理、像素结构、色彩滤波阵列(CFA)、传感器类型(CMOS/CCD)对比

Camera Sensor是成像链路的最前端,其核心任务是将外界光信号转换为可供后端ISP(图像信号处理器)处理的数字电信号。无论是做驱动调试还是图像调优,理解Sensor的光电转换原理、像素内部结构、色彩滤波阵列(CFA)的排列方式以及CMOS与CCD的差异,都是判断异常、定位问题、选择调优策略的基础。本章将从物理原理出发,逐步拆解Sensor的微观结构,并结合实际调试场景给出判断方法和注意事项。

Camera Sensor 光电转换与信号链路原理图 入射光 Lens/IR滤光 CFA Bayer Pattern R G G B 像素阵列 PD + 微透镜 光电二极管 (N+/Psub) 模拟前端 CDS + PGA + ADC 10/12/14bit 数字输出 MIPI CSI-2 RAW Data D-PHY/C-PHY I2C控制 寄存器读写 时钟/复位 MCLK / RESET / PWDN 电源域 AVDD/DVDD/IOVDD 关键调试点 ① 电源上电时序 AVDD→DVDD→IOVDD ② MCLK频率确认 24MHz ± 1% ③ I2C地址/时序 0x20/0x30 确认 光电转换效率 = 量子效率(QE) × 填充因子(FF) × 微透镜透过率 暗电流与温度强相关:温度每升高10°C,暗电流约翻倍

2.1 光电转换核心原理:从光子到电子的物理过程

Camera Sensor的本质是一个光电转换器件。当光子入射到硅基半导体表面时,如果光子能量大于硅的禁带宽度(约1.12eV,对应波长约1100nm),价带电子会被激发跃迁至导带,形成电子-空穴对。这个物理过程被称为内光电效应。在Sensor的像素单元中,光电二极管(Photodiode, PD)通常采用N+/Psub结构或P+/Nwell结构,形成一个反向偏置的PN结。光子激发的电子会被耗尽区的电场收集,在PN结电容上积累电荷,从而将光信号转换为电荷信号。

从驱动调试的角度,需要关注以下关键参数:

  • 量子效率(QE):入射光子转化为电子的比例,通常以百分比表示。QE越高,灵敏度越高,但QE与波长相关,红外波段QE显著下降。
  • 响应率(Responsivity):单位光功率产生的光电流,单位通常为V/(lux·s)或DN/(nJ/cm²)。该参数直接影响AE(自动曝光)算法的目标值设定。
  • 满阱容量(Full Well Capacity, FWC):像素能容纳的最大电子数,决定了动态范围的上限。FWC越大,高光溢出(Blooming)风险越低。
  • 暗电流(Dark Current):无光照时因热激发产生的电子流,与温度强相关。暗电流过大会导致黑电平漂移和固定图案噪声(FPN)。
调试提示:在驱动初始化时,务必确认Sensor的GAIN寄存器与曝光时间寄存器的映射关系。部分Sensor的模拟增益(Analog Gain)与数字增益(Digital Gain)是分开控制的,且模拟增益的步进精度直接影响低照度下的信噪比。建议在调试初期将增益设为1x,先验证曝光时间与亮度变化的线性关系,再逐步引入增益。

2.2 像素结构详解:微透镜、CFA与光电二极管的协同工作

一个典型的CMOS像素单元由微透镜(Microlens)、色彩滤波阵列(CFA)、光电二极管(PD)以及读出电路(如SF源跟随器、RS行选通)组成。微透镜的作用是将入射光汇聚到光电二极管的感光区域,提高填充因子(Fill Factor, FF)——即感光面积占像素总面积的比例。对于背照式(BSI)结构,由于电路层位于光电二极管下方,填充因子可接近100%,而前照式(FSI)通常只有50%-70%。

CFA是覆盖在像素阵列上的微型滤光片阵列,最常见的为Bayer Pattern(RGGB),即每2×2像素单元中,包含1个红色(R)、2个绿色(G)、1个蓝色(B)滤光点。绿色像素数量是红蓝的两倍,这是因为人眼对绿色波段(550nm附近)最敏感,且该波段在自然光照中能量占比最高。CFA的存在使得每个像素只能感知单一颜色通道,后续需要通过去马赛克(Demosaic)算法插值恢复全彩图像。

像素结构组件 功能 失效表现 调试关注点
微透镜 汇聚光线,提高量子效率 画面边缘偏暗(CRA不匹配) 镜头CRA与Sensor微透镜偏移匹配
CFA 分色,获取色彩信息 偏色、伪彩、摩尔纹 白平衡增益、色彩校正矩阵(CCM)
光电二极管 光电转换,存储电荷 暗电流大、白点、坏点 黑电平校准、坏点校正(DPC)
源跟随器(SF) 将电荷信号转换为电压信号 列噪声、行噪声 CDS(相关双采样)时序配置

在驱动调试中,CFA的排列方向(BGGR、GRBG等)必须与ISP的配置严格一致。如果配置错误,图像会出现严重的色彩错乱——例如红色区域显示为蓝色。判断方法很简单:拍摄一张纯白纸,观察RAW图每个2×2像素块的通道值分布,确认R、G、B的位置关系。

2.3 CMOS与CCD传感器对比:架构差异与调试影响

虽然当前手机和车载摄像头几乎全部采用CMOS传感器,但理解CCD的架构差异有助于深入认识CMOS的噪声特性和读出方式。CCD(电荷耦合器件)采用全局快门(Global Shutter),电荷在像素间逐行转移,最后在输出端统一转换为电压。这种架构的优点是噪声低、动态范围大、像素一致性高,但缺点是功耗高、帧率低、无法单芯片集成逻辑电路。

CMOS传感器则采用主动像素传感器(APS)架构,每个像素内部包含独立的放大器和行选开关,可以随机读取任意像素区域(ROI)。CMOS的优势在于:

  • 低功耗(通常为CCD的1/10~1/100)
  • 高帧率(支持1080P@240fps甚至更高)
  • 单芯片集成(ADC、DSP、时序控制、接口电路)
  • 支持窗口读取(Binning、Cropping)

但CMOS的代价是固定图案噪声(FPN)和列噪声(Column Noise)更明显,因为每个像素的放大器增益存在微小差异。在驱动调试中,需要通过以下手段抑制CMOS噪声:

  1. 相关双采样(CDS):在像素复位后和电荷转移后各采样一次,相减消除复位噪声。
  2. 黑电平校准(Black Level Calibration):通过光学黑像素(OB)区域计算黑电平偏移量,在ISP中减去。
  3. 动态缺陷像素校正(DPC):识别并插值替换坏点。
风险提示:在调试CMOS Sensor时,切勿将模拟电源(AVDD)与数字电源(DVDD)直接短接。CMOS的模拟电路对电源噪声极其敏感,AVDD上的纹波会直接耦合到像素输出,导致图像出现水平条纹(Banding)。建议使用LDO单独供电,并在靠近Sensor电源引脚处放置100nF+4.7uF去耦电容。

2.4 实战场景:Sensor点不亮时的光电链路排查

在驱动调试中最常见的故障是Sensor无输出或输出全黑。此时应按照光电转换链路逐级排查,而非盲目修改寄存器。以下是一个典型的排查案例:

背景与现象:某项目使用OV5640 Sensor(RGGB,RAW10输出),上电后I2C通信正常,能读取Sensor ID,但MIPI无数据输出,图像全黑。

关键输入数据:

  • 电源:AVDD=2.8V,DVDD=1.5V,IOVDD=1.8V,均正常
  • 时钟:MCLK=24MHz,示波器测量波形正常,幅度1.8Vpp
  • 复位:RESET引脚拉高,PWDN拉低
  • I2C:地址0x21,读写正常

分析判断过程:I2C正常说明Sensor数字逻辑已启动,问题可能出在模拟链路或MIPI配置。首先检查MIPI的LP(低功耗)状态——用示波器测量MIPI时钟通道的LP-RX状态,发现时钟通道一直处于HS(高速)模式,但无实际时钟翻转。进一步检查寄存器0x3008(系统控制),发现Sensor处于软件Standby模式,未切换到Streaming模式。

实际操作步骤:

// 1. 确认Sensor ID
i2c_read(0x21, 0x300A); // 返回0x56
i2c_read(0x21, 0x300B); // 返回0x40

// 2. 退出Standby,进入Streaming
i2c_write(0x21, 0x3008, 0x02); // 0x02 = Streaming模式

// 3. 等待VSYNC信号
// 用示波器测量MIPI CSI-2的VSYNC信号,确认帧同步产生

// 4. 检查MIPI数据通道
// 确认D0P/N差分对上有数据翻转,幅度约200mV

结果对比:写入0x3008=0x02后,MIPI数据通道立即出现差分信号,图像预览正常。复盘发现,初始化序列中遗漏了Streaming模式的切换步骤,导致Sensor虽然完成了寄存器配置,但并未开始输出图像数据。

复盘经验:在驱动调试中,务必按照电源上电→时钟稳定→复位释放→I2C配置→Streaming使能的顺序操作。任何一步缺失都可能导致Sensor无输出。建议在初始化序列末尾增加一个状态读取寄存器,确认Sensor已进入预期的工作模式。

经验提醒:对于CMOS Sensor,当图像出现整体偏绿时,优先检查CFA排列配置;当图像出现横向亮暗条纹时,优先检查电源纹波和MIPI信号完整性;当图像出现随机闪烁噪点时,优先检查曝光时间和增益设置是否合理。掌握光电转换链路,能帮助你在复杂的调试问题中快速定位方向。