2. TFT LCD 显示原理:像素、分辨率、色彩深度、帧率、同步信号
TFT LCD 显示屏的驱动移植,本质上是让单片机按照严格的时序规则,将图像数据逐像素、逐行、逐帧地发送到显示面板。理解显示原理是驱动开发的第一步。本章将拆解构成显示画面的五个核心概念:像素、分辨率、色彩深度、帧率以及同步信号(VSYNC/HSYNC/DE)。
2.1 像素与分辨率
像素(Pixel) 是显示画面的最小物理单元。每个像素由红(R)、绿(G)、蓝(B)三个子像素组成,通过控制三个子像素的亮度来混合出各种颜色。
分辨率 表示显示屏在水平和垂直方向上拥有的像素数量,通常写作 宽度 × 高度。例如,1024 × 600 表示水平方向有 1024 个像素,垂直方向有 600 行像素。
| 分辨率规格 | 水平像素(H) | 垂直像素(V) | 常见应用 |
|---|---|---|---|
| QVGA | 320 | 240 | 小尺寸工控屏、入门级彩屏 |
| WVGA | 800 | 480 | 7寸以下便携设备、车载后装 |
| WXGA | 1280 | 800 | 10寸左右平板、工业HMI |
| HD | 1920 | 1080 | 高端嵌入式、医疗显示 |
驱动提示: 在 LVDS 驱动移植中,分辨率决定了 有效显示区域(Active Area) 的时序参数。水平有效像素(H_Active)和垂直有效行数(V_Active)是初始化时序寄存器时必须填入的核心值。
2.2 色彩深度
色彩深度(Color Depth) 表示每个像素用多少位(bit)数据来描述颜色。位数越多,可显示的颜色数量呈指数级增长,画面过渡越细腻。
- RGB565(16位):R占5位,G占6位,B占5位。共
2^16 = 65536色。这是单片机驱动中最常用的格式,占用带宽小,处理速度快。 - RGB666(18位):R/G/B各占6位。共
2^18 = 262144色。部分LVDS屏支持,色彩过渡优于RGB565。 - RGB888(24位):R/G/B各占8位。共
2^24 = 1670万色。真彩色,但需要更高的数据传输带宽,对单片机DMA和时钟频率要求较高。
| 色彩格式 | 总位数 | 颜色总数 | LVDS数据通道数 | 典型场景 |
|---|---|---|---|---|
| RGB565 | 16 | 65K | 4通道(3数据+1时钟) | 低成本单片机、UI简单 |
| RGB666 | 18 | 262K | 4通道 | 中端工控、图标显示 |
| RGB888 | 24 | 16.7M | 4通道或8通道 | 高清图片、视频播放 |
2.3 帧率
帧率(Frame Rate) 指显示屏每秒刷新画面的次数,单位是 Hz(赫兹)或 fps(帧每秒)。
- 常见帧率:嵌入式 LCD 通常工作在 60Hz,即每秒刷新 60 帧画面。部分高刷屏可达 75Hz 或 120Hz。
- 帧率与像素时钟的关系:帧率由像素时钟(PCLK)和总像素数(包括消隐区)共同决定。公式如下:
帧率 (Hz) = 像素时钟频率 (Hz) / (水平总像素 × 垂直总行数)
移植风险点: 如果单片机生成的像素时钟频率与屏体要求的帧率不匹配,会导致画面闪烁、撕裂(Tearing)或显示偏移。务必使用示波器或逻辑分析仪测量 PCLK 的实际频率。
2.4 同步信号:VSYNC、HSYNC、DE
为了让显示屏正确识别每一帧的开始、每一行的开始以及有效数据的位置,需要三个同步信号来协调数据传输。这是 LVDS 驱动移植中最关键的时序部分。
- VSYNC(垂直同步信号):表示一帧画面的开始。低电平有效(或高电平有效,取决于屏体规格)。
- HSYNC(水平同步信号):表示一行像素数据的开始。每传输完一行,HSYNC 会触发一次脉冲。
- DE(数据使能信号):高电平时表示当前传输的数据是有效像素数据;低电平时表示处于消隐区(Blanking),数据无效。
下图展示了 VSYNC、HSYNC 与有效数据之间的关系:
2.5 时序参数详解
在 LVDS 屏的 datasheet 中,除了分辨率,还会给出以下时序参数。驱动移植时需要将这些参数填入单片机的 LCD 控制器寄存器中。
| 参数缩写 | 全称 | 说明 |
|---|---|---|
| H_Active | 水平有效像素 | 一行中实际显示的像素数,等于分辨率宽度 |
| H_FP | 水平前沿(Front Porch) | HSYNC 结束到有效数据开始之间的时钟数 |
| H_BP | 水平后沿(Back Porch) | 有效数据结束到下一个 HSYNC 开始之间的时钟数 |
| H_Sync | 水平同步脉冲宽度 | HSYNC 信号保持有效电平的时钟数 |
| V_Active | 垂直有效行数 | 一帧中实际显示的行数,等于分辨率高度 |
| V_FP | 垂直前沿 | VSYNC 结束到第一行有效数据之间的行数 |
| V_BP | 垂直后沿 | 最后一行有效数据到下一个 VSYNC 开始之间的行数 |
| V_Sync | 垂直同步脉冲宽度 | VSYNC 信号保持有效电平的行数 |
实战要点: 在 LVDS 驱动移植中,水平总像素(H_Total = H_Active + H_FP + H_BP + H_Sync) 和 垂直总行数(V_Total = V_Active + V_FP + V_BP + V_Sync) 决定了像素时钟频率。如果单片机无法输出精确的 PCLK,可以通过微调消隐区参数来匹配帧率,但必须确保消隐区不小于屏体要求的最小值。
2.6 同步信号与 LVDS 数据映射
在 LVDS 接口中,VSYNC、HSYNC、DE 以及 RGB 数据会被打包到差分信号对中传输。下图展示了 LVDS 发送端如何将并行数据转换为串行差分信号:
关键理解: 在 LVDS 传输中,DE 信号 是最常用的数据使能方式。如果屏体支持 DE-only 模式,可以省略 HSYNC 和 VSYNC 的单独连接,仅靠 DE 来界定有效数据。但大多数单片机 LCD 控制器仍然需要配置完整的同步时序参数。
2.7 本章小结
- 像素 是显示的最小单元,由 R/G/B 子像素构成。
- 分辨率 决定显示内容的精细度,直接影响帧缓冲区大小。
- 色彩深度 决定颜色丰富度,RGB565 是单片机最常用的格式。
- 帧率 由像素时钟和总像素数决定,60Hz 是嵌入式标准。
- VSYNC/HSYNC/DE 是控制数据传输的同步信号,其时序参数(前沿、后沿、脉冲宽度)必须严格匹配屏体 datasheet。