1. 摄像头传感器基础:工作原理与主要参数
大家好,我是做了多年图像传感器驱动的工程师。今天咱们聊聊摄像头传感器的基础东西。为什么放在第一章?你想想看,后面所有的寄存器配置、时序调整,都建立在对传感器本身的理解上。要是底子没打好,后面很容易出问题。
1.1 传感器是怎么工作的?
说白了,摄像头传感器就是把光信号转成电信号的器件。我刚开始接触这行时,总觉得它很神秘。后来拆了几颗芯片,看了内部结构,发现核心原理其实不复杂。
整个过程分为三步:
- 光电转换:每个像素点上的光电二极管吸收光子,产生电子。
- 电荷积累:曝光时间内,电子在像素内积累,形成模拟电压。
- 读出与转换:通过行列选通,把模拟电压读出,再经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,那理论上行时间就是
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 知识体系总览
下面这张图,是我总结的摄像头传感器核心知识结构。你把它看明白了,后面学起来会顺很多。
1.5 选型与设计时的几个坑
这里我总结几个实战中容易忽略的点:
- 分辨率 vs 帧率 trade-off:别只看分辨率高就选,要把MIPI带宽上限算清楚。我见过不少板子,传感器性能很好,但主控的CSI口带宽不够。
- 暗电流随温度变化:产品如果宽温工作,一定要预留暗电流校准的寄存器位。
- 滚动快门 vs 全局快门:拍快速运动的物体,滚动快门会有果冻效应。选型时一定要想清楚应用场景。
- 寄存器默认值不可靠:我建议每次上电后都把所有关键寄存器读一遍确认。有些芯片的默认值和数据手册不一样——我就被坑过。
给你个实用建议:拿到新的传感器,先点亮、输出测试图(通常有内置测试图案生成器)。确认MIPI链路通、数据能读出来。再调曝光、增益等参数。这样能快速缩小问题范围。
有些工程师喜欢一上来就调寄存器,但连原始数据都没抓到——这是最容易走弯路的方式。我的习惯是:先看数据手册里的“初始化序列”,按部就班把传感器唤醒。确认输出了,再开始“玩”寄存器。