篇4:显示世界的“多国语言”——主流LCD接口全解析

你拿到一块新屏幕,规格书上写着“支持RGB接口”或“MIPI DSI”。你打开FPGA工程,却不知道该怎么把像素数据送过去。
接口就像显示世界的语言——屏幕只懂某一种方言,你说错了,它就“沉默”或“乱码”。这一篇,我们把主流的LCD接口挨个解剖,从最古老的MCU接口到高速串行MIPI,看完你就能根据项目需求快速选型,也能理解为什么高分辨率必须用LVDS或MIPI。


一、接口分层:从CPU到像素的“翻译官”

在深入具体接口之前,先建立分层认知。从应用处理器(AP)或FPGA到LCD屏幕,数据要经过三层“翻译”:

层级作用典型实现
应用层生成图像数据(RGB值)帧缓冲、GPU渲染
传输层把数据从主机送到屏端并行总线、串行差分对
物理层电气信号定义TTL电平、LVDS、CML

不同接口的差异主要在传输层和物理层。而屏幕内部的时序控制器(TCON)会把这些统一转换成屏内信号(miniLVDS或RSDS)去驱动源极IC。

一个核心概念 :无论接口多复杂,最终送到源极驱动的是 一行像素的模拟电压 。接口只负责把数字RGB数据“搬运”到屏上,并附上同步信息(什么时候开始一行、什么时候开始一帧)。


二、MCU接口:小尺寸的“慢生活”

2.1 起源与典型应用

MCU接口诞生于单片机时代,也叫 MPU接口 。最著名的是Intel 8080总线和 Motorola 6800总线 (后者现已少见)。常见于低分辨率、小尺寸屏幕(如128×64、320×240),以及需要局部刷新的场景(电子纸、段式屏)。

2.2 信号与时序

以8080接口为例,典型信号线:

  • D[7:0]或D[15:0] :8位或16位数据总线
  • WR(写使能) :高电平有效(或上升沿),表示写入数据
  • RD(读使能) :一般用于读取GRAM状态,写操作时固定为高
  • RS(寄存器选择) :0表示命令,1表示数据
  • CS(片选) :低电平有效
  • RESET :硬件复位

时序过程 :

  1. CPU先通过RS=0 + 数据 = 命令(如设置列地址、页地址)
  2. 然后RS=1 + 数据 = 实际RGB值
  3. WR脉冲将数据锁存进屏幕内部的GRAM(显存)

关键特点 :屏幕自带GRAM(Graphic RAM) ,CPU只需把数据写入GRAM,TCON会自动从GRAM读取并刷新屏幕。因此刷新率由TCON内部定时器决定,与写入速度无关。

2.3 优缺点

优点缺点
无需同步信号(HSYNC/VSYNC),时序简单数据带宽低(8位/16位,时钟通常<10MHz)
支持局部刷新,省电分辨率受限(一般≤480×320)
控制器集成度高,MCU可直接驱动需要GRAM,增加了屏幕成本和延迟

工程提示 :MCU接口的“写GRAM”速度决定了最大帧率。假设一个320×240、16位色深的屏幕,每帧数据量 = 320×240×2 = 153600字节。如果用8位接口、10MHz写时钟(忽略命令开销),理论最大帧率 = 10MHz / (153600×8) ≈ 8.1帧/秒——实际更低。所以MCU接口不适合视频播放。


三、RGB接口:视频流的“同步舞者”

3.1 从“写显存”到“实时刷屏”

RGB接口(也叫 DPI接口 ,Display Pixel Interface)去掉了屏幕内部的GRAM。像素数据实时地从主机流向屏幕,主机必须保证数据速率与屏幕刷新率完全匹配。

典型应用 :中低分辨率(≤1024×600)、无本地帧缓冲的嵌入式系统,如很多4.3寸、7寸工业屏。

3.2 信号定义

RGB接口通常需要以下信号:

信号方向作用
PCLK (像素时钟)主机→屏每个时钟沿传输一个像素
HSYNC (行同步)主机→屏指示一行开始
VSYNC (场同步)主机→屏指示一帧开始
DE (数据使能)主机→屏高电平时数据有效
R[7:0]、G[7:0]、B[7:0]主机→屏并行RGB数据(共24位)

工程区分 :有的规格书只提供HSYNC、VSYNC,没有DE;有的只提供DE,没有HSYNC/VSYNC。两种模式都符合RGB接口规范。

3.3 两种同步模式

模式一:DE模式(推荐)

DE信号高电平时,PCLK每个上升沿采样一个像素数据。HSYNC和VSYNC可以省略(或仅在消隐期产生脉冲)。

时序参数:

  • 一行总像素数 = H_total = 有效像素 + HFP(前沿) + HBP(后沿) + HSYNC宽度
  • 一帧总行数 = V_total = 有效行 + VFP + VBP + VSYNC宽度

