位置:51电子网 » 技术资料 » 显示光电

PXA270的LCD显示系统的设计与实现

发布时间:2008/5/29 0:00:00 访问次数:419

电子家园 dzjia.cn 徐少峰

引言

  xscale处理器是intel公司推出的基于armv5te体系结构的arm处理器。pxa270是该公司于2003年第四季度推出一款全性能、高性价比、低功耗的xscale处理器,其最高主频可达624mhz。

  pxa270拥有的 quick capture(快速拍摄)、wireless mmx(无线mmx指令)和wireless speed step(无线动态节能)技术,大大提升了多媒体处理能力;同时在保证cpu性能的情况下,最大限度地降低移动设备功耗。

  嵌入式linux(embedded linux)是指对标准linux经过小型化裁减处理之后,能够固化在容量只有几kb或者几mb的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是linux。

1 lcd液晶显示原理

  嵌入式系统一般采用液晶显示屏lcd。本系统采用的是lg philiph的tft6.4寸的真彩显示屏lp064v02。

  液晶显示的原理是液晶在不同电压的作用下会呈现出不同的光特性。tft是薄膜晶体管thin film transitor的缩写。fb(frame buffer)是帧缓冲器。

  显示屏所显示的一幅完整画面就是一个帧(frame),其整个显示区域,在系统内会有一段存储空间与之对应,通过改变该存储空间的内容,从而改变显示屏的内容,该存储空间被称为frame buffer。显示屏上的每一点都必然与frame buffer里的某一位置对应。而计算机显示的颜色是通过rgb值来表示的,因此如果要在屏幕某一点显示某种颜色,则必须给出相应的rgb值。frame buffer就是用来存放整个显示的编码和像点值的外部存储器区域。帧缓冲器的每一个字节对应着lcd中的一个像素,例如lp064v02显示屏有640×480=307200个像素。

2 pxa270中内置的lcd控制器

2.1 lcd控制器介绍

  frame buffer和lcd显示屏之间的数据传输很频繁,完全由cpu通过程序直接驱动显然不合适。因此,为减轻cpu的负担,在frame buffer与显示屏之间还需要一个中间件,该中间件负责从frame buffer里提取数据,进行处理,并传输到显示屏上。

  lcd控制器由以下部分组成:lcd dmac(本文提出的dmac都是指集成在lcdc内部的dmac),输入/输出fifo,内部调色板,tmed抖动(帧速率控制),寄存器组。

  lcdc的内部操作方式会因为所接lcd类型的不同而有所不同。本系统采用的是主动16位像点模式。在这种主动彩色模式中,lcdc内部的工作方式相对简单,frame buffer内的数据是16位的像素数据,此时,lcdc无需加载数据到内部调色板,并且数据无需经过帧速率控制单元的处理,直接发送至lcd控制器的数据脚,通过dmac传输到输入 fifo后,数据又立刻被传送到输出 fifo。

2.2 lcd模块的硬件连接

pxa270与lcd模块的硬件连接如图1所示。各信号引脚的说明如下:

图1 lcd接口框图

  • l_dd[15:0]:数据线。16位数据线可以显示红、绿、蓝像点,使用5位红、6位绿和5位蓝就能实现不同颜色的显示。
  • l_pclk:像点时钟。用于把彩色数据输入到lcd显示器中的移位寄存器中。被动模式下,像点时钟仅在数据线上数据有效时才发生跳变;主动模式下,像点时钟连续跳变。
  • l_lclk:行扫描时钟。用于lcd显示器行显示的结束和把移位寄存器的行数据送到显示器中,并且将行指针加1。主动模式下,它是水平同步信号。
  • l_fclk:帧扫描时钟。用于lcd显示器新的帧像点的开始。显示器复位时行指针指向显示屏的顶部。在主动模式下,它是垂直同步信号。
  • l_bias:ac偏置。主动方式下,它是数据使能信号。

3 lcd驱动程序的设计与实现

  pxa270嵌入式系统对lcd显示屏的驱动分成两方面:一方面是对lcd及相关部件的初始化,包括帧缓冲区的创建和对dma通道的设置;另一方面就是对帧缓冲区的读写,将帧缓冲区的内容输送到lcd显示屏由硬件完成,对于驱动来说是透明的。

3.1 帧缓冲器的初始化

主要数据结构如下:

  struct pxafb_info:主要用于帧缓冲区设备驱动框架的搭建,也是linux为帧缓冲设备定义的驱动层接口。它不仅包含了底层函数,而且还记录了帧缓冲器设备的全部信息。每个帧缓冲设备都必须与一个fb_info结构相对应。其中成员变量modename为设备名称,fontname为显示字体,fbops为指向底层操作的函数的指针。

  struct pxafb_fix_screeninfo:记录用户不能修改的显示控制器参数。它包括屏幕缓冲区的物理地址和长度。

  struct pxafb_var_screeninfo:记录用户可以修改的显示控制器参数。它包括显示屏幕的分辨率、每个像

