Linux
This presentation is the property of its rightful owner.
Sponsored Links
1 / 26

Linux 帧缓冲 PowerPoint PPT Presentation


  • 99 Views
  • Uploaded on
  • Presentation posted in: General

Linux 帧缓冲. 北京博创兴业科技有限公司. LCD 简介. 主讲人:张笑天. [email protected] LCD 简介. 液晶显示是一种被动的显示,它不能发光,只能使用周围环境的光。它显示图案或字符只需很小能量。液晶显示所用的液晶材料是一种兼有液态和固体双重性质的有机物,它的棒状结构在液晶盒内一般平行排列,但在电场作用下能改变其排列方向. LCD 的背光. EL (场致发光): 2000-3000 小时 以黄绿色为主,常用于小型灰度 LCD 背光 LED 光源: 50000 小时 成本低、寿命长、支流供电,发光电压低、体积小

Download Presentation

Linux 帧缓冲

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Linux

Linux 帧缓冲

北京博创兴业科技有限公司


Linux

LCD简介

主讲人:张笑天

[email protected]


Linux

LCD 简介

液晶显示是一种被动的显示,它不能发光,只能使用周围环境的光。它显示图案或字符只需很小能量。液晶显示所用的液晶材料是一种兼有液态和固体双重性质的有机物,它的棒状结构在液晶盒内一般平行排列,但在电场作用下能改变其排列方向


Linux

LCD 的背光

  • EL(场致发光):2000-3000小时

    以黄绿色为主,常用于小型灰度LCD背光

  • LED光源:50000小时

    成本低、寿命长、支流供电,发光电压低、体积小

  • CCFL(冷阴极荧光灯):60000小时

    需要高压交流,体积大


Linux

LCD的显示方式

  • 反射型LCD:底偏光片后面加了一块反射板,它一般在户外和光线良好的办公室使用。

  • 透射型LCD:底偏光片是透射偏光片,它需要连续使用背光源,一般在光线差的环境使用。

  • 透反射型LCD:是处于以上两者之间,底偏光片能部分反光,一般也带背光源,光线好的时候,可关掉背光源;光线差时,可点亮背光源使用LCD。


Linux

LCD驱动方式

  • 一种是带有LCD扫描芯片的LCD模块

  • 一种是通过LCD控制器,直接扫描LCD屏。

比如:S3C2410处理器,带有LCD控制器,显示缓存和系统内存公用。可以支持STN(彩色/灰度)和TFT两种模式的LCD

TFT模式下最多支持18位色,800x600分辨率。


Linux

嵌入式处理器

数据总线

LCD模块

寄存器选择

使能信号

LCD

有LCD控制器的嵌入式处理器

LCD控制信号线

嵌入式处理器与LCD的连接


S3c2410 lcd

S3C2410的LCD扫描模式

  • 4/8位,单/双扫描模式,CSTN

  • 最多256级灰度

  • 显示缓冲区支持15、16、24位TFT模式

  • 支持RGB格式


Linux

典型的LCD模式信号线

  • LDD<17:0>,数据线

  • L_PCLK,点时钟

  • L_LCLK,行频

  • L_FCLK,帧频

  • L_BIAS,CSTN的AC信号,TFT的开启信号


4 stn

4位单扫STN模式


8 cstn 320x240

8位CSTN屏幕点阵:320x240


8 cstn

8位单扫描CSTN模式


Linux

TFT常见信号线

  • VSYNC——帧同步信号(垂直)

  • HSYNC——行同步信号(水平)

  • VCLK——时钟

  • VDEN——数据有效控制

  • VD——数据信号


16 tft

16位单扫描TFT模式


Linux

显示缓冲与显示点的对应

  • 4位单扫描显示缓冲的对应关系

  • 1个字节存储两个点的信息

  • 16级灰度


Linux

8位单扫描显示缓冲的对应关系

标准映射:

  • 1个字节存储1个点的信息

  • 可以是用调色板


16 15

16/15位显示缓冲的对应关系


Linux framebuffer

Linux framebuffer


Framebuffer

Framebuffer的结构

  • 在Linux系统下,把显示缓冲区映射给用户空间

  • 应用程序直接操作显示缓冲区(mmap)

  • Linux中,有对framebuffer的专门支持,提供系统的ioctl

  • X86下就有支持,软件容易移植


Framebuffer1

Framebuffer的应用

  • Linux的framebuffer接口提供给用户访问显示设备的通用接口

  • 通过mmap映射显示缓冲给用户

  • 不包括任何绘图接口


Framebuffer2

Framebuffer使用练习

  • 常用接口

    • 重要结构体:

      在fb.h文件中定义了下列结构:

      fb_info 、fb_fix_screeninfo、fb_var_screeninfo、fb_cmap等

/usr/src/linux-2.4.20-8/include/linux/fb.h

/usr/src/linux-2.4.20-8/drivers/video/fbmem.c

/usr/src/linux-2.4.20-8/drivers/video/fbcmap.c


Linux

常用接口

  • 在fbmem.c文件中定义了对framebuffer的操作

static struct file_operations fb_fops = {

owner:THIS_MODULE,

read:fb_read,

write:fb_write,

ioctl:fb_ioctl,

mmap:fb_mmap,

open:fb_open,

release:fb_release,

#ifdef HAVE_ARCH_FB_UNMAPPED_AREA

get_unmapped_area: get_fb_unmapped_area,

#endif

};


Linux

常用接口

  • mmap

    • 说明:

      一般情况下是将设备内存映射到用户空间

#include <sys/mman.h>

void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset);


Linux

常用接口

  • 常用的ioctl

if (ioctl(fb, FBIOGET_VSCREENINFO, &fb_vinfo)) {

printf("Can't get VSCREENINFO: %s\n", strerror(errno));

close(fb);

return -1;

}

if (ioctl(fb, FBIOGET_FSCREENINFO, &fb_finfo)) {

printf("Can't get FSCREENINFO: %s\n", strerror(errno));

return 1;

}


Linux

感谢您参加博创嵌入式教学培训!


  • Login