2. LVDS显示原理:信号传输机制、差分信号与电气特性、时序参数解析

LVDS(Low-Voltage Differential Signaling,低压差分信号)是嵌入式显示系统中应用最广泛的接口标准之一。在RK3588平台上,LVDS接口通常用于连接工控屏、医疗屏或车载显示屏。理解LVDS的物理层原理是驱动移植与调试的基础。

核心要点:LVDS的核心优势在于低电压摆幅(350mV)与差分传输,使其在高速率(数百Mbps)下仍能保持低功耗与强抗干扰能力。

2.1 LVDS信号传输机制

LVDS采用电流驱动模式,发送端由一个恒流源(通常为3.5mA)驱动一对差分线,在接收端100Ω终端电阻上产生约350mV的电压差。逻辑状态由差分电压的极性决定:

  • 逻辑“1”:P线电压 > N线电压(Vod > 0)
  • 逻辑“0”:P线电压 < N线电压(Vod < 0)

在显示应用中,LVDS将RGB数据、行场同步信号(HSYNC/VSYNC)和数据使能信号(DE)通过串行化方式在4对或5对差分线上传输。常见的映射方式为VESA和JEIDA两种标准,位序排列不同。

LVDS链路组成:
SoC(RK3588)→ LVDS发送器(内置或外置)→ 差分线对 → LVDS接收器(屏端)→ TCON(时序控制器)→ 面板
LVDS信号传输链路 RK3588 SoC LVDS发送器 差分线对(4/5对) LVDS接收器 TCON LVDS发送器将并行RGB数据串行化,通过差分线传输,接收端解串后送入TCON驱动面板

2.2 差分信号与电气特性

LVDS的差分信号设计使其在高速传输中具有优异的共模抑制能力。以下为关键电气参数:

参数 典型值 说明
差分电压摆幅 (Vod) 250 ~ 450 mV 通常为350mV,由恒流源3.5mA × 100Ω终端电阻产生
共模电压 (Vcm) 1.125 ~ 1.375 V 典型值1.2V,接收端以此作为参考
传输速率 200 ~ 800 Mbps/通道 RK3588 LVDS支持最高约1.2Gbps/通道
终端电阻 100 Ω ± 1% 跨接在差分线对接收端,必须靠近接收器引脚
传输线阻抗 50 Ω (单端) / 100 Ω (差分) PCB走线需严格控制阻抗
工程注意:LVDS差分线对必须等长布线,长度差控制在±5mm以内,否则会导致时序偏移,造成显示雪花或条纹。RK3588平台调试时,若出现画面抖动,应优先检查差分线阻抗匹配与等长情况。
LVDS差分信号波形 P线 N线 Vod ≈ 350mV Vcm ≈ 1.2V 差分信号:P线与N线相位相反,接收端通过比较两者电压差判断逻辑“0”或“1” 共模噪声在两条线上同时出现,差分相减后被抵消,因此LVDS抗干扰能力极强

2.3 时序参数解析

LVDS显示时序由像素时钟、行/场同步信号和数据使能信号共同定义。RK3588的LVDS控制器需要精确配置以下时序参数:

参数 符号 说明 典型值(1024×600@60Hz)
像素时钟 PCLK 每个像素的传输时钟周期 51.2 MHz
行同步脉冲宽度 HSPW 行同步信号低电平持续时间 20 PCLK
行同步后肩 HBP 行同步结束后到有效数据开始 160 PCLK
行有效数据 HACT 一行中有效像素数 1024 PCLK
行同步前肩 HFP 有效数据结束到下一个行同步开始 20 PCLK
场同步脉冲宽度 VSPW 场同步信号低电平持续时间 3 行
场同步后肩 VBP 场同步结束后到有效数据开始 23 行
场有效数据 VACT 一帧中有效行数 600 行
场同步前肩 VFP 有效数据结束到下场同步开始 10 行
时序计算公式:
帧率 = PCLK / [(HSPW + HBP + HACT + HFP) × (VSPW + VBP + VACT + VFP)]
例如:51.2MHz / [(20+160+1024+20) × (3+23+600+10)] ≈ 60Hz
LVDS行场时序参数 行时序 (Horizontal Timing) HSPW HBP HACT (有效像素数据) HFP HSPW 场时序 (Vertical Timing) VSPW VBP VACT (有效行数据) VFP VSPW 时序参数在RK3588设备树中通过 display-timings 节点配置,需与面板数据手册严格一致 常见错误:HBP/HFP配置过小导致画面左/右偏移;VBP/VFP配置错误导致画面上下偏移或滚动

2.4 LVDS数据映射:VESA vs JEIDA

LVDS传输RGB数据时,不同标准对数据位的映射方式不同。RK3588的LVDS控制器支持两种模式切换,需根据面板规格选择:

标准 通道0 通道1 通道2 通道3 适用场景
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映射模式是否与面板匹配。RK3588可通过修改设备树中 rockchip,output-mode 或 lvds-format 属性来切换VESA/JEIDA。

2.5 RK3588 LVDS控制器关键寄存器

在驱动移植过程中,需要操作以下关键寄存器组:

// RK3588 LVDS控制器寄存器映射(部分)
// 基地址:0xFE060000 (VOP LVDS)
#define LVDS_CTRL           0x00    // 控制寄存器:使能、复位
#define LVDS_CFG            0x04    // 配置寄存器:数据映射、通道数
#define LVDS_TIMING_CTRL    0x08    // 时序控制寄存器
#define LVDS_CLK_CTRL       0x0C    // 时钟分频与相位控制
#define LVDS_STATUS         0x10    // 状态寄存器:锁定状态、错误标志

// 典型初始化流程(伪代码)
void lvds_init(struct lvds_device *lvds) {
    // 1. 软件复位
    writel(0x01, lvds->base + LVDS_CTRL);
    udelay(10);
    writel(0x00, lvds->base + LVDS_CTRL);
    
    // 2. 配置数据映射(VESA模式)
    writel(0x00, lvds->base + LVDS_CFG);
    
    // 3. 设置通道数(4通道)
    writel(0x03, lvds->base + LVDS_CFG);
    
    // 4. 配置时钟相位(根据PCB走线延迟调整)
    writel(0x02, lvds->base + LVDS_CLK_CTRL);
    
    // 5. 使能LVDS输出
    writel(0x80, lvds->base + LVDS_CTRL);
}
关键调试点:在RK3588平台上,LVDS时钟相位(CLK_CTRL)是常见问题点。如果画面出现垂直条纹或数据错位,尝试调整时钟相位值(0~3),每次修改后观察画面变化。