3. 相机传感器技术:CCD与CMOS,全局快门与卷帘快门
传感器是相机的「眼睛」。驱动开发如果不懂传感器原理,调试图像时就像盲人摸象。我最早踩的坑,就是以为所有传感器都一样,结果图像撕裂、曝光不均,折腾了两周才发现是快门模式没选对。
这一节,我们聚焦四个核心问题:CCD 和 CMOS 到底差在哪?全局快门和卷帘快门为什么会影响运动物体?背照式和堆栈式又解决了什么痛点?
3.1 CCD 与 CMOS:两种主流传感器架构
3.1.1 CCD 的工作原理
CCD(电荷耦合器件)的核心思路是:所有像素的电荷统一转移,统一读出。
光照射到像素后,产生光生电荷。这些电荷先在像素内积累,然后逐行转移到垂直移位寄存器,再水平转移到输出放大器。整个过程像「接力赛」——电荷必须完整地传递到终点。
CCD 的关键特征:
- 全局快门天生支持(电荷同时转移)
- 噪声低,动态范围高
- 读出速度慢,功耗高
- 无法与 CMOS 逻辑工艺集成
我在一个高精度视觉检测项目里用过 CCD。图像确实干净,暗部细节丰富。但帧率只有 30fps,而且传感器发热严重,散热没做好,图像就开始出现固定模式噪声。
3.1.2 CMOS 的工作原理
CMOS(互补金属氧化物半导体)完全不同。每个像素自带放大器,电荷直接在像素内转换成电压,然后通过行列寻址读出。
说白了,CMOS 是「各扫门前雪」——每个像素独立工作,不需要全局转移。这带来了几个好处:
- 读出速度快,轻松上百帧
- 功耗低,适合嵌入式系统
- 与逻辑工艺兼容,可以集成 ISP、ADC 等模块
但早期 CMOS 的噪声问题很严重。我记得 2010 年左右用过一颗 VGA 级别的 CMOS,暗电流大得离谱,曝光时间超过 100ms 就全是噪点。后来工艺进步了,背照式、堆栈式出现,CMOS 才真正统治了工业相机市场。
3.1.3 CCD vs CMOS 对比
| 维度 | CCD | CMOS |
|---|---|---|
| 读出方式 | 电荷全局转移 | 像素级电压读出 |
| 噪声水平 | 低(统一读出) | 较高(像素级差异) |
| 帧率 | 低(30-60fps) | 高(100-1000+fps) |
| 功耗 | 高(5-10W) | 低(0.5-2W) |
| 集成度 | 低(需外部驱动芯片) | 高(可集成 ISP、ADC) |
| 成本 | 高 | 低 |
| 工业应用 | 高精度、低帧率场景 | 高速、嵌入式、消费级 |
我的选择建议:如果项目要求 12bit 以上动态范围、低噪声,且帧率要求不高,CCD 仍然有优势。但大多数嵌入式视觉系统,CMOS 是更务实的选择——驱动简单、功耗低、帧率高。
3.2 全局快门 vs 卷帘快门
这是驱动开发中最容易出问题的点。我见过不少工程师,拿到传感器就默认用卷帘快门,结果拍运动物体时图像扭曲,还以为是驱动时序写错了。
3.2.1 全局快门(Global Shutter)
全局快门的意思是:所有像素在同一时刻开始曝光,同一时刻结束曝光。
CCD 天生就是全局快门。CMOS 要实现全局快门,需要在每个像素内增加一个存储节点,用来暂存曝光结束时的电荷。曝光完成后,所有像素同时把电荷转移到存储区,然后再逐行读出。
全局快门的优势:
- 运动物体无畸变
- 适合闪光灯同步
- 适合高速抓拍
代价:
- 像素面积增大(存储节点占面积)
- 满阱容量降低
- 噪声略高
我曾经调试一个流水线检测项目,产品以 5m/s 的速度通过视野。用卷帘快门时,圆形产品被拍成了椭圆。换成全局快门后,形状就对了。嗯,这个坑我记忆犹新。
3.2.2 卷帘快门(Rolling Shutter)
卷帘快门是 CMOS 的「原生」工作方式。像素逐行开始曝光,逐行结束曝光。每一行的曝光时长相同,但起始时间不同。
你想想看,如果物体在水平方向快速移动,就会出现「果冻效应」——垂直的物体被拍成倾斜的。这是因为物体在移动,而不同行的曝光时间点不同。
避坑指南:我曾经在一个项目中,用卷帘快门拍高速旋转的齿轮。结果图像里齿轮的齿是歪的,算法直接误判为缺陷。后来换成全局快门才解决。如果你拍运动物体,务必确认传感器是否支持全局快门模式。
3.2.3 两种快门的适用场景
| 场景 | 推荐快门 | 原因 |
|---|---|---|
| 静态物体拍摄 | 卷帘快门 | 成本低,像素性能好 |
| 高速运动抓拍 | 全局快门 | 无果冻效应 |
| 闪光灯同步 | 全局快门 | 所有像素同时曝光 |
| 低噪声需求 | 卷帘快门 | 像素结构简单,噪声低 |
| 高帧率应用 | 卷帘快门 | 读出速度快 |
3.3 背照式与堆栈式传感器
这两个概念是 CMOS 工艺进化的产物。我刚开始接触时也搞混过,后来拆了几颗传感器才明白。
3.3.1 背照式(BSI, Back-Side Illuminated)
传统 CMOS 是「前照式」——光线从金属布线层入射,部分光线被金属反射或吸收,量子效率低。
背照式把硅片翻转过来,光线直接从硅衬底背面入射,没有金属层遮挡。说白了,就是让光少走弯路。
背照式的优势:
- 量子效率提升 20-30%
- 低光性能更好
- 像素尺寸可以做得更小
我在一个夜间监控项目里用过背照式传感器。同样的曝光时间,背照式比前照式亮了一档。但要注意,背照式对工艺要求高,成本也高一些。
3.3.2 堆栈式(Stacked)
堆栈式更进一步。它把像素层和逻辑电路层分开,用 TSV(硅通孔)垂直连接。像素层只负责感光,逻辑层负责读出、ADC、ISP 等。
这样做的好处很明显:
- 像素面积可以做得更小(逻辑电路不占像素面积)
- 读出速度更快(逻辑层独立优化)
- 功能集成度更高
我最近调试的一颗 2000 万像素工业相机,用的就是堆栈式 CMOS。帧率能做到 120fps,而且动态范围超过 70dB。这在五年前是不可想象的。
3.3.3 三种结构对比
| 结构 | 光路 | 量子效率 | 读出速度 | 集成度 | 成本 |
|---|---|---|---|---|---|
| 前照式(FSI) | 经过金属层 | 低(50-60%) | 中等 | 低 | 低 |
| 背照式(BSI) | 背面入射 | 高(70-80%) | 中等 | 低 | 中 |
| 堆栈式(Stacked) | 背面入射 | 高(70-80%) | 高 | 高 | 高 |
3.4 知识结构图:传感器技术全景
下面这张图梳理了本章的核心知识点。你可以把它当作传感器选型时的快速参考。
3.5 驱动开发中的传感器选型要点
最后,结合我的实际经验,给你几个传感器选型时的检查清单:
- 确认快门模式:传感器是否支持全局快门?如果支持,驱动中如何配置?
- 确认读出接口:是 MIPI、LVDS 还是并行接口?驱动时序是否匹配?
- 确认像素格式:RAW8、RAW10、RAW12?驱动中需要配置对应的数据格式。
- 确认帧率与分辨率:在目标分辨率下,帧率是否满足项目需求?
- 确认温度范围:工业场景通常要求 -40°C 到 85°C,传感器是否支持?
一个小技巧:拿到新传感器,先读 datasheet 里的「Timing Diagram」章节。那里画了每一根信号线的时序关系。我每次调试驱动,都会把时序图打印出来贴在桌上,对照着写寄存器配置。
传感器技术是相机驱动的底层基础。理解了 CCD 和 CMOS 的差异,掌握了全局快门和卷帘快门的适用场景,你就能在项目初期做出正确的选型决策。背照式和堆栈式代表了 CMOS 工艺的演进方向,未来工业相机的主流一定是堆栈式全局快门 CMOS。