zoukankan      html  css  js  c++  java
  • LCD驱动的学习

    简介:

        LCD是基于液晶的。

    LCDliquid crystal display)按驱动方式分类可以分为静态驱动简单矩阵驱动主动矩阵驱动。其中,简单矩阵又可以分为扭转向列型(TN超转向列型(STN,而主动矩阵驱动则以TFT(用的最多)为主。

    TN型液晶驱动:是LCD中最基本的,他只能将入射光旋转90度,视角只有30度。

    STN型驱动液晶:可以讲入射光旋转180度至270度,也改善了视角。

    TFT解决了上述两种液晶屏的缺陷,属于比较常用的。

     

    一块lcd屏显示图像不但需要lcd驱动器,还需要lcd控制器。很多主芯片cpu继承了lcd控制器。其显示原理为:作为帧同步信号的vsync,每发出一个脉冲,就意味着一幅图像开始传输。作为行同步信号的hsync,每发出一个信号,代表新的一行图像资料开始发送。图像为从左向右,从上向下显示

    一个完整的时序图如下:

     

     

     

      

    下面是lcd的技术参数:

    1. 可视面积

    2. 可视角度

    3. 点距

    4. 色彩度

    5. 对比值

    6. 亮度值

    7. 响应时间

     

    显存:

        Framebuffer(帧缓冲)从本质上讲是图形设备的硬件抽象。对开发者而言,framebuffer是一块显示缓存,往显示缓存中陷入特定格式的数据就意味着向屏幕中输出内容。通过不断地向framebuffer中写数据,显示控制器就自动的从framebuffer中读数据并显示出来。

     

    在嵌入式一般没有专门的芯片做显存,一般是从内存中分一部分做显存Framebuffer其实就是显存。

     

    帧缓冲设备对应的设备文件是/dev/fb*,如果系统中有多个显示卡,linux下还可支持多个帧缓冲设备,最多可达32个。帧缓冲设备的主设备号为29,次设备号是031.

     

    下面是使用帧缓冲设备文件的演示。

     

     

    帧缓冲设备编程:

         整个编程的系统架构如下:

     

     

           可以看出,我们实现帧缓冲设备主要需要完成两个任务:

    1. 实现一个fb_info结构体,这其中包括可变参数,固定参数,操作列表等。

    2. 使用register_frambuffer注册一个帧缓冲设备。

    Fb_info

     

     

     

     

    register_frambuffer

     

    寻找lcd驱动对应的设备:

    lcd驱动的init函数中,主要是初始化一个平台驱动。

     

    平台驱动的结构体如下,其匹配的参数为“s3c2410-lcd”,可以查询同样名称为s3c2410-lcd的平台设备。

     

       下面可以看到,确实能查到这个设备,资源有两个,一个是寄存器起始地址,另一个是中断号。

     

     

        通过mach-s3c2440.c文件,这个设备被上报给内核。

     

    驱动文件:

    应用程序:





  • 相关阅读:
    jquery 图片播放器插件(支持自己设定时间,自己设定是否自动播放)
    ie6下bug集合(二)li之间空隙bug
    大小不固定的图片和多行文字的垂直水平居中
    解决IE6下 position的fixed定位问题
    C# 编写不安全代码
    委托和事件的使用
    如何删除win7桌面的库和家庭组图标
    gcc g++ 区别
    Java 访问注册表
    C# 通过反射类动态调用DLL方法
  • 原文地址:https://www.cnblogs.com/dchipnau/p/5255316.html
Copyright © 2011-2022 走看看