硬件接口与协议:MIPI CSI-2、I2C、SPI、GPIO 与电源管理
摄像头模组要跟主控芯片“对话”,靠的就是硬件接口和协议。说白了,就是物理上怎么连,数据怎么传。这一块要是没搞透,后面调试起来会非常痛苦。我见过不少同事,模组选型时没仔细看接口定义,结果板子打回来发现信号对不上,只能飞线,那叫一个狼狈。
咱们一个一个来看。
MIPI CSI-2 接口详解
MIPI CSI-2 是目前手机和嵌入式摄像头最主流的接口。它负责把图像传感器采集到的原始数据,高速传输到应用处理器(AP)或 ISP 端。
物理层:D-PHY 与 C-PHY
CSI-2 的物理层有两种:D-PHY 和 C-PHY。D-PHY 用得最广,C-PHY 是后来推出的,带宽更高。
| 特性 | D-PHY | C-PHY |
|---|---|---|
| 信号线 | 差分对(Dp/Dn),每 lane 两根线 | 三线(A/B/C),每 trio 三根线 |
| 时钟 | 独立时钟 lane | 时钟嵌入在数据中 |
| 每 lane 速率 | 最高约 4.5 Gbps | 最高约 5.7 Gbps(等效) |
| 抗干扰 | 好 | 更好 |
| 布线复杂度 | 较低 | 较高 |
我个人习惯,在 2-lane 或 4-lane 的 D-PHY 方案上花的时间最多。为什么?因为 D-PHY 的时钟和数据 lane 需要等长布线,否则信号歪斜(skew)会直接导致眼图闭合。
协议层:长包与短包
CSI-2 协议层定义了数据传输的格式。数据以“包”为单位传输,分为短包和长包。
- 短包(Short Packet):8 字节,用于帧同步、行同步等控制信息。
- 长包(Long Packet):包含包头、数据负载和包尾。图像数据就在负载里。
帧结构通常是:帧起始短包 → 若干行长包 → 帧结束短包。这个顺序不能乱,否则 ISP 无法正确解析图像。
I2C 控制协议
I2C 是摄像头模组的“控制通道”。主控通过 I2C 来配置 sensor 的寄存器,比如设置曝光时间、增益、输出格式等。
I2C 的物理层与速率
I2C 只有两根线:SCL(时钟)和 SDA(数据)。速率通常有标准模式(100kHz)、快速模式(400kHz)和高速模式(3.4MHz)。摄像头模组大多用 400kHz。
上拉电阻很关键。阻值太小,功耗大;阻值太大,上升沿变缓,容易导致通信失败。我一般根据总线电容来估算,100pF 左右用 4.7kΩ,400pF 用 1.5kΩ。
读写时序
I2C 的读写流程其实不复杂,但细节容易出错。
- 起始条件:SCL 高电平时,SDA 从高变低。
- 发送设备地址 + 读写位:7 位地址 + 1 位 R/W。
- 等待应答(ACK):从机拉低 SDA 表示应答。
- 发送寄存器地址:通常是 16 位或 8 位。
- 发送/接收数据:每字节后跟 ACK。
- 停止条件:SCL 高电平时,SDA 从低变高。
SPI 接口
SPI 在摄像头模组中不如 I2C 常见,但某些高速 sensor 或需要快速配置的场景下,SPI 更有优势。它支持全双工,速率可以跑到几十 MHz。
SPI 的四根线
| 信号 | 功能 |
|---|---|
| SCLK | 时钟,由主控产生 |
| MOSI | 主出从入 |
| MISO | 主入从出 |
| CS | 片选,低电平有效 |
SPI 有四种模式,由时钟极性(CPOL)和时钟相位(CPHA)决定。摄像头 sensor 通常用模式 0(CPOL=0, CPHA=0)或模式 3(CPOL=1, CPHA=1)。
嗯,这里要注意:SPI 的 CS 信号在每次传输前后必须拉高再拉低,否则 sensor 可能不识别新的命令。我遇到过有人把 CS 一直拉低,结果 sensor 只响应了第一次配置。
GPIO 控制
GPIO 是摄像头模组最基础的接口。虽然简单,但用不好也会出问题。
常用 GPIO 功能
- 复位(RESET):低电平复位 sensor。上电后需要保持一段时间低电平,然后拉高。
- 电源使能(PWDN):低功耗模式控制。有些 sensor 用高电平进入休眠。
- 帧同步(VSYNC):输出信号,指示一帧的开始。
- 行同步(HSYNC):输出信号,指示一行的开始。
电源管理
摄像头模组对电源很敏感。纹波太大,图像上会出现横纹或噪点。
典型电源轨
| 电源轨 | 典型电压 | 用途 |
|---|---|---|
| AVDD | 2.8V | 模拟电路供电 |
| DVDD | 1.2V 或 1.8V | 数字核心供电 |
| IOVDD | 1.8V 或 2.8V | I/O 接口供电 |
上电时序很重要。通常要求:先给 AVDD 和 DVDD,再给 IOVDD,最后拉高 RESET。如果时序反了,可能会损坏 sensor。
我建议在电源输出端加一个 10μF 的电解电容和 0.1μF 的陶瓷电容,用来滤除低频和高频纹波。另外,电源走线要尽量宽,减少压降。
知识结构图:硬件接口与协议
下面这张图把本章的核心内容串起来了。你可以看到,MIPI CSI-2 是数据通道,I2C/SPI 是控制通道,GPIO 负责状态控制,电源管理则是基础保障。
好了,这一章的内容就是这些。接口和协议是硬件调试的基础,后面章节我们会深入到具体的测试用例和调试工具。记住,理论要结合实践,多动手,多测量,才能把摄像头模组调好。