2. 嵌入式显示接口:RGB、LVDS、MIPI DSI、eDP 对比与选型
在嵌入式 LCD 驱动开发中,显示接口的选择直接决定了硬件设计复杂度、信号完整性、传输距离、分辨率上限以及功耗表现。本章深入剖析四种主流嵌入式显示接口——RGB 并行接口、LVDS 接口、MIPI DSI 接口和eDP 接口,从电气特性、协议架构、适用场景和选型维度进行系统性对比。
学习提示: 接口选型是硬件与驱动开发的交汇点。理解每种接口的物理层差异,有助于后续 Framebuffer 驱动中正确配置时序参数和初始化序列。
2.1 RGB 并行接口
RGB 接口是最经典的嵌入式显示接口,直接传输并行像素数据(R、G、B 各 8 位或 6 位)以及行同步(HSYNC)、场同步(VSYNC)、数据使能(DE)和像素时钟(PCLK)。
- 信号线数量: 24 位 RGB 需要约 28 根信号线(24 数据 + 3 同步 + 1 时钟 + 可选 DCLK)。
- 传输方式: 并行同步传输,每个时钟周期传输一个像素。
- 优点: 时序简单,无协议开销,延迟极低,适合小尺寸低分辨率屏。
- 缺点: 信号线多,高频时 EMI 严重,传输距离短(通常 < 10 cm),分辨率上限约 800×480。
驱动开发要点: RGB 接口驱动通常只需在设备树中配置时序参数(pixelclk-active、hsync-len、vsync-len 等),无需协议解析。Framebuffer 直接映射到 RGB 控制器的 FIFO。
2.2 LVDS 接口
LVDS(Low-Voltage Differential Signaling)通过差分对传输串行化的 RGB 数据,显著减少信号线数量并提高抗干扰能力。广泛用于 7~15.6 寸工业屏和车载屏。
- 信号线数量: 4 对数据差分线 + 1 对时钟差分线 = 10 根线(单链路)。
- 传输方式: 串行差分,每对线传输 7 位数据(7:1 串行化)。
- 优点: 线束少,传输距离可达 5~10 米,EMI 低,支持 1080p 分辨率。
- 缺点: 需要串行/解串器(SerDes),协议固定,不支持双向通信。
选型注意: LVDS 是单向传输,不支持触控回传。若需触控功能,需额外使用 I²C 或 USB 通道。驱动开发时需在设备树中配置 LVDS 编码格式(JEIDA 或 VESA)。
2.3 MIPI DSI 接口
MIPI DSI(Display Serial Interface)是移动设备领域的事实标准,采用高速差分串行总线,支持双向通信和多种数据包类型。当前主流嵌入式 SoC 均集成 MIPI DSI 控制器。
- 信号线数量: 1~4 对数据差分线 + 1 对时钟差分线 = 4~10 根线。
- 传输方式: 高速模式(HS)传输像素数据,低功耗模式(LP)传输命令。
- 优点: 线束极少,支持命令模式和视频模式,支持双向通信(BTA),分辨率可达 4K。
- 缺点: 协议复杂,需要 D-PHY 物理层,调试难度较高。
驱动开发要点: MIPI DSI 驱动需要实现 D-PHY 初始化、Lane 配置、视频模式时序设置以及 DCS 命令发送。Framebuffer 数据通过 DSI 控制器打包为像素流发送。
2.4 eDP 接口
eDP(Embedded DisplayPort)是 DisplayPort 标准的嵌入式版本,专为笔记本和平板设计,支持高分辨率、高刷新率以及自适应同步(VRR)。
- 信号线数量: 1~4 对 Main Link 差分线 + 1 对 AUX 差分线 + HPD 热插拔检测。
- 传输方式: 微分组(Micro-Packet)架构,AUX 通道用于链路训练和 EDID 读取。
- 优点: 支持 4K@120Hz、HDR、自适应同步,线束少,支持长距离。
- 缺点: 协议复杂,需要链路训练,功耗略高于 MIPI DSI。
驱动开发要点: eDP 驱动需要实现链路训练(Link Training)、AUX 事务处理、EDID 解析以及 PSR 控制。Framebuffer 驱动需配合 eDP 控制器的帧缓冲管理。
2.5 四种接口综合对比
| 对比维度 | RGB 并行 | LVDS | MIPI DSI | eDP |
|---|---|---|---|---|
| 信号线数量 | 28+ 根 | 10 根 (单链路) | 4~10 根 | 6~12 根 |
| 传输方式 | 并行同步 | 串行差分 | 串行差分 (D-PHY) | 微分组 (Main Link) |
| 最大分辨率 | 800×480 | 1920×1080 | 3840×2160 | 7680×4320 |
| 传输距离 | < 10 cm | 5~10 m | 30~50 cm | 1~3 m |
| 双向通信 | 不支持 | 不支持 | 支持 (BTA) | 支持 (AUX) |
| 协议复杂度 | 极低 | 低 | 中 | 高 |
| 功耗 | 中 | 低 | 极低 | 中 |
| 典型应用 | 小尺寸工控屏 | 工业屏、车载屏 | 手机、平板、嵌入式 | 笔记本、高端平板 |
2.6 选型决策流程
实际项目中的接口选型需综合考虑分辨率、传输距离、功耗、成本和驱动开发资源。以下决策流程可帮助快速定位合适接口:
- 分辨率评估: 若分辨率 ≤ 800×480,优先考虑 RGB 接口(成本最低,驱动最简单)。
- 传输距离: 若面板与主板距离 > 10 cm,排除 RGB,选择 LVDS 或 eDP。
- 功耗敏感度: 电池供电设备优先 MIPI DSI(功耗最低,协议成熟)。
- 刷新率与 HDR: 需要 120Hz 以上或 HDR 时,eDP 是唯一选择。
- 驱动开发资源: 团队经验偏向 MIPI DSI 还是 eDP?DSI 在嵌入式 Linux 中支持更广泛。
选型陷阱提醒: 不要仅根据 SoC 支持接口做决定。部分 SoC 的 RGB 接口实际最高仅支持 720p,强行驱动 1080p 面板会导致时序不稳定。务必查阅 SoC 数据手册的显示控制器规格。
2.7 驱动开发视角的接口差异
从驱动开发角度看,四种接口在设备树配置、初始化序列和帧缓冲管理上存在显著差异:
| 驱动层面 | RGB | LVDS | MIPI DSI | eDP |
|---|---|---|---|---|
| 设备树绑定 | simple-panel | panel-lvds | panel-mipi-dsi | panel-edp |
| 时序配置 | display-timings | display-timings | display-timings + DSI 时钟 | EDID 解析 |
| 初始化命令 | 无 | 无 | DCS 命令序列 | AUX 写命令 |
| 帧缓冲映射 | 直接映射 | 直接映射 | DSI 控制器打包 | Main Link 分组 |
| 调试难度 | 低 | 低 | 中 | 高 |
驱动开发建议: 对于初次接触显示驱动的开发者,建议从 RGB 接口入手,理解时序参数和 Framebuffer 映射关系后,再过渡到 MIPI DSI 或 eDP。LVDS 驱动与 RGB 驱动结构相似,但需额外配置串行化格式。