图像传感器基础:CCD与CMOS原理、像素结构、感光特性、色彩滤波阵列(CFA)与Bayer格式

图像传感器是Camera Sensor驱动开发的核心硬件载体,其内部工作原理直接决定了驱动软件中寄存器配置、曝光控制、增益调节、数据输出格式等关键逻辑。本章从半导体物理层面出发,系统拆解CCD与CMOS的电荷转移与读出差异、像素结构对感光性能的影响、感光特性曲线与动态范围的关系,以及色彩滤波阵列(CFA)与Bayer格式如何影响ISP(图像信号处理器)的插值算法。理解这些底层机制,是后续编写高质量驱动代码、调试图像异常(如偏色、暗角、坏点)的必要前提。

图像传感器核心知识链路图 入射光 光子 → 电子 像素阵列 光电二极管 + 传输门 填充率 / 量子效率 CCD 电荷耦合 逐行转移 / 全局快门 低噪声 / 高功耗 CMOS 有源像素 行列寻址 / 卷帘快门 低功耗 / 高集成度 CFA 色彩滤波阵列 Bayer RGGB 2×2 RAW 数据输出 MIPI / LVDS / DVP 感光特性:量子效率 / 动态范围 / 暗电流 线性响应 → 饱和 → 过曝

核心原理:从光子到数字信号的物理链路

图像传感器的本质是一个将光信号转换为电信号的半导体器件阵列。当入射光子撞击硅基光电二极管时,如果光子能量大于硅的禁带宽度(约1.12eV),就会激发产生电子-空穴对。光电二极管通过PN结的内建电场将光生电子收集在耗尽区中,形成与入射光强度成正比的电荷包。这一过程称为光电转换,其效率用量子效率(QE)衡量,即入射光子数与产生电子数的比值。对于可见光波段,硅基传感器的QE通常在40%~80%之间,受表面抗反射涂层、微透镜阵列和像素开口率影响。

CCD(电荷耦合器件)与CMOS(互补金属氧化物半导体)的核心差异在于电荷读出方式。CCD采用电荷耦合转移机制:光生电荷在像素内积累后,通过垂直移位寄存器逐行转移到水平移位寄存器,再经输出放大器转换为电压。这种串行读出方式保证了电荷转移路径上的一致性,因此CCD的固定模式噪声(FPN)和暗电流通常更低,但需要多相时钟驱动,功耗较高,且无法在像素内集成放大电路。CMOS则采用有源像素传感器(APS)结构,每个像素内部包含光电二极管、传输管(TX)、复位管(RST)、源极跟随器(SF)和行选择管(RS)。读出时通过行列寻址直接访问单个像素,将电荷就地转换为电压并放大,因此读出速度快、功耗低,且能轻松集成ADC、时序控制、ISP等外围电路,实现SoC级集成。

对比维度CCDCMOS(APS)
电荷读出方式串行电荷耦合转移行列寻址并行读出
像素内放大无(片外放大器)有(源极跟随器)
噪声水平低(转移路径一致)较高(列放大器失配)
功耗高(多相时钟驱动)低(单电源低压)
快门方式全局快门为主卷帘快门为主,可支持全局
集成度低(需外部驱动芯片)高(可集成ADC/DSP/接口)
成本高(特殊工艺)低(标准CMOS工艺)

像素结构与感光特性

现代CMOS图像传感器的像素结构通常采用4T(4晶体管)架构,包含光电二极管(PD)、传输门(TX)、复位晶体管(RST)、源极跟随器(SF)和行选择晶体管(RS)。光电二极管通常采用钉扎光电二极管(PPD)结构,在表面注入P+层以抑制暗电流和表面复合,提高蓝光响应。传输门将积累的电荷包转移到浮置扩散区(FD),FD的电压变化量即为信号电压。复位晶体管在曝光前将FD复位到电源电压,随后TX导通完成电荷转移,SF将FD电压缓冲输出,RS控制行选通。

感光特性中,动态范围是驱动开发中必须关注的指标,定义为最大非饱和信号与噪声底噪之比,通常用dB表示。线性模式下,传感器输出随光强线性增加,直到达到饱和电压。超过饱和点后,输出不再增加,形成高光截止。暗电流是温度的函数,温度每升高6~8°C,暗电流约翻倍,导致暗场图像出现白点或亮度抬升。驱动开发中,曝光时间越长、温度越高,暗电流噪声越明显,因此需要合理配置黑电平校准(OB)寄存器,从信号中减去暗电流分量。

工程经验:在驱动调试中,当发现长曝光图像出现整体偏亮且带有随机白点噪声时,优先检查黑电平校准寄存器(如OB_OFFSET)是否与温度补偿曲线匹配。部分传感器提供OB_GAIN和OB_OFFSET两个控制项,前者用于调整暗电流随温度变化的斜率,后者用于静态偏移校正。建议在产线标定时,分别在25°C和60°C环境下采集暗场数据,拟合补偿系数。

色彩滤波阵列(CFA)与Bayer格式

