1. MIPI DSI 协议基础
MIPI DSI(Display Serial Interface)是移动设备与嵌入式显示面板之间最主流的高速串行接口标准。本章从 MIPI 联盟的定位出发,逐层剖析 DSI 协议的分层架构、D-PHY 电气特性与数据通道机制,为后续驱动开发与性能调优奠定基础。
1.1 MIPI 联盟简介
MIPI(Mobile Industry Processor Interface)联盟成立于 2003 年,由 ARM、Intel、Nokia、Samsung、STMicroelectronics 等公司共同发起,旨在制定移动设备内部芯片间接口的开放标准。MIPI 联盟不生产硬件,而是定义规范,成员企业据此实现互操作的芯片与模组。
| 关键事实 | 说明 |
|---|---|
| 成立时间 | 2003 年 |
| 核心目标 | 降低移动设备内部接口复杂度,提高互操作性 |
| 主要工作组 | DSI(显示)、CSI(摄像头)、I3C(控制总线)、RFFE(射频前端)等 |
| DSI 版本演进 | DSI-1(2005)→ DSI-2(2015)→ DSI-2 v2.0(2021) |
| 当前主流 | DSI-1(v1.3.1)用于 FHD 以下;DSI-2 用于 4K/高刷新率 |
1.2 DSI 协议分层架构
DSI 协议采用经典的三层架构:物理层(Physical Layer)、链路层(Link Layer) 和 应用层(Application Layer)。这种分层设计使得上层协议与底层物理传输解耦,便于驱动在不同硬件平台间移植。
1.2.1 应用层
应用层负责将帧缓冲中的像素数据转换为 DSI 协议规定的数据格式,并决定使用 视频模式(Video Mode) 还是 命令模式(Command Mode) 发送给面板。
- 视频模式: 实时流式传输,逐行/逐帧发送像素,面板自带时序控制器(TCON)较少,依赖主机持续提供数据。
- 命令模式: 将帧数据写入面板内部 GRAM(图形 RAM),面板自行刷新,主机可休眠省电。
1.2.2 链路层
链路层负责将应用层数据封装为 DSI 数据包,添加包头(Header)、包尾(Footer)、CRC 和 ECC 校验。DSI 定义了两种包类型:
| 包类型 | 长度 | 用途 |
|---|---|---|
| 短包(Short Packet) | 4 字节(2 字节数据 + 2 字节 ECC) | 命令、同步信号、读取请求 |
| 长包(Long Packet) | Header(4B) + Payload(0~65535B) + Footer(2B CRC) | 像素数据、大块命令参数 |
1.2.3 物理层
物理层定义了 D-PHY 或 C-PHY 的电气特性、时钟与数据通道的差分信号标准,以及高速(HS)与低功耗(LP)两种传输模式。Linux 内核中的 phy 子系统负责管理物理层配置。
1.3 D-PHY 电气特性与数据通道
D-PHY 是 DSI-1 标准使用的物理层,采用 源同步差分信号 传输,包含 1 条时钟通道(Clock Lane)和 1~4 条数据通道(Data Lanes)。
1.3.1 电气特性
| 参数 | 高速模式(HS) | 低功耗模式(LP) |
|---|---|---|
| 信号类型 | 差分(Dp/Dn) | 单端(Dp 或 Dn) |
| 电压摆幅 | 200 mV(典型) | 1.2 V(典型) |
| 数据传输速率 | 80 Mbps ~ 4.5 Gbps / Lane | ≤ 10 Mbps |
| 功耗 | 高(每 Lane 约 5~20 mW) | 极低(约 0.5 mW) |
| 应用场景 | 像素数据传输 | 命令、初始化、总线控制 |
1.3.2 数据通道与时钟通道
时钟通道提供差分时钟信号(Dp/Dn),数据通道在时钟的上升沿和下降沿各采样一次数据(DDR 采样)。数据通道数量直接影响总带宽:
1.3.3 数据通道带宽计算
以 4 通道 D-PHY、1 GHz 时钟频率为例:
总带宽 = 1 GHz × 2 (DDR) × 4 (Lanes) × 8 bit = 64 Gbit/s = 8 GB/s
有效像素带宽(考虑 20% 协议开销)≈ 6.4 GB/s
可支持分辨率:3840×2160 @ 120 Hz × 24 bpp ≈ 23.9 Gbit/s → 远低于 64 Gbit/s,带宽充裕
struct mipi_dsi_device 描述设备,通过 mipi_dsi_transfer() 发送数据包。物理层配置由 phy_configure() 和 phy_power_on() 控制。性能调优时需关注时钟频率、通道数、LP/HS 切换延迟三个关键参数。
1.3.4 LP 与 HS 模式切换
D-PHY 支持在 LP 和 HS 模式之间动态切换,切换过程由链路层控制,遵循特定的时序序列:
- LP→HS 切换: 先进入 LP-11(高阻态),然后 Dp 拉低(LP-00),等待 TLPX(约 50 ns),再进入 HS-0 状态,最后开始 HS 数据传输。
- HS→LP 切换: 发送 HS 结束序列(Trailer),Dp/Dn 回到 LP-11 状态。
切换延迟(TLPX + THS-PREPARE + THS-TRAIL)通常在 100~300 ns 之间,频繁切换会降低有效带宽。
dsi-lp-clock-frequency 和 dsi-hs-clock-frequency 分别配置 LP 和 HS 时钟,避免使用默认值。