基于FPGA的彩色液晶显示驱动设计.docx

上传人:b****3 文档编号:3897931 上传时间:2022-11-26 格式:DOCX 页数:37 大小:139.04KB
下载 相关 举报
基于FPGA的彩色液晶显示驱动设计.docx_第1页
第1页 / 共37页
基于FPGA的彩色液晶显示驱动设计.docx_第2页
第2页 / 共37页
基于FPGA的彩色液晶显示驱动设计.docx_第3页
第3页 / 共37页
基于FPGA的彩色液晶显示驱动设计.docx_第4页
第4页 / 共37页
基于FPGA的彩色液晶显示驱动设计.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

基于FPGA的彩色液晶显示驱动设计.docx

《基于FPGA的彩色液晶显示驱动设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的彩色液晶显示驱动设计.docx(37页珍藏版)》请在冰豆网上搜索。

基于FPGA的彩色液晶显示驱动设计.docx

基于FPGA的彩色液晶显示驱动设计

基于FPGA的彩色液晶显示驱动设计

摘要:

随着信息产业和微电子技术的发展,可编程逻辑嵌入式系统设计技术已经成为信息产业最热门的的技术之一。

彩色液晶的使用也是无处不在。

论文研究并实现了基于FPGA的以彩色液晶显示为例的驱动设计,选题具有重要意义。

论文根据应用需要,介绍了彩色液晶显示的原理,用硬件描述语言VerilogHDL设计了彩色液晶显示驱动设计,还包括其显示控制的设计。

并实现了以HX8347为核心的彩色液晶显示模块与FPGA(Actel公司的ProASIC3系列A3P250)的接口模块。

利用LiberoIDEv9.0作为仿真软件及开发平台。

仿真和测试结果表明该系统的设计方法灵活可靠,能够实现对彩色液晶的显示的驱动与控制功能。

关键词:

FPGA;彩色液晶显示;驱动与控制;VerilogHDL

 

DesignofColorLCDDisplayDriverBasedonFPGA

Abstract:

Asinformationindustryandthedevelopmentofmicroelectronicstechnology,programmablelogicembeddedsystemdesigntechnologyhasbecomeoneofthemostpopulartechonlogyoftheinformationindustry.ColorLCDisalsobeingusedeverywhere.ThesisandimplementedinFPGA-basedcolorliquidcrystaldisplayasanexampleofthedrivedesign,thetopichasgreatsignificance.

Thesisaccordingtoapplicationneeds,introducestheprinciplesofcolorliquidcrystaldisplay,usingtheVerilogHDLhardwaredescriptionlanguagedesignedcolorLCDdisplaydriverdesign,butalsothedesignofthedisplaycontrol.AchievetheHX8347asthecorecolorLCDdisplaymoduleandtheFPGA(TheActelcompanyProASIC3seriesA3P250)interfacemodule.UsingtheLiberoIDEv9.0asthesimulationsoftwareanddevelopmentplatform.Simulationandtestresultsshowthatthedesignofthesystemflexibleandreliable,abletoachievethecolorliquidcrystaldisplaydriverandcontrol.

KeyWords:

FPGA,ColorLCDdisplay,DriverandControl,VerilogHDL

第1章绪论

1.1研究背景

所要编写的程序是基于FPGA的彩色液晶显示驱动设计。

FPGA是现场可编程门阵列的简称,FPGA的应用领域最初为通信领域,但目前,随着信息产业和微电子技术的发展,可编程逻辑嵌入式系统设计技术已经成为信息产业最热门的技术之一。

应用领域遍及航空航天、医疗、通信、网络通讯、安防、广播、汽车电子、消费类市场、测量测试等多个热门领域。

并随着工艺的进步和技术的发展,向更多、更广泛的应用领域发展。

越来越多的设计也开始由ASIC(ApplicationSpecificIntegratedCircuit)转向FPGA,FPGA正以各种电子产品的形式进入了人们日常生活的各个角落【10】。

