2、硬件接口基础:RGB、LVDS、MIPI DSI、eDP接口电气特性与时序对比
在LCD驱动移植工作中,硬件接口的选择直接决定了驱动架构、时钟配置、初始化序列以及物理层适配策略。Linux与RTOS环境下,虽然上层软件栈差异显著,但底层对接口电气特性与时序的解析必须完全一致。本节将系统对比四种主流LCD接口:RGB(并行)、LVDS(低压差分信号)、MIPI DSI(移动行业处理器接口显示串行接口)以及eDP(嵌入式DisplayPort),从电气特性、信号定义、时序参数和典型应用场景四个维度展开。
2.1 接口电气特性总览
下表从信号类型、电压摆幅、最大速率、传输距离和抗干扰能力五个关键维度,对四种接口进行横向对比。
| 接口类型 | 信号类型 | 电压摆幅 | 最大速率(单通道) | 典型传输距离 | 抗干扰能力 |
|---|---|---|---|---|---|
| RGB | 并行单端(TTL/CMOS) | 3.3V / 1.8V | ~150 MHz(像素时钟) | < 10 cm | 低(易受EMI干扰) |
| LVDS | 串行差分 | ±350 mV(差分) | ~1 Gbps / lane | < 5 m | 高(共模抑制) |
| MIPI DSI | 串行差分(D-PHY) | 200 mV ~ 1.2 V(差分) | ~1.5 Gbps / lane(DSI v1.2) | < 30 cm | 高(差分+低摆幅) |
| eDP | 串行差分(DisplayPort PHY) | 400 mV ~ 1.2 V(差分) | ~8.1 Gbps / lane(eDP v1.4) | < 3 m | 高(预加重+均衡) |
2.2 接口信号定义与时序结构
2.2.1 RGB接口
RGB接口是最基础的并行显示接口,通常包含以下信号组:
- 数据总线:R[7:0]、G[7:0]、B[7:0](24位真彩色),或R[5:0]、G[5:0]、B[5:0](16位)
- 同步信号:VSYNC(垂直同步)、HSYNC(水平同步)
- 数据使能:DE(Data Enable),高电平有效时传输有效像素
- 像素时钟:PCLK(Pixel Clock),上升沿或下降沿锁存数据
时序参数主要包括:HBP(水平后肩)、HFP(水平前肩)、HSW(水平同步脉宽)、VBP、VFP、VSW。驱动移植时,这些参数必须与LCD模组的数据手册严格匹配。
2.2.2 LVDS接口
LVDS接口通过串化器将RGB并行数据转换为4对或5对差分信号(Data0~Data3 + Clock)。每对差分线传输速率可达数百Mbps至1Gbps。典型的LVDS发送器(如DS90C385)将24位RGB数据和3位控制信号(VSYNC、HSYNC、DE)映射到4个数据通道中。
LVDS时序的核心在于通道映射(Pin Mapping)和时钟相位。驱动移植时,必须确认LCD模组遵循JEIDA标准还是VESA标准,两者在数据位映射上存在差异。
| 标准 | Data0 | Data1 | Data2 | Data3 |
|---|---|---|---|---|
| VESA | R0~R5 + G0 | G1~G5 + B0~B1 | B2~B5 + HSYNC + VSYNC + DE | R6~R7 + G6~G7 + B6~B7 |
| JEIDA | R2~R7 | G2~G7 | B2~B7 + HSYNC + VSYNC + DE | R0~R1 + G0~G1 + B0~B1 |
lvds-encoder 节点下的 data-mapping 属性指定标准,例如 data-mapping = "vesa-24" 或 "jeida-24"。RTOS下则需在初始化代码中手动配置串化器寄存器。
2.2.3 MIPI DSI接口
MIPI DSI基于D-PHY物理层,采用差分信号传输,支持高速模式(HS)和低功耗模式(LP)。HS模式下数据速率可达1.5 Gbps/lane,LP模式下用于控制命令传输,电压摆幅仅1.2V。
DSI协议层定义了两种传输模式:
- Command Mode(命令模式):通过DSI命令读写显示缓冲区,适用于自带帧缓冲的LCD模组。
- Video Mode(视频模式):实时传输像素流,与RGB接口时序类似,但通过DSI协议封装。
时序参数在Video Mode下包括:HSA(水平同步有效)、HBP、HFP、VSA、VBP、VFP,以及BLLP(Blank Low Power Line Period)。驱动移植时,需在初始化序列中配置DSI控制器的时序寄存器和lane数(1/2/3/4 lanes)。
panel-simple或panel-mipi-dbi驱动初始化时序;RTOS下则需手动操作DSI主机控制器寄存器,并注意LP模式下命令发送的时序间隔(T_LPX、T_HS_PREPARE等)。
2.2.4 eDP接口
eDP是DisplayPort的嵌入式版本,专为笔记本和平板设计。它采用微包架构(Micro-Packet Architecture),将像素数据打包成小数据包传输,支持链路训练(Link Training)和自适应同步(Adaptive Sync)。
eDP的电气特性包括:
- 主链路(Main Link):1/2/4 lanes,每lane速率从1.62 Gbps到8.1 Gbps(HBR3)
- 辅助通道(AUX CH):双向差分通道,用于链路训练和EDID读取
- 热插拔检测(HPD):用于检测显示器连接状态
时序方面,eDP不再使用传统的HSYNC/VSYNC,而是通过空白起始(Blank Start)和空白结束(Blank End)数据包来标记帧边界。驱动移植时,链路训练是eDP初始化的关键步骤,必须正确配置训练模式(No Training、Full Training、Fast Training)。
drm_dp_helper库支持,链路训练通过drm_dp_link_train()函数自动完成。RTOS下则需要手动实现DPCD(DisplayPort Configuration Data)寄存器读写和训练状态机。
2.3 时序参数对比与计算
下表汇总了四种接口在典型分辨率(1024×600 @60Hz)下的时序参数对比,帮助驱动开发者快速理解各接口的时钟需求。
| 参数 | RGB | LVDS | MIPI DSI | eDP |
|---|---|---|---|---|
| 像素时钟(PCLK) | ~51.2 MHz | ~51.2 MHz(串化后7倍) | ~51.2 MHz(DSI时钟约358 MHz) | ~51.2 MHz(主链路速率1.62 Gbps) |
| 水平总像素 | 1344(含消隐) | 1344 | 1344 | 1344(包化传输) |
| 垂直总行数 | 625(含消隐) | 625 | 625 | 625 |
| 帧率 | 60 Hz | 60 Hz | 60 Hz | 60 Hz |
| 数据带宽需求 | ~1.23 Gbps(24位并行) | ~1.23 Gbps(4 lanes × 358 Mbps) | ~1.23 Gbps(2 lanes × 716 Mbps) | ~1.23 Gbps(1 lane × 1.62 Gbps) |
2.4 接口选择与驱动移植策略
根据项目需求选择合适的接口,并制定对应的驱动移植策略:
- 低分辨率MCU项目(RTOS):优先使用RGB接口,直接操作FSMC或FMC总线。若需长距离传输,增加LVDS串化器。
- 中高端应用处理器(Linux):优先使用MIPI DSI,利用DRM框架的
panel和bridge驱动模型。注意DSI时钟的PLL配置和lane数匹配。 - 高分辨率/高刷新率(eDP):适用于2K/4K分辨率,需实现完整的DPCD链路训练和AUX通信。
- 跨平台移植:将时序参数(如HBP、HFP、VBP等)抽象为结构体,在Linux设备树和RTOS配置头文件中统一管理。