在做嵌入式开发时,经常用到 LCD 显示屏,因为用户只能看得懂显示屏中的画面。因此,熟练掌握显示屏原理是非常有必要的,所以让我们来揭开LCD 显示屏的神秘面纱,进而达到完全掌控的目的。本章之讲解 LCD 显示原理以及显示时序。
LCD(Liquid crystal display),翻译过来就是液体晶体显示,也就是液晶显示器,LCD 显示器具有功耗低、体积小、承载的信息量大以及不伤眼的优点,因此他成为现在的主流电子显示设备尤其是在嵌入式设备中的应用。
液晶是一种固体与液体之间的特殊物质,它是一种有机化合物,常态下呈液态,但是他的分子排列却和固体晶体一样非常规则,因此称为液晶。如果给液晶施加电场,就会改变它的分子排列,从而改变光线的传播,配合偏振光片,它就具有控制光线透过率的作用,再配个彩色滤光片,改变施加给液晶电压大小,就能改变某一颜色透光量的多少。利用这种原理,做出可控红、绿、蓝光输出强度的显示结构,把三种显示结构组成一个显示单位,通过控制红绿蓝的强度,可以使该单位混合输出不同的色彩,这样一个显示单位被称为像素,也就是说一个像素中包含了 R、G、B 这三种显示单位,通过改变三种颜色的比例,混合出各种颜色。液晶是不发光的,所以需要有一个背光灯提供光源,光线经过一些列处理过程才到输出,所以输出光线的强度是比光源的强度低很多。而且这些处理过程会导致显示方向比较窄,也就是它的视角较小,从侧面看屏幕会看不清它的显示内容。
LED 点阵显示器不存在以上LCD 显示器的问题,LED屏不需要背光灯,LED 点阵彩色显示器的单个像素点内包含红绿蓝三个LED 灯,通过控制这三个灯的亮度,实现全彩的输出,多个像素点进而构成了一整个屏幕。由于每个像素点都是LED 灯发出的光,因此在户外白天也特别清晰,但由于LED灯体积庞大,导致屏幕像素密度很低,因此他一般只适合广场上的巨型显示器,当我们走进看时,就会发现屏幕上很多小的LED灯。
OLED (Organic Light Emitting Diode),它采用的像素单元是有机发光二极管,所以像素密度比普通LED 点阵像是器高的多,因此,也画质也较为细腻。
OLED 显示器同样不需要背光源、对比度高、轻薄、视角光以及响应速度框等优点,但是成本更高,我们玩个0.96 寸的 OLED 屏幕都得十几块。
一、像素
像素是组成图像的最基本单元要素,显示器的像素指它成像最小的点
二、分辨率
一些嵌入式设备的显示器通常以"行像素值 X 列像素值" 表示屏幕的分辨率。如分辨率 800x480 表示该显示器的每一行有 800 个像素点,每一列有 480 个像素点, 也可理解为有 800 列,480 行
三、色彩深度
色彩深度是指显示器的每个像素点能表示多少种颜色,一般用"位"(bit)表示。常见的显示屏色彩深度为16bit、24bit
四、显示器尺寸
显示器的大小一般以英寸表示,如 5英寸、21英寸、24英寸等,这个长度指的是屏幕对角线的长度
五、点距
点距指相邻两个像素点之间的距离,它会影响画质的细腻程度以及观看距离,相同尺寸的屏幕,若分辨率越高,则点距越小,画质就越细腻。
一、RGB 信号线
RGB 信号线各有8根,所以支持 RGB888 格式,一共有24 位数据线,分别表示液晶屏一个像素点的红绿蓝颜色分量
二、同步时钟信号 CLK
液晶屏与外部使用同步通讯方式,以 CLK 信号作为同步时钟,在同步时钟的驱动下,每个时钟传输一个像素点数据。
三、水平同步信号 HSYNC
水平同步信号用于表示液晶屏一行像素数据的传输结束,每传输完成液晶屏的一行像素数据时,HSYNC 会发生电平跳变,如分辨率为 800x480 的显示屏,传输一帧图像 HSYNC 的电平会跳变 480 次
四、垂直同步信号 VSYNC
垂直同步信号 VSYNC 用于表示液晶屏一帧像素数据的传输结束,每次传输完成一帧像素数据时,VSYNC 会发生电平跳变。其中 “帧” 是图像的单位,一副图像成为一帧,在液晶中,一帧指一个完整屏幕液晶像素点。常常用 “帧/秒” 来表示液晶屏的刷新特性,即液晶屏每秒钟可以显示多少帧图像,也通常成为 “fps”,如液晶屏以 60 帧每秒的速率运行时,VSYNC 每秒电平跳变 60 次,也成为 60 fps
五、数据使能信号 DE
数据使能信号 DE 用于表示数据的有效性,当 DE 信号线为高电平时,RGB 信号线表示数据有效
通过上述信号线向液晶屏传输像素数据时,各个信号线的时序图,图中表示的是向液晶屏传输一帧图像数据的时序,图中省略多行以及多个像素点(不省略画不下)
经过图解,应该能够明白,一帧像素的时序是什么样的,但是上面的时序中有关键字 VBP、VFP、HBP、HFP,这些又是什么?在这四个字段之间并没有发生数据传输,请看下图
其实,能够显示图像的有效区域实际上是上图蓝色线框起来的区域,各参数代表含义如下
至于为什么在这些参数期间,数据不能传输,我想大概是因为换行与换帧这一动作得有个时间去缓冲,而这些时间段,被划分为上述几个参数,因此,配置好上述几个时间段就能够驱动起来一块显示屏,这些时间段具体的值一般在屏幕的数据手册中会给出。
显示屏中的每个像素点都是数据,在实际应用中需要把每个像素点的数据缓存起来,在传输给液晶屏,这种存储显示数据的存储器被称为显存。显存一般至少能够存储液晶屏的一帧显示数据,如分辨率为 800x480 的液晶屏,使用 rgb888 格式显示,一帧数据大小为 800x480x3 = 1152000 字节,3 表示一个像素点占用3字节数据(R:8bit、G:8bit、B:8bit);若使用 RGB565格式表示,一帧数据大小为:2x800x480 = 768000 字节,2表示一个像素点占用2个字节(R:5bit、G:6bit、B:5bit),因此可以看出,一个像素点所占用字节数越高,能表示的颜色就越丰富。