现在液晶产品已进入人们的日常生活,从电子手表、计算器到电子游戏机,从BP机、手机到商务通,从仪器仪表到家用电器,随处可见液晶显示器的应用。

近年来,为满足大容量、高分辨率、高性能彩色显示的需求,人们又开发出薄膜晶体管彩色液晶显示器,这种彩色液晶显示器在结构上同其它类型的液晶显示器没有太大的区别,过去的液晶显示屏一个控制元件控制一整条水平和垂直扫描线,没有办法从根本上解决交叉干扰问题,而且显示容量也受到限制。

而彩色液晶显示屏水平和垂直扫描线上的每一个点,都由一个控制元件来控制,这样只要控制每个像素点就可以获得画面清晰、色彩鲜艳的图像。

这种液晶屏不仅在画面质量可以同传统的阴极射线管显示屏相媲美,而且厚度只有阴极射线管显示屏的十分之一,这就使显示器便携化成为可能,使显示器应用个人化成为现实。

彩色薄膜晶体管显示器是一种跨世纪的信息显示技术,被世界公认为显示器的未来,它的出现和发展,将计算机、办公自动化,电视通讯和仪器、仪表等产品的开发推向一个崭新的阶段,目前笔记本电脑几乎全部采用彩色液晶显示屏,大屏幕投影仪,全球定位系统、车载电视、数码相机、可视电话也都使用液晶产品。

同时家用液晶电视和液晶壁挂电视的产品已经推出,这些都归功于彩色液晶显示器技术的成熟,制作成本的不断降低,以及在改善液晶产品视角特性和提高响应速度方面的迅速进展【11】。

液晶显示技术的发展给信息产业带来划时代的革命,液晶显示器将成为21世纪最主要的显示器件。

1.2国内外研究现状

1.2.1FPGA动态可重构技术【5】

FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使FPGA越来越多地取代了ASIC的市场,特别是对小批量、多品种的产品需求,使FPGA成为首选。

目前,FPGA的主要发展动向是:

随着大规模现场可编程逻辑器件的发展,系统设计进入"片上可编程系统"(SOPC)的新纪元;芯片朝着高密度、低压、低功耗方向挺进;国际各大公司都在积极扩充其IP库,以优化的资源更好的满足用户的需求,扩大市场;特别是引人注目的所谓FPGA动态可重构技术的开拓,将推动数字系统设计观念的巨大转变【3】。

所谓FPGA动态可重构技术,就是要对基于SRAM编程技术FPGA的全部或部分逻辑资源实现在系统的动态的功能的变换。

动态可重构FPGA则是基于动态重构技术的一种可在系统实现动态配置的新型FPGA芯片。

下面介绍几种典型的动态可重构FPGA结构。

1.M1芯片

所谓M1芯片是美国Califomia大学的MorphoingSystem工程提出的一种粗粒度、多重Context可重构结构,它由可重构元胞阵列(RC)、处理器核(Tiny.RISC)、帧缓冲器(FB)及数据存储器(DM)组成。

运行时,在指令控制下将要执行相应功能的Context信息从CM装载到RC中,并调用相应的单元动态的配置数据,同时,装载下一配置数据到Context存储器。

FB分为两个组,当RC阵列在处理FB中的一组数据时,DMA控制器交换外部存储器和另外一组间的数据。

如果计算和数据的转移(RAM

FB)在FB的不同组间执行,则他们在时间上相互覆盖。

DMA控制器同样也能够实现外部RAM和Context存储器间的数据转移。

2.SIDSAFIPSOC结构

FIPSOC是SIDSA工程提出的一种粗粒度结构的FPGA,它由微控制器、可编程数字部分、可配置模拟部分(包括4条不同的放大通道,比较器,A/D和D/A模块等),不同功能模块间的接口模块组成。

其核心部分是可编程数字部分,由一个两维的可编程元胞阵列DMC(DigitalMacroCell)组成。

控制部分是一个标准的8051微处理器。

复位后,8051核首先对可编程元胞进行配置,配置完毕后可以当作一个通用的微处理器使用。

为了更好的支持FIPSOC的动态可重构性,已对其指令和功能单元做了一些改进。

3.MIT提出的DPGA

DPGA是麻省理工大学的Transit工程提出的划分结构为二维阵列单元的DR-FPGA。

和常规FPGA的AE(由4个输入查询表格(LUT)和通道触发器(FF)组成)一样,都是基于可编程查找表格(LUT)结构,但是DPGA的阵列单元内部的LUT是成对出现的。

一个LUT用于配置数据,还有一个LUT映射可传播的配置数据本地配置中。

另外,DPGA器件实现时间上的重配置时,AE内部要能实现多种功能以供配置,而不是像常规FPGA仅能实现固定单一功能,所谓的重构只是对FPGA重复配置同一功能。

1.3本文工作与内容安排

1.3.1本文工作

本文主要工作是基于FPGA对彩色液晶显示的驱动进行设计,实现一个高性能的可擦除与可在线编程的彩色液晶显示的驱动。

主要是用VerilogHDL语言来实现功能代码,通过液晶显示器与FPGA芯片接口的融合,使芯片所能体现的功能最终能在液晶显示器上展示出来。

1.完成显示控制电路的设计,使液晶显示器能按功能要求来显示作者想要的结果。

2.完成显示驱动电路的设计,使液晶显示器在最基本的条件下能产生显示效果。

1.3.2内容安排

本文结合题目特点,简单介绍了所要设计系统的组成,并对之所要设计的部分作了详细讨论,以及液晶显示器的显示原理。

本文具体安排如下:

第一章简单介绍了液晶显示与FPGA在当今社会的广泛应用,论文研究背景,具体工作以及框架结构与编写顺序。

第二章详细介绍了系统整体结构组成与方案设计。

包括系统的方案论证与总体实现原理并简要介绍了一下所用开发板的总体介绍。

第三章详细介绍了怎样实现设计。

选用分模块的方法来实现,包括时钟电路与液晶显示模块。

第四章简要介绍了软硬件的调试及调试方法与结果。

第五章就是对全文做的一个总结。

第2章系统的组成和方案设计

2.1系统简介

本设计用HX8347作为彩色液晶显示器的驱动芯片,基于FPGA编写控制程序写入芯片HX8347,并将其下载至FPGA芯片内,实现液晶屏的显示。

具体系统原理结构图如图2-1所示:

图2-1系统原理结构图

现对FPGA内所要设计模块功能进行介绍【4】:

1.显示控制电路

显示控制电路有两个作用:

为显示驱动电路提供必须的控制时序信号和数据信号。

显示控制电路接受MPU的操作信息,并控制LCD驱动电路,实现对LCD扫描时序的设置和显示数据的写入,从而完成对LCD的写操作。

用VerilogHDL硬件描述语言来完成。

显示控制电路的关键问题是对显示RAM的读写操作的逻辑控制,包括读写信号的时序问题以及读写地址的控制问题。

显示数据通过显示控制电路写到显示RAM中缓存,同时也要把显示RAM中的数据装载到显示驱动电路中进行显示;由于都是针对了显示RAM进行操作,且数据的流向不同,所以利用了状态机实现对应的时序,并通过RAM模块实现读写数据时数据总线与地址总线的切换。

2.显示驱动电路

显示驱动电路的作用:

产生显示时序和控制信号。

构成显示驱动的模块有时序产生模块、地址发生模块和数据拆分模块。

以点阵为320×240的单色LCD为例,显示一行的数据长度为40字节。

CLK脚接25MHZ时钟信号,经FPGA内分频模块产生显示屏所需要的像素时钟。

CLR为清屏信号,其作用为一桢数据显示完毕时将内部计数器清零。

ADDR为读/写操作地址,在写信号WR允许的情况下将来自于显示数据缓存器的数据写入HX8347对应RAM的地址空间内,在时序发生模块的控制下,读信号RD允许,读出RAM中的数据送至LCD进行显示。

即完成对LCD的读操作。

用VerilogHDL硬件描述语言来完成。

2.2系统方案论证

2.2.1设计基于语言的选择

基于FPGA的液晶显示驱动电路主要由时钟系统和液晶驱动系统两大部分构成,先由FPGA设置系统时钟使输出1HZ,再通过时钟模块进行分频,使得到500HZ的输出时钟,输出时钟作为驱动模块的时钟输入,驱动模块控制LCD的读写时序以及显示内容。

图2-2为电路框架图。

图2-2基于FPGA的液晶显示驱动电路框架图

ProASIC3系列开发板的功能很强,大部分工作都可以通过该开发板来完成。

所设计的逻辑程序或电路原理图文件经编译、适配后生成网络表文件,将该文件写入程序存储器内,通过配置电路在系统上电后将网络表文件下载到FPGA芯片中,FPGA芯片即可执行所设计的逻辑功能。

FPGA的运行速度更快,具有高灵活性和快速的定制性,扩展性强,FPGA芯片非常适合于进行快速原型设计。

2.2.2液晶显示模块的选择

液晶显示器件从其显示的内容看可分为字段型、点阵字符型和点阵图形式三种【8】。

点阵字符型液晶显示器是专门用于显示数字、字母、图形符号和少量自定义符号的显示器。

本项目要求既显示数字也要显示字母和文字,所以选择了LCD240X3202.8inch的TFT液晶屏。

它是由在深圳华禹高科技公司技术支持下的创易电子有限公司生产的一种具有8位或16位数据接口、3线或4线串行的多种接口方式。

内部含国际一级、二级图形及字符点阵型液晶显示模块。

利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

并且低电压低功耗(VCI:

2.3V—3.3V)是其又一显著特点。

由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁,该模块的价格也略低于相同点阵的图形液晶模块。

模块的外部接口信号如表2-1所示:

表2-1LCD240X320型液晶接口信号

管脚号

管脚名称

LEVER

管脚功能描述

1

/CS1

H/L

L:

选择芯片(左半屏)信号

2

/CS2

H/L

L:

选择芯片(右半屏)信号

3

GND

0

电源地

4

VDD

5.0V

电源电压

5

VO

---

液晶显示器驱动电压

6

D/I

H/L

D/I=“H”,表示DB7~DB0为显示数据

D/I=“L”,表示DB7~DB0为显示指令数据

7

R/W

H/L

R/W=“H”E=“H”数据读到DB7~DB0

R/W=“L”E=“H-L”数据写到IR或者DR

8

E

H/L

R/W=“L”E信号下降沿锁存DB7~DB0

R/W=“H”E=“H”DDRAM数据读到DB7~DB0

9

DB0

H/L

10

DB1

H/L

11

DB2

H/L

数据线

12

DB3

H/L

13

DB4

H/L

14

DB5

H/L

15

DB6

H/L

16

DB7

H/L

2.3系统总体实现原理

2.3.1彩色液晶显示原理

液晶是一种介于固体与液晶之间,具体规则性分子排列的有机化合物,一般最常用的液晶新型式为向列液晶,分子形状为细长帮形,长宽1nm-10nm,在不同电流电场作用下,液晶分子会做规则旋转90°排列,产生透明光度的差别,如此在电源开/关下产生明暗的区别,以此原理控制每个像素,便可构成所需图像。

光是一种电磁波,我们将其电场方向称为光的偏振方向。

我们可以通过偏光器来选择某一特定方向的偏振光,已偏极化的光经过一个偏光器是可全部通过或部分通过,视第二个偏光器的方向而定。

光经过物质时,折射光和光偏振的极化方向有关。

在大部分向列型液晶中,光偏极化方向与之相同折射率较大,光偏极化方向与之垂直时折射率较小。

一偏极光经过一液态晶体后其偏振方向有时会改变,到底会不会改变则视为液态晶体之排列而定。

