LCD 概述

[English]

通常所说的 LCD 是 TFT-LCD (薄膜晶体管液晶显示器)的统称。它是⼀种常⻅的数字显示技术,常⽤于显示图像和⽂字。LCD 使⽤液晶材料和偏振光技术,当液晶分⼦受电场影响时,会改变光的偏振⽅向,从⽽控制光线强度,使图像或⽂字显示在屏幕上。

TFT-LCD 的硬件框图

TFT-LCD 的硬件框图

LCD 具有很多优点,例如:能耗低、寿命⻓、可靠性⾼、清晰度⾼、占⽤空间⼩、颜⾊还原度⾼、抗眩光能⼒强等。因此,它已⼴泛应⽤于各种电⼦设备,如家电、便携式设备、可穿戴设备等。同时,LCD 技术持续进步和完善,其中包括不同的面板类型如 IPS、VA、TN,以及新的 LED 背光技术,这些都进一步提高了 LCD 的性能和用户体验。

本指南包含如下内容:

  • 结构:LCD 模块的主要结构,主要包含面板、背光源、驱动 IC 和 FPC。

  • 形态:LCD 模块的常见形态,主要有矩形屏和圆形屏。

  • 驱动接口:LCD 模块的驱动接口,包含 SPI、QSPI、I80、RGB 和 MIPI-DSI。

  • 典型连接方式:LCD 模块的典型连接方式,包含 LCD 的通用引脚以及不同类型的接口引脚。

  • 帧率:LCD 应用的帧率,包含渲染帧率、接口帧率和屏幕刷新率。

术语表

请参阅 LCD 术语表

结构

为了让 LCD 能够稳定工作并且方便开发,厂商通常将 LCD 封装成一个 集成的模块 供用户使用,它主要由以下四个部分组成:

  • 面板:⾯板决定了 LCD 模块的⾊彩、可视⻆度、分辨率。⾯板的价格⾛势直接影响到模块的价格,⾯板的质量、技术的好坏关系到模块整体性能的⾼低。常⻅的⾯板类型有 IPS、VA、TN 等。

  • 背光源:液晶分⼦⾃身⽆法发光,因此若想出现画⾯,液晶屏需要专⻔的发光源来提供光线,然后经过液晶分⼦的偏转来产⽣不同的颜⾊。背光源起到的是提供光能的作⽤,⼀般可以通过 PWM 控制它的亮度。

  • 驱动 IC:驱动 IC 通过特定的接⼝对外通信,并控制输出电压让液晶扭转,使其发⽣⾊阶及明暗的变化。它通常包含控制电路和驱动电路两部分。控制电路负责接收来⾃主控芯⽚的信号,以及图像信号的转换与处理, 驱动电路负责输出图像信号并显示到⾯板上。

  • FPC:FPC 是 LCD 模块的对外接⼝,⽤于连接驱动 IC、外部驱动电路与主控芯⽚。FPC 由于其出色的柔性和可靠性,可以解决传统刚性线路板的接触问题和较差的抗振动性,从而增强了模块的稳定性和使用寿命。

通常,LCD 模块的选型主要基于其 面板驱动 IC。例如,我们会考虑面板的类型和分辨率以及驱动 IC 支持的接口类型和色彩格式。驱动 IC 体积很小,通常被贴在 FPC 与面板的连接部位,如图示。

LCD 模块的驱动 IC

LCD 模块的驱动 IC

形态

对于 LCD 的面板外形,大多数形状都是采用矩形或圆形,生活中最常见到的就是矩形屏,圆形屏多为小尺寸屏幕。

LCD 矩形屏

LCD 矩形屏

LCD 圆形屏

LCD 圆形屏

它们的特点及应用场景如下:

类型

特点

应用场景

矩形屏

⾯积⼤、效果好、信息呈现更多,应⽤范围更⼴

手机、平板电脑、控制面板

圆形屏

时尚轻便、占⽤空间⼩,有效利⽤设备⾯积

智能穿戴、电动⻋仪表盘、汽⻋显示仪表、智能家电、智能⼿持设备

通常使用 LCD 面板的对角线长度来衡量其 尺寸 的大小,单位是英寸或寸,比如常说的 1.28 寸屏和 3.5 寸屏。除了屏幕的物理尺寸,开发者往往更加关心屏幕的 分辨率,它是指面板所能显示的像素点数量,代表了屏幕图像的精密度:可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息越多,对主控芯片的性能要求也越高,所以分辨率是个非常重要的参数指标。

屏幕尺寸

屏幕尺寸

屏幕分辨率

屏幕分辨率

尺寸与分辨率之间不是一一对应的关系,但是总体呈正比的趋势,比如,一般情况下,2.4 寸或者 2.8 寸的屏幕常见分辨率为 320x240,3.2 寸或 3.5 寸的屏幕常见分辨率为 320x480。尺寸大的屏幕,其分辨率不一定会比更小尺寸的屏幕更高,因此,在进行屏幕选型前,需要根据应用场景和需求确定好屏幕的尺寸与分辨率。

驱动接口

