221摘要:随着人们生活水平的提高,对显示器的要求也随之提高了。液晶作为一种新兴的显示器,以其节电、低辐射、体积小、散热小等优点,迅速成为最受欢迎的显示器之一。并且它不仅能把想要知道的数据以数字形式表示出来,它甚至可以很直观方便的以汉字与图表的形式表示出来,后者的功能是一般的七段LED数码管所不能实现的。而且液晶显示器是纯数字设备因此与此连接的设备也是数字的,从而可以减少在数模转换过程中的信号损失和干扰,其次不需要进行时钟频率、向量的调整。而基于FPGA控制的液晶显示器以其快速性和稳定性的优势受到了越来越多的研究。本设计我们采用的液晶的型号是GDM12864,在理解其显示原理和引脚结构的基础上,把该液晶分为8页,这样可以只用其中的一部分来进行显示。我们主要设计的是显示模块部分的编程,为了简化设计,把该部分分为控制显示程序和字库的调用模块。字库对于编写控制模块的程序,我们要用到QuartusII软件来编译和仿真程序。QuartusII软件自带的仿真器支持波形文件作为激励。关键字:液晶FPGAQuartusII控制222一引言1.1课题的来源、意义近年来越来越多的设备上都是用液晶进行显示的,它与传统的CRT显示器相比最大的优点就是耗电更量低并且体积更小。一般说来,液晶的耗电量还不到CRT显示器的一半,而体积还不到后者的1/4。而相比较于LED数码管,它可以显示的信息要更丰富。我们都知道,LED数码管只能显示数字,这对于普通设备上的简单显示也就足够了,但对于稍微复杂的字母汉字以及图像的显示,就完全不能和液晶显示器相比了。所以单从人机交互的方面考虑,液晶无疑是最理想的,从而液晶显示器成为了现在工业仪表和工业控制等领域的主流显示器。由于用普通的原理图方式来设计和管理包含上万甚至几十万、上百万个晶体管的集成电路是十分复杂甚至不可能实现的,而这正是FPGA芯片的优点所在。而且近几年用综合工具把可综合风格的HDL模块转换成具体电路发展非常迅速,大大提高了复杂数字系统的设计生产率。所以FPGA产品已经从最初的通信行业扩展到消费电子、军事航天、汽车电子等行业。而传统的用于控制液晶显示的单片机或DSP由于运算速度方面不是令人满意,显示显示效果并不理想。研究人员因而把目标转移到FPGA芯片上来。1.2课题的研究意义和发展现状1.2.1课题的研究意义现代计算机与通信系统的电子设备中广泛使用了数字信号处理的专用集成电路。它们主要用于数字信号的传输所必须的滤波、变换、编码、解码、加密、解密、校验、压缩、解压等,对于处理这些以大量的数学运算为基础的处理,传统的C、Pascal、Fortran、Basic语言或汇编语言这几种常用的编程语言都可以。如果只研究算法,只在通用的计算机上运行程序或利用通用的CPU来设计专用的微处理器嵌入系统,掌握上述语言就足够了。如果需要设计和制造能进行快速计算的硬件逻辑专用电路,必须学习数字电路的基本知识和硬件描述语言。因为现代复杂数字逻辑系统的设计都是借助于EDA工具完成的,无论电路系统的仿真和综合都需要掌握硬件描述语言。近年来数字信号处理(DSP)系统的研究人员一直在致力于研究出更快的算法来实现对信号的即时处理。当产生比较可靠的算法后,就通过各种编程语言及仿真软件来仿真实现。但随着信息技术的快速发展以及人们对设备的智能化、微型化、低功耗方面的要求的提高,很多工程项目都要求系统的实时响应。所以我们的处理系统在接受到信号后必须在毫秒甚至微秒级的时间内处理完成并送到的相应的输出模块中。这时通用的微处理器或专用与信号处理的微处理器显然是223无法实现的。对于这些复杂的运算,只能用专用的高速硬线逻辑电路即FPGA器件来实现。在FPGA的高速大规模集成电路的基础上实现对数字信号的实时处理。而现代专用集成电路的设计是通过电子设计自动化(EDA)工具实现的。1.2.2课题的发展前景FPGA可以用硬件描述语言(HDL)的程序设计硬件,其好处主要体现在:理解容易,电路的调试速度快,维护简单,有很多易于掌握的仿真、综合和布局布线工具,还有可以用C语言配合HDL来做逻辑设计的布线前后的仿真并验证功能是否正确。CPLD能完成任何数字器件的功能。上至高性能CPU,下至简单的74系列电路,都可用CPLD实现。这些器件如同一张白纸或是一堆积木,可以通过原理图或硬件描述语言自由设计一个数字系统。再通过QuartusII等软件仿真,还可以事先验证设计的正确性。在完成PCB以后,还可以利用在线修改能力,随时修改设计而不必改动硬件电路。使用CPLD器件,可以大大缩短设计时间,支持可重复擦写,减少PCB面积,提高系统的可靠性。PLD的这些优点使得它在90年代后得到飞速发展。224二点阵式液晶显示控制模块的原理介绍2.1点阵式液晶显示控制模块基本原理2.1.1显示控制模块的基本原理该模块通过对FPGA芯片编程,并通过调用显示ROM文件中的字库,把相应的二进制显示代码逐条送到显示驱动电路,再经放大后送到点阵式液晶显示出来。2.1.2显示控制模块的原理框图我们根据2.1.1对点阵式液晶显示控制模块的描述,设计如图2-1的原理框图。显示驱动控制器控制信号控制信号驱动时序显示数据显示数据显示数据图2–1点阵式液晶显示控制模块框图图中FPGA是用来做主控制芯片的,相当于一个微控制器。显示ROM中包含有要显示的字库或图形的代码,FPGA就是通过显示控制电路查询并调用其二进制代码,送到点阵式液晶进行显示。显示ROM与FPGA是两个分别独立的部分,所以对于相同的FPGA控制程序,只需改变要显示的ROM中FPGA显示控制电路显示驱动电路显示液晶(LCD)显示ROM配置电路225的字库就可以改变显示内容,而不必对FPGA做另外的修改。通过这种方式控制设计的硬件的好处在于易于理解、易于维护、调试电路速度快、有很多易于掌握的仿真、综合和布局布线工具,还可以用C语言配合HDL来做逻辑设计的布线前和布线后仿真并验证功能是否正确。2.2系统硬件介绍2.2.1GDM12864图形点阵式液晶的介绍一、GDM12864的硬件组成DB0~DB78RETVEED/I,R/W3CS2CS1图2–2点阵式液晶主要硬件构成原理图如上面图2–2所示,是GDM12864的原理图。其中IC3为行驱动器,IC1和IC2分别为左半个和右半个液晶的列驱动器。三、GDM12864的工作时序RSR/WEADDRESSNN+1N+2IC1IC2LCDPANEL128×64DOTS6464IC364内藏负压电路226OutputAddressNAddressN+1registerBusyWireBusyReaddataBusyReaddataDB0-DB7CheckaddresscheckaddressNcheckaddressN+1图2-3GDM12864引脚时序图输入输出缓冲寄存器(I/O)输入缓冲控制器控制决定芯片是否可用。如果CS1和CS2是上升沿,输入或输出数据不会动作,因此内部数据不变。但是RSTB和ADC却可以照常运行,不受其影响。输入寄存器输入寄存器用来连接不同运行频率的嵌入式微处理器(MPU)而且输入寄存器还用来暂时存储没写入显示ROM的数据。当CS1和CS2是正值时,R/W和RS选择输入寄存器,来自MPU的数据写到输入寄存器,并送到显示RAM。锁存器的数据在使能信号E的下降沿自动写入显示数据RAM。输出寄存器当CS1和CS2是上升沿并且RS=H,被存储的显示RAM的数据送到输出寄存器,输出寄存器存储显示RAM的临时数据。当CS1和CS2是上升沿并且R/W=H,RS=L时,数据总线的数值就能读出了。重置打开电源时对RSTB终端设置一个较低的值,系统能够被初试化。当RSTB是0时,系统从MPU接受指令,接下来的程序就可以运行了。忙碌标记忙碌标记决定KS0108B是否运行。当忙碌标记是高电平时,KS0108B在内部运行,当忙碌标记是低电平时,KS0108B就可以就收数据或命令了。显示开关触发器显示开关触发器决定晶振的开关。当触发器置0时,选择性和非选择性的电压都会体现在输出端子部分;当触发器置1时,不管显示RAM的数据是什么,非选择性电压都会传输到输出端子。显示开关触发器能够通过指令改变状态。当RSTB是低电平时,显示数据就会消失,触发器的状态就会通过读指令输出到DB5。X页寄存器X页寄存器表明内部消失数据RAM的页数。计数功能取消,相应的地址被指令置1。Y地址计数器Y地址计数器指定内部显示RAM的数据地址。该地址被指令置1并且伴随读写显示数据自动加1。[1]四、GDM12864的主要参数指标GDM12864是一种图形点阵液晶显示器,它主要由行驱动器和列驱动器227以及128×64全点阵液晶显示器组成,可完成图形显示,也可以显示8×4个的(16×16点阵)汉字。主要技术参数和性能指标:1。电源:VDD为+5V。模块内自带-10V负压,用于LCD的驱动电压;2。显示内容:128(列)×64(行)像素点;3。全屏幕点阵;4。七种指令;5。与CPU接口采用8位数据总线并行输入输出和8条控制线;6。占空比:1/64;7。工作温度:-10~+55,存储温度:-20~+60;2.2.2FPGA芯片的介绍在本设计中我们采用ALTERA公司MAX7000系列的FPGA芯片。该系列有四个专用输入,它们可以作为每个宏单元和I/O引脚的高速、全局控制信号,如时钟(clock)、清除(Clear)和输出使能(OutputEnable)等。MAX7000的逻辑阵列块(LAB)有16个宏单元组成,多个LAB通过可编程连线阵列(PIA)和全局总线;连在一起。全局总线有所有的专用输入、I/O引脚和宏单元的提供信号。LAB的输入信号有:①来自通用逻辑输入的PIA的36个信号;②用于寄存器的辅助功能的全局控制信号;③从I/O引脚到寄存器的直接输入通道,用于实现高密度的MAX7000器件的快速建立时间。在MAX7000中逻辑阵列实现组合逻辑,给每个宏单元提供5个乘积项。乘积项选择矩阵分配这些乘积项作为到或门和异或门的主要输入逻辑,以实现组合逻辑函数,或把这些乘积项作为宏单元组中触发器的辅助输入,即清除(Clear)、置位(Preset)、时钟(Clock)和时钟使能(ClockEnable)控制。每个宏单元的一个乘积项可以反向后回会送到逻辑阵列。这个可共享的乘积项能够连接到同一个LAB中任何其他乘积项上。根据设计的逻辑需要,QuartusII开发环境将自动优化乘积项的分配。作为寄存器功能,每个宏单元的触发器可以单独地编程为具有可编程时钟控制的D触发器、T触发器、SR触发器或JK触发器。另外,只要需要,也可将触发器旁路,实现组合逻辑工作方式。每个触发器也支持异步清除和异步置位功能,乘积项现在矩阵分配乘积项去控制这些操作。虽然乘积项驱动触发器的置位和复位信号是高电平有效,但是,在逻辑阵列中将信号反向可得到低电平有效控制。此外,每一个触发器的复位功能可以由低电平有效的、专用的全局复位引脚GCLRn提供。所有与I/O引脚有关的MAX7000的宏单元都具有快速输入功能。这些宏单元的触发器有的直接来自I/O引脚输入通道,它旁路了PIA和组合逻辑。这些直接228输入通道允许触发器作为具有快速输入建立时间(3us)的输入寄存器。[2]2.2.3VerilogHDL介绍Verilog是专门为复杂数字系统的设计仿真而开发的,本身就非常适合复杂数字逻辑电路和系统的仿真和综合。由于Verilog在其门级描述的底层,也就是在晶体管开关的描述方面比VHDL有更强的功能。采用Verilog输入法的最大优点是其与工艺无关。对于设计出实际的电路,工程师在设计功能和验证逻辑阶段,只需要利用系统设计时对芯片的要求,而不必过多考虑门级及工艺实现的具体细节。逻辑校验与具体工艺库的匹配、布线及时延计算可利用计算机的超强能力并在EDA工具的帮助下来实现,并最终把人们从繁琐的设计中解放出来。三液晶显示控制模块的程序设计3.1QuartusII软件的简单介绍对于编写控制模块的程序,我们要用到