模式二:HV模式(使用HSYNC/VSYNC)

HSYNC脉冲表示一行结束,其后的HBP期间无有效数据,然后DE变高开始传输有效像素。VSYNC类似。

3.4 时序计算实例

一块800×480的屏,规格书给出:

  • H_total = 1056(有效800 + HFP 40 + HBP 216 + HSYNC ? 实际组合不同)
  • V_total = 525(有效480 + VFP 10 + VBP 23 + VSYNC 12)
  • 目标刷新率 = 60Hz

则 PCLK = 1056 × 525 × 60 ≈ 33.26 MHz。

踩坑预警 :很多国产屏规格书给出的H_total/V_total与实际有效值存在偏差,或者使用“总像素”直接给出。FPGA实现时,必须严格按照规格书的时序表来配置计数器,否则会出现显示偏移或花屏。

3.5 优缺点

优点缺点
无需屏幕GRAM,降低成本需要精确的时钟和同步,对主机要求高
适合视频流,无额外延迟并行数据线多(24根),PCB布线困难
成熟稳定,广泛支持高分辨率时PCLK过高(如1080p@60需要~150MHz),信号完整性差

四、LVDS接口:高速传输的“差分先锋”

4.1 为什么要用LVDS?

当分辨率提升到800×480以上,并行RGB接口的缺点暴露:

  • PCLK频率高(>50MHz),多根数据线同时跳变产生强烈EMI
  • 长距离传输时(如电视屏线长50cm),并行信号易串扰
  • 功耗高(CMOS电平满摆幅)

LVDS(Low Voltage Differential Signaling) 把并行数据串行化成1~4对差分数据线 + 1对差分时钟线,每对线传输几百Mbps。低压摆幅(350mV)和差分特性使其抗干扰能力强、EMI低。

4.2 映射规则:如何把24位RGB变成4对差分对

典型的LVDS接口(4 data + 1 clock)将每7位并行数据串行化为1位串行数据,称为 7:1串行化 。常见的映射(以TI DS90CF384为例):

  • 每个像素时钟周期内,4条数据线同时串行输出7位(共28位)
  • 这28位包含:RGB 18/24位数据 + 3位同步信号(HSYNC, VSYNC, DE) + 可选的控制位

标准映射表(24位色,4通道) :

通道位分配(每周期7位)
CH0R0, R1, R2, R3, R4, R5, G0
CH1G1, G2, G3, G4, G5, B0, B1
CH2B2, B3, B4, B5, DE, VSYNC, HSYNC
CH3R6, R7, G6, G7, B6, B7, 保留

工程解释 :为什么是7:1?因为LVDS的串行化因子可以配置(5:1/7:1/10:1),7:1是平衡了线数和PCLK频率的常用值。PCLK仍然存在,但频率降低为原来的1/7(对24位色,原来并行PCLK若为50MHz,LVDS串行时钟为350MHz,但差分线对数少)。

4.3 电气特性

  • 差分摆幅 :250~450mV(典型350mV)
  • 共模电压 :1.2V
  • 终端电阻 :100Ω(接收端并接)
  • 传输距离 :最长可达10米(但LCD屏内通常<30cm)

4.4 在FPGA中如何产生LVDS信号

Xilinx FPGA的OBUFDS原语可以直接输出差分对。例如:

verilog

OBUFDS #(.IOSTANDARD("LVDS_25")) obufds_inst (
    .O(LVDS_P),   // 正极输出
    .OB(LVDS_N),  // 负极输出
    .I(serial_data) // 串行数据(来自OSERDES)
);

但完整的LVDS发送器需要 OSERDES (并行转串行) + PLL (生成高速时钟)。这部分将在系列第11篇详细展开。


五、MIPI DSI:移动设备的“绝对主流”

5.1 为什么手机屏几乎都用MIPI DSI?

MIPI DSI(Display Serial Interface)是专为移动设备设计的高速串行接口。相比LVDS,它支持:

  • 更低功耗 (1.2V I/O,D-PHY的LP模式可低至0.1mW)
  • 双向通信 (可读屏的状态、触控数据)
  • 命令模式 (类似MCU接口,支持局部刷新)
  • 更高带宽 (每通道最高2.5Gbps,4通道可达10Gbps,支持4K@120)

5.2 物理层:D-PHY的两套“语言”

D-PHY定义了两种工作模式:

模式信号电压摆幅用途
HS(高速)差分(LP-N, LP-P切换为HS)200mV传输图像数据(几百Mbps到数Gbps)
LP(低功耗)单端(每根线对地)0~1.2V传输命令、时序控制、进入/退出HS