对于开发者而言,通常更加关心 LCD 的驱动接口,目前在物联网领域比较常见的接口类型有 SPIQSPII80RGBMIPI-DSI,它们在 占用 IO 数量并行数据位数数据传输带宽GRAM 位置 等方面的参数对比如下:

参数对比

类型

描述

占用 IO 数量

并行数据位数

数据传输带宽

GRAM 位置

SPI

串行接口,以 SPI 总线协议为基础,通常采用 4 线或 3 线模式

最少

1

最小

LCD

QSPI (Quad-SPI)

SPI 接口的一种扩展,可以使用 4 根数据线并行传输

较少

4

较小

LCD 或主控

I80 (MCU、DBI)

并行接口,以 I80 总线协议为基础

较多

8/16

较大

LCD

RGB (DPI)

并行接口,一般需搭配 3-wire SPI 接口

最多

8/16/18/24

较大

主控

MIPI-DSI

采⽤差分信号传输⽅式的串⾏接⼝,基于 MIPI 的⾼速、低功率可扩展串⾏互联的 D-PHY 物理层规范

较多

1/2/3/4

最大

LCD 或主控

备注

  • 对于 QSPI 接口,不同型号的驱动 IC 可能采用不同的驱动方式,如 SPD2010 内置 GRAM,其驱动方式与 SPI/I80 接口类似,而 ST77903 没有内置 GRAM,其驱动方式与 RGB 接口类似。

  • 对于 MIPI-DSI 接口,采用 Command 模式需要 LCD 内置 GRAM,而 Video 模式则不需要。

总结如下:

  1. SPI 接口的数据传输带宽小,比较适用于低分辨率的屏幕。

  2. QSPII80 接口的数据传输带宽更大,所以能够支持较高分辨率的屏幕,但是 I80 接口要求 LCD 内置 GRAM,导致屏幕成本较高,并且难以做到大屏。

  3. RGBI80 接口类似,但是 RGB 接口无需 LCD 内置 GRAM,因此适用于更高分辨率的屏幕。

  4. MIPI-DSI 接口适用于高分辨率、高刷新率的屏幕。

接口详解

驱动 LCD 的第一步是确定它的接口类型,对于大部分常见的驱动 IC,如 ST7789GC9A01ILI9341 等,它们一般都会支持多种接口,但是屏幕厂商在封装成模块的时候通常只对外留出其中一种接口(RGB LCD 通常会也会使用 SPI 接口)。以 GC9A01 为例,它的硬件框图如下:

GC9A01 的硬件框图

GC9A01 的硬件框图

很多 LCD 驱动 IC 的实际接口类型是由其 IM[3:0] 引脚的高低电平来决定的,大部分屏幕在内部已经固定了这些引脚的配置,但是也有一些屏幕会预留出这些引脚以及所有的接口引脚,这种情况下用户可以自行配置。以 ST7789 为例,它的接口类型配置如下:

ST7789 的驱动接口配置

ST7789 的接口配置

因此,仅仅知道驱动 IC 的型号并不能确定屏幕的接口类型,在这种情况下可以咨询屏幕厂商,或者查阅屏幕的数据手册,也可以通过原理图结合经验进行判断,下面是各种接口的屏幕引脚对比:

类型

引脚

LCD 通用

RST (RESET)、Backlight (LEDA、LEDK)、TE (tear effect)、Power (VCC、GND)

SPI

CS、SCK(SCL)、SDA (MOSI)、SDO (MISO)、DC (RS)

QSPI

CS、SCK (SCL)、SDA (DATA0)、DATA1、DATA2、DATA3

I80

CS (CSX)、RD (RDX)、WR (WRX)、DC (D/CX)、D[15:0] (D[7:0])

RGB

CS、SCK(SCL)、SDA(MOSI)、HSYNC、VSYNC、PCLK、DE、D[23:0] (D[17:0]/D[7:0])

常用接口 LCD 的详细介绍如下:

典型连接方式

对于通用的 LCD 引脚,通常采用如下的连接方式:

  • RST (RESET):推荐连接至 GPIO,并根据 LCD 驱动 IC 的数据手册,在上电时输出复位时序。一般情况下也可以使用上拉/下拉电阻连接系统电源。

  • Backlight (LEDA、LEDK):推荐 LEDA 连接至系统电源(阳极),LEDK 使用开关元器件连接至系统电源(阴极),并通过 GPIO 控制亮灭,或者通过 LEDC 外设输出 PWM 以调节背光亮度。

  • TE (tear effect):推荐连接至 GPIO,通过 GPIO 中断来获取 TE 信号,以实现帧同步。

  • Power (VCC、GND):推荐全部连接至对应的系统电源,而不要让一部分引脚浮空。

对于不同接口类型的引脚,主控 MCU 需要采用不同的连接方式,下面将分别介绍 SPI QSPI I80RGB 四种接口的典型连接方式。

SPI 接口

SPI 接口的 LCD 硬件设计请参考开发板 ESP32-C3-LCDkit 及其 LCD 子板,其典型连接示意图如下:

SPI 接口典型连接示意图

SPI 接口典型连接示意图

