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 协议分层架构 CSI-2 协议分层架构 应用层(Application Layer) 像素格式、帧结构、数据流控制(RAW8/10/12、YUV、JPEG) 协议层(Protocol Layer) 长/短包格式、ECC、CRC、虚拟通道(Virtual Channel) 链路层(Link Layer) 数据包拆分/重组、低功耗模式控制、Lane 管理 PHY 管理层(PHY Management Layer) 时钟/数据 lane 使能、HS/LP 模式切换、Termination 控制 物理层(D-PHY / C-PHY) 设备树 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>;
};
D-PHY Lane 映射与极性示意图 D-PHY Lane 映射与极性示意图 图像传感器 (发送端) CLK+ CLK- D0+ D0- D1+ D1- 设备树 Lane 映射 clock-lanes = <0> data-lanes = <1 2> lane-polarities = <0 1> (极性: 0=不翻转, 1=翻转) SoC / ISP (接收端) CLK+ CLK- D0+ D0- D1+ D1- 极性翻转

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 走线严格一致。