s3c2440裸机-LCD编程-1-LCD硬件原理

发布时间:2024-07-04  

1.LCD示意图

下图是LCD示意图,里面的每个点就是一个像素点。



它里面有一个电子枪,一边移动,一边发出各种颜色的光。用动态图表示如下:

动图封面

电子枪是如何移动的?

有一条CLK时钟线与LCD相连,每发出一次CLK(高低电平),电子枪就移动一个像素。


颜色如何确定?

由连接LCD的三组线RGB三原色混合而成:R(Red)、G(Green)、B(Blue)确定。


电子枪如何得知应跳到下一行?

有一条HSYNC信号线与LCD相连,每发出一次脉冲(高低电平),电子枪就跳到下一行,该信号叫做行同步信号。


电子枪如何得知应跳到原点?

有一条VSYNC信号线与LCD相连,每发出一次脉冲(高低电平),电子枪就跳到原点,该信号叫做帧同步信号。


RGB线上的数据从何而来?

内存里面划分一块显存(FrameBuffer),里面存放了要显示的数据,LCD控制器从里面将数据读出来,通过RGB三组线传给电子枪,电子枪再依次打到显示屏上。


前面的信号由谁发给LCD?

有S3C2440里面的LCD控制器来控制发出信号。

2.LCD硬件原理图



①是时钟信号,每来一个CLK,电子枪就移动一个像素;

②是用来传输颜色数据;

③是垂直方向同步信号,FRAME(帧);

④是水平方向同步信号,LINE(行);

LED+、LED-背光灯电源

⑥TSYP、TSXP、TSYM、TSXM是触摸屏信号。(下一节会详细讲)

⑦VM接DE是数据使能 RGB LCD的模式: HV模式: HS与VS来控制刷新。比如对于分辨率为1024x600RGB的LCD,LCD控制器发出HS信号后,就会发出1024个DCLK,在每个DCLK上传输像素数据;当发出600个HS信号后,就会发出一个VS信号 DE模式:DE信号来控制刷新,比如对于分辨率为1024x600RGB的LCD,LCD控制器发出DE信号后,就要发出1024个DCLK,在每个DCLK上传输像素数据;当发出600个DE信号,刷新完一帧数据

3.LCD时序分析


image


①从一行最开始的像素开始分析,如上图标号①,DE信号开始有效,电子枪每次在CLK下降沿时从数据线Dn0-Dn7上得到数据(Dn0-Dn7上的数据来源于FrameBuffer,后面会讲),然后发射到显示屏上,然后移动到下一个位置。从1 st pixel到last pixel,就这样从一行的最左边,一直移动到一行的最右边,完成了一行的显示,假设一行有x个pixel。可以看到每发送一个pixel,需要1个时钟周期(1/tc)。


②当打完一行的最后一个数据后,会收到Hsync行同步信号,那么电子枪会跳到下一行,如上图标号②,根据时序图,一个Hsync周期,也就是一行数据刷新时间th, 可以大致分为五部分组成:thp、thb、1/tc、thd、thf。


thp:称为脉冲宽度,这个时间不能太短,太短电子枪可能识别不到。

thb:电子枪正确识别到thp后,会从最右端移动最左端,这个移动的时间就是thb,称之为移动时间。

thd:表示显示一行数据的时间

thf:表示显示完最右像素,再过多久Hsync才来。

③同理,当电子枪移动到最后一行时,就会发送一个Vsync垂直同步信号,让电子枪移动回最上边。如上图标号③,根据时序图,一个Vsync周期,也就是一帧数据刷新时间tv, 可以大致分为:tvp、tvb、tvd、tvf。


tvp:Vsync信号的脉冲宽度

tvb:电子枪从最后一行移动到第一行的移动时间

tvf:表示显示完最后一行像素,再过多久Vsync才来。

假设一共有y行,那么LCD的分辨率就是x*y。


下面是LCD显示配置示意图:


从左往右看,可以看到Total width = HSYNC width + HBP + Active width + HFP。当发出一个HSYNC信号后,电子枪就会从最右边花费HBP时长移动到最左边,等到了最右边后,等待HFP时长后下一轮HSYNC信号才会发出。因此,HBP和HFP分别决定了左边和右边的黑框。

HSYNC是行同步信号的脉冲宽度(低电平有效)
HBP表示屏幕左边黑框的宽度(电子枪要花多久才能从最右边移动到最左边)行后肩
Active width表示有效数据宽度
HFP表示屏幕右边黑框的宽度(再过多久HSYNC才会发出)行前肩

同理从上往下看,Total height = Vsync width + VBP + Active width + VFP。当发出一个VSYNC信号后,电子枪就会从最下边花费VBP时长移动到最上边,等到了最下边后,等待VFP时长后下一轮VSYNC信号才会发出。因此,VBP和VFP分别决定了上边和下边的黑框。 中间灰色区域才是有效显示区域。

VSYNC是帧同步信号的脉冲宽度(低电平有效)
VBP表示屏幕上边黑框的宽度(电子枪要花多久才能从最后一行移动到最上面一行)帧后肩
Active height表示有效数据高度
VFP表示屏幕下边黑框的宽度(再过多久VSYNC才会发出) 帧前肩

总结: 行时序:

HSPW:有些地方也叫做 thp,是 HSYNC 信号宽度,也就是 HSYNC 信号持续时间。HSYNC信号不是一个脉冲,而是需要持续一段时间才是有效的,单位为 CLK。

HOZVAL:有些地方叫做 thd,显示一行数据所需的时间,假如屏幕分辨率为 1024*600,那么 HOZVAL 就是 1024,单位为 CLK。

帧时序:

VSPW:有些地方也叫做 tvp,是 VSYNC 信号宽度,也就是 VSYNC 信号持续时间,单位为 1 行的时间

LINE:有些地方叫做 tvd,显示一帧有效数据所需的时间,假如屏幕分辨率为 1024*600,那么 LINE 就是 600 行的时间。

4.FrameBuffer和BPP

FrameBuffer是在内存中的一段区域,这段区域专门用来存放颜色数据的。如下图:


BPP(Bits Per Pixels)表示每个像素占据多少位。 前面的LCD引脚功能图里,有R0-R7、G0-G7、B0-B7,那么每个像素是占据3*8=24位的, 所以硬件上LCD的BPP是确定的.

那么在FrameBuffer中,每个像素在FrameBuffer中,占据多少位BPP(Bits Per Pixels)?

虽然LCD上的引脚是固定的,但我们使用的时候,可以根据实际情况进行取舍,查看我们的硬件原理图,发现我们的LCD硬件上只有R1-R5、G0-G5、B1-B5与SOC相连,5+6+5=16BPP,所以每个像素就只占据16位数据。等效连接图如下:


5.LCD种类

S3C2440芯片手册介绍了LCD控制器支持TFT和STN两种LCD,我们常用的都是TFT材质的,本开发板采用的就是一款TFT材质的LCD.

6.LCD访问框架

如下图,LCD控制器从SDRAM中的FrameBuffer区域取出颜色数据,发送给电子枪,电子枪按照特定的时钟周期将颜色数据显示在LCD上。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>