1. 摄像头传感器基础:工作原理与主要参数

大家好,我是做了多年图像传感器驱动的工程师。今天咱们聊聊摄像头传感器的基础东西。为什么放在第一章?你想想看,后面所有的寄存器配置、时序调整,都建立在对传感器本身的理解上。要是底子没打好,后面很容易出问题。

1.1 传感器是怎么工作的?

说白了,摄像头传感器就是把光信号转成电信号的器件。我刚开始接触这行时,总觉得它很神秘。后来拆了几颗芯片,看了内部结构,发现核心原理其实不复杂。

整个过程分为三步:

  1. 光电转换:每个像素点上的光电二极管吸收光子,产生电子。
  2. 电荷积累:曝光时间内,电子在像素内积累,形成模拟电压。
  3. 读出与转换:通过行列选通,把模拟电压读出,再经ADC转为数字信号。

嗯,这里要注意——不同传感器的读出方式差别很大。常见的有两种:

  • CCD(电荷耦合器件):电荷逐行转移,读出噪声低,但功耗大、速度慢。现在消费级产品基本不用了,主要还在工业/科研领域。
  • CMOS(互补金属氧化物半导体):每个像素自带放大器,可以随机读取。速度快、功耗低,现在手机、汽车、安防全是它。

我在调试某款车规级传感器时,遇到过因为读出模式配置错误,导致帧率只有标称值一半的情况。后来才发现是没把“高帧率模式”对应的寄存器位写对。所以理解读出架构,对后面寄存器配置很有帮助。

1.2 传感器内部结构

一颗CMOS传感器的内部,并不只是像素阵列那么简单。我把它拆成几个关键模块来讲:

模块功能我的备注
像素阵列感光区域,由数百万个像素组成每个像素包含光电二极管 + 晶体管
行选/列选电路控制哪一行、哪一列的像素被读出寄存器里经常配这个时序
模拟信号链包括CDS(相关双采样)、PGA(可编程增益放大器)CDS能大幅降低复位噪声,别省
ADC将模拟电压转为数字值常见的有列并行ADC和全局ADC
时序发生器产生所有内部时钟和控制信号这就是咱们后面要调的MIPI时序的来源
控制寄存器接口一般是I²C或SPI,用来配置传感器寄存器映射表就是从这里读写的

1.3 核心参数详解

这些参数在选型和配置时都绕不开。我按自己的经验,一个一个讲。

1.3.1 分辨率

就是像素数量,比如1920×1080。分辨率决定了图像的细节能力。但别以为越大越好——分辨率越高,数据量就越大,MIPI带宽压力和帧率都受影响。

我曾经在一个项目中,客户坚持要500万像素,结果MIPI的4-lane怎么都跑不到30fps。最后只能降分辨率或用压缩。选型时一定要做带宽预算。

1.3.2 帧率

每秒钟能输出多少帧图像,单位fps。帧率受限于:

  • 像素时钟频率
  • 分辨率大小
  • 读出架构(全局快门 vs 滚动快门)
  • MIPI lane数和速率

举个例子,如果传感器内部像素时钟是96MHz,分辨率是1920×1080,那理论上行时间就是

像素数 / 时钟频率
。但这只是理想值,实际还有消隐区(blanking)——这个后面讲时序时会细说。

1.3.3 动态范围

简单说,就是传感器能同时捕捉到场景中最亮和最暗部分的能力。单位是dB。动态范围越大,明暗细节保留得越好。

计算方法:DR = 20 × log10(满阱容量 / 读出噪声)

为什么重要?你拍一个逆光场景,天空不过曝、人脸不欠曝,这就是高动态范围的作用。

我调试过一款宽动态传感器,它用了多重曝光合成技术——短曝光抓亮部,长曝光抓暗部,片内直接合成。配寄存器时要特别注意曝光比和合成权重。

1.3.4 灵敏度与信噪比

灵敏度通常用V/lux·s或DN/lux·s表示。它反映了像素对光的响应程度。灵敏度越高,弱光下表现越好。

信噪比(SNR)则是信号和噪声的比值。噪声主要来自:

  • 光子散粒噪声(物理限制,减不掉)
  • 读出噪声(电路设计决定)
  • 暗电流噪声(温度影响大)
  • 量化噪声(ADC位数决定)

我记得有一次,客户反馈夜间图像噪点严重。我一看,增益已经拉到60dB了,SNR早就掉到30dB以下。后来靠调节曝光时间和增益策略,才算救回来。

1.3.5 其他关键参数

参数说明常见值
像素尺寸单个像素的物理尺寸1.0μm ~ 5.0μm
满阱容量像素能容纳的最大电子数几千到十几万个电子
量子效率入射光子转化为电子的比例50%~90%
暗电流无光照时产生的电信号几到几百 e-/s
ADC位数模数转换精度10bit/12bit/14bit

暗电流会随温度指数级增长。如果传感器工作到85℃以上,暗电流可能增大几十倍。我之前就没注意这个,结果高温测试时图像全白了——那是暗电流饱和了。所以工业级产品必须考虑散热。

1.4 知识体系总览

下面这张图,是我总结的摄像头传感器核心知识结构。你把它看明白了,后面学起来会顺很多。

摄像头传感器核心知识体系 摄像头传感器核心知识体系 光源 → 光电转换 像素阵列与读出架构 模拟信号链:CDS / PGA / ADC MIPI接口 → 数字输出 核心参数 分辨率 帧率 动态范围 灵敏度 / SNR 满阱 / 暗电流 寄存器配置与MIPI时序参数 → 最终成像质量

1.5 选型与设计时的几个坑

这里我总结几个实战中容易忽略的点:

  • 分辨率 vs 帧率 trade-off:别只看分辨率高就选,要把MIPI带宽上限算清楚。我见过不少板子,传感器性能很好,但主控的CSI口带宽不够。
  • 暗电流随温度变化:产品如果宽温工作,一定要预留暗电流校准的寄存器位。
  • 滚动快门 vs 全局快门:拍快速运动的物体,滚动快门会有果冻效应。选型时一定要想清楚应用场景。
  • 寄存器默认值不可靠:我建议每次上电后都把所有关键寄存器读一遍确认。有些芯片的默认值和数据手册不一样——我就被坑过。

给你个实用建议:拿到新的传感器,先点亮、输出测试图(通常有内置测试图案生成器)。确认MIPI链路通、数据能读出来。再调曝光、增益等参数。这样能快速缩小问题范围。

有些工程师喜欢一上来就调寄存器,但连原始数据都没抓到——这是最容易走弯路的方式。我的习惯是:先看数据手册里的“初始化序列”,按部就班把传感器唤醒。确认输出了,再开始“玩”寄存器。