1. MIPI-DSI 基础:MIPI 联盟与 DSI 协议概述
1.1 MIPI 联盟与 DSI 协议定位
MIPI(Mobile Industry Processor Interface)联盟成立于 2003 年,旨在为移动设备制定开放、免版税的接口标准。DSI(Display Serial Interface)是 MIPI 联盟针对显示子系统制定的串行接口协议,广泛应用于智能手机、平板、嵌入式开发板(如树莓派)的 LCD/OLED 屏幕驱动。
DSI 协议的核心设计目标:
- 高速串行传输:使用差分信号对(D-PHY)实现 Gbps 级数据率,减少引脚数量。
- 低功耗:支持高速模式(HS)和低功耗模式(LP)动态切换。
- 分层架构:将物理层、协议层、应用层分离,便于 IP 复用和调试。
调试启示:时钟异常排查往往从物理层开始,但根因可能出现在协议层或应用层配置。理解分层架构是定位问题的第一步。
1.2 DSI 物理层与协议层分层架构
DSI 协议栈分为四层,从下至上依次为:
| 层级 | 名称 | 主要职责 | 与时钟关系 |
|---|---|---|---|
| L4 | 应用层(Application) | 像素数据打包、命令封装、显示刷新控制 | 决定像素时钟频率和刷新率 |
| L3 | 协议层(Protocol) | 包结构定义(长包/短包)、ECC/CRC 校验、虚拟通道管理 | 包传输时序依赖字节时钟 |
| L2 | 通道管理层(Lane Management) | 数据分发到多 Lane、Lane 合并/拆分、SoT/EoT 序列 | Lane 间 skew 影响时钟恢复 |
| L1 | 物理层(D-PHY) | 差分信号驱动、时钟 Lane 和数据 Lane 的电气特性、HS/LP 模式切换 | 时钟 Lane 直接提供位时钟 |
关键概念:DSI 的时钟 Lane 是单向的(Host→Device),数据 Lane 是双向的(HS 方向 Host→Device,LP 方向可双向)。时钟异常通常表现为时钟 Lane 无信号、频率偏差、抖动过大或占空比失真。
1.3 DSI 分层架构 SVG 图
下图展示了 DSI 协议栈的四层结构及其与时钟信号的关联路径:
1.4 D-PHY 物理层关键特性
D-PHY 是 DSI 的物理层实现,定义了以下关键参数:
- 差分信号对:每个 Lane 由一对差分线(P/N)组成,抗共模干扰能力强。
- HS 模式:高速传输模式,时钟 Lane 提供连续方波时钟,数据 Lane 在时钟双边沿采样(DDR)。
- LP 模式:低功耗模式,使用单端信号传输控制命令,时钟 Lane 停止翻转。
- 状态定义:LP-00、LP-01、LP-10、LP-11 四种线路状态用于握手和模式切换。
| 参数 | HS 模式 | LP 模式 |
|---|---|---|
| 信号幅度 | 200 mV(差分摆幅) | 1.2 V(单端摆幅) |
| 数据传输率 | 80 Mbps ~ 1 Gbps per Lane | ≤ 10 Mbps |
| 时钟 Lane | 连续翻转,频率 = 数据率/2 | 停止翻转,保持 LP-11 |
| 功耗 | 高(~3 mW/Gbps) | 低(~0.3 mW) |
| 典型用途 | 像素数据流 | 命令、配置、BTA |
时钟异常排查要点:在 HS 模式下,时钟 Lane 必须持续翻转;若示波器观察到时钟 Lane 长时间处于 LP-11 状态,说明 Host 未正确进入 HS 模式,或时钟 PLL 未锁定。这是树莓派 DSI 调试中最常见的物理层问题。
1.5 协议层包结构概述
DSI 协议层定义了两种包类型:
- 短包(Short Packet):4 字节固定长度,用于命令、同步、应答。包含 1 字节数据标识符(DI)、2 字节数据、1 字节 ECC。
- 长包(Long Packet):可变长度,用于像素数据、大块命令。包含包头(4 字节)、数据负载(0~65535 字节)、包尾(2 字节 CRC)。
包传输的时钟依赖关系:
字节时钟频率 = 数据 Lane 位时钟频率 / 8
像素时钟频率 = 字节时钟频率 × 每时钟像素数
示例(树莓派 4 Lane 1080p60):
像素时钟 = 148.5 MHz
每时钟像素数 = 4(4 Lane 并行)
字节时钟 = 148.5 / 4 = 37.125 MHz
位时钟 = 37.125 × 8 = 297 MHz
时钟 Lane 频率 = 297 / 2 = 148.5 MHz(DDR)
调试工具提示:使用逻辑分析仪抓取时钟 Lane 和数据 Lane 的 HS 包序列,检查 SoT(Start of Transmission)序列是否正确。SoT 序列为 LP-11 → LP-01 → LP-00 → LP-00 → HS-0 → HS-1 → ...,若 SoT 缺失或时序错误,数据 Lane 将无法同步。