预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

S3C2440A下彩色液晶显示器的设计嵌入式系统已成为当今最热门的概念之一,对大多数嵌入式系统开发者而言,显示系统的硬件和软件开发是不可回避的关键性技术。三星公司开发的S3C2440A是一款以ARM920T为内核的嵌入式微处理器,它的最高工作频率达533MHz,内含3通道的异步串行口,USB主、从单元设备接口,摄像头接口,触摸屏接口,LCD控制器等众多片上外设接口,且具低功耗、高性能,广泛适用于PDA、便携式媒体播放器、手持式导航仪等领域。目前国内对该款高性价比嵌入式微处理器的开发应用才起步不久。夏普公司生产的LCD屏LQ035Q7DH01为3.5in透反射式TFT-LCD显示器,屏幕分辨率为320×240,能提供262144种色彩,显示亮度到达100nit,使设计人员能够在各种照明条件下利用它来生动地展示图像和文字信息。本文以S3C2440A和LQ035Q7DH01为硬件根底,设计了显示硬件电路。软件平台采用Linux2.4.20,交叉编译器为arm-linux-gcc2.95.3,完成了对LQ035Q7DH01显示屏的驱动程序开发。以三星公司的嵌入式微处理器S3C2440A和夏普公司3.5inLCD屏LQ035Q7DH01为根底,设计了显示硬件电路,介绍了帧缓冲设备的处理机制及底层驱动的接口函数,针对本显示系统给出了如何开发其Linux帧缓冲设备驱动程序。不管是显示硬件电路还是软件驱动程序,都有很强的可移植性,可以方便地移植到不同的平台。1显示系统硬件电路1.1LCD控制器电路LCD控制器用来传输图像数据并产生相应的控制信号,S3C2440ALCD控制器能支持高达4K色STN屏和256K色TFT屏,支持1024×768分辨率下的各种液晶屏,具有LCD专用DMA。LCD控制器产生的控制信号和数据信号主要有:VFRAME:LCD控制器和LCD驱动器之间的帧同步信号,LCD控制器在一个完整帧显示完成后插入一个VFRAME信号,开始新一帧的显示。VLINE:LCD控制器和LCD驱动器之间的行同步信号,LCD控制器在整行数据移入LCD驱动器后插入一个VLINE信号。VCLK:LCD控制器和LCD驱动器之间的像素时钟信号,由LCD控制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿处被LCD驱动器采样。VM:数据输出使能信号,在VM信号跃变成高电平后行数据信号开始由LCD控制器输出至LCD驱动器,当VM信号跃变为低电平后数据输出停止。数据线:也就是RGB信号线,S3C2440ALCD控制器有VD[0:23]共24根数据线,数据格式不同,接线方式就不同。本文用的是RGB565方式,只需要16根数据线(红色5根,绿色6根,蓝色5根)。其数据线接线方式如表1所示:LCD控制器电路如图1所示:1.2时序和数据匹配电路由于S3C2440A的LCD控制器与LCD屏LQ035Q7DH01在数据格式及显示时序上无法匹配,需要选用一种时序控制IC或者用CPLD(也就是通常所说的LCD伴侣芯片)来对不同数据格式的数据接口进行映射。但CPLD面积较大、本钱较高,因而通常只在需要对电路进行灵活配置的情况下才使用。本文时序控制IC选用夏普公司的LZ9FC22。该芯片专用于对TFT型QVGA屏幕(屏幕分辨率320×240)的LCD进行时序控制。这是一个18bit(R6G6B6)的控制器,由于本文采用的是RGB56516位工作模式,所以将其输入引脚R0和B0接地。时序和数据匹配电路如图2所示:1.3多路电压产生电路LCD屏内集成有数字电路和模拟电路,需要外部提供数字电压和模拟电压。另外,为了完成数据扫描,需要TFT轮流开启/关闭。当TFT开启时,数据通过源极驱动器加载到显示电极,显示电极和公共电极问的电压差再作用于液晶实现显示,因此需要控制LCD的开启电压、关闭电压,以及加到公共电极上的电压,本系统采用松下公司生产的芯片LM1117DT-3.3来产生LCD所需要的数字电压,采用美国MAXIM公司推出的有源矩阵液晶显示器电源芯片MAX1664来产生其他电压,MAX1664内部集成有两个DC-DC变换器,可以为小型TFTLCD提供高效的调节电压。LCD所需各电压如表2所示:多路电压产生电路如图3所示1.4显示驱动和LQ035Q7DH01的接口电路显示驱动和LQ035Q7DH01的接口电路如图4所示:1.5显示系统整体结构框图显示系统整体结构框图如图5所示。图5显示系统结构框图2Linux下的帧缓冲(framebuffer)设备Linux下编写显示设备的驱动程序有两种方法:一种是把显示设备抽象成一般的字符设备,驱动程序的写法和一般的字符设备驱动类似;第二种就是帧缓冲设备驱动程序的编写。由于第一种方法不标准,而且实现功能有限,故一般不提倡;而帧缓冲驱动程序比拟简单