3、摄像头接口与协议:USB3.0、GigE Vision、MIPI CSI-2、Camera Link协议对比与选型
做异构摄像头融合,第一个要面对的问题就是——这些摄像头怎么连到处理器上?
接口选错了,后面所有工作都白搭。我见过不少项目,算法调得挺好,结果卡在传输带宽上,画面一卡一卡的。说白了,接口就是摄像头的“水管”,水管细了,再好的图像数据也流不过来。
今天咱们就把主流的四种接口掰开揉碎讲清楚:USB3.0、GigE Vision、MIPI CSI-2、Camera Link。每种接口的物理层、协议栈、带宽、延迟、适用场景,我一个一个说。
3.1 先看一张总览图
下面这张图,是我自己画的知识结构。它把这四种接口的核心参数、典型场景、优缺点都串起来了。你盯着看两分钟,心里就有谱了。
3.2 USB3.0 —— 最通用的选择
USB3.0 大家最熟悉。它的理论带宽是 5 Gbps,实际有效带宽大概在 3.2-3.8 Gbps 左右。为什么有损耗?因为协议开销、握手、重传机制都要占一部分。
优点:
- 即插即用,Windows/Linux 驱动成熟
- 线缆便宜,最长支持 3-5 米(加延长器可以到 10 米)
- UVC(USB Video Class)协议统一,免驱摄像头很多
缺点:
- CPU 占用率偏高。因为 UVC 协议需要主机做大量打包解包工作
- 多相机同步困难。USB 是主从架构,没有硬件触发线
- 延迟不稳定。我实测过,USB3.0 的延迟抖动在 1-5 ms 之间
我的经验: 如果你做原型验证,USB3.0 是最快的方案。但做产品时要注意——USB 线缆的屏蔽质量直接影响图像稳定性。我曾经被一根劣质 USB 线坑了三天,画面时不时出现条纹噪声,换了线就好了。
3.3 GigE Vision —— 工业视觉的常青树
GigE Vision 是基于千兆以太网的相机协议。带宽 1 Gbps,实际有效大概 900-950 Mbps。听起来比 USB3.0 慢,但它在工业领域地位很高。
为什么?
- 传输距离远。标准 CAT6 网线可以到 100 米
- 支持 PoE(Power over Ethernet),一根线供电+传数据
- 硬件触发同步。多台相机可以精确到微秒级同步
- CPU 占用率低。因为网卡有硬件卸载功能
缺点:
- 带宽上限 1 Gbps,高分辨率高帧率场景吃力
- 需要配置 IP 地址,部署比 USB 复杂
- 延迟比 MIPI 和 Camera Link 高,大约 2-5 ms
避坑指南: 我曾经在一个产线项目中,用 GigE Vision 相机做 500 万像素 30fps 采集。结果发现网络交换机必须支持巨型帧(Jumbo Frame),否则丢包严重。后来换了支持 9000 字节巨型帧的交换机,问题才解决。
3.4 MIPI CSI-2 —— 嵌入式系统的王者
MIPI CSI-2 是手机和嵌入式设备的主流接口。它基于差分信号传输,物理层用 D-PHY 或 C-PHY。
核心参数:
- D-PHY:每 lane 最高 2.5 Gbps,常用 2-4 lane
- C-PHY:每 trio 最高 5.7 Gbps,带宽更高
- 延迟极低,通常在微秒级
- 直接连接 SoC 的 ISP 模块,无需中间芯片
优点:
- 延迟最低。适合实时性要求高的场景(如自动驾驶、无人机)
- 功耗低。因为是片内接口,不需要额外的 PHY 芯片
- 带宽充足。4 lane D-PHY 可以轻松支持 4K 60fps
缺点:
- 传输距离短。通常不超过 30 cm
- 需要 SoC 有 MIPI 控制器,通用性不如 USB
- 调试困难。示波器都很难抓到 MIPI 信号
注意: MIPI CSI-2 的走线长度必须严格控制。我见过一个项目,因为 FPC 排线长了 5 cm,导致信号眼图闭合,画面出现雪花。后来换成同轴电缆转接才解决。
3.5 Camera Link —— 高速工业的硬汉
Camera Link 是专门为高速工业相机设计的接口。它用 LVDS 差分信号,带宽从 2 Gbps(Base 模式)到 8 Gbps(Full 模式)。
特点:
- 带宽极高。Full 模式可以支持 4K 120fps 甚至更高
- 延迟极低。硬件直连,没有协议栈开销
- 需要专用的采集卡。不能直接插电脑
- 线缆贵且粗。最长 10 米左右
适用场景:
- 半导体晶圆检测
- 高速印刷品检测
- 医疗影像(如内窥镜)
我的建议: Camera Link 虽然性能强悍,但成本高、部署复杂。除非你的项目对带宽和延迟有极致要求,否则优先考虑其他接口。我做过一个项目,用 Camera Link 采集 16K 线阵相机,数据量确实大,但采集卡和线缆的成本占了整个系统的一半。
3.6 选型决策表
下面这张表,是我自己整理的选型参考。你直接拿来用就行。
| 对比项 | USB3.0 | GigE Vision | MIPI CSI-2 | Camera Link |
|---|---|---|---|---|
| 带宽 | 5 Gbps | 1 Gbps | 1-4 Gbps | 2-8 Gbps |
| 传输距离 | 3-5 米 | 100 米 | 0.3 米 | 10 米 |
| 延迟 | 中 (1-5 ms) | 中 (2-5 ms) | 极低 (μs级) | 极低 (μs级) |
| CPU占用 | 高 | 低 | 极低 | 低 |
| 多相机同步 | 困难 | 优秀 | 一般 | 优秀 |
| 成本 | 低 | 中 | 低 (片内) | 高 |
| 易用性 | 高 | 中 | 低 | 低 |
| 典型场景 | 原型验证、通用视觉 | 工业多相机、长距传输 | 嵌入式、手机、无人机 | 高速检测、医疗影像 |
3.7 我的选型心法
说了这么多,到底怎么选?我总结了三句话:
- 看平台: 嵌入式用 MIPI,PC 用 USB 或 GigE,专用系统用 Camera Link。
- 看距离: 超过 10 米只能选 GigE Vision。
- 看同步: 多相机必须硬件触发,GigE 或 Camera Link 优先。
最后说一句: 接口选型没有的对错,只有合不合适。我见过用 USB3.0 做 8 相机阵列的,也见过用 GigE 做单相机高速采集的。关键是你得清楚自己的瓶颈在哪里——是带宽?是延迟?还是成本?想清楚这个,答案自然就有了。