1. MIPI CSI 概述
1.1 MIPI 联盟简介
MIPI(Mobile Industry Processor Interface)联盟成立于 2003 年,是全球领先的移动与嵌入式设备接口标准制定组织。其核心使命是定义开放、免版税的硬件接口规范,降低摄像头、显示屏、射频、基带等不同芯片之间的互连复杂度。MIPI 规范在智能手机、平板、汽车电子、物联网终端中占据统治地位。
MIPI 联盟定义的接口标准覆盖三大领域:
| 领域 | 典型标准 | 应用场景 |
|---|---|---|
| 摄像头 | CSI-2、CSI-3、CCI(I²C 衍生) | 图像传感器 → ISP/SoC |
| 显示 | DSI、DSI-2、DCS | SoC/GPU → 显示面板 |
| 物理层 | D-PHY、C-PHY、M-PHY | 底层高速串行传输 |
实战要点: 嵌入式 Linux 驱动开发中,CSI-2 与 D-PHY 的组合最为常见。C-PHY 虽在高端手机中逐步普及,但 D-PHY 仍是设备树 lane 映射调试的主力战场。
1.2 CSI-2 协议分层
CSI-2(Camera Serial Interface 2)是 MIPI 联盟定义的摄像头串行接口标准,采用清晰的分层架构。理解分层是正确配置设备树 lane 映射的前提。
CSI-2 各层职责简述:
- 应用层: 定义像素数据格式(RAW8/10/12/14、YUV422/420、RGB888、JPEG 压缩流等),以及帧起始/结束、行有效等同步信号。
- 协议层: 封装长包(Long Packet,含数据负载)和短包(Short Packet,仅包头)。支持 ECC(单比特纠错)和 CRC(数据完整性校验)。虚拟通道(VC)允许最多 4 路传感器数据在同一链路上复用。
- 链路层: 负责数据包在多个 lane 之间的分发(Distributor)与重组(Merger),以及低功耗(LP)模式下的总线控制。
- PHY 管理层: 控制物理层进入高速(HS)或低功耗(LP)状态,管理时钟 lane 和数据 lane 的使能、均衡、阻抗校准。
- 物理层: 实际差分信号传输,D-PHY 使用 1 对差分时钟 + 1~4 对差分数据 lane。
驱动调试视角: 设备树中配置的 lane 映射(data-lanes、clock-lanes 属性)直接影响链路层的数据分发逻辑。如果 lane 顺序或极性配置错误,链路层重组出的数据将是乱序的,表现为图像撕裂或完全无数据。
1.3 D-PHY 物理层基础概念
D-PHY 是 MIPI 联盟定义的同步源同步差分串行接口,专为摄像头和显示应用优化。它采用源同步时钟架构,即发送端(Sensor)随数据一起发送差分时钟信号。
1.3.1 D-PHY 信号组成
| 信号类型 | 差分对 | 方向 | 功能 |
|---|---|---|---|
| 时钟 Lane | CLK_P / CLK_N | Sensor → SoC | 提供高速数据采样时钟(DDR 双边沿采样) |
| 数据 Lane 0 | D0_P / D0_N | Sensor → SoC | 最低位数据 lane,必须存在 |
| 数据 Lane 1~N | D1_P/D1_N … Dn_P/Dn_N | Sensor → SoC | 扩展数据 lane,提升总带宽 |
1.3.2 工作模式
D-PHY 支持两种工作模式,驱动调试中需要重点关注模式切换时序:
- 高速模式(HS - High Speed): 差分摆幅约 200mV,数据传输速率可达 80 Mbps ~ 4.5 Gbps/lane(D-PHY v2.5)。用于传输像素数据。
- 低功耗模式(LP - Low Power): 单端信号,摆幅 1.2V,速率约 10 Mbps。用于控制指令、总线周转(BTA)和空闲状态。
常见调试陷阱: 设备树中如果未正确配置
hs-clk-rate 或 lane-polarities,可能导致 PHY 无法完成 HS 模式建立,数据 lane 始终停留在 LP 状态,驱动上报 "PHY timeout" 错误。此时应使用示波器或逻辑分析仪检查 CLK 与 D0 的差分信号摆幅。
1.3.3 Lane 映射与极性
D-PHY 物理连接中,Sensor 与 SoC 之间的 lane 顺序和极性可能因 PCB 布局而交换。设备树通过以下属性描述这种映射:
/* 设备树 lane 映射示例 */
sensor: camera@1a {
compatible = "sony,imx219";
reg = <0x1a>;
/* 时钟 lane 极性:0 表示不翻转,1 表示翻转 */
clock-lanes = <0>;
/* 数据 lane 顺序:lane0 映射到物理 lane0,lane1 映射到物理 lane2 */
data-lanes = <1 2>;
/* 数据 lane 极性:lane0 不翻转,lane1 翻转 */
lane-polarities = <0 1>;
};
1.3.4 关键电气参数
| 参数 | HS 模式 | LP 模式 | 说明 |
|---|---|---|---|
| 差分摆幅 | 140~270 mV | — | HS 模式下为低压差分信号 |
| 单端摆幅 | — | 0~1.2 V | LP 模式下为单端 CMOS 电平 |
| 数据传输速率 | 80 Mbps ~ 4.5 Gbps | ≤ 10 Mbps | 每 lane 速率,D-PHY v2.5 |
| 终端电阻 | 100 Ω(差分) | 高阻 | HS 模式需使能接收端终端 |
| 共模电压 | 200 mV | 0 V / 1.2 V | HS 模式下共模电平固定 |
调试建议: 在设备树调试阶段,优先确认时钟 lane 的极性是否正确。时钟极性错误会导致所有数据 lane 的采样沿错位,表现为完全无图像或数据 CRC 错误。使用
media-ctl 工具可以实时查看 lane 配置状态。
1.4 本章小结
MIPI CSI-2 协议的分层架构为摄像头驱动开发提供了清晰的抽象边界。D-PHY 物理层的 lane 映射与极性配置是设备树调试的核心内容。理解以下关键点将直接帮助后续章节的实战操作:
- CSI-2 协议层负责数据包封装,链路层负责 lane 分发——设备树 lane 映射直接影响链路层行为。
- D-PHY 的 HS/LP 模式切换时序是驱动初始化成败的关键。
- 设备树中的
data-lanes、clock-lanes、lane-polarities属性必须与硬件 PCB 走线严格一致。