2、Camera Sensor基础:光电转换原理、像素结构、色彩滤波阵列(CFA)、传感器类型(CMOS/CCD)对比
Camera Sensor是成像链路的最前端,其核心任务是将外界光信号转换为可供后端ISP(图像信号处理器)处理的数字电信号。无论是做驱动调试还是图像调优,理解Sensor的光电转换原理、像素内部结构、色彩滤波阵列(CFA)的排列方式以及CMOS与CCD的差异,都是判断异常、定位问题、选择调优策略的基础。本章将从物理原理出发,逐步拆解Sensor的微观结构,并结合实际调试场景给出判断方法和注意事项。
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)。
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噪声:
- 相关双采样(CDS):在像素复位后和电荷转移后各采样一次,相减消除复位噪声。
- 黑电平校准(Black Level Calibration):通过光学黑像素(OB)区域计算黑电平偏移量,在ISP中减去。
- 动态缺陷像素校正(DPC):识别并插值替换坏点。
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已进入预期的工作模式。