电子家园 dzjia.cn 徐少峰

引言

  xscale处理器是intel公司推出的基于armv5te体系结构的arm处理器。a270是该公司于2003年第四季度推出一款全性能、高性价比、低功耗的xscale处理器,其最高主频可达624mhz。

  a270拥有的 quick capture(快速拍摄)、wireless mmx(无线mmx指令)和wireless speed step(无线动态节能)技术,大大提升了多媒体处理能力;同时在保证cpu性能的情况下,最大限度地降低移动设备功耗。

  嵌入式linux(embedded linux)是指对标准linux经过小型化裁减处理之后,能够固化在容量只有几kb或者几mb的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是linux。

1 lcd液晶显示原理

  嵌入式系统一般采用液晶显示屏lcd。本系统采用的是lg philiph的tft6.4寸的真彩显示屏lp064v02。

  液晶显示的原理是液晶在不同电压的作用下会呈现出不同的光特性。tft是薄膜晶体管thin film transitor的缩写。fb(frame buffer)是帧缓冲器。

  显示屏所显示的一幅完整画面就是一个帧(frame),其整个显示区域,在系统内会有一段存储空间与之对应,通过改变该存储空间的内容,从而改变显示屏的内容,该存储空间被称为frame buffer。显示屏上的每一点都必然与frame buffer里的某一位置对应。而计算机显示的颜色是通过rgb值来表示的,因此如果要在屏幕某一点显示某种颜色,则必须给出相应的rgb值。frame buffer就是用来存放整个显示的编码和像点值的外部存储器区域。帧缓冲器的每一个字节对应着lcd中的一个像素,例如lp064v02显示屏有640×480=307200个像素。

2 a270中内置的lcd控制器

2.1 lcd控制器介绍

  frame buffer和lcd显示屏之间的数据传输很频繁,完全由cpu通过程序直接驱动显然不合适。因此,为减轻cpu的负担,在frame buffer与显示屏之间还需要一个中间件,该中间件负责从frame buffer里提取数据,进行处理,并传输到显示屏上。

  lcd控制器由以下部分组成:lcd dmac(本文提出的dmac都是指集成在lcdc内部的dmac),输入/输出fifo,内部调色板,tmed抖动(帧速率控制),寄存器组。

  lcdc的内部操作方式会因为所接lcd类型的不同而有所不同。本系统采用的是主动16位像点模式。在这种主动彩色模式中,lcdc内部的工作方式相对简单,frame buffer内的数据是16位的像素数据,此时,lcdc无需加载数据到内部调色板,并且数据无需经过帧速率控制单元的处理,直接发送至lcd控制器的数据脚,通过dmac传输到输入 fifo后,数据又立刻被传送到输出 fifo。

2.2 lcd模块的硬件连接

a270与lcd模块的硬件连接如图1所示。各信号引脚的说明如下:

图1 lcd接口框图

  • l_dd[15:0]:数据线。16位数据线可以显示红、绿、蓝像点,使用5位红、6位绿和5位蓝就能实现不同颜色的显示。
  • l_pclk:像点时钟。用于把彩色数据输入到lcd显示器中的移位寄存器中。被动模式下,像点时钟仅在数据线上数据有效时才发生跳变;主动模式下,像点时钟连续跳变。
  • l_lclk:行扫描时钟。用于lcd显示器行显示的结束和把移位寄存器的行数据送到显示器中,并且将行指针加1。主动模式下,它是水平同步信号。
  • l_fclk:帧扫描时钟。用于lcd显示器新的帧像点的开始。显示器复位时行指针指向显示屏的顶部。在主动模式下,它是垂直同步信号。
  • l_bias:ac偏置。主动方式下,它是数据使能信号。

3 lcd驱动程序的设计与实现

  a270嵌入式系统对lcd显示屏的驱动分成两方面:一方面是对lcd及相关部件的初始化,包括帧缓冲区的创建和对dma通道的设置;另一方面就是对帧缓冲区的读写,将帧缓冲区的内容输送到lcd显示屏由硬件完成,对于驱动来说是透明的。

3.1 帧缓冲器的初始化

主要数据结构如下:

  struct afb_info:主要用于帧缓冲区设备驱动框架的搭建,也是linux为帧缓冲设备定义的驱动层接口。它不仅包含了底层函数,而且还记录了帧缓冲器设备的全部信息。每个帧缓冲设备都必须与一个fb_info结构相对应。其中成员变量modename为设备名称,fontname为显示字体,fbops为指向底层操作的函数的指针。

  struct afb_fix_screeninfo:记录用户不能修改的显示控制器参数。它包括屏幕缓冲区的物理地址和长度。

  struct afb_var_screeninfo:记录用户可以修改的显示控制器参数。它包括显示屏幕的分辨率、每个像

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!