ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:192.60KB ,
资源ID:7451830      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7451830.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(TFT液晶显示屏设计定稿.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、TFT液晶显示屏设计定稿第一章 绪论根据IEEE(国际电气和电子工程师协会)从应用上的定义为:嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置(原文为device used to control, monitor or assist the operation of equipment, machinery or plants)”1。从20世纪70年代单片机的出现到今天各种各样的嵌入式处理器、微控制器的大规模应用,嵌入式系统已经有了40多年的发展历史,并且是以硬件和软件交替双螺旋式发展的。综观嵌入式技术的发展,大致经历了以下4个阶段2 :第一阶段是以单芯片为核心的可编程控制器形式的系

2、统,同时具有与监测、伺服、指示设备相配合的功能,应用于一些专业性强的工业控制系统中2;第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统2;第三阶段是以嵌入式操作系统为标志的嵌入式系统2;第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段2。嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:3 工业控制、交通管理、信息家电、家庭智能管理、网络及电子商务、环境监测、机器人等。随着国内嵌入式应用的发展,ARM因其高性能、低功耗、低成本而成为移动通信、便携设备、消费与图像应用等嵌入式产品的首选。基于ARM技术的微处理器,其应用约占据了32位RISC微

3、处理器75以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面4。ARM处理器核已经有6个系列产品:ARM7、ARM9、ARM9E、ARM10E、SecureCore以及最新的ARM11系列。随着信息化、智能化、网络化的发展,嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术、娱乐业等方面。随着国内外嵌入式产品如车载电脑、机顶盒等的进一步开发和推广,嵌入式技术越来越和人们的生活紧密结合。第二章 硬件系统设计2.1 系统框图首先,根据系统功能需求分析,本系统硬件部分的设计首先考虑它的性能,其次还要顾及它的成本,力求它的性价比及开发时间等指标达到最优。在设计过程中必须考虑到如何使硬件平台

4、尽可能地满足系统软件和应用程序运行时的资源要求如频率、存储器空间等,其次还必须提供丰富的通讯接口,包括程序下载的接口、USB设备接口以及与以太网的通讯接口等,硬件部分还包括电源部分以及其它功能模块的设计,最后还有成本控制的要求。本系统主板整体设计框图如图2-1所示2: 2-1主板的整体设计框图根据实际的应用,设计的该系统分为以下几个部分:处理器、电源、复位模块、时钟模块、存储器系统、通讯接口部分、LCD和触摸屏、JTAG接口、键盘。1处理器:S3C2410是整个硬件系统的核心,除了完成所有的逻辑运算和控制功能外,还提供各种通讯接口及其它的功能模块,例如LCD控制器、USB总线控制器等。2时钟模

5、块:提供给CPU内核时钟输入的模块。3存储系统:外部扩展存储系统是必不可少的,包括SDRAM与Flash ROM接口,它提供了操作系统和应用程序运行的空间并用来存放操作系统和应用程序以及其它数据。4通讯模块:包括USB、UART、网络接口,提供主板与外界通讯的通道,USB接口还被用来接外部设备。5LCD显示器与触摸屏接口:作为系统显示与人机交互的必不可少的接口。6JTAG接口:作为系统调试接口,可以通过JTAG口下载程序或进行在线调试。2.2 三星S3C2410介绍S3C2410 是韩国三星公司的一款基于ARM920T 内核的16/32 位RISC 嵌入式微处理器,主要面向手持设备以及高性价比

6、,低功耗的应用。运行的频率可以达到203MHz ARM920T 核由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位

7、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.3 TFT液晶显示屏TFT型液晶显示技术采用了“主动式矩阵”的方式来驱动。方法是利用薄膜技术所做成的电晶体电极,利用扫描的方法“主动地”控制任意一个显示点的亮与暗。光源照射时先通过下偏光片向上透出,借助液晶分子传导光线。本次设计的实际系统采用了夏普256K色3.5英寸TFT液晶屏,分辨率为320*240,通过VFRAME(帧同

8、步)、VLINE(行同步)、VCLK(点时钟)、VDATA(视频数据)、VM(开关)等信号可以直接与S3C2410接口。2.4 S3C2410 LCD控制器2.4.1概述S3C2410X 中的LCD 控制器由传送逻辑构成,这种逻辑是把位于系统内存显示缓冲区中LCD视频数据传到外部的LCD 驱动器。LCD 控制器支持单色,使用基于时间的抖动算法和帧频控制的方法,可以支持每像素2位(四级灰度)或每像素4 位(16 级灰度)的单色LCD 显示屏。支持每像素1 位、2 位、4 位和8 位带有调色板的TFT 彩色LCD 和每像素16 位与24 位的无调色板真彩色显示。根据屏幕的水平与垂直像素数,数据界面

9、的数据宽度,界面时间和自刷新速率,LCD 控制器可以编程以支持各种不同要求的显示屏6。2.4.2 方框图图2-2 LCD控制器方框图S3C2410 中LCD 控制器用为传送视频数据和产生需要的控制信号的,如VFRAME, VLINE,VCLK, VM,等。除控制信号外,S3C2410X 中的LCD 控制器还有传送视频数据的端口,如图中VD23:0所示。LCD 控制器由REGBANK, LCDCDMA, VIDPRCS, TIMEGEN, and LPC3600(如图2-2 LCD 控制器框图)组成。REGBANK 有17个可编程寄存器组和用来配置LCD 控制器的256*16的调色板存储器。LC

10、DCDMA 是一个专用DMA,自动传送数据到LCD 驱动器。利用这个专用的DMA,视频数据可以在没有CPU 的参与下自动显示。VIDPRCS 从LCDCDMA 接收视频数据,然后将其转换成适合的数据格式通过数据端口VD23:0发送到LCD 驱动器上,例如4/8 位单扫描或4 位双扫描模式。TIMEGEN 由可编程逻辑组成,支持各种常见LCD 驱动器的定时与速率界面的不同要求。TIMEGEN 模块产生FRAME, VLINE, VCLK, VM 等信号。数据流描述:LCDCDMA 有FIFO(First-In First-Out, 先入先出)存储器。当FIFO 为空或者部分为空时,LCDCDMA

11、 模块就以爆发式传送模式从帧存储器中取数据(每次爆发式请求连续取16个字节,期间不允许总线控制权的转变)。当传送请求被位于内存控制器中的总线仲裁器接受时,将有连续的4个字的数据从系统内存送到外部的FIFO。FIFO 的大小总共为28 字,其中分别有12个字的FIFOL 和16个字的FIFOH。S3C2410X 有两个FIFO 存储器以支持双扫描显示模式。在单扫描模式下只有一路FIFO(FIFOH)工作。2.4.3 TFT 型LCD 控制器操作1LCD控制器的外部接口信号VSYNC:垂直同步信号HSYNC:水平同步信号VCLK:像素时钟信号VD23:0: LCD像素数据输出端口VDEN:数据使能

12、信号LEND:行结束信号LCD_PWREN:LCD屏电源控制信号2TIMEGEN(脉冲发生器)产生适合LCD 驱动器的各种控制信号,如VSYNC, HSYNC, VCLK, VDEN,和LEND 等信号。这些控制信号与寄存器组中的控制寄存器LCDCON1/2/3/4/5 的配置密切相关。基于这些可编程LCD 控制寄存器,脉冲发生器可以产生可编程的信号,可支持各种不同类型的LCD 驱动器。VSYNC和HSYNC脉冲的产生依赖于LCDCON2/3寄存器的HOZVAL域和LINEVAL域的配置。HOZVAL和LINEVAL的值由LCD屏的尺寸决定,如下公式:HOZVAL=水平显示尺寸-1 LINEV

13、AL=垂直显示尺寸-1VCLK信号的频率取决于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)

14、+(HFPD+1)+(HOZVAL+1)2(CLKVAL+1)/(HCLK)3TFT-LCD信号时序图图2-3 TFT-LCD信号时序图4视频操作S3C2410 中TFT LCD 控制器支持1、2、4 或8 位每像素带调色板显示和16 或24 位每像素无调色板真彩色显示。支持多种颜色映射选择的256 色调色板,使用户的操作更具弹性。5虚拟显示S3C2410X 支持硬件方式的水平和垂直滚屏。要实现滚屏,可修改LCDSADDR1 和LCDSADDR2寄存器中的LCDBASEU 和LCDBASEL 的值(如图2-4)。但不是通过修改PAGEWIDTH 和OFFSIZE来实现。显示缓冲区中的图像在尺寸

15、上应比LCD 显示屏大些。图2-4 虚拟显示滚屏6LCD 的电源控制S3C2410X 有电源控制(PWREN)功能。启用电源控制时,引脚LCD_PWREN 的输出值是由ENVID 控制的。换言之,当引脚LCD_PWREN 连接至LCD 屏的电源开启控制端后,LCD 屏的电源就自动由ENVID 的设置确定。S3C2410X 亦有极性反转位(INVPWREN),可使PWREN 信号的极性反转。此功能只有当LCD 屏有电源控制端口且被正确连接至LCD_PWREN 引脚时方为有效。第三章 TFT屏驱动设计3.1开发环境ARM处理器产品作为一种高性能、低功耗的处理器产品,现在已经得到广泛应用。ARM开发

16、工具也因此得到很大的发展,ARM应用软件的开发工具根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等7。本次设计选用的开发环境为ADS1.2。ADS 1.2提供完整的WINDOWS界面开发环境,C编译器效率极高,支持C以及C+,可以很方便的使用C语言进行开发。提供软件模拟仿真功能,很容易使初学习者能够熟悉ARM的指令系统;配合FFT-ICE使用ADS 1.2提供强大的实时调试跟踪功能,片内运行情况尽在掌握。3.2 S3C2410启动过程3.2.1硬件启动过程81在板子上电的一开始,系统首先自动判断是否是autoboot

17、模式(这是由硬件设计阶段,由硬件工程师对mcu的引脚连线决定的),我所使用的s3c2410是带有nandflash的,并且被设置成autoboot,从nandflash开始启动。2在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(这4k区域存放着bootloader的最前面4k代码)拷贝到samsung所谓的steppingstone里面(实际上是一块4k大小的SRAM).这一过程完全由硬件自动实现,不需软件控制。3在拷贝完前4k代码后,nandflash控制器自动将steppingstone映射到arm地址空间0x00000000

18、开始的前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代码的任务是:初始化硬件,设置中断向量表,

19、设置堆栈,然后一个很重要的任务是,将nandflash的最前面区域的bootloader(包含4k启动代码)拷贝到SDRAM中去,bootloader代码的大小是写好bootloader就确定的.然后只需要确定bootloader想映射到SDRAM的起始位置。7在完成对nandflash上的bootloader搬移后,找到4k代码的搬移代码最后一个指令的下一个指令在SDRAM的bootloader的地址,然后跳转到该位置,继续执行bootloader的剩余代码引导系统.3.2.2 LCD的初始化LCD显示模块由S3C2410的LCD控制器和TFT液晶LCD显示器组成。其显示方式以直接操作显示缓

20、冲区的内容进行,LCD控制器通过DMA从显示缓冲区中获取数据,而不需要CPU干预9。本系统采用TFT LCD的分辨率为320240。在点亮LCD之前,首先对LCD控制器相关的寄存器进行初始化,从而使LCD控制器的配置与外接LCD模块特性能够匹配;同在内存中划出一块显示缓冲区,与显示像素点一一对应10,其主要过程包括(1) 初始化LCD端口。(2) 申请显示缓冲区。(3) 初始化LCD控制寄存器,包括设置LCD分辨率、扫描频率、显示缓冲区等。按照上述分析,初始化程序如下:第一部分:TFT LCD数据和控制端口初始化,包括初始化了VD7:0,VD15:8,LCDVF2:0,VM,VFRAME,VL

21、INE,VCLK,LEND等数据以及控制信号。函数名 : static void Lcd_Port_Init(void)第二部分:申请显示缓冲区。S3C2410的LCD控制模块自带了DMA控制器,只要在SDRAM里面开一块空间,然后设定要DMA的起始地址(LCDSADDR1寄存器)和结束地址(LCDSADDR2)就可以了。注意,LCDSADDR2指向的是整个大缓冲区之后的第一个地址。第三部分: LCD控制寄存器初始化。static void Lcd_Init(void)rLCDCON1=(CLKVAL_TFT_2403208)|(MVAL_USED7)|(35)|(121)|0; / (35)

22、:11(二进制) = TFT型LCD显示 (121):1100 = TFT型16位/像素 0 :ENVID LCD视频输出和逻辑信号使能位 0 = 视频输出和控制信号无效rLCDCON2=(VBPD_24032024)|(LINEVAL_TFT_24032014)|(VFPD_2403206)|(VSPW_240320); /垂直同步信号的后肩3,LCD 屏的垂直尺寸240-1,垂直同步信号的前肩5,垂直同步信号的脉宽15, rLCDCON3=(HBPD_24032019)|(HOZVAL_TFT_2403208)|(HFPD_240320);/水平同步信号的后肩5,LCD屏水平尺寸320-1

23、,水平同步信号的前肩15 rLCDCON4=(MVAL8)|(HSPW_240320); /MVAL=13, 水平同步信号的脉宽8rLCDCON5=(111)|(110)|(19)|(18)|(07)|(06)|(05)|(04)|(13)|(02)|(022)1);/系统内存中视频缓冲区的位置A30:22/指示帧缓冲区的开始地址A21: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=(SC

24、R_XSIZE_TFT_240320-LCD_XSIZE_TFT_240320)/1)11)|(LCD_XSIZE_TFT_240320/1);/LCD中断屏蔽寄存器 决定哪一个中断源被屏蔽。被屏蔽的中断源将不会被响应。rLCDINTMSK|=(3); / MASK LCD Sub Interrupt /LPC3600控制寄存器rLPCSEL=0; / Disable LPC3600/临时调色板寄存器rTPAL=0; / Disable Temp Palette初始化成功并启动LCD的显示,就可以通过对系统存储器的写入来显示屏上显示出对应的内容。如下面代码为在LCD的(X,Y)位置处以颜色C打

25、一个点。static void PutPixel(U32 x,U32 y,U32 c)if ( (x SCR_XSIZE_TFT_240320) & (y SCR_YSIZE_TFT_240320) )LCD_BUFER(y)(x) = c;最直观的图形显示方式就是将图形中的颜色信息逐点输出到LCD的相应位置,有了上面的基础,实现整屏图形的显示或者部分图形显示就变得非常简单。3.3建立开发系统3.3.1硬件调试链接1调试系统架构体系整个调试系统包括集成调试环境和硬件仿真器,它们组成了一个类似于“客户服务器”模型的系统,服务器端把所有硬件封装起来,给客户端只提供了一个虚拟的处理器接口。客户端的调

26、试工具软件通过一个动态链接库与服务器相连,所以服务器一侧的硬件和客户端的调试工具软件是相互独立的。在同一个动态链接库的基础上,双方可以自动行升级或替换,同样也方便了用户选择不同的仿真器和调试软件来组合自己的调试平台11。一个具体的调试程序应该能够支持许多不同的链接库,不同的链接库提供了不同的功能调用。以ADS工具包为例,“ARMulate.dll”提供了一个软ARM内核,用作程序的逻辑验证。若要把Multi-ICE Server程序连接在一起进行实时仿真,则只要调入“MultiICE.dll”就可以了。该动态库文件在Multi-ICE Server的安装目录下可以找到。调试系统架构见下图3-1

27、。图3-1调试系统架构2调试连接ARM JTAG使用标准的25芯并口插座和20针的JTAG插座作为接口。与PC的连接线使用标准的25芯并口连接线缆,与目标板的连接线使用20芯的IDC宽带线缆。PC机通过并口向MultiICE发送数据,MultiICE对嵌入式系统的CPU的JTAG接口产生响应的操作。MultiICE通过20芯的JTAG接口给MultiICE内部硬件系统供电。使用MultiICE的调试系统如图3-2所示。图3-2使用MultiICE的调试系统示意图3.3.2软件使用使用MultiICE调试系统时,还要在PC机上安装MultiICE Server软件,配合硬件调试。软件的使用流程是

28、这样的:(1)保证硬件连接正确的前提下,每次使用MultiICE是都要启动Multi-ICE Server(仿真器驱动程序),运行AutoConfigure来检测目标板上的CPU。(2)启动CodeWarrior for ARM Developer Suite(ADS集成开发环境)建立或调入项目文件,编译项目。(3)在AXD中进行了一些设置工作后开始进行仿真。第四章 TFT屏动画程序开发此次毕业设计中关于小车跑动的显示程序的实现,我采用了在固定点画出小车,然后利用TFT屏滚屏实现小车的移动。4.1设计图图4-1为原始设计图图4-1原始设计图4.2需要函数的实现1清屏函数思想:即用固定颜色填充屏

29、幕函数名:static void Lcd_ClearScr(U16 c)static void Lcd_ClearScr(U16 c) unsigned int x,y ; for( y = 0 ; y SCR_YSIZE_TFT_240320 ; y+ ) for( x = 0 ; x SCR_XSIZE_TFT_240320 ; x+ ) LCD_BUFERyx = 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