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文件,这个设备被上报给内核。

     

    驱动文件:

    应用程序:





  • 相关阅读:
    你是怎么把字符串“2016-11-16” 变为 “16/11/2016” 的?
    js-------》(小效果)实现倒计时及时间对象
    Ruby方法
    JAVASCRIPT事件详解-------原生事件基础....
    html5的小知识点小集合
    原生js实现的效果
    IDEA 实用功能Auto Import:自动优化导包(自动删除、导入包)
    8.SpringBoot 模板引擎 Thymeleaf
    7.SpringBoot 之 Web
    6.日志的使用
  • 原文地址:https://www.cnblogs.com/dchipnau/p/5255316.html
Copyright © 2011-2022 走看看