1. MIPI DSI 协议基础:从物理层到应用层
做嵌入式显示驱动,绕不开 MIPI DSI。说实话,我第一次接触 DSI 时也被那一堆分层、模式、时序搞得头大。但后来我发现,只要把它的骨架理清楚,剩下的就是填肉。今天我们就从最底层开始,把 DSI 的协议基础掰开揉碎。
1.1 MIPI 联盟与 DSI 协议概述
MIPI 联盟,全称 Mobile Industry Processor Interface Alliance。说白了,就是一群手机芯片公司凑在一起,想把内部接口标准化。我当年做第一款平板驱动时,用的还是并口 RGB 屏,排线粗、干扰大、速率上不去。后来换成 DSI,一根差分线就能搞定高清显示,真是天壤之别。
DSI(Display Serial Interface)是 MIPI 联盟定义的串行显示接口标准。它基于 MIPI 的物理层规范 D-PHY,专门用来在主机(应用处理器)和显示设备(LCD/OLED 面板)之间传输图像数据和控制命令。
核心特点:
- 串行差分传输,抗干扰能力强
- 支持多数据通道(1/2/3/4 Lane),可扩展带宽
- 低功耗模式(LP)与高速模式(HS)动态切换
- 同时支持命令模式和视频模式
1.2 DSI 物理层与分层架构
DSI 协议栈分为四层,从上到下依次是:应用层、协议层、物理层。嗯,其实严格来说是三层,但很多人把 Lane Management 也算作一层。我个人习惯画成四层,这样更容易理解数据是怎么从 CPU 跑到屏幕上的。
你想想看,每一层各司其职。应用层只管把像素数据扔下去,物理层只管把 0 和 1 变成差分电压。中间两层负责打包、校验、分发。这种分层设计最大的好处是——换物理层不用改上层代码。我记得有次项目从 D-PHY 换到 C-PHY,协议层代码几乎没动。
1.3 DSI 数据传输模式:HS 与 LP
DSI 有两种数据传输模式:高速模式(HS)和低功耗模式(LP)。这是 DSI 最巧妙的设计之一。
| 特性 | 高速模式(HS) | 低功耗模式(LP) |
|---|---|---|
| 信号电平 | 差分(200mV 摆幅) | 单端(1.2V CMOS) |
| 传输速率 | 80 Mbps ~ 4.5 Gbps / Lane | ~10 Mbps |
| 功耗 | 高(约 2-5 mW / Lane) | 极低(约 0.1 mW) |
| 用途 | 传输图像像素数据 | 传输控制命令、配置寄存器 |
| 总线状态 | HS-Idle / HS-Data | LP-00 / LP-01 / LP-10 / LP-11 |
我的经验:调试时最常踩的坑就是 HS/LP 切换时序。DSI 规范要求从 LP 切换到 HS 必须先进入 LP-11 状态,再经过一段 T_HS_PREPARE 时间。我曾经因为 D-PHY 的 T_HS_PREPARE 配置少了 50ns,导致屏幕上半部分花屏。查了两天才定位到问题,后来我习惯在驱动里把切换时序参数留出 20% 的余量。
为什么会这样设计?很简单——显示一帧图像的数据量巨大,必须用高速传输;但配置屏幕寄存器只需要几十个字节,用高速模式反而浪费功耗。所以 DSI 的做法是:传图像时切 HS,发命令时切 LP。两者动态切换,互不干扰。
1.4 DSI 命令模式与视频模式
DSI 支持两种工作模式:命令模式(Command Mode)和视频模式(Video Mode)。这是 DSI 协议里最容易混淆的概念,我当年也花了很长时间才搞明白。
命令模式
命令模式下,主机通过 DSI 总线向显示模块发送命令和数据包。显示模块内部有帧缓冲(Frame Buffer),主机只需要把图像数据写到帧缓冲里,剩下的刷新工作由显示模块自己完成。
- 优点:主机不需要持续刷新,省带宽、省功耗
- 缺点:显示模块需要自带 RAM,成本高
- 典型应用:智能手表、手机副屏、低功耗 IoT 设备
命令模式数据流:
主机 → DSI 命令(写寄存器/写帧缓冲) → 显示模块(内部刷新) → 面板
视频模式
视频模式下,显示模块没有帧缓冲,或者帧缓冲很小。主机必须实时、连续地通过 DSI 总线发送像素数据。显示模块收到一行就刷新一行,收到一帧就刷新一帧。
- 优点:显示模块不需要 RAM,成本低
- 缺点:主机必须持续发送数据,带宽占用高
- 典型应用:平板电脑、车载显示屏、工业 HMI
视频模式数据流:
主机 → DSI 视频流(HS 连续传输) → 显示模块(实时刷新) → 面板
| 对比项 | 命令模式 | 视频模式 |
|---|---|---|
| 帧缓冲 | 显示模块内部有 | 显示模块无(或很小) |
| 主机负载 | 低(仅需发送命令) | 高(需持续发送像素) |
| 功耗 | 低(可进入休眠) | 高(必须持续工作) |
| 刷新率控制 | 由显示模块内部定时器控制 | 由主机发送时序控制 |
| 典型场景 | 低功耗、小尺寸屏 | 大尺寸、高刷新率屏 |
避坑指南:我曾经在一个项目中,选了一款只支持命令模式的 OLED 屏,但主控的 DSI 控制器只实现了视频模式。结果就是——屏幕点不亮。后来只能换屏。所以选型时一定要确认主控 DSI 控制器支持哪种模式,或者是否支持模式切换。
1.5 本章小结
DSI 协议基础就这些。记住几个关键点:
- 四层架构:应用层 → 协议层 → Lane 管理 → 物理层
- 两种传输模式:HS 传数据、LP 传命令
- 两种工作模式:命令模式(带缓冲)和视频模式(实时刷新)