Table of Contents

一、LCD显示图像原理:

2.1、物理屏、 虚拟屏认识

2.2、扫描原理

二、LCD时序分析:

2.1、控制信号:

2.2、时间参数:

三、裸机编程操作

四、专业术语(英文解释):


一、LCD显示图像原理:

硬件接口见:https://blog.csdn.net/shenlong1356/article/details/103669398

2.1、物理屏、 虚拟屏认识

1. 物理屏:真实屏幕,如一个笔记本 1024*768 分辨率大小的屏,在 32BPP 时候占用的内存是 1024*768*4 , 内存不是太大。
2. 虚拟屏:为实际屏提供显示数据内存,物理屏占用的内存属于虚拟屏内存一部分,如一台笔记本有一个独立显卡 2G,则这个显卡的虚拟屏内存大小是 2G。
3. 为什么虚拟屏要大于物理屏?在实际显示图像时,都不静态的,都时刻变化的,每一屏图像都不一样,如果物理屏内存大小和虚拟屏内存大小相同,也就是显存只能存放一屏数据,要更换下一屏时候就需要一边运算一边显示,这样会显示不流畅。如打大型 3D 游戏。虚拟屏比物理屏大,可以先提前把要显示的图像数据解码存放在虚拟中,要切换图像,只需要把物理屏的显示基地址修改一下就可以实现快速切换。

2.2、扫描原理

ARM--LCD裸机开发笔记

想象有一个电子枪,一边移动,一边发出各种颜色的光。这里有很多细节问题,我们一个一个的梳理。

 

  • 1. 电子枪是如何移动的?

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

  • 2. 颜色如何确定?

答:由连接LCD的三组线:R(Red)、G(Green)、B(Blue)确定。

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

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

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

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

  • 5. RGB线上的数据从何而来?

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

  • 6. 前面的信号由谁发给LCD?

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

 

总结:

1、cpu初始化一块显存显存(FrameBuffer)  ,

2、建立 显存(FrameBuffer)和LCD控制器的关系

3、LCD控制器向LCD驱动器发出控制信号和显示的数据

4、LCD驱动器给显示面板发送模拟信号控制面板在何处显示什么颜色的点

 

二、LCD时序分析:

2.1、控制信号:

  • Vsync      帧(垂直)同步信号,一帧数据就是填充一个屏幕画面的数据,相当于一幅图片,Vsync 一个脉冲代表一帧,一帧(一个画面)显示完毕后,接着发出Vsync  同步信号,扫描枪头回到顶端位置,准备显示下一帧数据
  • Hsync     行同步信号,一个Hsync脉冲代表显示一行数据,一行像素显示完毕后发出下一行Hsync控制信号,接着回到下一行开始重新开始扫描
  • CLK      在有效的时钟内,每个像素点就是一个时钟脉冲
  • VDEN:视频数据输出使能,信号有效时候,数据线 VD 的数据有有意义。
  • VD: RGB 数据线,一般是 24 根,分别用来传递 RGB 颜色数据
     

ARM--LCD裸机开发笔记

2.2、时间参数:

  • thp  (Horizontal Pulse width ) 水平同步信号脉冲宽度:  这个时间不能太短,太短电子枪可能识别不到
  • thb   HBP(Horizontal Back Porch)水平后沿    在每行或每列的象素数据开始输出时要插入的象 素时钟周期数  也就是说每显示完一行像素点,要插入几个等待周期,等待下一行像素点开始  
  • thd   Horizontal display period   水平显示周期,就是显示一行像素点的时间
  • thf    HFP(Horizontal Front Porch )   水平前沿:在每行或每列的象素结束到LCD 行时钟输出脉冲 之间的象素时钟数, 就是说,一行显示完了,要插入几个等待周期,让枪头回到下一行开始的位置。
  •  
  • tvp   Vertical Pulse width
  • tvb   VBP(Vertical Back Porch)  垂直后沿:在垂直同步周期之后帧开头时的无效行数    一帧开始的准备阶段的等待周期时间
  • tvd  Vertical display period    显示一帧的时间    
  • tvf   VFP(Vertical Front Porch)垂直前沿:本帧数据输出结束到下一帧垂直同步周期开始之 前的无效行数 HPW(HSYNC plus width)行同步脉宽 单位:像素时钟周期

ARM--LCD裸机开发笔记

当发出一个HSYNC信号后,电子枪就会从最右边花费HBP时长移动到最左边,等到了最右边后,等待HFP时长HSYNC信号才回来。因此,HBP和HFP分别决定了左边和右边的黑框。

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


再来解决最后一个问题:每个像素再FrameBuffer中,占据多少位BPP(Bits Per Pixels)? 前面的LCD引脚功能图里,R0-R7、G0-G7、B0-B7,每个像素是占据3*8=24位的,即硬件上LCD的BPP是确定的。

虽然LCD上的引脚是固定的,但我们使用的时候,可以根据实际情况进行取舍,比如我们的JZ2440使用的是16BPP,因此LCD只需要R0-R4、G0-G5、B0-B4与SOC相连,5+6+5=16BPP,每个像素就只占据16位数据

 

三、裸机编程操作

http://wiki.100ask.org/%E7%AC%AC017%E8%AF%BE_LCD%E7%BC%96%E7%A8%8B

 

四、专业术语(英文解释):

 

horizontal                         水平

vertical                             垂直

pixels                               像素

 panel                                面板

 pallet                              调色

 non-palletized                  无调色

dedicated                        专用的

 generate                        发生

register sets                     寄存器组

intervention.                   干涉,介入

 data flow                          数据流

 is present in                 存在于

 partially                          部分

arbitrator                           仲裁

successive                      连续的

 In case of                       万一,假如

burst memory transfer mode       突发传输模式

without allowing                不允许

mastership                         控制权

Dummy Bit                           无效位

 toggle rate                           反转效率

indicate                            保存,指示表明           

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: