TFT液晶显示屏设计定稿.docx

上传人:b****5 文档编号:7451830 上传时间:2023-01-24 格式:DOCX 页数:16 大小:192.60KB
下载 相关 举报
TFT液晶显示屏设计定稿.docx_第1页
第1页 / 共16页
TFT液晶显示屏设计定稿.docx_第2页
第2页 / 共16页
TFT液晶显示屏设计定稿.docx_第3页
第3页 / 共16页
TFT液晶显示屏设计定稿.docx_第4页
第4页 / 共16页
TFT液晶显示屏设计定稿.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

TFT液晶显示屏设计定稿.docx

《TFT液晶显示屏设计定稿.docx》由会员分享,可在线阅读,更多相关《TFT液晶显示屏设计定稿.docx(16页珍藏版)》请在冰豆网上搜索。

TFT液晶显示屏设计定稿.docx

TFT液晶显示屏设计定稿

第一章绪论

根据IEEE(国际电气和电子工程师协会)从应用上的定义为:

嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置(原文为deviceusedtocontrol,monitororassisttheoperationofequipment,machineryorplants)”[1]。

从20世纪70年代单片机的出现到今天各种各样的嵌入式处理器、微控制器的大规模应用,嵌入式系统已经有了40多年的发展历史,并且是以硬件和软件交替双螺旋式发展的。

综观嵌入式技术的发展,大致经历了以下4个阶段[2]:

第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能,应用于一些专业性强的工业控制系统中[2];第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统[2];第三阶段是以嵌入式操作系统为标志的嵌入式系统[2];第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段[2]。

嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:

[3]工业控制、交通管理、信息家电、家庭智能管理、网络及电子商务、环境监测、机器人等。

随着国内嵌入式应用的发展,ARM因其高性能、低功耗、低成本而成为移动通信、便携设备、消费与图像应用等嵌入式产品的首选。

基于ARM技术的微处理器,其应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面[4]。

ARM处理器核已经有6个系列产品:

ARM7、ARM9、ARM9E、ARM10E、SecureCore以及最新的ARM11系列。

随着信息化、智能化、网络化的发展,嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术、娱乐业等方面。

随着国内外嵌入式产品如车载电脑、机顶盒等的进一步开发和推广,嵌入式技术越来越和人们的生活紧密结合。

第二章硬件系统设计

2.1系统框图

首先,根据系统功能需求分析,本系统硬件部分的设计首先考虑它的性能,其次还要顾及它的成本,力求它的性价比及开发时间等指标达到最优。

在设计过程中必须考虑到如何使硬件平台尽可能地满足系统软件和应用程序运行时的资源要求如频率、存储器空间等,其次还必须提供丰富的通讯接口,包括程序下载的接口、USB设备接口以及与以太网的通讯接口等,硬件部分还包括电源部分以及其它功能模块的设计,最后还有成本控制的要求。

本系统主板整体设计框图如图2-1所示[2]:

2-1主板的整体设计框图

根据实际的应用,设计的该系统分为以下几个部分:

处理器、电源、复位模块、时钟模块、存储器系统、通讯接口部分、LCD和触摸屏、JTAG接口、键盘。

1.处理器:

S3C2410是整个硬件系统的核心,除了完成所有的逻辑运算和控制功能外,还提供各种通讯接口及其它的功能模块,例如LCD控制器、USB总线控制器等。

2.时钟模块:

提供给CPU内核时钟输入的模块。

3.存储系统:

外部扩展存储系统是必不可少的,包括SDRAM与FlashROM接口,它提供了操作系统和应用程序运行的空间并用来存放操作系统和应用程序以及其它数据。

4.通讯模块:

包括USB、UART、网络接口,提供主板与外界通讯的通道,USB接口还被用来接外部设备。

5.LCD显示器与触摸屏接口:

作为系统显示与人机交互的必不可少的接口。

6.JTAG接口:

作为系统调试接口,可以通过JTAG口下载程序或进行在线调试。

2.2三星S3C2410介绍

S3C2410是韩国三星公司的一款基于ARM920T内核的16/32位RISC嵌入式微处理器,主要面向手持设备以及高性价比,低功耗的应用。

运行的频率可以达到203MHzARM920T核由ARM9TDMI,存储管理单元(MMU)和高速缓存三部分组成。

其中MMU可以管理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache组成。

ARM920T有两个协处理器:

CP14和CP15。

CP14用于调试控制,CP15用于存储系统控制以及测试控制。

S3C2410的资源包括[5]:

(1)1个LCD控制器(支持STN和TFT带有触摸屏的液晶显示屏)。

(2)SDRAM控制器。

(3)3个通道的UART。

(4)4个通道的DMA。

(5)4个具有PWM功能的计时器和一个内部时钟。

(6)8通道的10位ADC。

(7)触摸屏接口。

(8)IIS总线接口。

(9)2个USB主机接口,1个USB设备接口。

(10)2个SPI接口。

(11)SD接口和MMC卡接口。

(12)看门狗计数器。

(13)117个通用I/O口和24位外部中断源。

(14)8通道10位AD控制器。

2.3TFT液晶显示屏

TFT型液晶显示技术采用了“主动式矩阵”的方式来驱动。

方法是利用薄膜技术所做成的电晶体电极,利用扫描的方法“主动地”控制任意一个显示点的亮与暗。

光源照射时先通过下偏光片向上透出,借助液晶分子传导光线。

本次设计的实际系统采用了夏普256K色3.5英寸TFT液晶屏,分辨率为320*240,通过VFRAME(帧同步)、VLINE(行同步)、VCLK(点时钟)、VDATA(视频数据)、VM(开关)等信号可以直接与S3C2410接口。

2.4S3C2410LCD控制器

2.4.1概述

S3C2410X中的LCD控制器由传送逻辑构成,这种逻辑是把位于系统内存显示缓冲区中LCD视频数据传到外部的LCD驱动器。

LCD控制器支持单色,使用基于时间的抖动算法和帧频控制的方法,可以支持每像素2位(四级灰度)或每像素4位(16级灰度)的单色LCD显示屏。

支持每像素1位、2位、4位和8位带有调色板的TFT彩色LCD和每像素16位与24位的无调色板真彩色显示。

根据屏幕的水平与垂直像素数,数据界面的数据宽度,界面时间和自刷新速率,LCD控制器可以编程以支持各种不同要求的显示屏[6]。

2.4.2方框图

图2-2LCD控制器方框图

S3C2410中LCD控制器用为传送视频数据和产生需要的控制信号的,如VFRAME,VLINE,VCLK,VM,等。

除控制信号外,S3C2410X中的LCD控制器还有传送视频数据的端口,如图中VD[23:

0]所示。

LCD控制器由REGBANK,LCDCDMA,VIDPRCS,TIMEGEN,andLPC3600(如图2-2LCD控制器框图)组成。

REGBANK有17个可编程寄存器组和用来配置LCD控制器的256*16的调色板存储器。

LCDCDMA是一个专用DMA,自动传送数据到LCD驱动器。

利用这个专用的DMA,视频数据可以在没有CPU的参与下自动显示。

VIDPRCS从LCDCDMA接收视频数据,然后将其转换成适合的数据格式通过数据端口VD[23:

0]发送到LCD驱动器上,例如4/8位单扫描或4位双扫描模式。

TIMEGEN由可编程逻辑组成,支持各种常见LCD驱动器的定时与速率界面的不同要求。

TIMEGEN模块产生FRAME,VLINE,VCLK,VM等信号。

数据流描述:

LCDCDMA有FIFO(First-InFirst-Out,先入先出)存储器。

当FIFO为空或者部分为空时,LCDCDMA模块就以爆发式传送模式从帧存储器中取数据(每次爆发式请求连续取16个字节,期间不允许总线控制权的转变)。

当传送请求被位于内存控制器中的总线仲裁器接受时,将有连续的4个字的数据从系统内存送到外部的FIFO。

FIFO的大小总共为28字,其中分别有12个字的FIFOL和16个字的FIFOH。

S3C2410X有两个FIFO存储器以支持双扫描显示模式。

在单扫描模式下只有一路FIFO(FIFOH)工作。

2.4.3TFT型LCD控制器操作

1.LCD控制器的外部接口信号

VSYNC:

垂直同步信号

HSYNC:

水平同步信号

VCLK:

像素时钟信号

VD[23:

0]:

LCD像素数据输出端口

VDEN:

数据使能信号

LEND:

行结束信号

LCD_PWREN:

LCD屏电源控制信号

2.TIMEGEN(脉冲发生器)产生适合LCD驱动器的各种控制信号,如VSYNC,HSYNC,VCLK,VDEN,和LEND等信号。

这些控制信号与寄存器组中的控制寄存器LCDCON1/2/3/4/5的配置密切相关。

基于这些可编程LCD控制寄存器,脉冲发生器可以产生可编程的信号,可支持各种不同类型的LCD驱动器。

VSYNC和HSYNC脉冲的产生依赖于LCDCON2/3寄存器的HOZVAL域和LINEVAL域的配置。

HOZVAL和LINEVAL的值由LCD屏的尺寸决定,如下公式:

HOZVAL=水平显示尺寸-1

LINEVAL=垂直显示尺寸-1

VCLK信号的频率取决于LCDCON1寄存器中的CLKVAL域。

VCLK和CLKVAL的关系如下,其中CLKVAL的最小值是0:

VCLK(Hz)=HCLK/[(CLKVAL+1)×2]

帧频率是VSYNC信号的频率,它与LCDCON1和LCDCON2/3/4寄存器的VSYNC、VBPD、VFPD、LINEVAL、HSYNC、HBPD、HFPD、HOZVAL和CLKVAL都有关系。

大多数LCD驱动器都需要与显示器相匹配的帧频率,帧频率计算公式如下:

FrameRate=1/{[(VSPW+1)+(VBPD+1)+(LINEVAL+1)+(VFPD+1)]×[(HSPW+1)+(HBPD+1)+(HFPD+1)+(HOZVAL+1)]×[2×(CLKVAL+1)/(HCLK)]}

3.TFT-LCD信号时序图

图2-3TFT-LCD信号时序图

4.视频操作

S3C2410中TFTLCD控制器支持1、2、4或8位每像素带调色板显示和16或24位每像素无调色板真彩色显示。

支持多种颜色映射选择的256色调色板,使用户的操作更具弹性。

5.虚拟显示

S3C2410X支持硬件方式的水平和垂直滚屏。

要实现滚屏,可修改LCDSADDR1和LCDSADDR2寄存器中的LCDBASEU和LCDBASEL的值(如图2-4)。

但不是通过修改PAGEWIDTH和OFFSIZE来实现。

显示缓冲区中的图像在尺寸上应比LCD显示屏大些。

图2-4虚拟显示滚屏

6.LCD的电源控制

S3C2410X有电源控制(PWREN)功能。

启用电源控制时,引脚LCD_PWREN的输出值是由ENVID控制的。

换言之,当引脚LCD_PWREN连接至LCD屏的电源开启控制端后,LCD屏的电源就自动由ENVID的设置确定。

S3C2410X亦有极性反转位(INVPWREN),可使PWREN信号的极性反转。

此功能只有当LCD屏有电源控制端口且被正确连接至LCD_PWREN引脚时方为有效。

第三章TFT屏驱动设计

3.1开发环境

ARM处理器产品作为一种高性能、低功耗的处理器产品,现在已经得到广泛应用。

ARM开发工具也因此得到很大的发展,ARM应用软件的开发工具根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等[7]。

本次设计选用的开发环境为ADS1.2。

ADS1.2提供完整的WINDOWS界面开发环境,C编译器效率极高,支持C以及C++,可以很方便的使用C语言进行开发。

提供软件模拟仿真功能,很容易使初学习者能够熟悉ARM的指令系统;配合FFT-ICE使用ADS1.2提供强大的实时调试跟踪功能,片内运行情况尽在掌握。

3.2S3C2410启动过程

3.2.1硬件启动过程[8]

1.在板子上电的一开始,系统首先自动判断是否是autoboot模式(这是由硬件设计阶段,由硬件工程师对mcu的引脚连线决定的),我所使用的s3c2410是带有nandflash的,并且被设置成autoboot,从nandflash开始启动。

2.在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(这4k区域存放着bootloader的最前面4k代码)拷贝到samsung所谓的"steppingstone"里面(实际上是一块4k大小的SRAM).这一过程完全由硬件自动实现,不需软件控制。

3.在拷贝完前4k代码后,nandflash控制器自动将"steppingstone"映射到arm地址空间0x00000000开始的前4k区域。

4.在映射过程完成后.nandflash控制器将pc指针直接指向arm地址空间的0x00000000位置,准备开始执行"steppingstone"上的代码.

5.而"steppingstone"上从nandflash拷贝过来的4k代码,是程序员写的bootloader的前4k代码.这个bootloader在之前写好,并已经被烧写到nandflash的0x00000000开始的最前面区域..而这"steppingstone"上的4k代码就是bootloader的前4k代码.

6.在pc指向arm地址空间的0x00000000后,系统就开始执行指令代码.这4k代码的任务是:

初始化硬件,设置中断向量表,设置堆栈,然后一个很重要的任务是,将nandflash的最前面区域的bootloader(包含4k启动代码)拷贝到SDRAM中去,bootloader代码的大小是写好bootloader就确定的.然后只需要确定bootloader想映射到SDRAM的起始位置。

7.在完成对nandflash上的bootloader搬移后,找到4k代码的搬移代码最后一个指令的下一个指令在SDRAM的bootloader的地址,然后跳转到该位置,继续执行bootloader的剩余代码引导系统.

3.2.2LCD的初始化

LCD显示模块由S3C2410的LCD控制器和TFT液晶LCD显示器组成。

其显示方式以直接操作显示缓冲区的内容进行,LCD控制器通过DMA从显示缓冲区中获取数据,而不需要CPU干预[9]。

本系统采用TFTLCD的分辨率为320×240。

在点亮LCD之前,首先对LCD控制器相关的寄存器进行初始化,从而使LCD控制器的配置与外接LCD模块特性能够匹配;同在内存中划出一块显示缓冲区,与显示像素点一一对应[10],其主要过程包括

(1)初始化LCD端口。

(2)申请显示缓冲区。

(3)初始化LCD控制寄存器,包括设置LCD分辨率、扫描频率、显示缓冲区等。

按照上述分析,初始化程序如下:

第一部分:

TFTLCD数据和控制端口初始化,包括初始化了VD[7:

0],VD[15:

8],

LCDVF[2:

0],VM,VFRAME,VLINE,VCLK,LEND等数据以及控制信号。

函数名:

staticvoidLcd_Port_Init(void)

第二部分:

申请显示缓冲区。

S3C2410的LCD控制模块自带了DMA控制器,只

要在SDRAM里面开一块空间,然后设定要DMA的起始地址(LCDSADDR1寄存器)和结束地址(LCDSADDR2)就可以了。

注意,LCDSADDR2指向的是整个大缓冲区之后的第一个地址。

第三部分:

LCD控制寄存器初始化。

staticvoidLcd_Init(void)

{

rLCDCON1=(CLKVAL_TFT_240320<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;//(3<<5):

11(二进制)=TFT型LCD显示(12<<1):

1100=TFT型16位/像素0:

ENVIDLCD视频输出和逻辑信号使能位0=视频输出和控制信号无效

rLCDCON2=(VBPD_240320<<24)|(LINEVAL_TFT_240320<<14)|(VFPD_240320<<6)|(VSPW_240320);

//垂直同步信号的后肩3,LCD屏的垂直尺寸240-1,垂直同步信号的前肩5,垂直同步信号的脉宽15,

rLCDCON3=(HBPD_240320<<19)|(HOZVAL_TFT_240320<<8)|(HFPD_240320);

//水平同步信号的后肩5,LCD屏水平尺寸320-1,水平同步信号的前肩15rLCDCON4=(MVAL<<8)|(HSPW_240320);

//MVAL=13,水平同步信号的脉宽8

rLCDCON5=(1<<11)|(1<<10)|(1<<9)|(1<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<3)|(0<<2)|(0<<1)|

(1);

//FRM5:

6:

5,HSYNCandVSYNCareinverted

//确定16bpp显示时输出数据的格式1=5:

6:

5格式

//决定VCLK的有效极性,1=VCLK上升沿时取数据

//HSYNC脉冲的极性0=正常1=反转

//VSYNC脉冲的极性1=反转

//VD(视频数据)脉冲的极性0=正常

//VDEN信号的极性0=正常

//PWREN信号的极性0=正常

//LEND信号的极性0=正常

//LCD_PWREN输出信号使能位1=PWREN信号有效

//LEND输出信号使能位0=LEND信号无效

//字节交换控制位0=不可交换

//半字交换控制位1=可以交换

//帧缓冲起始地址寄存器

rLCDSADDR1=(((U32)LCD_BUFER>>22)<<21)|M5D((U32)LCD_BUFER>>1);

//系统内存中视频缓冲区的位置A[30:

22]

//指示帧缓冲区的开始地址A[21:

1]M5D((U32)LCD_BUFER指取(U32)LCD_BUFER的低21位

rLCDSADDR2=M5D(((U32)LCD_BUFER+SCR_XSIZE_TFT_240320*SCR_YSIZE_TFT_240320*2)>>1);

rLCDSADDR3=(((SCR_XSIZE_TFT_240320-LCD_XSIZE_TFT_240320)/1)<<11)|(LCD_XSIZE_TFT_240320/1);

//LCD中断屏蔽寄存器决定哪一个中断源被屏蔽。

被屏蔽的中断源将不会被响应。

rLCDINTMSK|=(3);

//MASKLCDSubInterrupt

//LPC3600控制寄存器

rLPCSEL=0;

//DisableLPC3600

//临时调色板寄存器

rTPAL=0;//DisableTempPalette

}

