ARM--LCD控制原理笔记
LCD接口介绍:
概念:
2440LCD接口原理图解析:
①是时钟信号,每来一个CLK,电子枪就移动一个像素;
②是用来传输颜色数据;
③是垂直方向同步信号,FRAME(帧);
④是水平方向同步信号,LINE(行);
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 在有效的时钟内,每个像素点就是一个时钟脉冲
时序图:
时序图时间参数:
- 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)行同步脉宽 单位:像素时钟周期
当发出一个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位数据