2. 显示硬件选型:常见显示屏类型与接口协议
做嵌入式显示系统,第一步就是选屏。这步要是选错了,后面全白搭。我见过不少项目,软件写得飞起,结果屏幕刷新跟不上,或者颜色显示不对,最后只能推倒重来。今天咱们就聊聊显示屏选型那些事。
2.1 三种主流显示屏,你该选哪个?
目前嵌入式领域最常见的就三种:TFT-LCD、OLED 和 e-Paper。它们各有各的脾气。
TFT-LCD:最通用的选择
TFT-LCD 说白了就是液晶屏加背光。它成熟、便宜、色彩好。我个人习惯,只要项目对功耗没变态要求,首选就是它。
- 优点:色彩还原好,亮度高,价格便宜,尺寸选择多
- 缺点:需要背光,所以功耗下不来;视角不如 OLED
- 适用场景:智能家居面板、工业控制、车载仪表
OLED:色彩党首选
OLED 每个像素自己发光,不需要背光。黑色就是纯黑,对比度极高。色彩饱和度也漂亮。
- 优点:对比度极高,色彩鲜艳,响应速度快,可做柔性屏
- 缺点:有烧屏风险,寿命不如 LCD,价格贵
- 适用场景:高端消费电子、可穿戴设备
e-Paper:省电之王
e-Paper 也叫电子纸。它显示内容后不需要电力维持,只有刷新时才耗电。说白了,它像纸一样。
- 优点:超低功耗,阳光下可读,护眼
- 缺点:刷新慢(秒级),不支持彩色或彩色效果差,不支持动态视频
- 适用场景:电子书、标签、公交站牌
嗯,这里要注意:e-Paper 的刷新速度是硬伤。你想想看,做个菜单切换动画?别想了。
2.2 接口协议:怎么把数据送过去?
选好屏之后,得考虑怎么跟它通信。常见的接口有 SPI、RGB 和 MIPI DSI。选哪个,取决于你的屏有多大、刷新率要多高。
SPI 接口:小屏标配
SPI 是串行接口,线少,简单。适合 3.5 寸以下的小屏。
| 参数 | 说明 |
|---|---|
| 引脚数 | 4 线(SCLK、MOSI、MISO、CS) |
| 速度 | 一般 10-40MHz |
| 适合尺寸 | ≤ 3.5 寸 |
| 刷新率 | 30fps 左右(320x240) |
SPI 的优点是简单,随便一个 MCU 都能驱动。缺点是速度慢。分辨率一高,刷新率就掉得厉害。
RGB 接口:中尺寸的黄金选择
RGB 是并行接口,数据线多,速度快。适合 3.5 到 7 寸的屏。
典型的 RGB 接口有 16 位或 18 位数据线,加上行同步、场同步、时钟等控制线。说白了,它直接把像素数据并行送过去,效率很高。
// RGB 接口初始化示例(伪代码)
void RGB_Init(void) {
// 设置 GPIO 为 RGB 功能
GPIO_Config(R0_R7, GPIO_MODE_AF);
GPIO_Config(G0_G7, GPIO_MODE_AF);
GPIO_Config(B0_B7, GPIO_MODE_AF);
// 配置时序参数
LTDC_InitStruct.HSync = 40; // 行同步脉冲宽度
LTDC_InitStruct.VSync = 10; // 场同步脉冲宽度
LTDC_InitStruct.HBP = 20; // 行后肩
LTDC_InitStruct.VBP = 5; // 场后肩
// 启动 LTDC
HAL_LTDC_Init(<DC_InitStruct);
}
RGB 接口需要 MCU 有专门的 LCD 控制器(比如 STM32 的 LTDC)。没有的话,就得用外部驱动芯片。
MIPI DSI:高性能之选
MIPI DSI 是差分串行接口,速度极快。适合 7 寸以上、高分辨率、高刷新率的屏。
- 特点:差分信号,抗干扰强;可多通道并行(1-4 lane)
- 速度:单 lane 可达 1Gbps 以上
- 适合:平板、车载大屏、高端 HMI
MIPI DSI 的缺点是复杂。需要 MCU 或 MPU 有专门的 DSI 控制器,调试起来也比较麻烦。我刚开始接触 MIPI 时,光调时序就花了两周。
2.3 分辨率与色彩深度:别盲目追求高参数
很多新手一上来就想要 1080p、24 位真彩色。其实没必要。选分辨率要考虑三个因素:
- 人眼距离:手持设备 300 PPI 就够,车载屏 150 PPI 就很好
- MCU 性能:分辨率越高,需要的显存越大,刷新压力也越大
- 成本:高分辨率屏贵,驱动芯片也贵
色彩深度方面,常见的有:
| 色彩深度 | 颜色数 | 适用场景 |
|---|---|---|
| 16 位(RGB565) | 65536 | 大多数嵌入式场景,性价比高 |
| 18 位(RGB666) | 262144 | 对色彩要求稍高的场景 |
| 24 位(RGB888) | 1677万 | 高端应用,需要大显存 |
2.4 选型流程总结
说了这么多,到底怎么选?我一般按这个流程走:
- 先定尺寸:根据产品外壳和视距确定屏幕尺寸
- 再定分辨率:够用就好,别贪高
- 选接口:小屏用 SPI,中屏用 RGB,大屏用 MIPI
- 定色彩深度:默认 RGB565,有特殊需求再升级
- 考虑功耗:电池供电优先考虑 e-Paper 或 OLED
嗯,这套流程我用了好多年,基本没出过问题。你想想看,选型其实就是在性能、成本、功耗之间找平衡。没有最好的屏,只有最合适的屏。