1. 显示接口基础:RGB、LVDS、MIPI DSI、eDP 协议对比与选型
做嵌入式显示这么多年,我接触过各种各样的接口。说实话,每次新项目选型,最头疼的就是接口选择。你想想看,RGB、LVDS、MIPI DSI、eDP,每个都有自己的一套脾气。选对了,项目顺风顺水;选错了,后面改板子、调时序,那叫一个痛苦。
这一章,我就把这几大接口掰开揉碎了讲。咱们不搞那些虚的,直接看它们到底怎么工作,适合什么场景,以及——我踩过的那些坑。
1.1 接口的本质:像素怎么从芯片跑到屏幕?
不管什么接口,核心任务只有一个:把显存里的像素数据,按时送到屏幕的每个像素点上。说白了,就是一场「数据搬运」。
但搬运的方式差别很大。有的接口是「并排走」,一次搬一堆;有的是「排着队走」,一次只搬一个。这就决定了它们的速率、线数、距离都不一样。
核心矛盾:分辨率越高、刷新率越快,每秒要搬的数据量就越大。接口选型,本质上就是在「带宽够不够」和「成本高不高」之间找平衡。
我个人习惯,先看一张总览图,把几个接口的定位搞清楚。
1.2 RGB 接口:最朴素的并行传输
RGB 接口,也叫 MCU 接口或 CPU 接口。它是最古老、最直接的方式。每个像素的 R、G、B 分量,通过各自的数据线并行传输。比如 16 位 RGB565,就是 5 位 R、6 位 G、5 位 B,一共 16 根数据线。
我记得刚入行时做的一个温控器项目,用的就是 RGB 接口。那时候觉得这接口真简单,直接把 MCU 的 FSMC 连到屏上,写数据就亮。但后来发现,线太多了!一个 24 位真彩屏,光数据线就 24 根,再加上时钟、行场同步、使能,板子上密密麻麻的。
适用场景:分辨率 480×272 以下的小屏,或者对成本极度敏感的项目。MCU 自带 RGB 接口的话,几乎零成本。
RGB 接口的致命伤是传输距离。线一长,信号就歪了。我试过用 10cm 的排线连 800×480 的屏,结果屏幕边缘出现鬼影。后来查了半天,发现是信号反射。嗯,这里要注意:RGB 接口的走线必须等长,而且尽量短。
1.3 LVDS:差分信号解决远距离
LVDS(Low-Voltage Differential Signaling)的出现,就是为了解决 RGB 接口的痛点。它把并行数据转换成串行差分信号。差分信号的好处是抗干扰强,能传更远。
一个典型的 LVDS 链路,4 对数据线加 1 对时钟线,就能驱动 1366×768 的屏。这在工业领域很常见。我做过一个工控机项目,屏和主板之间隔了 30cm 的排线,用 RGB 根本不行,换成 LVDS 后稳如老狗。
但 LVDS 也有坑。它的时钟频率和像素时钟是绑定的。比如 1024×600@60Hz 的屏,像素时钟大约 51MHz,LVDS 的时钟就是 51MHz。如果你要降频省电,就得重新算时序。我曾经因为算错 LVDS 时钟相位,导致屏幕闪烁了整整两天。
注意:LVDS 的共模电压范围是 1.2V 左右,不能直接接 3.3V 的 GPIO。必须用专用的 LVDS 收发器芯片,比如 DS90C385 或 THC63LVDM83D。
1.4 MIPI DSI:移动设备的王者
MIPI DSI 是手机、平板上最主流的显示接口。它也是差分串行,但比 LVDS 更灵活。DSI 支持多 Lane 配置,1 到 4 对数据线,每对速率可达 1Gbps 以上。而且它有两种传输模式:高速模式和低功耗模式。
高速模式用来传图像数据,低功耗模式用来传命令。这个设计很聪明——平时调亮度、刷新率,用低功耗模式就行,省电。我调试过一个 1080p 的屏,用 4 Lane DSI,每 Lane 跑 800Mbps,带宽绰绰有余。
但 DSI 的驱动比 LVDS 复杂多了。它有一套完整的协议栈,包括 D-PHY 物理层、DSI 协议层、DCS 命令集。调试时要用逻辑分析仪抓包,看 Lane 有没有对齐,看 EoT 包有没有发对。我第一次调 DSI 时,屏幕死活不亮,最后发现是 LP 模式下发的初始化序列少了一个延时。
DSI 的关键参数:
- Lane 数:1/2/3/4 Lane,带宽随 Lane 数线性增加
- 每 Lane 速率:通常 200Mbps ~ 1.5Gbps
- 工作模式:HS(高速)和 LP(低功耗)
- 协议层:支持视频模式(Burst/Non-Burst)和命令模式
1.5 eDP:笔记本的标配
eDP(Embedded DisplayPort)是 DisplayPort 的嵌入式版本,专门用于笔记本、一体机内部。它的带宽极高,支持 4K@60Hz 甚至 8K。而且 eDP 有 AUX 通道,可以用来读取屏幕的 EDID 信息,实现即插即用。
eDP 还有一个杀手锏:PSR(Panel Self Refresh)。屏幕自己带帧缓存,显卡更新完画面后可以休眠,由屏幕自己刷新。这对笔记本续航帮助很大。我记得有个项目,用 eDP 屏后,整机待机功耗降低了 15%。
但 eDP 的驱动门槛最高。它需要专门的 eDP 控制器,或者 SoC 内置 eDP 接口。而且 eDP 的链路训练(Link Training)很复杂,要协商 Lane 数、速率、电压摆幅。如果链路训练失败,屏幕就是黑的。
选型建议:如果你的项目是笔记本、高端平板、或者需要 4K 以上分辨率,直接上 eDP。别折腾其他接口了,带宽不够。
1.6 四大接口对比表
| 特性 | RGB | LVDS | MIPI DSI | eDP |
|---|---|---|---|---|
| 信号类型 | 并行单端 | 串行差分 | 串行差分 | 串行差分 |
| 典型引脚数 | 20~40 | 10~14 | 6~14 | 10~20 |
| 最大分辨率 | 800×480 | 1920×1080 | 3840×2160 | 7680×4320 |
| 传输距离 | <10cm | <50cm | <30cm | <50cm |
| 功耗 | 中 | 低 | 低 | 低(支持 PSR) |
| 驱动复杂度 | 低 | 中 | 高 | 高 |
| 典型应用 | 小尺寸屏、段码屏 | 工业屏、车载屏 | 手机、平板、摄像头 | 笔记本、高端显示器 |
1.7 选型决策流程
每次做项目,我都会按这个流程走一遍,基本不会出错:
- 先看分辨率:480×272 以下,RGB 搞定;800×480 到 1920×1080,LVDS 或 DSI 都行;4K 以上,直接 eDP。
- 再看距离:屏和主板距离超过 15cm,别用 RGB,信号会出问题。
- 然后看功耗:电池供电的项目,优先 DSI 或 eDP,它们有低功耗模式。
- 最后看成本:RGB 最便宜,LVDS 次之,DSI 和 eDP 需要专用控制器,成本高。
避坑指南:我曾经在一个项目里,为了省几块钱选了 RGB 接口的屏,结果因为走线太长导致信号质量差,最后加了电平转换芯片,反而更贵了。选型时一定要把「信号完整性」的成本算进去。
1.8 小结
显示接口选型,没有绝对的好坏,只有合不合适。RGB 简单便宜,但只适合小屏;LVDS 稳定可靠,工业首选;MIPI DSI 灵活高效,移动设备标配;eDP 性能最强,但门槛最高。