备注

  • Interface I 模式 仅需使用 SDA 一根数据线, Interface II 模式 需要使用 MISO & MOSI 两根数据线。

  • 通常情况下不需要从 LCD 读取数据,因此可以不连接 MOSI。如果有需要的话请注意,大多数 SPI LCD 读取时的最大时钟频率要远小于写入时的频率。

  • 由于 3-line 模式 (无 D/C 信号线)下,每传输单位数据(通常为字节)都需要先传输 D/C 信号(1-bit),而目前 ESP 的 SPI 外设不支持直接传输 9-bit 数据,因此通常采用上图所示的 4-line 模式

QSPI 接口

QSPI 接口的典型连接示意图如下:

QSPI 接口典型连接示意图

QSPI 接口典型连接示意图

备注

  • 不同型号驱动 IC 的 QSPI 接口连接方式可能不同,上图仅以 ST77903 为例。

  • 写入数据时需要使用 SDA0SDA[1:3] 四根数据线,读取数据时仅使用 SDA0 一根数据线。

I80 接口

I80 接口的 LCD 硬件设计请参考开发板 ESP32-S3-LCD-EV-Board 及其 LCD 子板 (3.5’ LCD_ZJY),其典型连接示意图如下:

I80 接口典型连接示意图

I80 接口典型连接示意图

备注

  • 图中虚线表示可选引脚。

  • ESP 的 I80 外设不支持使用 RD 信号进行读取操作,因此实际连接时需要将该信号拉高。

RGB 接口

RGB 接口的 LCD 硬件设计请参考开发板 ESP32-S3-LCD-EV-Board 及其 LCD 子板 (3.95’ LCD_QMZX),其典型连接示意图如下:

RGB 接口典型连接示意图

RGB 接口典型连接示意图

备注

  • 图中虚线表示可选引脚。

  • DE 用于 DE 模式下。

  • CSSCKSDA 为 3-wire (3-line) SPI 接口引脚,用于发送命令及参数对 LCD 进行配置,一些屏幕可能没有这些引脚,因此也不需要进行初始化配置。由于 3-wire SPI 接口可以仅用于进行 LCD 的初始化,而无需用于后续的屏幕刷新,因此,为了节省 IO 数量,可以将 SCKSDA 与任意 RGB 接口引脚进行复用。

帧率

对于 LCD 应用来说,屏幕上的动画是通过显示多个连续的静止图像来实现的,这些图像被称为 帧率 就是显示新帧的速率,它通常表示为每秒变化的帧数,简称为 FPS。帧率越高,每秒显示的帧就越多,动画变化得也更平滑、更逼真。

但是一帧图像的显示并不是仅由主控一次性完成的,而是经过渲染、传输、显示等多个步骤,因此,帧率的高低不仅取决于主控的性能,还取决于 LCD 的接口类型和刷新率等因素。

渲染

渲染是指主控通过计算生成图像数据的过程,其快慢可以用 渲染帧率 来衡量。

渲染帧率一方面取决于主控的性能,另一方面也受动画复杂程度的影响,比如,局部变化的动画通常比全屏变化的动画渲染帧率更高,纯色填充通常图层混叠的渲染帧率更高。因此,渲染帧率在图像变化时一般是不固定的,如 LVGL 运行时统计的 FPS。

LVGL 运行时统计的 FPS

LVGL 运行时统计的 FPS

传输

传输是指主控将渲染好的图像数据通过外设接口传输到 LCD 驱动 IC 的过程,其快慢可以用 接口帧率 来衡量。

接口帧率取决于 LCD 的接口类型和主控的数据传输带宽,通常在外设接口初始化完成后就会固定,因此可以通过公式计算得出:

\[接口帧率 = \frac{接口的数据传输带宽}{一帧图像的数据大小}\]

对于 SPI/I80 接口

\[接口帧率 = \frac{时钟频率 \times 数据线位数}{色彩位数 \times 水平分辨率 \times 垂直分辨率}\]

对于 RGB 接口

\[ \begin{align}\begin{aligned}接口帧率 = \frac{时钟频率 \times 数据线位数}{色彩位数 \times 水平周期 \times 垂直周期}\\水平周期 = 水平脉冲宽度 + 水平后廊 + 水平分辨率 + 水平前廊\\垂直周期 = 垂直脉冲宽度 + 垂直后廊 + 垂直分辨率 + 垂直前廊\end{aligned}\end{align} \]

显示

显示是指 LCD 的驱动 IC 将接收到的图像数据显示到屏幕上的过程,其快慢可以用 屏幕刷新率 来衡量。

对于 SPI/I80 接口的 LCD,屏幕刷新率是由 LCD 驱动 IC 决定的,一般可以通过发送特定的命令来设置,如 ST7789FRCTRL2(C6h) 命令;对于 RGB 接口的 LCD,屏幕刷新率是由主控决定的,其等价于接口帧率。

备注

  • 若需要在无 LCD 的情况下开发,可以通过 esp_lcd_usb_display 组件 通过 USB UVC 在 PC 显示器上模拟 LCD 的显示效果,从而调试应用程序。其对应示例为 usb_lcd_display