基于SEP4O2O的Linux frame buffer驱动设计

  随着世界经济的迅速发展,液晶显示屏广泛应用于手机、PDA、金融终端等电子产品上,而在嵌入式电子领域,Linux操作系统占有越来越大的市场份额。因而本文提出在嵌入式Linux平台上实现液晶显示器的功能,详细叙述了液晶显示屏在SEP4020微处理器为基础的平台上的Framebuffer驱动程序设计。

  1 液晶显示器原理

  1.1 液晶显示器种类

  液晶显示器(LCD)根据驱动方式可以分为静态驱动、简单矩阵驱动以及主动矩阵驱动三种。其中,简单矩阵型又可以再分为扭转向列(TN)和超扭转式向列型(STN)两种,而主动矩阵则以薄膜式晶体管(TFT)为主流。

  TN型技术是LCD中最基本的,其他种类的LCD都以TN型为基础改进而得。TN型LCD显示质量很差,色彩单一、对比度低,反应速度很慢,故主要应用于简单的数字符与文字的显示,如电子表以及电子计算器等。STN LCD的显示原理与TN类似,区别在于TN型的液晶分子将入射光旋转90°,而STN可将入射光旋转180°到270°。STN改善了TN视角狭小的缺点,并提高了对比度,显示品质较TN高。

  TFT型LCD中,晶体管矩阵依显示信号开启或者关闭液晶分子的电压,使液晶分子轴转向而成"亮"或者"暗"的对比,避免了显示器对电场效应的依靠。因此,TFTLCD显示质量较TN/STN更佳,画面显示对比度可达150:1以上,反应速度逼近30ms甚至更快,适用于PDA、笔记本电脑、数码相机、MP4等。

  1.2 液晶显示器时序

  图1为LCD的典型时序图。时序图中VFRAME为帧同步信号,VLINE为行同步信号,VCLK为像素时钟信号(用于锁存图像数据的像素时钟),VM为数据有效标志信号,VD为图像的数据信号。  

基于SEP4O2O的Linux frame buffer驱动设计

  作为帧同步信号的VFRAME,每发出一个脉冲,都意味着新的一屏图像数据开始发送。而作为行同步信号的VLINE,每发出一个脉冲都表明新的一行图像资料开始发送。在帧同步以及行同步的头尾都必须留有回扫时间。

  2 硬件平台

  本设计采用的硬件平台是基于东南大学国家专用集成电路系统工程中心研发的SEP4020微处理器的开发板。该处理器是使用0.18μ m标准CMOS的工艺设计,内嵌ASIX CORE(32位RISC内核兼容ARM720T,带8 kB指令数据cache和全功能MMU),采用冯诺依曼结构的一款微处理器。该处理器集成了液晶控制模块(LCDC),此模块兼容AMBA规范,有AHB MASTER和AHB SLAVE接口,分别用于读取需要显示的数据和软件配置。经过软件配置后,LCDC能自己独立工作,而不再需要内核的再次参与,从而节省内核的处理时间。工作过程是LCDC使能后申请系统总线,获得总线使用权后读取需要显示的数据,数据经过相应算法的处理就得到满足时序要求的信号,送到LCDC显示驱动器。

  LCDC使用内嵌的DMA方式进行数据操作,配备一个深度为16的32位FIFO用于缓存显示数据,支持1、2、4位的STN灰度显示和16位TFT彩色显示,分辨率软件可配置。相关的需要配置的寄存器有:

  SSA为屏幕起始寄存器;SIZE为屏幕尺寸寄存器;PCR为面板配置寄存器;HCR为水平配置寄存器;VCR为垂直配置寄存器:PWMR为对比度控制器;LECR为使能控制寄存器;DMACR为DMA控制寄存器。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwjzxz.html