单色传感器只能感知光强,无法区分颜色。为了获取彩色图像,需要在像素表面覆盖色彩滤波阵列(CFA),每个像素只允许特定波长的光通过。最常用的CFA模式是Bayer格式,其2×2单元包含1个红色(R)、2个绿色(G)和1个蓝色(B)像素,绿色像素数量是红蓝的两倍,以模拟人眼对绿色更敏感的特性。Bayer阵列的排列方式通常为RGGB或BGGR,具体取决于传感器厂商的设计。

驱动开发中,Bayer格式直接影响数据输出格式和ISP处理流程。传感器输出的RAW数据每个像素仅包含一个颜色通道的强度值,必须经过去马赛克(Demosaic)插值算法才能生成完整的RGB图像。插值算法的质量直接影响图像分辨率和边缘伪彩。驱动工程师需要正确配置输出格式寄存器,确保输出的RAW数据与ISP预期的Bayer排列一致。如果排列顺序配置错误,图像会出现严重的颜色错乱,例如红色区域显示为蓝色,绿色区域显示为紫色。

// 以OV5640为例,Bayer格式配置寄存器(部分)
// 0x4300: 控制RAW输出格式
// bit[3:2]: 00 = RAW GRBG, 01 = RAW RGGB, 10 = RAW GBRG, 11 = RAW BGGR
SCCB_Write(0x4300, 0x08); // 设置为RAW RGGB,10-bit输出
// 0x501F: ISP RAW处理控制
SCCB_Write(0x501F, 0x01); // 使能RAW数据输出,禁用内部ISP

除了Bayer格式,部分高端传感器还支持Quad Bayer(2×2同色像素合并)或RGBW(增加白色像素)等改进型CFA。Quad Bayer通过将相邻4个同色像素合并,在低光照下提升灵敏度,同时通过重排输出支持高分辨率模式。驱动开发时,需要根据场景切换不同的binning模式,并同步调整曝光和增益参数。

案例拆解:Bayer排列错误导致的图像偏色问题

在某安防摄像头项目中,使用SONY IMX415传感器,驱动初始化后预览图像出现严重偏色:原本的红色物体显示为蓝色,绿色植物显示为紫色。初步判断为Bayer排列配置错误。通过读取传感器手册,确认IMX415默认输出为RAW10格式,Bayer排列为RGGB。检查驱动代码发现,初始化序列中配置了0x0100(模式选择)和0x0101(Bayer排列)寄存器,但0x0101的值被误写为0x02(对应GBRG),而ISP端按RGGB进行插值,导致颜色通道错位。

进一步分析日志,发现图像传感器输出的RAW数据在内存中按行存储,每行像素顺序为G-R-G-R(若为RGGB排列),而ISP读取时按R-G-R-G顺序解析,导致每个像素的颜色被错误映射。修复方案如下:

  1. 将0x0101寄存器值从0x02改为0x00(RGGB),并重新初始化传感器。
  2. 在驱动中增加Bayer排列校验逻辑,读取传感器ID后自动匹配预设的排列表。
  3. 在ISP配置中,将demosaic模块的输入格式设置为与传感器输出一致。

修改后,图像颜色恢复正常。复盘发现,该问题源于开发人员误将另一款传感器(OV5640)的配置模板直接套用,未仔细核对IMX415的数据手册。此案例提醒我们,在驱动开发中,Bayer排列、数据位宽、输出顺序是必须逐项验证的关键参数,建议在初始化完成后输出一张纯色测试卡(如红色),通过检查RAW数据中R通道的数值分布来快速验证排列正确性。

常见误区与总结复盘

  • 误区一:认为CCD一定优于CMOS。虽然CCD在噪声和动态范围上有优势,但CMOS在集成度、功耗、帧率方面全面领先,且通过背照式(BSI)和堆栈式(Stacked)工艺,CMOS的量子效率和噪声水平已接近甚至超越CCD。驱动开发中,应根据应用场景选择传感器类型,而非盲目追求某一技术。
  • 误区二:忽略暗电流的温度特性。暗电流随温度指数增长,在长曝光或高温环境下,如果不做黑电平校准,图像会出现明显的亮度漂移和固定模式噪声。驱动中应实现温度补偿算法,动态调整OB寄存器。
  • 误区三:Bayer排列配置只检查一次。部分传感器支持多种输出模式(如全分辨率、binning、裁剪),切换模式后Bayer排列可能发生变化。驱动中应在每次模式切换后重新校验排列配置。
  • 误区四:将RAW数据直接当作RGB使用。RAW数据必须经过ISP的demosaic、白平衡、伽马校正等处理才能显示。驱动开发时,应明确区分RAW输出和YUV/RGB输出路径,避免在调试时混淆。

风险提示:在配置传感器输出格式时,务必确认MIPI接口的通道数、数据位宽和虚拟通道设置与传感器输出能力匹配。错误的通道映射会导致数据错位,且难以通过图像内容判断,建议使用示波器或逻辑分析仪抓取MIPI信号进行验证。

本章从物理原理到工程实践,系统梳理了图像传感器的核心知识。理解CCD与CMOS的读出差异、像素结构对噪声和灵敏度的影响、感光特性的非线性区间,以及Bayer格式对色彩还原的决定性作用,是驱动开发中正确配置寄存器、调试图像质量的理论基础。下一阶段,我们将进入Camera Sensor驱动开发的硬件接口部分,深入解析MIPI CSI-2、I2C控制时序和电源管理设计。