初始化成功并启动LCD的显示,就可以通过对系统存储器的写入来显示屏上显示出对应的内容。

如下面代码为在LCD的(X,Y)位置处以颜色C打一个点。

staticvoidPutPixel(U32x,U32y,U32c)

{

if((x

LCD_BUFER[(y)][(x)]=c;

}

最直观的图形显示方式就是将图形中的颜色信息逐点输出到LCD的相应位置,有了上面的基础,实现整屏图形的显示或者部分图形显示就变得非常简单。

3.3建立开发系统

3.3.1硬件调试链接

1.调试系统架构体系

整个调试系统包括集成调试环境和硬件仿真器,它们组成了一个类似于“客户—服务器”模型的系统,服务器端把所有硬件封装起来,给客户端只提供了一个虚拟的处理器接口。

客户端的调试工具软件通过一个动态链接库与服务器相连,所以服务器一侧的硬件和客户端的调试工具软件是相互独立的。

在同一个动态链接库的基础上,双方可以自动行升级或替换,同样也方便了用户选择不同的仿真器和调试软件来组合自己的调试平台[11]。

一个具体的调试程序应该能够支持许多不同的链接库,不同的链接库提供了不同的功能调用。

以ADS工具包为例,“ARMulate.dll”提供了一个软ARM内核,用作程序的逻辑验证。

若要把Multi-ICEServer程序连接在一起进行实时仿真,则只要调入“MultiICE.dll”就可以了。

该动态库文件在Multi-ICEServer的安装目录下可以找到。

调试系统架构见下图3-1。

图3-1调试系统架构

2.调试连接

ARMJTAG使用标准的25芯并口插座和20针的JTAG插座作为接口。

与PC的连接线使用标准的25芯并口连接线缆,与目标板的连接线使用20芯的IDC宽带线缆。

PC机通过并口向Multi-ICE发送数据,Multi-ICE对嵌入式系统的CPU的JTAG接口产生响应的操作。

Multi-ICE通过20芯的JTAG接口给Multi-ICE内部硬件系统供电。

使用Multi-ICE的调试系统如图3-2所示。

图3-2使用Multi-ICE的调试系统示意图

3.3.2软件使用

使用Multi-ICE调试系统时,还要在PC机上安装Multi-ICEServer软件,配合硬件调试。

软件的使用流程是这样的:

(1)保证硬件连接正确的前提下,每次使用Multi-ICE是都要启动Multi-ICEServer(仿真器驱动程序),运行Auto-Configure来检测目标板上的CPU。

(2)启动CodeWarriorforARMDeveloperSuite(ADS集成开发环境)建立或调入项目文件,编译项目。

(3)在AXD中进行了一些设置工作后开始进行仿真。

 

第四章TFT屏动画程序开发

此次毕业设计中关于小车跑动的显示程序的实现,我采用了在固定点画出小车,然后利用TFT屏滚屏实现小车的移动。

4.1设计图

图4-1为原始设计图

图4-1原始设计图

4.2需要函数的实现

1.清屏函数

思想:

即用固定颜色填充屏幕

函数名:

staticvoidLcd_ClearScr(U16c)

staticvoidLcd_ClearScr(U16c)

{

unsignedintx,y;

for(y=0;y

{

for(x=0;x

{

LCD_BUFER[y][x]=c;

}

}

}

2.画直线函数

思想:

数学上的直线是没有宽度、由无数个点构成的集合,显然,光栅显示器只能近地似显示直线。

当我们对直线进行光栅化时,需要在显示器有限个象素中,确定最佳逼近该直线的一组象素,并且按扫描线顺序,对这些象素进行写操作,这个过程称为用显示器绘制直线或直线的扫描转换。

由于在一个图形中,可能包含成千上万条直线,所以要求绘制算法应尽可能地快。

在这里,使用数值微分(DDA)法,设过端点P0(x0 ,y0)、P1(x1 ,y1)的直线段为L(P0 ,P1),则直线段L的斜率为k=(y1-y0)/(x1-x0)。

要在显示器显示L,必须确定最佳逼近L的像素集合。

我们从L的起点P0的横坐标x0向L的终点P1的横坐标x1步进,取步长=1(个象素),用L的直线方程y=kx+b计算相应的y坐标,并取象素点(x,round(y))作为当前点。

因为:

 yi+1 =  kxi+1+b  =  kxi+b+kDx  =  yi+kDx  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1