所以我们改变液态晶体的排列方式即可改变通过光的偏振性。

若在液态晶体后面再加一个偏振器,则通过光的强度有所不同。

对于笔记本电脑或者桌面型的LCD显示器需要采用的更加复杂的彩色液晶显示器而言,还要具备专门处理彩色显示的色彩过滤层。

通常,在彩色LCD面板中,每一个像素都是由三个液晶单元格构成,其中每一个单元格前面都分别有红色,绿色或蓝色的过滤器。

这样,通过不同单元格的光线就可以在屏幕上显示出不同的颜色。

2.3.2设计思路

开发板的功能很强,大部分工作都可以通过该开发板来完成。

本设计主要由三个模块组成:

①系统时钟,时钟分频电路。

②液晶显示控制电路。

③液晶显示驱动电路。

此外,还有数据IO口通信电路。

(1)系统时钟,时钟分频电路,系统输入设置为48MHZ,经过锁相环PLL分频得到1MHZ时钟,再通过计数器分频得到500HZ的时钟,以适应LCD液晶驱动时钟。

(2)液晶显示控制电路,主要是控制LCD的读写时序以及显示内容的控制。

(3)液晶显示驱动电路,主要是写命令、等待状态、并行数据输出等状态的控制与转换。

2.3.3LCD240×320显示模块特性

LCD240320为数字点阵式液晶模块,它包括240×320点的液晶面板、CMOS驱动。

由于该模块有整体的图形点阵显示,因而用它来显示图形和字符。

它具有如下特性:

①CMOS大规模集成电路LCD驱动;②大容量图形类型,能够显示数字、字母、特殊字符、曲线、图表和模型等;③高对比度、宽视觉范围;④1/64分辨率。

2.3.4A3P250(FPGA)简要介绍

1、高容量

①30K到1百万系统门级逻辑单元。

②144k位以上真正的双端口SRAM。

③300个以上的用户输入输出端口。

2、可再程序化闪存技术

①130nm,7层金属(6层为铜),基于CMOS进程的闪存技术。

②支持单芯片。

③掉电保存。

3、片上用户的非易失性存储

4、高性能

①350MHZ系统性能。

②3.3V,66MHZ,64位外部控制器接口。

5、低功耗

①核心芯片电压低。

②支持1.5V单一系统。

第3章各模块的实现方案

3.1时钟电路

3.1.1系统时钟

时钟采用48MHz的有源晶振,频率可以通过FPGA内部的PLL实现倍频和分频,设定符合用户需要的频率。

时钟引脚连接到器件西边的CCC全局时钟J1引脚上,具有最小的延时。

为了使晶振能够输出较好的波形,必须保证供电电压的稳定,所以在晶振电路的前端加了一个LC滤波电路,在时钟输出端加了一个小电阻,能有效地抑制高次谐波,以及实现阻抗的匹配。

Fusion内部还带有晶振电路,可以与片外无源晶振一起配合使用,产生具有高精度(0.01%)的时钟信号,可为片上、片外的外设提供时钟信号,一般给内部的RTC使用。

当该晶振和片上CCC/PLL一起使用时,可以实现时钟的频率、相位、延时的调整等,由于片上PLL的最低输入频率为1.5MHz,所以当无源晶振作为PLL的输入时,则必须要大于1.5MHz,晶振电路如图3-1所示:

图3-1时钟模块晶振电路

本文用SmartGen生成一个输入时钟为48MHZ,输出时钟为1MHZ的StaticPLL模块,此模块有四个引脚(POWERDOWN、CLKA、LOCK、GLA、OADIVRST),其中POWERDOWN引脚控制PLL是否掉电,CLKA是输入时钟引脚,LOCK是锁相环的锁定指示信号,GLA是时钟输出引脚,OADIVRET引脚用于复位分频系数。

创建Static_PLL模块:

