基于FPGA的LCD控制器设计修改版m - 图文
更新时间:2024-06-09 06:28:01 阅读量: 综合文库 文档下载
吉林工程技术师范学院毕业论文
毕业论文设计
作 者: 刘喆 学 号 0701014308 学 院 信息工程学院 系(专业): 电子信息工程
题 目: 基于FPGA的液晶显示控制器设计
指导者: _________________李悦_________________
2011年 03 月 31日
- 1 -
老师
基于FPGA的LCD控制器设计
基于FPGA的LCD控制器设计
【摘要】
本课题主要任务是设计基于FPGA的LCD控制器,兼顾好程序的易用性,以方便之后模块的移植和应用。本课题的设计采用了带ST7920驱动的12864-12液晶模块,并使用Altera公司的cycloneII系列的EP2C5T144C8来作为核心的控制器。控制器部分采用VHDL语言编写,主体程序采用了状态机作为主要控制方式。该控制器分为字符显示模块和图片显示模块两个主要部分。在字符的显示功能上采用显示控制模块与字符调用RAM相结合的方式,使使用者能方便地调用液晶自带的字库来显示字符;而图片显示模块则通过特殊的处理算法解决了图像显示缓冲区X地址不断移位以及上下半屏分开的问题,通过读取图片ROM来显示图片。最后实现使用FPGA在LCD上的任意位置显示任意的16*16像素的中文字符以及16*8的英文字符,另外要能根据输入数据的变化同步变化LCD上显示的内容。同时要能将储存模块中的图片数据正常地显示在LCD上。
该课题的研究将有助于采用FPGA的系列产品的开发,特别是需要用到LCD的产品的开发。同时可以大大缩短FPGA的开发时间。另外,由于模块的易用性,也将使得更多的采用FPGA的产品之上出现LCD,增加人机之间的交互性,为行业和我们的生活带来新的变化。
【关键词】
12864-12,VHDL,LCD,FPGA,状态机
- 2 -
吉林工程技术师范学院毕业论文
Design of the LCD Control Module Based on FPGA
【Abstract】
In this project, the main object is to design a LCD controller based on FPGA, and at the same time emphasize on the convenience for the later application and migration. In this project, I used 12864-12 LCD module with the ST7920 driver. For the controller part, I chose the Cyclone II serial FPGA, the EP2C5T144C8, which developed by the Altera Cooperation. The program of the controller is written by VHDL language, and the main body of the program used state machine as the primary control method. In this LCD controller, there are two major parts, which are the character display module and the picture display module. The character display module put the Character Calling Ram and the display control module together to enable the user to call the embedded character library easily to display the information he/she needed. For the picture display module, the module, through specific algorithm, solved the problems that the x address of the picture display buffer kept stepping forward after every 16 times and the display screen are divided into 2 section by the buffer. And this module, by reading a picture ram, displayed picture which was put earlier.
In this project, I finally realized the following function. The first one is to display any 16*16 pixels Chinese character and 16*8 pixels English character on any position of the display screen. The second one is the display information will instantaneously update as the input data changes. The last function is that any given picture data can be displayed properly on the LCD screen.
The research of this project will contribute to the developing process of those products which use FPGAs, especially those products also use LCD. And at the same time, it can reduce dramatically on the developing time. In addition, for the convenience of this controller, more and more FPGA based products will come out with LCD screen. This change will enhance the interaction between human and the machine, and bring innovation to the industry and our lives.
【Key Words】
12864-12,VHDL,LCD,FPGA,State Machine.
- 3 -
基于FPGA的LCD控制器设计
目录
毕业论文设计 ························· - 1 - 基于FPGA的LCD控制器设计 ···················· - 2 - 【摘要】 ··························· - 2 - 第1章 绪论 ···························· 6 1.1 选题的背景与意义 ····················· 6 1.2 LCD的控制,应用和市场的发展现状 ·············· 7 1.3 课题的主要研究内容和重点、难点 ·············· 8 1.3.1 本课题主要研究内容和重点 ··············· 8 1.3.2 本课题的主要难点: ·················· 8 1.4 课题研究预期目标 ····················· 9 1.4.1 课题研究预期理论目标 ················· 9 1.4.2 课题研究预期技术目标 ················· 9 第2章 现代LCD技术 ························· 10 2.1 现代LCD技术简介 ······················ 10 2.2 STN-LCD技术的显示原理 ··················· 11 2.3 动态STN-LCD驱动方法 ···················· 12 第3章 现代FPGA技术 ························ 15 3.1 FPGA的发展历程 ······················ 15 3.2 FPGA的基本原理 ······················ 16 3.2.1 查找表的基本原理···················· 16 3.2.2 基于乘积项的FPGA的逻辑实现原理············· 16 3.3 FPGA的设计方法 ······················ 17 3.4 VHDL硬件描述语言 ····················· 18 3.5 Quartus II简介 ······················ 18 3.6 核心控制芯片选择 ····················· 20 3.7 FPGA的设计流程 ······················ 21 第4章 总体系统设计及资源 ····················· 24 4.1 系统设计要求 ······················· 24 4.2 系统设计总体框图 ····················· 24 4.3 系统开发选用资源 ····················· 25
4
吉林工程技术师范学院毕业论文
4.3.1 液晶模块选用 ····················· 25
4.3.2 FPGA的选择 ······················ 30 4.4 硬件设计 ························· 32 第5章 系统各部分模块的设计 ···················· 34
5.1 初始化模块设计 ····················· 34 5.1.1 LCD模块初始化原理 ··················· 34 5.1.2 时钟模块的设计····················· 36 5.1.3 字符显示前初始化模块的设计··············· 37 5.1.4 图片显示前初始化模块的设计··············· 40 5.2 写入数据模块的设计 ··················· 42 5.2.1 英文字符部分的数据模块················· 42 5.2.2 中文字符部分的数据模块················· 45 5.2.3 图片部分的数据模块··················· 46 5.3 显示控制模块的设计···················· 46 5.3.1 字符显示控制模块的设计················· 46 5.3.2 动态数据的显示控制··················· 48 5.3.3 图像数据的显示控制··················· 50 5.4 字符显示及图片显示整体模块 ················ 56 5.5 本章小结 ························· 57 4.1 Quartus II简介 ······················· 58 4.2.4 sdram接口部模块 ······················· 62 结束语 ······························ 64 参考文献 ····························· 65
5
基于FPGA的LCD控制器设计
第1章 绪论
1.1 选题的背景与意义
液晶,是一种在一定温度范围内呈现既不同于固态、液态,又不同于气态的特殊物质态,它既具有各向异性的晶体所特有的双折射性,又具有液体的流动性。一般可分热致液晶和溶致液晶两类。在显示应用领域,使用的是热致液晶,超出一定温度范围,热致液晶就不再呈现液晶态,温度低了,出现结晶现象,温度升高了,就变成液体;液晶显示器件所标注的存储温度指的就是呈现液晶态的温度范围。液晶由于它的各向异性而具有的电光效应,尤其扭曲向列效应和超扭曲效应,所以能制成不同类型的显示器件(Liquid Crystal Display 简称LCD)。
在平板显示器件领域,目前应用较广泛的有液晶(LCD)、电致发光显示(EL)、等离子体(PDP)、发光二极管(LED)、低压荧光显示器件(VFD)等。
液晶显示器件有以下一些特点 ①低压微功耗,②平板型结构,③被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳),④显示信息量大(因为像素可以做得很小),⑤易于彩色化(在色谱上可以非常准确的复现),⑥无电磁辐射(对人体安全,利于信息保密),⑦长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背光寿命有限,不过背光部分可以更换)。
之前,一般流行采用单片机来控制驱动LCD。采用单片机控制LCD的显示在设计上相对比较简单。可以通过KEIL等软件的编写方便地控制LCD的图形以及字符的现实。但是由于单片机的顺序执行结构。决定了在现实图片或者字符的同时,单片机本身无法处理其他数据或者执行其他的运算命令。这在某种程度上大大地降低了工作的效率。而采用FPGA来控制LCD则不存在这个问题。但是由于FPGA不像单片机,可以直接使用控制语句来方便地控制LCD。因此需要编写大量的代码来控制LCD。因为这个原因,采用FPGA的设计一般都会再一次通过单片机来驱动LCD的显示。
本课题主要任务是设计基于FPGA的LCD控制器,兼顾好程序的易用性,以方便之后模块的移植和应用。最后在FPGA上的任意位置显示任意的16*16D的中文字符以及16*8的英文字符,另外要能根据输入数据的变化同步变化LCD上显示的内容。同时要能将储存模块中的图片数据正常地显示在LCD上。该课题的研究将有助于采用FPGA的系列产品的开发,特别是需要用到LCD得采用FPGA的产品的开发。同时可以大大缩短FPGA的开发时间。另外,由于模块的易用性,也将使得更多的采用FPGA的产品之上出现LCD,增加人机之间的交互性,为行业和我们的生活带来新的变化。
6
吉林工程技术师范学院毕业论文
1.2 LCD的控制,应用和市场的发展现状
在技术方面,因集成式的控制芯片具有包括了缩小了IC的体积、低功率消耗、降低封装的成本、节省电路板的数量及体积等优点,并使材料成本及LCD后段组装成本得以降低,因此许多厂商纷纷朝向高集成度控制芯片发展,并积极开发视讯应用的控制芯片。而最新趋势Smart Panel,在制程上则有简化流程、减少材料成本等优点。根据相关资料显示,Smart Panel可降低约10%~15%的成本,这也是国外一些大厂所钟爱的方式。
为降低控制IC 成本,众多IC厂商纷纷推出集成式的单芯片控制IC。美国的Genesis最早推出集成式IC,将ADC、Scaler、OSD (内置菜单)与PLL(锁相环)为一颗单芯片控制IC。接着更进一步集成入DVI 组件,形成LCD 双模控制IC。其组件集成数量持续增多,并渐渐添加Video 的功能。当前Genesis 最高集成度的产品,集成入的组件已经包括ADC、Scaler、PLL、OSD、TCON 与DVI,仅剩Video 的功能以及SDRAM 的组件尚未集成。
随着市场竞争的加剧,液晶显示器厂商的成本压力越来越大,必须采用更简单的线路设计实现液晶显示器的功能,以期降低成本,才能在市场竞争中立于不败之地。 LCD控制IC必将向高集成度方向发展,以满足市场需要。
而在LCD的应用以及市场方面,虽然手机仍然是中小尺寸液晶显示屏(LCD)的最主要应用设备,但便携导航设备(PND)、数码相框和MP3/便携媒体播放器(PMP)等新型设备,正在该市场的销售额中占有越来越大的份额。由于这些产品所使用的显示屏大于手机所用的显示屏,因此在供应商的工厂中同样需要更多的面板,这对于LCD面板生产商来说是个绝好的机会。
各种中小尺寸LCD的产能扩张和价格下降,促进了其应用领域的多元化。这又进一步刺激了需求,并吸引许多其它产品来采用中小型LCD,如白色家电和零售标牌。
大多数行业内的公司认为,为了利用手机市场和新兴产品,中小尺寸显示屏供应商必须相应地平衡和调整策略,否则就可能错失整个市场。
导航设备
PND的主要功能是显示GPS信息,因此能否显示详细并准确地图影像非常关键。这使得许多PND制造商把目光转向了更加精确的小型LCD。
这方面出现的需求促使iSuppli公司把2011年PND显示屏市场的出货量预测提高到了6,050万部。2006年的出货量为1,080万部,2006-2011年出货量的年复合增长率是41.3%。iSuppli以前预测2011年出货量是5,400万部。
尽管中小尺寸LCD价格下降,但2011年PND显示屏的营业额将从2006年的3.24亿美元上升
7
基于FPGA的LCD控制器设计
到7.76亿美元,年复合增长率为19.1%。2007年一年,PND显示屏销售额将比2006年的3.24亿美元增长近一倍,达到6.35亿美元。
媒体播放器
但PND不是推动中小尺寸显示屏市场繁荣的唯一消费电子产品。MP3/PMP目前是使此类显示屏出货量增长最快的领域之一。
iSuppli公司预测,2011年底MP3/PMP单位出货量将达到2.05亿,而2007年预计为1.63亿。这相当于2011年显示屏销售额将达到16亿美元,略低于2007年的17亿美元,这主要是因为中小型LCD价格随着产能扩张和制造工艺改进而不断下降。
推动显示屏单位出货量增长的因素包括:
①消费电子公司苹果和它的iPod产品线,以及距苹果最近的竞争对手紧追不舍,从而推动MP3/PMP市场整体增长。
②MP3音乐播放器变身进入了PMP领域。有源矩阵LCD供应商正在紧盯这个市场,以防止AMOLED供应商染指。
③因为PMP是消费电子产业中增长最快的领域之一,而且随着更多的产品涌现,将需要更多的LCD来满足需求。
数码相框和便携DVD播放器等其它应用每年需要的显示屏越来越多。这些应用需要较大的显示屏(约7.0英寸),因此它们的需求增长可能对产能分配和供需平衡造成较大的影响。
1.3 课题的主要研究内容和重点、难点 1.3.1 本课题主要研究内容和重点
本课题的主要内容是基于FPGA的LCD控制器的设计研究,并兼顾程序的易用性以方便以后模块的移植。该课题设计到FPGA得应用,LCD驱动的研究,字符以及图像显示模式的研究等知识。并利用QUARTUS II 实现相关模块的设计,在FPGA上实现对LCD的控制,显示任意中文,英文和图像。
1.3.2 本课题的主要难点:
1. 12864-12的液晶模块指令集较为复杂,采用FPGA设计需要定义的变量和状态将会很多;
2. 中英文字符的显示部分程序要考虑到程序的易用性,方便将来移植后的使用; 3. 图形显示部分,由于12864-12内部图形显示GDRAM的地址寻址方式的独特性,并不是
8
吉林工程技术师范学院毕业论文
始终从0到15循环,而是随着行数的增加会做一个移位。同时LCD屏幕上的点阵也被拆分为上下两个半屏,分别对应Y地址的0-8和9-15这导致了取模后的图形所对应的数组,如若按普通方法则不能正常显示。
1.4 课题研究预期目标
本课题研究预期目标主要包括采用FPGA控制LCD在任意位置显示任意中文以及英文字符,和在LCD上显示储存模块中的图像数据。
1.4.1 课题研究预期理论目标
1. 掌握FPGA对LCD的控制方法,为课题研究做好理论准备;
2. 通过FPGA对LCD的控制,使得任何开发者都可以较为容易地通过此显示控制模块,在液晶上显示所需的内容。;
3.算法实现:对于12864-12的特殊图形RAM对应LCD的显示方式,采用特定算法,使得取模后的图像所对应的数组,无需经过处理便可以通过FPGA (Filed-Programmable Gate Array)在LCD上显示。
1.4.2 课题研究预期技术目标 1. 中文字符在LCD上的正常显示; 2. 英文字符在LCD上的正常显示;
3. 输入变动的数据能在LCD上的同步刷新显示; 4. 图像数据在LCD上的正常显示;
9
基于FPGA的LCD控制器设计
第2章 现代LCD技术
2.1 现代LCD技术简介
在七十年代初液晶开始作为一种显示媒体使用以来,液晶的应用范围被逐渐拓宽,到目前已涉及游戏机,手机/电话机,电视,笔记本电脑/掌上电脑,DC/DV以及液晶显示器等领域。
在1984年,欧美提出了STN-LCD,而同时TFT-LCD技术也被提出,但仍不成熟,在80年代末,日本掌握了STN-LCD的生产技术,在93年,日本又掌握了TFT-LCD生产技术,液晶显示器开始向廉价低成本的方向发展,随后DSTN-LCD诞生;另一方面向高端的薄膜式晶体管TFT-LCD发展,97年,日本建成了一大批大基板尺寸的第三代TFT-LCD生产线。在此期间,韩国和我国台湾开始介入液晶显示器生产领域,我国内地企业也引进生产线,生产TN-LCD,东亚地区逐渐发展成为世界液晶显示器的主要生产地,第三代半及第四代TFT-LCD生产线开始建立,日本,韩国和中国(含台湾省)在液晶显示器生产及技术上开始走在世界最前列。
大家知道,液晶是一种具有规则性分子排列的有机化合物,它即不是固体也不是液体,它是介于固态和液态之间的物质,把它加热时它会呈现透明的液体状态,把它冷却时它则会出现结晶颗粒的混浊固体状态。液晶按照分子结构排列的不同分为三种:粘土状的Smectic液晶,细柱形的Nematic液晶和软胶胆固醇状的Cholestic液晶。这三种液晶的物理特性各不相同,而第二类的细柱形的Nematic液晶最适于用来制造液晶显示器。
按物理结构常见的液晶显示器可分为以下几种:
表2.1 常见液晶显示器
大家从上面就可看出TN、STN、DSTN三种液晶都属于无源矩阵LCD,它们的原理基本相同,不同之处只是各个液晶分子的扭曲角度略有差异而已,其中DSTN(俗称“伪彩”)在早期的笔记本电脑显示器及掌上游戏机上广为应用,但由于其必须借用外界光源来显像所以其有很大的应用局限性,但这些早期的反射型单色或彩色没有背光设计的LCD可以做得更薄、更轻和更省电,如果能在技术上对其进行革新这些东东对于掌上型电脑和游戏机来说还是非常有用的。而STN超扭曲向列型无源矩阵LCD则是我们今天小型液晶显示器上应用的主流,它具有屏幕反应速度快,对比度好,亮度高,可视角度大等优点。
10
吉林工程技术师范学院毕业论文
图2.1 液晶原理图
最早的液晶显示器TN它由玻璃板,偏光器,ITO膜,配向膜组成两个夹层等组成,它是所有液晶显示器技术原理的鼻祖。而TFT液晶显示器同TN系列液晶显示器一样由玻璃基板、ITO膜、配向膜、偏光板等部分组成,它也同样采用两夹层间填充液晶分子的设计,只不过把TN上部夹层的电极改为FET晶体管,而下层改为共同电极。
2.2 STN-LCD技术的显示原理
传统的TN—I CD(扭曲向列液晶显示器件)具有电光响应速度缓慢,阈值特性很不明显的弱点,这给多路驱动造成了困难,使其在大信息量的视频显示上受到了限制。通过将TN—LCD液晶分子的扭曲角度由90。加大到180。至360。之问就可以制成STN—I CD(超扭曲向列液晶显示器件)。STN I CD 大大提高了显示特性,目前几乎所有的点阵图形和大部分点阵字符LCD均已采用了STN 模式,STN—I CD技术在液晶产业中已处于逐渐成熟和完善的阶段。
将涂有透明导电层的玻璃上光刻形成特定的透明电极,在两片这种玻璃授板问夹上一层STN—I CD 材料,四周密封,形成一个厚度仅为微米量级的扁平液晶盒。由于玻璃内表面涂有定向层膜并进行了定向处理,盒内液晶分子沿玻璃表面平行排列,如果两片玻璃内表面定向层处理的方向呈一定的夹角α,则液晶分子在这两片玻璃之间以α角度扭曲由于STN-LCD 液晶分子在盒中的扭曲螺旋距比可见光波长大得多,所以当垂直于玻璃表面一侧的直线偏振光入射后,其偏光方向在通过整个赦晶层后会被扭曲α角度另一侧射出,因此此液晶盒具有
11
基于FPGA的LCD控制器设计
在成α角度偏振片间透光的作用和功能。
如果在液晶盒上施加一个电压并达到一定值后,液晶分子长轴将开始沿电场方向倾斜,当电压达到2倍阈值电压后,除电极表面的分子外,所有的赦晶盒内两电极之间的液晶分子都变成沿电场方向的再排列,这时α角度旋光功能消失,在成α角度的偏光片之间失去了旋光作用使器件不能再透光。因此,将STN LCD放在成α角度的偏振片之间就可以用给液晶盒通电的办法使光改变其透过和遮住状态从而实现显示的功能。
液晶屏幕的驱动方式 :
单纯矩阵驱动方式是由垂直与水平方向的电极所构成,选择要驱动的部份由水平方 向电压来控制,垂直方向的电极则负责驱动液晶分子。
在TN与STN型的液晶显示器中,所使用单纯驱动电极的方式,都是采用X、Y轴的交叉方式来驱动,如下图所示,因此如果显示部份越做越大的话,那么中心部份的电极反应时间可能就会比较久。而为了让屏幕显示一致,整体速度上就会变慢。讲的简单一点,就好象是CRT显示器的屏幕更新频率不够快,那是使用者就会感到屏幕闪烁、跳动;或着是当需要快速3D动画显示时,但显示器的显示速度却无法跟上,显示出来的要果可能就会有延迟的现象。
2.3 动态STN-LCD驱动方法
STN—LCD 的显示效果是由于在显示像素上施加了电场的缘故,而这个电场是由显示像素前后两个电极上的电压信号差所产生的。在显示像素上建立直流电场并不困难,但直流电场将导致液晶材料的化学反应和电极老化。从而迅速降低液晶材料的寿命,因此必须建立交流电场,并要求这个电场中的直流分量尽可能小,通常要求小于50 mV。因此STN—LCD必须采用交流驱动。
STN—LCD显示驱动方法有很多种,常用的有静态驱动法和动态驱动法。当STN—LCD显示像素众多时,若使用静态驱动法将会产生众多的引脚以及庞大的驱动电路,实现起来有困难,因此常用动态驱动法。
12
吉林工程技术师范学院毕业论文
图2.3 液晶驱动示意图
动态驱动法中STN LCD 电极的制作和排布为矩阵型结构,即把水平一组显示像素的电极连接在一起引出 称之为行电极,用COM 符号表示,把纵向一组显示像素的电极连在一起引出,称之为列电极,用符号SEG 表示。每个STN-LCD显示像素都由其所有行和列的位置唯一确定。上图为N 行、M 列STN-LCD电极连接示意图,显示图形为字符“R”。点阵型STN-L CD 和字符型STN-LCD 的电极连接略有不同,但它们均可以由上图来表示。
动态驱动法就是采用逐行、循环地给行电极施加选择脉冲,同时所有的列电极给出该行像素对应的选择或非选择脉冲.从而实现一行所有显示像素的驱动,循环一次称为一帧。这种扫描是逐行顺序进行的,循环周期很短,使得STN-LCD显示屏上呈现稳定的图象效果。
一帧中每一行的选择时间是相等的,若一帧的扫描行数是N,则一行所占用的扫描时间为一帧的1/N,该值称为占空比系数。在特定电压下,扫描行数的增加将使占空比下降,从而引起液晶像素上交变电场有效值的下降,降低了显示质量,因此随着显示像素的增多就需要适度地提高电场电压的有效值来保证显示质量。
动态驱动方式下,某一液晶像素呈显示效果是由施加在行电极上的选择电压与施加在列电极上的选择电压的台成来实现的。与该像素不在同一行及同一列上的像素都处于非选择状
13
基于FPGA的LCD控制器设计
态下,而与该像素在同一行或同一列的像素均有选择电压加入,称为半选择点。当半选择点的电压接近液晶的阔值电压时屏上将出现不应该有的半显示现象,这会使得对比度下降,这种现象叫做“交叉效应”,在动态驱动法中可采用偏压技术来解决这一问题。
平均电压法是解决“交叉效应”的有效办法,其原理是把半选择点和非选择点上的电压平均化。若显示点电压为
,则半选择点和非选择点电压为
α,其中α为整数.称为偏压比。平均电压法适度提高非选择点上的电压来抵消
半选择点上的电压,从而扩大选择点和半选择点的电压之间的差距,提高显示对比度,又使非选择和半选择点的显示更均匀一致。
对比度是衡量液晶显示质量的重要标志。只要驱动电压的有效值足够大液晶就可以实现显示,且选通时的透过率与有效值成正比,而对比度是透过率之比,所以只要确定了选通电压有效值与非选通电压有效值之比就能预测出显示对比度的好坏。
14
吉林工程技术师范学院毕业论文
第3章 现代FPGA技术
3.1 FPGA的发展历程
作为一种可编程逻辑器件,现场可编程门阵列的出现是可编程逻辑器件发展变化的必然,它的出现推动着可编程逻辑器件的进一步发展。因此说,了解了可编程逻辑器件的的发展历程,也就了解了FPGA的发展历程。
可编程逻辑器件(FPGA)是20世纪70年代发展起来的一种新型期间。它的应用不仅简化了电路设计,降低了成本,提高了系统的可靠性,而且给数字系统的设计方式带来了革命性的变化。可编程逻辑器件的发展是以微电子创作技术的不断进步为基础的,其结构和工艺的变化经历了一个不断发展变革的过程。
20世纪70年代,早期的可编程逻辑器件只有可编程只读存储器,紫外线可擦除制度储存器和电可擦除只读储存器3种。
随后,出现了一类结构稍微复杂的可编程芯片,即可编程逻辑阵列(PLA)。PLA在结构上由一个可编程的与阵列和可编程的或阵列构成,阵列规模小,编程过程复杂繁琐。PLA既有现场可编程的,也有掩膜可编程的。
在这之后出现了可编程阵列逻辑(PAL)器件,它由一个可编程的“与”平面和一个固定的“或”平面构成,是现场可编程的。它的实现工艺由反熔丝技术、EPROM技术和EEPROM技术3种。在PLA的基础上,又发展除了一种通用阵列逻辑(GAL),如GAL16V8、GAL22V10等。它采用了输出逻辑宏单元结构和EEPROM工艺,实现了电可擦除、电可改写,由于其输出结构是可编程的逻辑宏单元,因而其设计具有很强的灵活性,至今仍有许多应用。
这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但由于其结构过于简单,因此,只能用于实现较小规模的电路设计
为了弥补这一缺陷,20世纪80年代中期,著名的可编辑逻辑器件厂商Altera和Xilinx分别推出了扩展型的复杂可编程逻辑器件(CPLD)和类似于标准门阵列的现场可编程门阵列(FPGA)。CPLD和FPGA的功能基本相同,只是芯片的内部原理和结构有些差别。这两种器件兼容了PAL和GAL器件的优点,具有体系结构灵活、逻辑资源丰富、集成度高以及适用范围广等特点,可用于实现较大规模的电路设计,编程也很灵活,所以,被广泛应用于产品的原型设计和小批量生产之中。几乎所有使用PAL、GAL和中小规模通用数字集成电路的场合均可应用CPLD和FPGA器件。
如今,FPGA器件已成为当前主流的可编辑逻辑器件之一。经过近20年的发展,可编
15
基于FPGA的LCD控制器设计
辑逻辑器件已经取得了长足的进步,资源更加丰富,使用越来越方便。将来的可编程逻辑器件,密度会更高、速度会更快、功耗会更低,同时还会增加更多新的功能,向着集成了可编程逻辑、CPU、储存期等组件的可编程单片系统(SOPC)方向发展。
3.2 FPGA的基本原理
对于可编程逻辑器件,从实现原理上讲,一般分为两种:基于查找表加寄存器结构和SRAM工艺的FPGA,集成密度高,寄存器资源丰富,适合做时序逻辑设计,多用于上万门以上的设计,如数字信号处理和各种算法的实现等;基于乘积项结构和EEPROM工艺的FPGA,集成密度低,乘积项资源丰富,适合做组合逻辑设计,多用于5000门以下的设计,如编码、译码电路等。
3.2.1 查找表的基本原理
查找表本质上就是一个RAM。目前FPGA中多使用四输入的LUT,所以每一个LUT可以看成一个有4位地址线的16×1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
3.2.2 基于乘积项的FPGA的逻辑实现原理
以一个简单的电路为例,具体说明FPGA是如何利用以上结构实现逻辑的,电路如下图:
图3.1 电路图
假设组合逻辑的输出(AND3的输出)为f,则f=(A+B)*C*(!D)=A*C*!D + B*C*!D (以!D表示D的“非”)
FPGA将以下面的方式来实现组合逻辑f:
16
吉林工程技术师范学院毕业论文
图3.2 电路图2
A,B,C,D由FPGA芯片的管脚输入后进入可编程连线阵列(PIA),在内部会产生A,A反,B,B反,C,C反,D,D反8个输出。图中每一个叉表示相连(可编程熔丝导通),所以得到:f= f1 + f2 = (A*C*!D) + (B*C*!D) 。这样组合逻辑就实现了。 图3电路中D触发器的实现比较简单,直接利用宏单元中的可编程D触发器来实现。时钟信号CLK由I/O脚输入后进入芯片内部的全局时钟专用通道,直接连接到可编程触发器的时钟端。可编程触发器的输出与I/O脚相连,把结果输出到芯片管脚。这样FPGA就完成了图3所示电路的功能。
3.3 FPGA的设计方法
FPGA的常用设计方法包括“自顶向下”和“自下而上”。目前大规模FPGA设计一般选择“自顶向下”的设计方法。所谓“自顶向下”设计方法,简单地说,就是采用可完全独立于芯片厂商及其产品结构的描述语言,在功能级对设计产品进行定义,并结合功能仿真技术,以确保设计的正确性,在功能定义完成后,利用逻辑综合技术,把功能描述转换成某一具体结构芯片的网表文件,输出给厂商的布局布线器进行布局布线。布局布线结果还可反标回同一仿真器,进行包括功能和时序的后验证,以保证布局布线所带来的门延时和线延时不会影响设计的性能。
“自顶向下”设计方法的优越性是显而易见的。首先,由于功能描述可以完全独立于芯片结构,在设计的最初阶段,设计师可不受芯片结构的约束,集中精力进行产品设计,进而避免了传统设计方法所带来的重新再设计风险,大大缩短了设计周期。
其次,设计的再利用得到保证。目前的电子产品正向模块化方向发展。所谓模块化就是对以往设计成果进行修改、组合和再利用,产生全新的或派生设计。而“自顶向下”设计方法的功能描述可与芯片结构无关。因此,可以以一种IP(Intelligence Property 知识产权)的方式进行存档,以便将来重新利用。
第三,设计规模大大提高。简单的语言描述即可完成复杂的功能,而不需要手工绘图。
17
基于FPGA的LCD控制器设计
第四,芯片选择更加灵活。设计师可在较短的时间内采用各种结构芯片来完成同一功能描述,从而在设计规模、速度、芯片价格及系统性能要求等方面进行平衡,选择最佳结果。目前最为常用的功能描述方法是采用均已成为国际标准的两种硬件描述语言VHDL和Verilog HDL。
3.4 VHDL硬件描述语言
VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。
VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。
1. 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
2. VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
3. VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
4. 对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。
5. VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计
3.5 Quartus II简介
Quartus II软件是Altera公司在MAX+PLUS II软件基础上推出的一种更佳的设计软件。对于一个高性能、价格合理、尽快面市的方案,结合使用Quartus II软件和Altera FPGA将
18
吉林工程技术师范学院毕业论文
是非常好的选择。Quartus II软件比所有竞争产品具有更佳的集成设计环境(例如综合、仿真、逻辑分析和布局布线)。Quartus II平面配置器在输入引脚至所有连接逻辑的信号追踪上,表现出色。集成的Signal Tap II逻辑分析器非常易于使用,不像MAX+PLUS II那样,还要购买第三方开发工具。
Quartus II软件比MAX+PLUS II更加可靠,用户界面更加友好,特别是在仿真,节点发现和引脚分配等方面。同样,图形激励生成器比第三方的仿真工具更快、更有效。转换设计一直非常简单,在很短的时间内,就可以适用到目标器件中。
在MAX+PLUS II软件的基础上,Quartus II软件具有一些重要的优点: 1. 支持器件:
支持MAX 3000A、7000AE、MAX 7000B 和 MAX 7000S系列以及新的MAX II系列。 支持 FLEX 10KE?、FLEX 10K?、FLEX 10KA、ACEX、FLEX 6000系列,以及最新的Cyclone、Stratix 和 Stratix II 系列FPGA。
2. 性能:
对于MAX 3000A、MAX 7000AE、MAX 7000B、MAX 7000S、FLEX 10K 和ACEX设计,比MAX+PLUS II 10.2版本提供更好的平均性能表现。
(1) 对MAX设计,平均设计性能快15%;
(2) 对给定的MAX设计,所需器件资源平均少5%。 3. 综合:
(1)一体化RTL综合不仅支持AHDL,还支持最新的VHDL和Verilog语言标准。
(2)在综合和设计实施之前,RTL浏览器提供VHDL或者Verilog设计的图形表示(仅限于Quartus II软件)。
(3)支持所有的主要第三方综合流程。 4. 高级功能:
高级功能支持MAX II CPLD和最新的FPGA器件系列:
(1)PowerGauge? 功率分析功能支持MAX 3000A, MAX 7000AE和MAX 7000B设计和最新的FPGA器件(即将支持MAX II CPLD器件)。
19
基于FPGA的LCD控制器设计
(2)LogicLock? 基于模块的设计流程 (3)SOPC Builder: 同IP轻松集成 5. 编译: (1)物理综合优化
(2)时序收敛平面配置编辑器 6. 验证功能:
(1)多时钟和多周期时序分析
(2)面向FPGA设计的SignalTap II 嵌入式逻辑分析器 7. 最后一刻设计改变支持(ECO支持): (1)芯片编辑器(将于2004年下半年支持MAX II) (2)渐进式拟和
从MAX+PLUS II软件转换到Quartus II软件非常容易,现在可以用Quartus II进行所有的Altera新设计。Quartus II软件最新版非常实用,根本不用再回到老版本去完成一个设计。转到Quartus II软件的一个主要原因是其出众的实现时序收敛的能力,这对大部分有难度的工程是不可缺少的。如果将Altera CPLD或FPGA中的所有逻辑资源全部用上,即使这样,仍旧能够满足速度需要。比较包括Xilinx在内的其他PLD供货商的开发工具,只有Quartus II软件才是最容易使用的。
3.6 核心控制芯片选择
在数字电路中,核心控制芯片一般有单片机(MCU)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、数字信号处理器(DSP)等。
由于在实际应用中,本系统要能够同时处理三路的血细胞信号(RBC,WBC,PLT),且从前面的每一路A/D转换电路出来的脉冲信号周期约为40μs。因此,若要实时地、不失真地对信号进行采集和处理,必须采用处理速度较高的信号处理芯片。而普通的单片机的处理速度已经不能满足系统要求,因此必须采用以DSP、FPGA或CPLD为核心的处理器。同时,由于我们对DSP不太熟悉,若采用DSP可能会加大编程和调试难度,延长研发周期,故也不采用该芯片;同时系统中对脉冲统计的部分需要用到RAM,CPLD没有自带的RAM模块,对外部的RAM操作处理起来相当麻烦,而FPGA采用VHDL语言和图形输入,DSP-Builder等混合编程方式,又有自带的RAM模块,操作比较灵活。因此,本系统拟采用FPGA中CycloneII芯片EP2C5T144C8实现。
20
吉林工程技术师范学院毕业论文
本设计的器件基础是FPGA(Field Programmable Gate Array)现场可编程门阵列,与PLD(Programmable Logic Device)可编程逻辑器件统称为PLD/FPGA,两者的功能基本相同,只是实现原理略有不同,能完成任何数字器件的功能。上至高性能CPU,下至简单的74电路,都可以用PLD/FPGA来实现。PLD/FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用PLD/FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用PLD/FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。 PLD的这些优点使得PLD技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。
它们是在PAL、GAL等逻辑器件的基础之上发展起来的,同以往的PAL、GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。这样的FPGA/CPLD实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它们开发较早,占用了较大的PLD市场。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。当然还有许多其它类型器件,如:Lattice,Vantis,Actel,Quicklogic,Lucent等。
3.7 FPGA的设计流程
FPGA开发采用的是一种高层次设计方法,这是一种“自顶向下”的方法,适应了当今芯片开发的复杂程度的提高、上市时间紧迫的特点。
这种设计方法首先从系统设计入手,在顶层进行功能方框的划分和结构设计,在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统进行描述,在系统一级(层)进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级(层)可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率、
其具体步骤如下:
按照“自顶向下”的设计方法进行系统划分。
21
基于FPGA的LCD控制器设计
1)
输入VHDL/Verilog HDL代码。这是高层次设计中最为普遍的输入方式,
用任何文本编辑器都可用,但通常在专用的HDL编辑环境中进行,因为专业的集成开发环境通常提供各种结构模版,并且可以自定义各种要素的色彩显示,提高可读性。提高输入效率。此外,还可以采用图形输入方式,这种输入防式具有直观、容易理解的优点。
2)
将以上的设计输入编译成标准的VHDL/Verilog HDL,然后将文件调入
HDL仿真软件进行功能仿真,检查逻辑功能是否正确。对于大型设计,进行代码级的功能仿真主要是检验系统功能设计的正确性,因为对于大型设计,综合、试配要花费数小时,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一般情况下,这一仿真步骤由EDA工具自动进行。
3)
利用综合器对源代码进行综合优化处理,生成门级描述的网表文件,即
将源文件调入逻辑综合软件进行逻辑分析处理。也就是说将高层次描述(行为或数据流级描述)转换成低层次的网表输出(寄存器与门级描述)。逻辑综合软件会生成EDIF(Electronic Design Interchange Format)格式的EDA工业标准文件。这是将高层次描述转换为硬件电路的关键步骤,所以说这步在PLD开发过程中最为关键。影响综合质量的因素有两个,即代码质量和综合软件性能。
4)
如果整个设计超出器件的宏单元或I/O单元资源,可以将设计划分到多
片同系列的器件中。利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。适配完成后,产生多项设计结果:试配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;适配后的仿真模型;器件编程文件。根据适配后的仿真模型,可以进行适配后的时序仿真。因为不同器件、不同布局布线,给延时造成的影响不同,所以对系统进行时序仿真、检验设计性能、消除竞争冒险是必不可少的步骤。由于已经得到器件的实际硬件特性,所以仿真结果能比较精确地预期未来芯片的实际性能。如果仿真结果达不到设计要求,就需要修改源代码或选择不用速度品质的器件,直至满足设计要求。
5)
将适配器产生的期间编程文件通过编程器或下载电缆载入到目标芯片
FPGA中。如果选用Altera公司FPGA器件作为目标器件,上述过程可以再Altera
22
吉林工程技术师范学院毕业论文
公司提供的MAX+Plus II或Quartus II集成开发环境中完成,但如果选用专用的EDA综合工具作为补充,完成逻辑优化与综合,设计质量会更好。第三方综合软件的主要功能就是对HDL语言的源文件进行逻辑综合,生成.edf的EDA工业标准文件,然后在PLD厂家提供的开发软件中调入.edf文件,进行编译、仿真、器件编程等过程,最终完成整个设计。
23
基于FPGA的LCD控制器设计
第4章 总体系统设计及资源
4.1 系统设计要求
根据本系统设计要求,使用VHDL语言,利用Altera提供的FPGA/CPLD开发集成环境QuartusⅡ调试开发。要求能够方便地使用所开发的LCD控制模块,在LCD屏幕上的任意位置显示任意的中文以及英文字符,同时可以根据输入的动态数据进行动态输出,另外在图片显示模式下可以直接将取模后的图片显示在LCD上。
4.2 系统设计总体框图
系统设计总体框图如图6.1所示,在系统上电后,FPGA将首先对系统进行初始化操作,在初始化操作中最重要的是寄存器的复位,显示开关的控制,功能设置以及对显示屏幕进行清屏。之后通过显示控制模块对LCD进行显示的控制。显示控制模块主要负责在LCD显示多行字符时进行换行操作,在用户指定数据在屏幕的指定显示位置时设置该位置所对应的RAM的值,以及在图像显示时进行的ROM地址重映射算法,和对LCD显示区对应RAM进行的写入操作。其中的数据分别来自中英文字符模块,动态数据模块,以及图像数据模块。
对此模块的设计,主体结构以状态机来实现。
图4.1 系统设计总体框图
24
吉林工程技术师范学院毕业论文
4.3 系统开发选用资源 4.3.1 液晶模块选用
本设计选用了带ST7920驱动的LCD12864-12模块来进行设计和调试。该模块自带字库。 其中,12864-12汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵),128个字符(8X16点阵)几64X256点阵显示RAM(GDRAM)。
1、主要技术参数和显示特性:
电源:VDD 3.3V~+5.5V(内置升压电路,无需负压) 显示内容:128 X 64行 显示颜色:黄绿 显示角度:6:00种直视 LCD类型:STN
与MCU接口:8位或4位并行/3位串行 配置LED背光 2、外形尺寸
外观尺寸:93×70×12.5mm 视域尺寸:72×40mm
图4.2 外观尺寸图
25
基于FPGA的LCD控制器设计
外形尺寸
表4.1 外形尺寸表
3、 模块引脚说明
表4.2 模块引脚
逻辑工作电压(VDD):3.3~5.5V 电源地(GND):0V
工作温度(Ta):0~+50℃(常温)/ -20~70℃(宽温)
26
吉林工程技术师范学院毕业论文
4、接口时序
模块有并行和串行两种连接方法(时序如下):
a)
8位并行连接时序图
图4.3 MPU写资料到模块
图4.4 MPU从模块读出资料
b)
串行连接时序图
27
基于FPGA的LCD控制器设计
图4.5 串行时序图
表4.3 时钟周期表
串行数据传送共分三个字节完成: 第一字节:串口控制——格式 11111ABC
A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD。 B为数据类型选择: H表示数据室显示数据,L表示数据室控制指令 C固定为0
第二字节:(并行)8位数据的高4位——格式DDDD0000 第三字节:(并行)8位数据的低4位——格式DDDD0000 串行接口时序参数:(测试条件: T=25℃ VDD=4.5V) 5、用户指令集
28
吉林工程技术师范学院毕业论文
指令表1:(RE=0:基本指令集)
表4.5 基本指令表
指令表2:(RE=1:扩充指令集)
29
基于FPGA的LCD控制器设计
表4.6 扩充指令表
备注:
1、 当模块在接受指令前,微处理器必须先确认内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长时间,即是等待前一个指令确实执行完成,指令执行的时间参考指令表中的个别指令说明。
2、 “RE”为基本指令集与扩充指令集的选择控制元,当变更“RE”位元后,往后的指令集将维持在最后的状态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。
4.3.2 FPGA的选择
选用了Altera公司的Cyclone II系列的FPGA。它采用全铜层、低K值、1.2V SRAM工艺设计,裸片尺寸被尽可能最小的优化。采用300毫米晶圆,以TSMC成功的90nm工艺技术为基础,Cyclone II器件提供了4,608到68,416个逻辑单元(LE),包括嵌入式18*18位乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。
核心FPGA型号为EP2C5T144C8,它具有4608个逻辑单元,119kbits 内部RAM,13个内嵌
30
吉林工程技术师范学院毕业论文
18*18位硬件乘法器,144个引脚。从资源数量、类型和引脚数量已经符合本设计的各项要求。其芯片引脚如图3-1所示,下载/编程接口电路图如图3.2所示,内核电压和IO口电压分别由SPX3819-1.2和 SPX1117-3.3提供。
表4.7 EP2C5T144C8资源
FPGA 系列 EP2C5 逻辑单元(大约每个LE上有50个门) 4,608 M4K RAM 块(4 Kbits+奇偶) 26 总的RAM KBits 119 乘法器 13 109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144VCCA_PLL2GNDA_PLL2GNDIOIOIOIOVCCIO2GNDIOIO/DPCLK8IO/VREFB2N0IOIOGNDVCCINTIOIOVCCIO2GNDIOGNDVCCINTIO/VREFB2N1IOIOIOIO/DPCLK10IOVCCIO2IOGNDIOIO/DEV_CLRnIO/DM1TIO123456789101112131415161718192021222324252627282930313233343536IO/ASDOIO/nCSOIO/CRC_ErrIO/CLKUSRVCCIO1GNDIO/VREFB1N0IO/DPCLK0IOTDOTMSTCKTDIDATA0DCLKnCECLK0CLK1GNDnCONFIGCLK2CLK3VCCIO1IO/DPCLK1IOIOIOIO/VREFB1N1VCCIO1IOIO/PLL1_OUTpIO/PLL1_OUTnGNDGND_PLL1VCCD_PLL1GND_PLL1EP2C5T144C8GND_PLL2VCCD_PLL2GND_PLL2GNDIO/PLL2_OUTnIO/PLL2_OUTpVCCIO3IOIOIO/VREFB3N0GNDIOIOVCCIO3IOIO/DPCLK7IOCLK4CLK5CLK6CLK7IO/DPCLK6IOMSEL0MSEL1CONF_DONEnSTATUSIOIOIO/VREFB3N1GNDVCCIO3IO/nCEOIO/INIT_DONEIOIO/DM1R108107106105104103102101100999897969594939291908988878685848382818079787776757473
图4.6 EP2C5T144C8 引脚图
IOIOIOIOGNDIOVCCIO4IOIO/DPCLK4IO/VREFBB4N0VCCINTGNDIOIOIOIOGNDIOVCCIO4IOIOIO/VREFB4N1VCCINTGNDIOIO/DPCLK2VCCIO4IOIOIOIOIO/DM1BIO/DEV_OEGNDGNDA_PLL1VCCA_PLL172717069686766656463626160595857565554535251504948474645444342414039383731
基于FPGA的LCD控制器设计
VDD3.3VDD3.3R21KR31KR41KJP1TCKTDOTMSTDI13579JATGJATG246810VDD3.3 AS DOWNLOADVDD3.3JP2DCLKCONF_DONEnCONFIGDATA0ASDO13579246810nCEnCSOVDD3.3nCSO1DATA2034U4nCSVccDATAVccVccDCLKGNDASDIEPCS1876DCLK5ASDOVDD3.3AS DOWNLOAD图4.7 下载/编程接口电路图
4.4 硬件设计
本设计的硬件设计部分比较简单,采用PROTEL 99SE设计PCB版图,其中主要元器件为EP2C5T144C8和12864-12液晶模块。硬件连接的示意图如下:
32
吉林工程技术师范学院毕业论文
图4.8 器件连接示意图
33
基于FPGA的LCD控制器设计
第5章 系统各部分模块的设计
5.1 初始化模块设计 5.1.1 LCD模块初始化原理
对12864-12模块的初始化采用状态机的方式,通过资料中给出的12864-12模块的说明,选择所需要的初始化命令,结合特定的时钟频率,对LCD进行初始化。最终使屏幕清屏,显示区对应RAM复位,LCD的功能则设置为所需要的功能。
其中,字符显示模块的初始化流程图如下:
图5.1 字符初始化流程图
34
吉林工程技术师范学院毕业论文
图片显示模块的初始化流程图如下:
其中直至写数据这一步骤之前都为起始的初始化动作。与字符显示不同,图片的现实需要使用特殊指令集中的指令,因此需要在功能设定时做出改动。而同时,在对GDRAM的地址以及内容进行操作时,必须保持绘图显示的关闭状态,因此在初始化时,需要将绘图显示关闭。但是由于写数据这一指令属于常规指令集,因此在设置完GDRAM地址后,需要重新使用功能设定,将指令集的使用改回常规指令集。当数据全部写入完毕,则可以通过再次使用特殊指令集,开启图像显示,将GDRAM中的数据显示在屏幕上。
35
基于FPGA的LCD控制器设计
图5.2 图片显示初始化示意图
5.1.2 时钟模块的设计
由LCD初始化的流程图可得大部分指令的执行时间为72us,而清除显示和地址归位则需要4.6ms,为72us的64倍左右,因此需要选择一个合适的时钟来作为ENABLE信号的输入。
时钟电路的设计:
由于FPGA开发板上自带的晶振频率为50MHZ,而所需要的时钟频率则需要小于13.9KHZ,因此需要一个分频器对其进行分频。
这里采用简单的计数器对其进行分频,计数器上限经过计算设为4000. 经过分频后的时钟信号频率为12.5KHZ,满足实验需要。
在分频之后由于时钟信号需要同时控制LCD模块以及FPGA的模块,因此需要编写一个程序,使得两者之间同步。
最终的时钟控制模块如下:
图5.3 时钟模块
其中CLOCK_LOGIC模块的设计通过几个触发器来实现,部分程序如下: component DFF
port( d : in std_logic; clk: in std_logic; q : out std_logic ); end component;
signal sig1,sig2,sig3 : std_logic; begin
36
吉林工程技术师范学院毕业论文
sig1<= not sig2; sig3<= not clock; out_clk<= sig2;
mydff1 : DFF port map (d=>sig1,clk=>clock, q=>sig2); mydff2 : DFF port map (d=>sig2,clk=>sig3, q=>enable);
5.1.3 字符显示前初始化模块的设计 1、初始化部分的状态机设计 根据字符模块初始化的流程图:
图5.4 LCD初始化流程图
因此,此部分的状态机设计如下: ?.
when IDLE=> --空闲状态
37
基于FPGA的LCD控制器设计
if flag ='0' then state <= CLEAR; flag<='1'; else
state<=IDLE; end if;
when CLEAR=> --清屏状态,使LCD屏幕上显示全白
if div_counter2
div_counter2 <=0; state<=RETURNCURSOR; end if;
when RETURNCURSOR=> --地址归位,使DDRAM地址复位
if div_counter2
div_counter2 <=0; state<=SETMODE end if;
when SETMODE=> --点设置,选择整体画面的移位方式 state<=SWITCHMODE;
when SWITCHMODE=> --显示状态开
38
吉林工程技术师范学院毕业论文
state<=SHIFT;
when SHIFT=> --控制游标的移动和显示移位 state<=SETFUNCTION;
when SETFUNCTION=> --功能设置 state<=SETDDRAM1;
when SETDDRAM1=> --设置DDRAM地址 state<=WRITERAM; ?.
其中,由于时钟信号的周期约为80us,而CLEAR清屏和RETURNCURSOR点设定这两个操作需要4.6ms的操作时间,因此在这两个状态中加入了计数器用以延迟,延迟时间为时钟周期的64倍,约为5.12ms.这样设计可以最大化地提高LCD的响应速度。
2、字符显示的数据选择
?
清除显示(对应状态机状态为CLEAR)对应的数据接口的数据(DB7~DB0)为
00000001,RS,RW为0;
?
地址归位(对应状态机状态为RETURNCURSOR)对应(DB7~DB0)的数据为
00000010,RS,RW为0;
?
点设定(对应状态机状态为SETMODE)选择整体画面不移位,DDRAM地址+1,因
此对应DB7~DB0数据为00000110,RS,RW为0;
?
显示状态开(对应状态机状态为SWITHMODE),光标显示关,字符不反白,因此
对应DB7~DB0数据为00001100,RS,RW为0;
?
游标和显示控制(对应状态机状态为SHIFT)选择AC=AC+1,因此对应DB7~DB0
数据为00010100,RS,RW为0;
?
功能设定(对应状态机状态为SETFUNCTION)选择8为数据线接口,以及基本指
令集动作,因此对应DB7~DB0数据为00110000,RS,RW为0;
?
DDRAM(对应状态机状态为SETDDRAM)地址的设定则根据需要设定,对应DB7~DB0
39
基于FPGA的LCD控制器设计
数据为10000000~10011111之间,RS为1,RW为0;
另外,根据模块引脚说明,FPGA还需要同时控制其他几个引脚。其中,为了选择并行的数据发送模式,PSB引脚应为H。RET引脚则由FPGA控制在经过一段时间的L复位后跳为H。
初始数据的赋值: psb<='1';
rs<='1' when state = WRITERAM or state = READRAM else '0'; -- 当状态为读写RAM时,RS为1
rw<='0' when state = CLEAR or state = RETURNCURSOR or state = SETMODE or state = SWITCHMODE or state = SHIFT or state = SETFUNCTION
or state = SETCGRAM or state = SETDDRAM or state = WRITERAM else '1'; --当状态为如上时,RW为0 data<=\
\ \
\when state = SWITCHMODE else
\
\SETFUNCTION else
\??
5.1.4 图片显示前初始化模块的设计 1、图片显示初始化的状态机设计
图片显示时需要用到扩充指令集。在基本指令集设置的时候需要将SETFUNCTION,功能设计,中的RE设为1. 而在扩充指令集的功能设定中也要将RE设为1,同时在显示模块写入图
40
正在阅读:
购买叉车申请报告07-29
简单事件的概率复习课-108-13
火烧靖国神社事件02-13
“迹”的各种学问08-16
沉默的告白02-14
护士岗位职责培训考试题及答案12-07
财务决算报告(范文)04-18
我国铁路客运市场营销策略研究03-25
SYBASE常见问题收集整理05-13
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 控制器
- 改版
- 基于
- 图文
- 设计
- FPGA
- LCD
- 07级模板论文
- 默勒二矿“一通三防”管理制度汇编
- 建设工程经济 高分突破 07 - 图文
- 散手、专项理论试题及答案
- 0Hxojex农学专业毕业实习大纲
- 香港小学三上数学期末复习题
- 招教考试教育学与心理学复习资料:新课程知识
- 大物2复习题
- word2010中插入不同页码奇数页页眉设为论文章节标题偶数页显示学
- 山东省烟台市2018年中考化学试题及答案解析(word版)
- 经济师考试《中级建筑》辅导资料 单价法
- 2016-场地硬化施工组织设计
- 2013高考理综化学模拟题1
- 财务管理学第五版课后答案(全) - 图文
- 2015年春《建筑施工组织》期末考试题
- 专题14:写作(第04期)-2015年高考冲刺之名校精选精练
- 对当前行政执法活动中存在问题的对策与思考
- 小学信息技术和数学教学整合研究
- 三种常见的组织结构
- 必修10-2017年版新课标高中语文72篇必背古诗文理解性默写之《项