1. Sensor 基础与选型:从光子到像素的硬核之旅

做嵌入式视觉这几年,我接触过不下二十种图像传感器。从最早的黑白 CCD 到现在的全局快门 CMOS,每次选型都像在走钢丝——参数摆在那,但真正决定成败的往往是那些「不起眼」的细节。

这一章,咱们就把 Sensor 的底裤扒干净。从工作原理到选型实战,我会把踩过的坑、流过的泪一并倒出来。

1.1 图像传感器工作原理:CCD vs CMOS

先说个最基础的问题:光子是怎么变成数字信号的?

简单来说,每个像素就是一个光电二极管。光子打进来,产生电子-空穴对,电子被收集、转移、放大、量化,最后变成你看到的像素值。

但 CCD 和 CMOS 的「搬运」方式完全不同。

对比项 CCD CMOS
电荷读出方式 逐行转移,统一输出 每个像素独立读出
噪声水平 低(读出噪声约 2-3 e⁻) 较高(约 5-10 e⁻)
功耗 高(约 500 mW) 低(约 100 mW)
速度 慢(帧率受限) 快(可做到 1000+ fps)
成本 高 低
典型应用 天文、科研、医疗 消费电子、工业、车载

核心结论:现在 90% 以上的嵌入式视觉项目都用 CMOS。CCD 只在极低噪声、高动态范围场景下还有优势。我个人已经五年没在项目里用过 CCD 了。

为什么会这样?因为 CMOS 工艺进步太快了。背照式(BSI)、堆叠式(Stacked)技术把 CMOS 的噪声压到了接近 CCD 的水平,同时保留了低功耗、高帧率的优势。

1.2 关键参数:别被 datasheet 忽悠了

Datasheet 上的参数,说白了都是「实验室理想值」。真正落地时,你得知道哪些参数能信,哪些只能参考。

1.2.1 分辨率与帧率

分辨率好理解——像素阵列的宽×高。但帧率呢?它受限于两个东西:像素时钟和读出架构。

举个例子,一个 1920×1080 的 Sensor,像素时钟 72 MHz,理论上最大帧率是:

帧率 = 像素时钟 / (行像素数 × 列像素数 × 开销系数)
     = 72e6 / (1920 × 1080 × 1.2)
     ≈ 29 fps

我的经验:实际帧率通常比理论值低 10-20%。因为还有 blanking、曝光时间、ISP 处理延迟。选型时留 30% 余量比较稳妥。

1.2.2 动态范围

动态范围(DR)是 Sensor 能同时记录的最亮和最暗区域的比值。单位是 dB。

公式很简单:

DR = 20 × log10(满阱容量 / 读出噪声)

比如满阱容量 10000 e⁻,读出噪声 5 e⁻,那 DR ≈ 66 dB。

但注意!高动态范围往往意味着低灵敏度。你想想看,满阱容量大了,每个光子产生的电压变化就小了。这是个 trade-off。

避坑指南:我曾经在一个户外监控项目里选了高动态范围的 Sensor,结果暗光下噪点满天飞。后来才发现,动态范围高是因为满阱大,但量子效率低,弱光信号根本填不满。所以 DR 和 QE 要一起看。

1.2.3 信噪比与量子效率

信噪比(SNR)决定了图像的「干净程度」。量子效率(QE)决定了 Sensor 对光的「敏感程度」。

这两个参数是孪生兄弟。QE 高了,同样光照下信号更强,SNR 自然就上去了。

我习惯用这个公式估算 SNR:

SNR = 20 × log10(信号电子数 / √(信号电子数 + 暗噪声²))

注意,分母里有个「信号电子数」的平方根——这是散粒噪声,物理极限,躲不掉的。

1.3 选型方法论:五步走,不翻车

选 Sensor 就像相亲——参数对得上只是第一步,真正过日子才知道合不合适。我总结了一套五步法:

  1. 明确应用场景——室内/室外?白天/黑夜?静止/运动?
  2. 确定核心参数——分辨率、帧率、DR、SNR 的底线是多少?
  3. 筛选候选型号——从 Sony、OmniVision、Onsemi 等主流厂商里挑 3-5 款。
  4. 评估接口与驱动——MIPI、LVDS、并行?驱动难度如何?
  5. 打样实测——别信 datasheet,自己上板子测。

我的铁律:第五步不能省。我见过太多「datasheet 完美,实测翻车」的案例。比如某款 Sensor 标称 120 dB 动态范围,实际在 60°C 高温下直接缩水到 80 dB。

1.4 实战案例:一个车载环视项目的选型复盘

去年我做了一个车载环视项目,要求 4 路 100 万像素、30 fps、动态范围 > 100 dB、工作温度 -40°C ~ 85°C。

当时候选了三款 Sensor:

型号 分辨率 帧率 DR 温度范围 价格
Sensor A 1280×960 30 fps 110 dB -40~85°C $8.5
Sensor B 1280×800 45 fps 95 dB -30~80°C $6.2
Sensor C 1920×1080 30 fps 105 dB -40~85°C $12.0

Sensor B 价格最低,但 DR 和温度范围都不达标,直接 pass。Sensor C 参数最好,但价格太高,4 路下来成本吃不消。

最后选了 Sensor A。为什么?因为它的 DR 实测能到 108 dB,而且我们之前用过同系列的 Sensor,驱动代码可以直接复用,省了至少两周开发时间。

选型心得:驱动复用性往往比参数更重要。一个新 Sensor 的驱动调试,从零开始至少 2-4 周。如果项目周期紧,优先选熟悉的平台。

1.5 知识体系:一张图看懂 Sensor 选型

下面这张图是我自己整理的 Sensor 选型知识框架。每次做新项目前,我都会对着它过一遍。

Sensor 选型知识体系 图像传感器选型 工作原理 关键参数 选型方法论 实战案例 CCD 电荷转移 CMOS 像素读出 BSI / 堆叠式 分辨率 & 帧率 动态范围 (DR) SNR & 量子效率 场景分析 参数底线设定 驱动复用评估 车载环视 候选对比 实测验证 选型核心原则 参数匹配 + 驱动复用 + 实测验证 = 一次成功的 Sensor 选型

嗯,这张图基本覆盖了本章的核心内容。从工作原理到实战案例,每个分支都对应一个选型决策点。你下次做选型时,可以照着这个框架走一遍,至少能避开 80% 的坑。