摄像头硬件基础:传感器类型、镜头参数与接口协议
做多摄像头系统,第一关就是选硬件。传感器、镜头、接口,这三样东西决定了你后面所有算法能跑多好。我见过不少项目,算法调得漂漂亮亮,结果一上硬件就崩——说白了,就是硬件基础没打牢。
今天咱们就把这三块掰开揉碎讲清楚。你想想看,一个摄像头模组,光进来,经过镜头,打到传感器上,再通过接口把数据传出去。每一步都有坑,每一步都影响最终效果。
2.1 传感器类型:CCD 与 CMOS 的抉择
传感器是摄像头的「视网膜」。目前主流就两种:CCD 和 CMOS。很多人觉得 CMOS 是后来者,肯定比 CCD 好——其实不是这么回事。
| 对比项 | CCD | CMOS |
|---|---|---|
| 读出方式 | 逐行转移,统一输出 | 每个像素独立读出 |
| 噪声水平 | 低(全局快门优势) | 较高(卷帘快门易有果冻效应) |
| 功耗 | 高(需要多路电压) | 低(单电压供电) |
| 帧率 | 受限于读出速度,一般较低 | 可做到很高(>100fps 常见) |
| 成本 | 高,工艺复杂 | 低,适合大规模量产 |
| 多摄像头适用性 | 差,同步困难 | 好,支持多路独立触发 |
我个人习惯,做多摄像头系统时首选 CMOS。为什么?因为多路同步需要每个传感器都能独立触发、独立曝光。CCD 的读出架构决定了它很难做到多路精确同步。我记得有个项目,客户非要上 CCD,说画质好。结果六路摄像头同步死活调不好,最后全换成 CMOS,一周搞定。
2.2 镜头参数:不只是焦距和光圈
镜头这东西,看着简单,其实门道很深。很多工程师只关心焦距和光圈,忽略了像面尺寸、畸变、景深这些参数。嗯,这里要注意——镜头选不好,传感器再好也白搭。
2.2.1 关键参数一览
- 焦距(f): 决定视场角。短焦(< 6mm)视野大,畸变也大;长焦(> 12mm)视野窄,畸变小。多摄像头系统里,我一般用 6mm 和 12mm 搭配,一个看全局,一个看细节。
- 光圈(F): 影响进光量和景深。F 值越小,进光越多,但景深也越浅。做多摄像头时,所有镜头的光圈最好统一,不然图像亮度不一致,后期融合很麻烦。
- 像面尺寸: 必须和传感器靶面匹配。1/2.3" 的镜头配 1/3" 的传感器,边缘会暗角;反过来,1/3" 的镜头配 1/2.3" 的传感器,会损失视场角。
- 畸变: 广角镜头常见桶形畸变。多摄像头拼接时,畸变校正是个大活。我建议选畸变 < 1% 的镜头,能省很多算法功夫。
- 后焦距(Flange Back): 镜头安装面到传感器的距离。这个参数在换镜头时特别容易踩坑——我曾经因为后焦距差了 0.5mm,整批模组对焦不准,返工了两周。
2.2.2 镜头与传感器的匹配原则
说白了,就是三个匹配:
- 光学格式匹配: 镜头像面 ≥ 传感器靶面。比如 1/2" 的镜头可以配 1/3" 的传感器,但反过来不行。
- 分辨率匹配: 镜头的 MTF(调制传递函数)要在传感器奈奎斯特频率处仍有 30% 以上。不然你买再高像素的传感器,拍出来也是糊的。
- 光谱匹配: 镜头的镀膜波段要覆盖传感器感光波段。比如近红外增强传感器,就得配近红外增透镜头。
2.3 接口协议:MIPI、USB、GMSL 怎么选?
接口是摄像头和处理器之间的「高速公路」。选错了,带宽不够、延迟太高、距离太短,系统直接废掉。我按使用场景排个序:
| 接口 | 带宽 | 传输距离 | 延迟 | 典型场景 |
|---|---|---|---|---|
| MIPI CSI-2 | ~4 Gbps(4 lane) | < 30 cm(板内) | 微秒级 | 手机、嵌入式板载摄像头 |
| USB 3.0 | ~5 Gbps | < 5 m(有源线可延长) | 毫秒级 | PC 外接、工业相机 |
| GMSL(千兆多媒体串行链路) | ~6 Gbps(GMSL2) | 15-20 m(同轴电缆) | 微秒级 | 车载、机器人、远距离多摄像头 |
2.3.1 MIPI CSI-2:板内首选
MIPI 是嵌入式系统里最常见的摄像头接口。差分信号,抗干扰好,功耗低。但有个硬伤——传输距离太短,超过 30cm 信号就衰减得厉害。所以它只适合做板内或短距离连接。
多摄像头用 MIPI 时,要注意 SoC 的 CSI 口数量。比如 RK3588 有 4 个 CSI 口,但每个口只能接 1 路摄像头。如果你想接 8 路,就得用 CSI 交换芯片或者走虚拟通道(VC)。
2.3.2 USB:灵活但延迟高
USB 摄像头最大的优势是即插即用,开发快。但它的延迟是个大问题——USB 协议本身有帧周期(1ms/帧),再加上驱动缓冲,端到端延迟轻松到 10ms 以上。多摄像头同步?USB 基本做不到亚帧级同步。
我个人的建议是:原型验证可以用 USB,量产产品尽量别用。除非你的应用对同步要求不高,比如安防监控那种 30fps 就够的场景。
2.3.3 GMSL:远距离多摄像头的王者
GMSL 是 Maxim(现 ADI)推出的串行器-解串器方案。它能把 MIPI 信号转成同轴电缆传输,距离做到 15-20 米。而且它支持双向通信——视频数据下行,控制指令上行,一根线搞定。
多摄像头系统里,GMSL 最大的优势是同步。它内置了帧同步机制,所有摄像头可以共享同一个触发信号,同步精度做到微秒级。我做过一个 8 路环视项目,用的就是 GMSL,同步效果非常稳。
2.4 知识体系总览
下面这张图把本章的核心内容串起来了。你对照着看,心里就有谱了。
2.5 选型实战清单
最后,我把自己做多摄像头系统时的选型清单列出来。你照着这个顺序走,基本不会出大问题。
- 确定应用场景: 室内/室外?白天/夜晚?固定/移动?距离多远?
- 选传感器: 根据帧率、分辨率、光照条件选 CMOS 型号。多路同步优先选支持全局快门和外部触发的。
- 配镜头: 根据传感器靶面选像面尺寸,根据视场角选焦距,根据光照选光圈。别忘了检查畸变和 IR-Cut。
- 定接口: 板内用 MIPI,远距用 GMSL,原型验证用 USB。注意 SoC 的接口数量和带宽上限。
- 做兼容性测试: 打样后先测单路,再测多路同步。重点关注图像质量、延迟、同步精度。