在LiberoIDEv9.0软件设计流程窗口右上角的“Catalog”窗口中点击“Clock﹠Management”选项,在打开的选项中双击PLLStatic。

在弹出的StaticPLL对话框中,进行如图所示的设置,输入时钟48MHz,输出1MHz,输入引脚模式为外部I/O,然后点击“Generate”生成名为Static_PLL的IPCore。

图3-2Static_PLL模块生成图

3.1.2时钟分频

系统时钟为1MHZ,为适应LCD的读写要求,就要将系统时钟分频到更低频率的时钟,本文分频为500HZ.主要利用计数器对时钟进行分频,输入1MHZ,要使输出为500HZ,是的分频计数器每到1000次就对信号取反一次,从而得到500HZ的时钟。

模块软件设计

Count:

计数器

Clk_BUF:

500Hz的时钟信号

时钟分频流程图如图3-3:

图3-3时钟分频流程图

采用计数的方式来分频产生LCD所需时钟信号,仿真波形如图3-4:

图3-4仿真波形图

3.2液晶显示模块

LCD240320可以完成汉字、数字、图形的显示。

本次程序设计的重点在于对液晶显示模块的驱动,所以研究液晶显示控制器的指令集并掌握如何使用是非常重要的。

指令表如3-1所示:

表3—1液晶模块指令表

指令

RS

RW

DB7

D

B6

DB5

DB4

DB3

DB2

DB1

DB0

说明

执行时间

清除显示

0

0

0

0

0

0

0

0

0

1

将DDRAM填满“20H”并且设定DDRAM地址计数器AC到“00H”

4.6ms

地址归位

0

0

0

0

0

0

0

0

1

X

设定DDRAM地址计数器AC到“00H”将游标移到开头原点位置,此指令并不改变DDRAM的内容

4.6ms

设进入点

0

0

0

0

0

0

0

1

I/D

S

指定在资料的读取和写入时,设定游标移动方向及指定显示的移位

72us

显示状态开/关

0

0

0

0

0

0

1

D

C

B

D=1:

整体显示ON;

C=1:

游标ON

B=1:

游标位置ON

72us

游标显示移位控制

0

0

0

0

0

1

S/C

R/L

X

X

设定游标的移动与显示的移位控制位元,这个指令不改变DDRAM内容

72us

功能设定

0

0

0

0

1

DL

X

RE0

X

X

DL=1:

必须设为1

RE=1:

扩充指令集动作

RE=0:

基本指令集动作

72us

设定CGRAM地址

0

0

0

1

AC5

AC4

AC3

AC2

AC1

AC0

设定CGRAM地址到地址计数器AC

72us

指令

RS

RW

DB7

D

B6

DB5

DB4

DB3

DB2

DB1

DB0

说明

执行时间

设定DDRAM

地址

0

0

1

AC6

AC5

AC4

AC3

AC2

AC1

AC0

设定DDRAM地址到地址计数器AC

72us

读取忙碌标志BF和地址

0

1

BF

AC6

AC5

AC4

AC3

AC2

AC1

AC0

读取忙碌标记BF,确定内部动作是否完成,同时读出地址计数器AC的值

0us

写资料到RAM

1

0

D7

D6

D5

D4

D3

D2

D1

D0

写资料到内部RAM(DDRAM/CGRAM/IRAM/GDRAM)

72us

读RAM的值

1

1

D7

D6

D5

D4

D3

D2

D1

D0

从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM)

72us

3.2.1液晶显示控制电路

清除、返回、输入方式设置,显示开关,控制,移位,功能等的设置,通过指令表,设置了如下的状态。

LCD控制流程图如图3-5:

图3-5LCD控制流程图

此模块是先设置LCD240320为基本指令集动作,接着开液晶设置显示起始地址,设置行地址、列地址,再发送要显示的数据知道该行数据发送完。

这里详细介绍一下如何实现这些操作的。

分别设置了St0,St1……St10,功能如下:

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

当前位置:首页 > 医药卫生 > 预防医学

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

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