工程有趣点 :D-PHY的同一对物理线既可以工作为差分(HS模式),也可以工作为两个独立单端(LP模式)。进入HS前需要“线态转换”(LP-11→LP-01→LP-00→HS)。

5.3 协议层:包结构

MIPI DSI将所有数据封装为包(Packet) :

  • 短包 (4字节):用于命令、同步信号(如帧开始、行开始)
  • 长包 (6~65541字节):用于传输实际的像素数据

典型的一帧传输过程:

  1. LP模式发送 帧开始(SoT) 短包
  2. 每一行:发送 行开始短包 → 一行像素长包 → 行结束短包
  3. 帧结束后发送 帧结束(EoT) 包

5.4 命令模式 vs 视频模式

模式特点适用
命令模式屏幕有GRAM,主机写入局部区域,屏幕自刷新低功耗、静态画面(智能手表、电子书)
视频模式实时流式传输,屏幕无GRAM,必须连续刷新视频播放、游戏(手机主屏)

工程提示 :FPGA实现MIPI DSI发送器相当复杂(需要处理D-PHY的电气层、协议层、CRC校验、ECC等)。一般建议使用现成的MIPI DSI IP核或专用桥接芯片(如TI SN65DSI83)。如果你非要自己用FPGA实现,至少需要GT(Gigabit Transceiver)或HP I/O配合外部端接。


六、miniLVDS:屏幕内部的“秘密语言”

6.1 位置与作用

miniLVDS不是主机到屏幕的接口,而是屏幕内部TCON到源极驱动IC的接口。它负责把TCON解析好的RGB数据和时序控制信号,以极高速传输给分布在面板边缘的源极IC。

特点 :

  • 电压摆幅更低(约200mV),功耗更小
  • 串行化因子更高(如10:1),减少玻璃上的走线数量
  • 频率可达1GHz以上

6.2 与标准LVDS的区别

特性标准LVDSminiLVDS
应用位置主板→屏屏内TCON→源极IC
电压摆幅350mV200~300mV
终端电阻100Ω50~100Ω(通常集成在IC内)
串行化因子7:1(常见)10:1、14:1
通道数4~8对6~32对(取决于分辨率)

工程深度 :miniLVDS的FPGA实现是本系列的 核心亮点 (篇12)。你需要用ISERDESE2接收解串,并处理bitslip对齐。这里先埋个伏笔。


七、接口选择决策树(工程师实用工具)

当你在项目中选择LCD接口时,按以下流程快速决策:

text

是否需要低功耗/局部刷新?
    ├─ 是 → 屏幕带GRAM吗?
    │       ├─ 是 → MCU接口(小尺寸)或 MIPI DSI命令模式(大尺寸)
    │       └─ 否 → 需要自行加帧缓冲,用RGB或LVDS
    └─ 否 → 分辨率多高?
            ├─ ≤ 800×480 → RGB接口(最简单)
            ├─ 480×272 ~ 1366×768 → LVDS(抗干扰好)
            ├─ ≥ 720p且移动设备 → MIPI DSI
            └─ ≥ 1080p且工业/车载 → LVDS或MIPI DSI(取决于主控)

额外考虑 :

  • PCB空间 :RGB接口线多,占用面积大;LVDS/MIPI线少
  • 信号完整性 :高频下差分优于并行
  • 主控支持 :FPGA可以模拟任何接口,但成本不同(LVDS需要高速IO)

八、☕ 工程师私房话

规格书上的“兼容模式”陷阱

很多屏幕宣称“支持RGB和MCU接口”,但实际上是 复用引脚 。比如通过一个引脚的高低电平选择模式。你按照RGB时序送数据,屏幕没反应——检查一下IM0/IM1配置电阻是否焊对了。

如何用逻辑分析仪快速判断接口类型?

拿到一块未知屏,点不亮:

  1. 测量所有引脚对地电压。有1.2V左右的共模电压?可能是LVDS/MIPI。
  2. 有3.3V的脉冲且频率几十MHz?可能是并行RGB。
  3. 测量VSYNC频率(通常几十Hz)。如果有稳定的VSYNC且数据线有活动,说明主机在发送RGB信号。
  4. 如果数据线不活动但屏幕能亮(显示logo),说明屏有GRAM,可能是MCU或MIPI命令模式。

冷知识:为什么LVDS叫LVDS,但很多屏写“LVDS接口”其实是“OpenLDI”?

OpenLDI是National Semiconductor(现TI)提出的标准,使用LVDS物理层传输RGB数据。而真正的LVDS标准(ANSI/TIA/EIA-644)只定义了电气层,不规定数据格式。市场上“LVDS接口”屏99%都是OpenLDI映射。知道这个细节,你就能理解为什么不同厂家的LVDS屏有时候不兼容——映射表可能不同(如VESA vs JEIDA格式)。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