基于FPGA的LCD驱动显示电路的设计与实现.docx
- 文档编号:2401807
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:24
- 大小:343.76KB
基于FPGA的LCD驱动显示电路的设计与实现.docx
《基于FPGA的LCD驱动显示电路的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于FPGA的LCD驱动显示电路的设计与实现.docx(24页珍藏版)》请在冰点文库上搜索。
基于FPGA的LCD驱动显示电路的设计与实现
学号:
**********
河南大学民生学院
毕业论文
(2014届)
年级
2010级
专业班级
电子信息科学与技术
学生姓名
指导教师姓名
指导教师职称
讲师
论文完成时间
2014年5月10日
基于FPGA的LCD驱动显示电路的设计与实现
(河南大学民生学院,河南开封,475004)
摘要:
本课题主要任务是设计基于FPGA的LCD驱动电路的设计和实现,兼顾好程序的易用性,以方便之后模块的移植和应用。
控制器部分采用Verilog语言编写,主体程序采用了状态机作为主要控制方式。
最后实现使用FPGA在LCD上显示任意的英文字符和阿拉伯数字,另外要能根据输入数据的变化同步变化LCD上显示的内容。
同时要能将储存模块中的数据正常地显示在LCD上。
本文中对FPGA,LCD,QuartusII,硬件设计工具等进行了简单的介绍,对其功能进行了简单的描述,并了解了LCD液晶显示器的发展历史,日常应用以及相对比于其他种类显示器的优缺点,并对基于FPGA的LCD液晶显示器驱动电路未来的发展趋势进行了展望。
关键词:
FPGALCDVerilog状态机
DesignandImplementationofLCDDriveDisplayCircuitbasedonFPGA
Abstract:
Inthisproject,themainobjectistodesignaLCDcontrollerbasedonFPGA,andatthesametimeemphasizeontheconvenienceforthelaterapplicationandmigration.TheprogramofthecontrolleriswrittenbyVeriloglanguage,andthemainbodyoftheprogramusedstatemachineastheprimarycontrolmethod.displayedpicturewhichwasputearlier.
Inthisproject,FPGA,LCD,QuartusII,Ihardwaredesigntoolssimplyintroducesitsfunctionswereasimpledescription,andunderstandingtheLCDmonitorthedevelopmenthistory,andrelativeeverydayapplicationsthaninothertypesofmonitorbasedonFPGAadvantagesanddisadvantages,andtheLCDmonitordrivercircuitfuturedevelopmenttrendsarediscussed.
Keywords:
FPGA,LCD,Verilog,StateMachine
1绪论
1.1选题背景
本课题主要任务是设计基于FPGA的LCD驱动显示电路的设计与实现。
设计中保证程序的易用性和可移植性。
设计的基本要求要确保输出能够根据输入的变化而同时变化。
本次设计有FPGA产品的开发有一定的帮助,其开发时间短,移植性高对LCD的开发有指导性的意义。
增加了人机之间的交互性,为我们的生活和行业发展提供了便利。
FPGA是一种现场可以编程的门阵列器件。
FPGA与之前的GAL,PAL,CPLD等可编程器件有很大的不同之处。
之前的可编程器件往往在门电路数目上受到局限,所以在功能上也受到了很大程度上的限制。
FPGA则在这方面不受制约。
作为进一步发展的产物,FPGA有更好的实用性。
LCD,即液晶显示器,是一种采用了液晶控制透光技术来实现色彩的显示器,与CRT显示器相比有很多优点,如轻薄、能耗低、辐射小等,已经应用在各行各业,有STN、TFT、LTPS、OLED等多种类型。
液晶是一种几乎完全透明的物质。
液晶能够作为显示设备是基于它的物理和化学性质。
由于液晶内部分子排布的特殊性,造就了液晶可以显示的光学性质。
分子排列的改变会引起光线的改变,最初的研究者认为液晶的分子排列时不变的,直到20世纪60年代,有人发现在外加电压的情况下液晶分子排列会发生变化,能引起光线的折射和扭曲,由此发展了液晶显示设备。
1.2LCD发展
液晶显示器件(LCD)是目前最有活力的电子产品之一。
液晶显示屏已经渗透到各行各业各个领域。
LCD在电压,功耗,体积等方面有显著的优点。
由于它的优点使得在生产中更加的便宜,产品更容易携带,性能方面也毫不逊色。
LCD已经成为现在社会显示设备的首选器件。
LCD的快速发展扩大了显示设备的应用领域,它体积小的特点使得它在生活中的应用更加广泛。
LCD和CRT是目前显示技术上的两大类,已形成互补,共同发展的局面。
在科学技术领域,LCD产业的发展日益受到重视,许多国家都投入了大量的人力与物力。
显示设备是我们生活中不可缺少的一部分,尽管在显示领域出现了有机EL,FFD,PDP等竞争对手,但基于LCD的综合性优点,在未来很长一段时间内,LCD显示设备仍然是首选最重要的显示器件之一。
本次研究的LCD驱动电路的设计与实现和现实生活有密切联系,有很大的实用效果。
1.3选题目的
本课题主要是设计基于FPGA的LCD驱动电路,设计要求是使其更加接近生活,容易使用,同时方便后续的学习和使用。
结合外围电路等液晶显示模块,通过软件测试,来实现英文字母的显示。
通过不断的改写,调试,使其能正确的在LCD上显示内容,达到最初的设计目的和初衷。
2关键技术
2.1FPGA简介
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列FPGA与之前的GAL,PAL,CPLD等可编程器件有很大的不同之处。
之前的可编程器件往往在门电路数目上受到局限,所以在功能上也受到了很大程度上的限制。
FPGA不仅解决了可编程器件门电路数局限性的不足,还克服了定制电路的不足。
作为进一步发展的产物,FPGA有更好的实用性。
FPGA内部包含三部分:
输出模块IOB,可配置逻辑模块CLB,内部连线。
它采用了一种逻辑单元阵列的新概念。
FPGA内部有一个小型的查找表,查找表与一个D触发器的输入端相联接。
通过D触发器来驱动其他逻辑电路或I/O接口。
逻辑单元阵列的设计既可以实现组合逻辑又可以实现时序逻辑。
FPGA最终的逻辑功能是由存储器中的值决定的。
2.1.1FPGA的特点
FPGA允许无限次编程。
FPGA有以下几个特点:
(1)采用FPGA设计ASIC的电路不需要经过生产就能确保得到合适的芯片,节约了成本。
(2)FPGA可以作为其它电路的中试样片。
(3)FPGA有丰富的触发器和I/O引脚。
(4)FPGA设计周期短,开发费用低,风险最小。
(5)FPGA采用高速CHMOS工艺,功耗低,能与其他工艺的电平相兼容。
综上所述,FPGA芯片是小批量系统的最佳选择之一。
它能够提高系统的可靠性和集成度。
2.1.2FPGA的设计法则
(1)面积与速度的互换
面积是指FPGA的内部芯片资源,包括逻辑资源和I/O资源等,速度指的是FPGA工作时的最高频率。
面积与速度往往不可兼得,因此设计者必须要有所取舍。
面积越小,就可以用更低的成本来实现产品的功能。
增大芯片的面积可以提高FPGA的工作速度,但面积的增大意为着成本的提高,体积也会随之增大,因此不能一味追求速度而无限的增大面积。
在实际的设计中有许多被重复使用次数不同的模块它们占据了大量的资源,造成面积的堆积和资源的浪费。
在设计改造中,我们可以用一个最小的复用单元来替代这些被重复使用的模块,当然这样的改进必然需要引进其他的一些资源。
总之我们们的要求是在速度得以保证的情况下,尽可能的减小面积,这样不仅能节约成本,同时也能保证产品的竞争力。
(2)硬件可实现原则
FPGA设计有专门的语言。
VerilogHDL和VHDL是常用的两种。
在采用HDL语言来描述一个硬件电路功能时,一定要确保代码描述的电路是可综合的,在硬件方面是可实现的。
VerilogHDL语言描述的是硬件结构,所以一定要确保硬件可实现,编译能够生成硬件电路。
(3)同步设计原则
FPGA设计电路有两种基本形式同步和异步。
异步电路有一个最大的缺点就是会产生毛刺。
而同步电路由于是有各种触发器构成的,它的输出食欲时钟边沿驱动触发器产生的,因此可以很好的避免毛刺的产生。
2.2LCD简介
LCD(LiquidCrystalDisplay的简称)液晶显示器。
LCD由两块平行的玻璃基板构成,上基板为彩色滤光片,下基板为TFT(薄膜晶体管)。
工作时光线进入基板后会在液晶分子的作用下发生扭转,这样就可以控制偏振光的出射。
液晶分子的转动是由TFT上外加的电压信号控制的。
LCD按照背光源的不同可分为CCFL和LED两种。
以CCFL(冷阴极荧光灯管)作为背光光源的液晶显示器,功耗较高,但其色彩显示好。
LED液晶显示器以发光二极管作为背光光源,其优势是体积小,功耗低,同时还可达到较高的亮度,不足之处是色彩表现不佳。
专业绘图LCD在色彩方面要求比较高,所以大都不采用这种方式。
2.2.1LCD技术参数
对比度:
LCD制造中需要选用滤光片,定向膜和控制IC等配件,这些配件与面积对比度有关。
亮度:
作为显示设备,亮度是首要考虑因素,LCD借助外光源发光灯管数目越多亮度越大。
信号:
液晶在暗亮之间转换的反应时间,响应时间越小越好,一般以毫秒(ms)为单位。
可视角度:
光线通过液晶后的就有了方向性。
可视角度是现在技术上需要解决的一个重大问题。
为解决可视角度的问题目前有三种比较流的技术:
TN+FILM、IPS(IN-PLANE-SWITCHING)和MVA(MULTI-DOMAINVERTICALalignMENT)。
2.2.2LCD的分类
LCD发展至今它的分类主要依据其控制方式,有主动矩阵式和被动矩阵式两种。
两种方式有着各自的优缺点:
被动矩阵式的优点是成本低廉,但它的反应速度慢,在亮度和可视角度上不如主动矩阵式。
所以在应用上有很大的局限性,但由于它的成本低所以任有一部分显示设备使用被动矩阵式。
主动矩阵式的色彩丰富,可视角度宽广,亮度高。
这都是因为其内部有一个内建的晶体管。
主动矩阵式有更多的优点,所以受到广泛的青睐,市场占有额也大。
体积小,耗电量低是LCD显示器的优点,但与CRT显示器相比,LCD显示器还有不足之处,不够成熟稳定。
2.2.3LCD工作原理
我们都知道物质只有固态、液态、气态三种型态。
物质分子的内部结构决定着这个物质的物理和化学性质。
液体分子质心排列没有任何规律性,没有规律性我们就无从研究,而液晶是一种分子具有方向性的晶体。
被动矩阵式的工作原理是让光线自上而下的照射,由于液晶的方向性所以一般只有一个角度的光线能穿透下来。
当有光线穿透时先要进入上夹板的沟槽中,再通过排列不整齐的液晶分子通路,然后进入下面的偏光板,这样就形成了一条光线穿透路径。
液晶状态的改变是由外界电压决定的,有外界电压时分子内部的排列方式会变为竖立状态。
当有外界电压影响时,液晶的初始状态就会发生改变,由原来的正常排列方式变成竖立的状态。
经过液晶的光会被第二次偏光板吸收,但由于整个结构处于不透光的状态,所以显示屏会呈现黑色。
没有外加电压时,液晶处于初始态,它会把入射进来的光线折射90度,显示屏会呈现白色。
为了使每个像素都能产生色彩,被动矩阵式采用冷阴极灯管作为背光源。
主动矩阵式的显示器结构与被动式相似,但显示原理却有许多不同之处。
两者的光线射入方式不同,主动矩阵式的光线自下向上射出,借助液晶分子传导光线。
主动矩阵式上层电极为FET晶体管,下层是共通电极。
主动矩阵式分子状态的改变是由FET电极控制的。
通过不断的遮光和透光来达到显示的目的。
主动矩阵式与被动矩阵式相比具有记忆保持功能,它能够保持先前液晶分子的状态。
当下一次FET电极加电发生变化时状态才会改变。
LCD具有以下特点:
低电压微功耗
体积小
被动显示型
信息量大
容易彩色化
无电磁辐射
寿命长
3系统分析
3.1FPGA的设计方法
FPGA的设计方法有“自下而上”和“自顶向下”两种。
在大规模的FPGA设计中一般选择第二种设计方法。
这种设计方法的特点在于它所采用的语言能够独立制造企业的产品结构。
直接在功能级设计上定义产品,与功能仿真技术相结合,最终确保设计产品的正确性。
完成功能定义后,要进行布局布线。
在布局布线需要有网标文件,同时要结合厂商的布局布线器进行操作。
在QuartusII中可以直接由语言生成。
布局布线的结果会返回到仿真器中,进行下一步的验证。
这样可以避免布局布线产生的门延时和线延时影响设计性能。
“自顶向下”的优越性在于:
第一,设计可以重复利用。
模块化已经成为设计的主流,集成程度的提高使得调用更为方便。
“自顶向下”的设计方式与芯片结构无关,设计出的产品可以保存,方便需要时重新利用。
第二,“自顶向下”的设计方式与芯片结构无关,所以设计者在设计时可以集中精力在产品上,降低了设计风险,缩短了开发时间,节约成本。
第三,设计规模的提高,减小了设计者的工作量。
FPGA语言能完成各种功能的描述,通过语言可以直接生成电路图,不需要再手工绘图。
最后,在芯片的选择上更加灵活。
设计者可以通过比对各种芯片的速度,价格,性能等多方面指标选择最佳的结果进行设计。
FPGA设计主要采用VHDL和VerilogHDL两种语言,本次使用的是VerilogHDL语言。
3.2VerilogHDL
VerilogHDL是硬件描述语言的一种,也是本次论文主要运用的语言,主要用于抽象数字系统的建模。
它既可以完成简单的门级建模,也可以实现复杂的电子系统建模。
VerilogHDL语言具有以下功能:
(1)VerilogHDL语言提供了编程语言接口,这样就可以从外部控制,监测模拟验证期间的问题。
(2)VerilogHDL语言作用广,无论是设计,响应监测,验证还是波形产生都可以使用同一种建模语言,避免了分别使用多种语言,极大了提高了便利性。
(3)VerilogHDL语言定义了语法,每个语法结构都有清晰的模拟,仿真语义。
这样编写出来的模型能够在仿真器里进行验证。
(4)VerilogHDL提供了扩展的建模功能,便于使用者学习和使用,能够满足大多数的建模应用。
3.3TC1602液晶模块工作方式
本次设计采用的TC1602液晶显示模块为标准的16脚接口。
引脚功能如下:
引脚1:
VSS为电源地,接GND。
引脚2:
VDD为电源,接+5V电源。
引脚3:
VL为液晶显示器对比度调节端。
引脚4:
RS为寄存器选择端。
高电平和低电平分别对应数据寄存器和指令寄存器。
引脚5:
RW为读写信号控制端,低电平时进行的是写操作,高电平时进行的是读操作。
当RW=H,RS=L时表示读忙信号。
当RW=L,RS=L时表示显示地址或者写入指令。
当RW=L,RS=H时可以写入数据。
直接接地表示不需要读信号。
引脚6:
E为使能端。
当E端由高电平转变为低电平时,液晶模块开始工作,执行操作命令。
引脚7~14:
D0~D7为8位双向数据线。
引脚15:
BLA背光电源正极(+5V)输入引脚。
引脚16:
BLK背光电源负极,接GND。
TC1602液晶模块之所以能显示字符和数字,是因为其内部带有标准字库。
32个5×10点阵字符和192个5×7点阵字符存储在内部字符发生存储器(CGROM)中。
工作时通过内部寻址,显示所需要的字符。
表3.1为字符生成RAM,供用户自定义字符。
每个字符都对应一个固定代码。
表3.1字符生成器RAM
TC1602有11条控制指令,表3.2所示(1为高电平,0为低电平)。
表3.2TC1602控制指令
各指令功能如下:
指令1:
清显示。
功能:
送20H“空代码”到所有的地址计数器中,清除地址计数器中的显示数据,同时地址计数器(AC)清零。
光标返回至原始状态,I/D变为高电平,AC为自动加1。
指令2:
光标复位。
功能:
将DDRAM地址计数器(AC)清零光标返回到原始状态,不改变其中的内容。
指令3:
输入方式设置。
功能:
设置光标的移动方向,并且指定整体的显示有没有移动,用来设置需要显示字符的输入方式。
字符的输入方式由参数位I/D和SH决定。
I/D表示进行DDRAM或CGRAM读/写后,地址的修改方式,也是光标的移动方式:
I/D=0:
光标自右往左移动,AC减一。
I/D=1:
光标自左往右移动,AC加一。
SH=0:
写入字符时,允许显示画面滚动。
SH=1:
写入字符时,禁止显示画面滚动。
指令4:
控制显示开关。
功能:
该指令用来控制光标及画面是否闪烁。
有三个状态位:
B、C、D:
B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁;C:
控制光标开关控制位。
高电平表示有光标,低电平表示无光标;D:
控制整体显示的开与关,高电平控制开显示,低电平控制关显示。
指令5:
光标或显示整体显示移位位置。
功能:
S/C和R/L对应操作:
00:
光标由右向左移动且AC减一。
显示不动
01:
光标由左向右移动且AC加一。
显示不动
10:
所有显示由右向左移动,光标跟随移动,AC减一
11:
所有显示由左向右移动,光标跟随移动,AC加一
指令6:
功能设置命令。
功能:
设置接口数据位数以及显示模式。
DL:
DL=H时,DB0~DB7有效,数据接口为8位。
DL=L时,DB4~DB7有效,数据接口为4位。
数据传输时先传高4位,后传低4位。
N:
低电平时为单行显示,高电平时双行显示。
F:
点阵字符控制位。
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符,无论高低电平,显示都加光标。
指令7:
CGRAM地址设置。
功能:
将CGRAM地址送入AC中。
字符发生存储器将成为计算机进行读/写操作的操作对象。
指令8:
DDRAM地址设置。
功能:
将地址计数器的地址送入AC中。
N为低电平时,DDRAM范围被设置为80H到FFH。
N为高电平时,地址计数器范围被分为两行,第一行地址计数器地址范围为80H~BFH,第二行地址计数器地址范围为C0H~FFH。
指令9:
读忙标志位及地址。
功能:
最高位(BF)显示忙信号时,低7位存储地址计数器的内容。
BF=H:
内部正在执行操作,要等待该指令完成到BF=L再执行下一条指令。
指令10:
写数据。
功能:
将数据写入CGRAM或DDRAM。
RS为高RW为低电平时,为数据的写操作;RS和RW均为低电平时,为指令的写操作。
执行写操作后,地址自动加/减1(更具输入方式设置指令)。
指令11:
读数据。
功能:
从字符发生存储器或地址计数器读出8位数据。
如果从地址计数器读数据,执行读操作后,地址自动加/减1。
其中,CLK、RST分别是50MHZ时钟信号和复位输入信号。
复位信号低电平有效。
RS、RW、E和data分别为与液晶显示屏控制芯片连接的控制信号。
RS为寄存器选择控制输出信号,当RS为低电平时,控制信号被传输,当RS为高电平时,数据信号被传输。
RW为输出信号读/写控制位,当RW为低电平时,液晶显示屏控制芯片被写入数据。
当RW为高电平时,向液晶显示芯片读取数据。
E控制脉冲输出信号的读写,高电平有效;data为数据信号。
3.4系统开发环境
硬件配置:
TC1602液晶模块
操作系统:
WindowsXP
仿真工具:
QuartusII
开发语言:
Verilog
4系统设计与验证
4.1系统概述
该课题研究的是基于FPGA的LCD驱动电路的设计与实现,其主体部分采用状态机作为主要控制方式,控制器部分用Verilog语言编写。
通过各部分的联接最终实现在LCD上显示任意数字和字母,同时还兼顾数据的同步性。
4.2功能结构设计
4.2.1接口部分设计
该设计使用MaxIIEPM240T100C5芯片与液晶显示模块相联接来实现显示功能,通过芯片中的驱动程序来驱动液晶模块显示相应的字母或数字。
4.2.2液晶模块内部显示地址
液晶显示模块显示速度比较迟钝,因此在执行每条指令之前要先确认模块是否在正在进行其他指令。
若忙标志为低电平,表示不忙;忙标志为高电平时,指令失效。
显示字符时要根据显示字符地址。
图4.2为其内部显示地址:
图4.2液晶显示模块内部显示地址
4.3设计流程图与状态的设计
整体设计框图:
FPGA驱动电路
CLK
Clk_buf,LCD_E
TC1602显示模块
按键控制
图4.3整体设计原理方框图
4.3.1控制指令流程图
如图所示可以通过状态机实现对液晶显示屏控制芯片的控制。
该流程采用计数器与状态机相结合的方式,为每个状态机设置各自所需的工作时间,确保了每次操作的顺利进行。
通过计数器与状态设置延迟计数值相比较,给状态机发出计数时间到的信号,通知状态机进入到下一个工作状态,直到所有的数据传送完毕后,再循环向液晶显示屏控制芯片发送显示字符的编码数据。
4.3.2状态机
状态机工作图解:
S0:
write_instr
S1:
write_dataup4_1
S2:
write_datadown4_1
S3:
set_ddramaddup
S4:
set_ddramadddown
S5:
write_dataup4_2
S6:
write_datadown4_2
S7:
Default
当复位键reset等于1的时候,S0进入工作状态,当datacnt小于或等于10的时候S0状态循环工作,当datacnt大于10的时候跳转到S1状态,在S1状态顺序执行完每条语句之后跳转到S2状态,这时判断datacnt是否等于39,若不等于39跳转回S1状态,重新执行S1状态的每条语句直到datacnt等于39时,跳转进入S3状态,在执行完S3状态的每条语句之后,跳转到S4状态。
执行完S4状态的语句后,跳转到S5状态。
顺序执行S5状态的每条语句,跳转到S6状态。
在S6状态时分为两种情况需做出判断:
如果datacnt不等于39的时候,跳转回S5状态并重新执行S5状态的语句;如果datacnt=39的时候,跳转回S1状态,并重新执行S1状态到S6状态,不断循环。
如果状态机工作出现错误,设置一个错误状态S7,此时跳转到错误状态S7,之后跳转回S0状态,这就是本状态机的整个工作流程。
4.4系统实现
4.4.1顶层模块图
在QuartusII中仿真后得到电路图如图所示
顶层模块图
参数定义:
IDLE =4'd0, //空闲
CLEAR =4'd1, //清屏指令
SET_FUNCTION =4'd2, //工作方式设置指令
SWITCH_MODE =4'd3, //开关控制指令
SET_MODE =4'd4, //输入方式设置
SET_DDRAM1 =4'd5, //设定第一行DDRAM地址指令
WRITE_RAM1 =4'd6, //向第一行写入的数码
SET_DDRAM2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA LCD 驱动 显示 电路 设计 实现