ARM--LCD控制原理笔记

LCD接口介绍:

概念:

ARM--LCD控制原理笔记

 

ARM--LCD控制原理笔记

 

 

2440LCD接口原理图解析: 

ARM--LCD控制原理笔记

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

②是用来传输颜色数据;

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

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

LCD显示图像原理:

扫描:

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时序:

控制信号:

  • Vsync      帧同步信号,一帧数据就是填充一个屏幕画面的数据,相当于一幅图片,Vsync 一个脉冲代表一帧,一帧(一个画面)显示完毕后,接着发出Vsync  同步信号,扫描枪头回到顶端位置,准备显示下一帧数据
  • Hsync     行同步信号,一个Hsync脉冲代表显示一行数据,一行像素显示完毕后发出下一行Hsync控制信号,接着回到下一行开始重新开始扫描
  • CLK          在有效的时钟内,每个像素点就是一个时钟脉冲

时序图:

ARM--LCD控制原理笔记

时序图时间参数:

  • 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位数据