基于Nios II的LCD控制器IP核设计_第1页
基于Nios II的LCD控制器IP核设计_第2页
基于Nios II的LCD控制器IP核设计_第3页
基于Nios II的LCD控制器IP核设计_第4页
基于Nios II的LCD控制器IP核设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 概 述1.1 课题概述本文所要进行描述的设计是运用VHDL语言和Verilog HDL语言,通过分析LCD 控制器的硬件结构和控制时序,使用SoPC技术,把Nios CPU和LCD控制器放在同一个FPGA中。并通过对相应变量的参数化,实现有一定通用性的LCD IP核设计。目的是解决在利用Quartus 进行Nios系统开发时,由于内部没有可用LCD的IP,影响产品开发的问题。1.2 LCD控制器软核设计所要设计的LCD控制器是要求符合Avalon总线规范的。FPGA中集合了Nios CPU、DMA和LCD控制器模块,以及三态桥(连接Flash)、SDRAM控制器。LCD控制器的位置如图(1

2、-1)所示,一端连接Avalon总线,一端连接LCD接口(LCD屏幕标准接口)。LCD控制器负责从SDRAM中提取显示数据,经处理符合LCD时序规范,送至LCD接口,实现显示图像。图11系统总貌图Fig. 1-1 System Summarization2 相关技术介绍本小节主要介绍本论文中所涉及的关键理论和技术,包括LCD显示技术,SOPC技术,SOPC技术特点,Nios II处理器,Avalon总线,DMA技术。2.1 LCD显示技术在1970年,Ferguson制造了第一台具有实用性的LCD。LCD 使用液晶屏幕显示图象,液晶屏幕以电压供应的改变而改变光线的折射来产生色彩的变化LCD 显

3、示屏一般都应用在便携电脑或多媒体放映机上。大部分桌面电脑的纯平LCD显示器就是采用了LCD 技术。利用液晶制成的显示器称为液晶显示器,英文称 LCD(Liquid Crystal Display)。其种类可分为依驱动方式之静态驱动(Static)、单纯矩阵驱动(Simple Matrix)以及主动矩阵驱动(Active Matrix)三种。而其中,单纯矩阵型又俗称的被动式(Passive),可分为扭转向列型(Twisted Nematic,简称 TN)和超扭转式向列型(Super Twisted Nematic,简称STN)两种; 而主动矩阵型则以薄膜式晶体管型(Thin Film Trans

4、istor;TFT)为目前主流。LCD因具有工作电压低、功耗小、显示信息量大、寿命长、易集成、方便携带和电磁辐射污染小等优点,在显示技术中异军突起,被广泛应用于手机、PDA产品、手持式仪器仪表等便携式电子产品与设备中。LCD驱动电路是液晶显示系统的重要组成部分,是一种计算机(或MCU)和液晶屏之间的接口电路,其主要功能是通过调制输出到液晶显示器件电极上的电位信号的相位、峰值、频率等参数来建立交流驱动电场。由于LCD的规格相差较大,常规的方法是针对每一种LCD开发专门的驱动电路,这样的设计浪费时间,而且复用性较差。为此,设计一种可用于多数小规模LCD驱动电路的IP核,通过复用该IP核来解决这个问

5、题是非常必要的。目前,国际上只有I-Shou大学的Yu-Jung Huang等人设计了可驱动不同规模LCD的驱动电路IP核,通过在系统中植入嵌入式微处理器来实现这一功能。但是,这种嵌入式微处理器使系统更复杂,而且成本更高。本文设计的可驱动不同规模LCD的驱动电路IP核是采用FPGA来实现的,能有效克服电路系统复杂和高成本这两个缺点。2.2 SOPC技术SoPC(System On a Program Chip,片上可编程系统)是以PLD(Programmable Logic Device,可编程逻辑器件)取代ASIC(Application Specific Integrated Circui

6、ts,专用集成电路),更加灵活、高效的SoC(System On Chip)解决方案。它最早是由美国Altera公司于2000年提出的,并同时推出了相应的开发软件Quartus 。SoPC是基于FPGA(Field Programmable Gate Array,现场可编程门阵列)解决方案的SoC,与ASIC的SoC解决方案相比,SoPC系统及其开发技术具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能,具有更多的特色,构成SoPC的方案也有如下多种途径。2.2.1基于FPGA嵌入IP硬核的SoPC系统即在FPGA中预先植入嵌入式系统处理器。目前最为常用嵌入式系统大多采

7、用了含有ARM的32位知识产权处理核的器件。但通常这种系统还须配置许多接口器件才能构成一个完整的应用系统,如除配置常规的SRAM、DRAM、Flash外,还须配置网络通信接口、USB接口、VGA接口、PS/2接口或其他专用接口等。这样会增加整个系统的体积、功耗,而降低系统的可靠性。但是如果将ARM或其他知识产权核,以硬核方式植入FPGA中,利用FPGA中的可编程逻辑资源和IP软核,直接利用FPGA中的逻辑宏单元来构成该嵌入式系统处理器的接口功能模块,就能很好的解决这些问题。这样就能使得FPGA中的硬件设计核硬件实现更与处理器的强大软件功能有机的相结合,高效的实现SoPC系统。2.2.2基于FP

8、GA嵌入IP软核的SoPC系统将IP硬核直接植入FPGA的解决方案也存在许多不完美之处。例如硬核多来自第3方公司,导致FPGA器件价格相对偏高;由于硬核是预先植入的,设计者无法根据实际需要改变处理器的结构,如总线规模,接口方式,乃至指令形式,更不能将FPGA逻辑资源构成的硬件模块以指令的形式内置嵌入式系统的硬件加速模块(如DSP模块),以适应更多的电路功能要求;无法根据实际设计需求在同一FPGA中使用多个处理器核。以上诸多不利因素可利用软核嵌入式系统处理器来有效的解决。目前最有代表性的软核嵌入式系统处理器分别是Altera的Nios和Nios 核,及Xilinx的MicroBlaze核。特别是

9、前者,即Nios CPU系统,将很好的解决上述不利因素。Altera的Nios核是用户可随意配置和构建的32位/16位总线(用户可选的)指令集和数据通道的嵌入式系统32位处理器IP核,采用Avalon总线结构通信接口,带有增强的内存、调试和软件功能(C或汇编程序优化开发功能);含有First Silicon Solutions(FS2)开发的基于JTAG的片内设备(OCI)内核。此外,基于Quartus 平台的用户可编程的Nios核含有许多可配置的接口模块核,包括:可配置高速缓存(包括片内ESB、外部SRAM或SDRAM,100MB以上单周期访问速度)模块,可配置RS232通信口、SDRAM控

10、制器、标准以太网协议接口、DMA、定时器、协处理器等。在植入FPGA前,用户可根据设计要求,利用Quartus 和SoPC Builder,对Nios及其外围系统进行构建,使该嵌入式系统在硬件结构、功能特点、资源占有等方面全面满足用户系统设计的要求。2.2.3基于HardCopy技术的SoPC系统HardCopy就是利用原有的FPGA开发工具,将成功实现于FPGA器件上的SoPC系统通过特定的技术直接向ASIC转化,从而克服传统ASIC技术中普遍存在的问题。HardCopy技术是一种全新的SoC级ASIC设计解决方案,它是将专用的硅片设计和FPGA至HardCopy自动迁移过程结合在一起的技术

11、。首先利用Quartus 将系统模型成功实现于HardCopy FPGA上,然后帮助设计者把可编程解决方案无缝的迁移到低成本的ASIC上的实现方案。这样,HardCopy器件就把大容量FPGA的灵活性和ASIC的市场优势结合起来,实现对于有较大批量要求并对成本敏感的电子系统产品上,从而避开了直接设计ASIC的困难,达到降低成本,加快面市周期的目的。2.3 SOPC技术的特点SoPC技术主要面向单片系统级专用集成电路设计的计算机技术,与传统的专用集成电路设计技术相比,其特点有:l 设计全程,包括电路系统描述、硬件设计、仿真测试、综合、调试、系统软件设计,直至整个系统的完成,都由计算机进行。l 设

12、计技术直接面向用户,即专用集成电路的被动使用者同时也可能是专用集成电路的主动设计者。l 系统级专用集成电路的实现有了更多的途径,即除传统的ASIC器件外,还能通过大规模FPGA等可编程器件来实现。2.4 Nios II处理器Nios嵌入式处理器是用户可配置的通用RISC嵌入式处理器,它是一个非常灵活和强大的处理器。Nios处理器的易用和灵活已经使它成为世界上最流行的嵌入式处理器。嵌入式设计者SoPC Builder系统开发工具能够很容易地创建自己的处理器系统。SoPC Builder可用于集成一个或多个可配置的带有许多标准外围设备的Nios CPU,并利用自动形成的Avalon交换结构总线将这

13、些系统连接在一起。Nios嵌入式处理器是FPGA生产厂商Altera公司推出的软核(Soft Core)CPU,是一种面向用户的,可以灵活定制的通用RISC(精简指令集架构)嵌入式CPU。Nios以软核的方式提供给用户,并专为在Altera的FPGA上实现作了优化,用于SoPC集成,最后在FPGA上实现。SOPC系统主要包括一个CPU、I/O终端申请、计时器、UART口及大量的通用寄存器。Nios的数据总线和地址总线由用户定义(最大为32位),也可以根据具体需求增加并行输入输出端、连接外设的接口逻辑等。Nios 系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIP

14、S(Dhrystone Million Instructions executed Per Second)。Altera的Stratix 、Stratix GX、 Stratix 和 Cyclone系列FPGA全面支持Nios 处理器,以后推出的FPGA器件也将支持Nios 。Nios 系列能够满足任何应用32位嵌入式微处理器的需要,用户可以将第一代Nios处理器设计移植到某种Nios 处理器上,Altera将长期支持现有FPGA系列上的第一代Nios处理器。另外,Altera提供了一键式移植选项,可以升级至Nios 系列。Nios 处理器也能够在HardCopy器件中实现,Altera还为基

15、于Nios 处理器的系统提供ASIC的移植方式。Nios 处理器还具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、JTAG调试器、实时操作系统(RTOS)和TCP/IP协议。设计者能够用Altera Quartus 开发软件中的SoPC Builder系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加Nios 处理器核的数量。使用Nios II软件开发工具能够为Nios II系统构建软件,即一键式自动生成适用于系统硬件的专用C/C+运行环境。Nios II集成开发环境(IDE)提供了许多软件模板,简化了项目设置。此外,Nios II开发套件包括两个第三方实时操作系统

16、(RTOS)MicroC/OS-II(Micrium),Nucleus Plus(ATI/Mentor)以及供网络应用使用的TCP/IP协议。在FPGA中使用软核处理器比硬核的优势在于,硬核实现没有灵活性,通常无法使用最新的技术。随着系统日益先进,基于标准处理器的方案会被淘汰,而基于Nios II处理器的方案是基于HDL(Hardware Description Language,硬件描述语言)源码构建的,能够修改以满足新的系统需求,避免了被淘汰的命运。将处理器实现为HDL的IP核,开发者能够完全定制CPU和外设,获得恰好满足需求的处理器。2.5 Avalon总线简介Avalon总线是Alte

17、ra公司设计的用于SoPC中,连接片上处理器和其它IP模块的一种简单的总线协议,规定了主部件和从部件之间进行连接的端口和通信的时序。Avalon总线的主要设计目的如下:简单性,提供一种非常易于理解的协议; 优化总线逻辑的资源使用率,将逻辑单元保存在PLD中;同步操作,将其它的逻辑单元很好地集成到同一PLD中,同时避免复杂的时序。Avalon交换式总线使用最少的逻辑资源来支持数据总线的复用、地址译码、等待周期的产生、外设的地址对齐(包括支持原始的和动态的总线尺寸对齐)、中断优先级的指定以及高级的交换式总线传输。传统的总线结构中,一个中心仲裁器控制多个主设备和从设备之间的通信。这种结构会产生一个瓶

18、颈,因为任何时候只有一个主设备能访问系统总线。Avalon总线的开关构造使用一种称之为从设备仲裁(Slave-side arbitration)的技术,允许多个主设备控制器真正地同步操作。当有多个主设备访问同一个从设备时,从设备仲裁器将决定哪个主设备获得访问权。Avalon规范的制定是为了适应单可编程芯片系统(SoPC)上的外设的开发。这个规范给那些外设设计工程师提供了一个基本的描述基于地址的Avalon总线上主(微处理器)从(存储器、UART、定时器外设等)设备的读/写口。这个规范还描述了各个端口在Avalon交换总线上的传输方式。根据规范,任何一个Avalon上的主设备都可以动态的连接到A

19、valon上的任何一个从设备上。Avalon是一个灵活的接口,工程师可以只使用他们系统所需的数量和类型都有限的几个信号来进行数据传输。Avalon总线定义的内联线的策略使得任何一个Avalon总线上的主设备都可以与任何一个从设备沟通。Avalon总线还支持大范围的系统结构,包括单个的,多个的主设备系统,还具有在外设之间通过不同路径进行无缝的数据传输能力。可以看到Avalon总线为用户提供了非常友好的接口,使得系统搭建中的一些细节问题得到屏蔽,大大减轻了系统搭建的工作量。2.6 DMA技术(一) DMA的概念:DMA是在专门的硬件( DMAC)控制下,实现高速外设和主存储器之间自动成批交换数据尽

20、量减少CPU干预的输入/输出操作方式。通常有两种方式:独占总线方式 周期挪用方式(二) DMA的组成:l 主存地址寄存器 l 数据数量计数器l DMA的控制状态逻辑 l DMA请求触发器l 数据缓冲寄存器l 中断机构(三) DMA的传送数据的过程:由三阶段组成:l 传送前的预处理:由CPU完成一下步骤,向DMA卡送入设备识别信号,启动设备,测试设备运行状态,送入内存地址初值,传送数据个数, DMA的功能控制信号;l 数据传送: DMA自动完成;l 传送结束处理。(四) DMA上应包括通用接口的全部组成部分,并多出如下内容:主存地址寄存器,传送字数计数器,DMA控制逻辑,DMA请求,DMA响应,

21、DMA工作方式,DMA优先级及排队逻辑等。(五) 一次完整的DMA传送过程:DMA 预处理,CPU向DMA送命令,如DMA方式,主存地址,传送的字数等,之后CPU执行原来的程序。(六) DMA 控制在 I/O 设备与主存间交换数据:准备一个数据, 向CPU发DMA请求,取得总线控制权,进行数据传送,修改卡上主存地址,修改字数计数器且检查其值是否为零,不为零则继续传送,若已经为零,则向 CPU发中断请求。这就是DMA的大概工作原理和特点。图21 FPGA中DMA单元结构框图Fig. 2-1 structure diagram of DMA units on FPGA2.7 Quartus 和So

22、PC Builder简介图22 Quartus II软件Fig. 2-2 Quartus II software2.7.1 Altera Quartus 简介Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功 能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。Al

23、tera公司的Quartus II 设计软件提供完整的多平台设计环境,它可以轻易满足特定设计的需要。 它是单芯片可编程系统 (SOPC) 设计的综合性环境。Quartus II 软件拥有 FPGA 和 CPLD 设计的所有阶段的解决方案。Quartus II支持多种输入法,包括原理图,Verilog HDL、VHDL、AHDL、EDIF等。Quartus II支持不同的仿真方式,包括功能仿真和时序仿真。仿真波形的激励可以是图形方式输入信号,也可以是Testbench方式文本文件(即用Tck写仿真脚本文件)。此外,其还支持第三方的仿真工具。用第一种方式进行仿真时,对输入信号加入相应激励就可以了。

24、在局部布线后,会产生以个.SOF和.POF文件,两者都可以进行下载。我们就利用这个平台来进行工程项目开发的。2.7.2 SoPC Builder简介Quartus 软件支持 SoPC Builder 和 DSP Builder 的系统级设计流程。 系统级设计流程使工程师能够以更高水平的抽象概念快速地设计和评估单芯片可编程系统 (SoPC) 体系结构和设计。SoPC Builder 是自动化系统开发工具,可以有效简化建立高性能 SoPC 设计的任务。 此工具能够完全在 Quartus 软件中使系统定义和 SoPC 开发的集成阶段实现自动化。 SoPC Builder 允许选择系统组件,定义和自定

25、义系统,并在集成之前生成和验证系统。下图显示了 SoPC Builder 设计流程。 图23 SOPC 设计流程Fig. 2-3 SOPC design flow chartSoPC Builder可以导入或提供到达用户自定义逻辑块的接口。 SoPC Builder 系统与用户定义逻辑配合使用时具有以下四种机制:简单的 PIO连接、系统模块内实例化、到达外部逻辑的总线接口以及发布局域 SoPC Builder 组件。SoPC Builder 与 Quartus 软件一起提供,它为建立 SoPC 设计提供标准化的图形环境,其中,SoPC 由 CPU、存储器接口、标准外围设备和用户自定义的外围设备

26、等组件组成。 SoPC Builder 允许选择和自定义系统模块的各个组件和接口。 SoPC Builder 将这些组件组合起来,生成对这些组件进行实例化的单个系统模块,并自动生成必要的总线逻辑,以将这些组件连接到一起。l SoPC Builder 库组件包括:处理器知识产权 (IP) 和外围设备存储器接口 通信外设总线和接口,包括 Avalon 总线和 AMBA 高性能总线 (AHB) 数字信号处理 (DSP) 内核 软件标题文件一般 C 驱动器操作系统 (OS) 内核可以使用 SoPC Builder 构建包括 CPU、存储器接口和 I/O 外设的嵌入式微处理器系统;但是,还可以生成不包括

27、 CPU 的数据流系统。 它允许指定具有多个主连接和从连接的总线拓扑结构。 SoPC Builder 还可以导入或提供到达用户自定义逻辑块的接口,其中,逻辑块作为自定义外设连接到系统上。l 建立系统在 SoPC Builder 中构建系统时,可以选择用户自定义模块或模块集组件库中提供的模块。SoPC Builder 可以导入或提供到达用户自定义逻辑块的接口。 SoPC Builder 系统与用户定义逻辑配合使用时具有以下四种机制: 简单的 PIO 连接、系统模块内实例化、到达外部逻辑的总线接口以及发布局域 SoPC Builder 组件。SoPC Builder 提供用于下载的库组件(模块),

28、包括 Excalibur 嵌入式处理器带区和 NIOS 处理器等处理器、UART、定时器、PIO、Avalon 三态桥接器、多个简单的存储器接口和 OS/RTOS 内核。 此外,还可以从一系列的 MegaCore、 OpenCore生成系统生成系统。可以在模块集中选择库组件,并在模块表中显示添加的组件。可以使用模块表或单独向导中的信息定义以下组件选项:系统组件和接口 主连接和从连接 系统地址映射 系统 IRQ 分配 共享从连接的仲裁优先级 系统时钟频率l 生成系统SoPC Builder 中的每个工程包含系统描述文件(PTF 文件),它包含在 SoPC Builder 中输入的所有设置、选项和

29、参数。 此外,每个模块具有相应的PTF 文件。 在生成系统期间, SoPC Builder 使用这些文件为系统生成源代码、软件组件和仿真文件。完成系统设计之后,可以使用SoPC Builder 的 System Generation 页或使用命令行生成系统。SoPC Builder 软件自动生成所有必要逻辑,用以将处理器、外围设备、内存、总线、仲裁器、IP 内核及到达系统外逻辑和存储器的接口集成在一起,并建立将组件捆绑在一起的HDL 源代码。SoPC Builder 还可以建立软件开发工具包 (SDK) 软件组件,例如,标题文件、一般外围设备驱动程序、自定义软件库和OS/实时操作系统(RTOS

30、内核),以便在生成系统时提供完整的设计环境。为了仿真, SoPC Builder 建立了 Model Technology ModelSim 仿真目录,它包含 ModelSim 工程文件、所有存储器组件的仿真数据文件、提供设置信息的宏文件、别名和最初的一组总线接口波形。 它还建立仿真测试台,可以实例化系统模块、驱动时钟和复位输入,并可以实例化和连接仿真模型。还生成 Tcl 脚本,用于在Quartus 软件中设置系统编译所需的所有文件。3 方案设计根据系统设计的要求,以及Nios II嵌入式系统的特点,提出以下两个方案,做相应的比较和分析,从而确定更为合适的、可行的、有实用价值的设计方案。3.1

31、方案(一)方案(一),逻辑器件由以下组成:表31 方案一逻辑器件Table 3-1 logic device of No.1 blue printNios CPUDMAMUXSDRAMFlash11221Flash存储初始化信息和图像数据,当系统上电复位时,将存储的信息通过CPU分别存入SDRAM(1)、(2);此时SDRAM(1)用于系统程序运行存储,而SDRAM(2)用于独立显示存储。DMA负责把显示信息从SDRAM(2)中顺序提取,并送入LCD控制模块中的视频缓存FIFO中,并配合LCD的控制时序,把显示像素数据RGB送到LCD显示器上显示。这个设计的特点是给与系统以独立的程序运行空间和

32、视频数据的缓存。但存在一定的局限性。这个方案的特点是系统结构清晰;系统程序和像素数据分开存储,划分严格,有良好的操作性。图3-1 方案(一)系统框图Fig. 3-1 System diagram of No.1 blue print3.2方案(二)方案(二)设计,逻辑器件由以下组成:表32 方案二逻辑器件Table 3-2 logic device of No.2 blue printNios CPUDMAMUXSDRAMFlash11111同方案(一)Flash用来存储初始化程序和图像信息,系统上电复位后,信息通过Nios CPU将信息存于同一个SDRAM中,划分SDRAM的地址分配,使系统

33、和像素信息共享SDRAM空间。这个系统的特点就是把系统程序的运行空间和显示存储器共享一个SDRAM。能实现共享,就可以实现独立例如【方案(一)】。有一定通用性。中断响应中断请求SDRAMSDRAM controllerMUXLCD控制器TFT显示屏FlashNiosCPUDMA图3-2 方案(二)系统框图Fig. 3-2 System diagram of No.2 blue print4 方案的分析及选定综合上述两个方案的设计分析其各自的特点:方案(一),采用双SDRAM设计,这是设计初期的方案,当时为了思路的简明、结构上采取了独立SDRAM的存储空间来解决系统程序运行空间和显示存储空间的问

34、题。但系统的方案也暴露除了一些实际问题。由于采用相互独立的SDRAM存储器,设计难度降低,方案实用性(通用性、适应性等方面)就减弱了,并且双SDRAM存储器带来了相应的功耗和成本、资源的消耗,不利于环保。相比较而言,方案(二)有它相对的合理性和可行性,系统存储和显示存储共享同一个SDRAM,而MUX(多路复用器)只有一套数据总线和地址总线,所以这里Nios II CPU和DMA对SDRAM的控制读写的问题有提了出来,但这个问题是可以解决的,采取多路复用器(MUX,以及划分SDRAM存储空间,把视频数据基地址(base address)通过在SoPC Builder中做相应更改就可以解决了。5

35、系统实现5.1 LCD控制器IP核设计5.1.1设计思路REGBANKDMALCD控制器图5-1 设计LCD控制器Fig. 5-1 design LCD controller图5-2 S3C2410结构图Fig. 5-2 S3C2410 Frame 5.1.2 S3C2410介绍图(5-2)是三星公司生产的基于ARM9平台的S3C2410的LCD控制器的结构示意图,其功能可以驱动STN、TFT等多种型号LCD显示屏。图(5-1)是本设计仿照S3C2410,简化后的系统设计。由寄存器堆(REGBANK)、控制器专用DMA、视频FIFO、LCD控制时序发生组成。现在简单分析S3C2410工作原理:

36、REGBANK是控制器的寄存器堆,包含初始化信息。负责初始化DMA模块、时序发生模块以及LPC3600(时序控制逻辑单元)。LCDCDMA,是LCD控制器的专用DMA,内置FIFO缓冲单元。相对总线频率,LCD是一个低速设备。这里FIFO的存在是必要的。TIMEGEN,时序发生装置,负责产生LCD适应的时钟脉冲。LPC3600,这是个时序控制逻辑电源,它何以根据控制寄存器的参数,适应多种LCD显示屏的时序,实现通用性。本设计也是在这个部分进行了简化。5.1.3 LCD控制器的软核设计本设计,参照S3C2410设计,进行了以下开发。在FPGA中,定制DMA、FIFO、寄存器以及时序发生逻辑单元。

37、简化LPC3600的功能,实现驱动特定LCD(TFT)的设计目的。本设计的像素数据为16位,显示格式为5:6:5。5.2 LCD控制器组成5.2.1 LCD控制器的相关参数、变量:分辨率:mn (行列) 帧同步:VSYNC 标志这一屏显示的开始,帧同步信号;行同步:HSYNC 表示一行数据的开始,行同步信号;像素时钟:VCLK 像素时钟信号(pixel clock signal);系统时钟:CLK Nios系统的时钟信号;水平变量:HOZVAL = (水平显示尺寸n) -1,属寄存器变量;垂直变量:LINEVAL = (垂直显示尺寸m) -1,属寄存器变量。5.2.2像素存储与显示屏位置的映射

38、关系:nm PmnP00图53 显示屏像素点分布Fig. 5-3 Pixel distribution of display扫描顺序为P00P0n,P10P1nPm0Pmn。表51 像素点Pmn的布局顺序Table 5-1 The Order of Pixel distributionP00P01P02P0nP10P1nP20P2nPm0Pmn像素点在LCD屏幕上的分布。P00为起始扫描点。Pmn为中止扫描点。对应位置关系如作表所示。其中m表示行数,n表示列数。分辨率就是由m、n的值决定的。而更改寄存器中的m、n的值即可改变传送数据,这样也就改变了输出显示图像的分辨率。5.2.3 5:6:5显

39、示格式图54 像素数据映射Fig. 5-4 Pixel data mappingNios系统是32位系统,我们可以设置32位数据的高16位和低16位分别是两个像素点显示数据。也可以设计16位数据,每一个字为一个像素点数据。表52 存储器数据分布Table 5-2 Memory data distributionp00D15D14D0p01D15D14D0p02D15D14D0p0nD15D14D0p10D15D14D0 显示存储器(SDRAM)为线性存储器。显示格式为5:6:5格式,这就是说每一个像素点的数据(RGB)为16位。分别为D15D0。像素点的数据(16位RGB)映射寄存器位置如下。

40、图5-5 数据存储Fig. 5-5 Data Storage显示数据存储、读取及屏幕刷新频率:SDRAMFIFODMANios II 时序发生图5-6 数据传输Fig. 5-6 Data transmission在控制器设计中有一个问题要解决,那就是DMA与Nios对SDRAM控制的问题。由于本设计采用共享SDRAM的设计,所以在DMA传送数据时,Nios是处于非工作状态,如果DMA占用总线过长,就会影响Nios CPU的正常工作。现在就相关参数作一下计算,以作说明:设定点时钟(VCLK)频率为20MHz,每一个字用时50ns。设定Nios时钟(Clk)频率为100MHz,每传送一个用时10n

41、s。设FIFO深度为8个字,设置FIFO的半满标志位,使FIFO作流水操作,当FIFO半满时,DMA向Nios发送传送请求,传送4个字的数据。用时410ns40ns。同时发送4个字数据到时序发生器。如此实现流水操作。FIFO发送4个字用时450ns200ns。所以每向LCD显示屏发送4个字用时200ns,而DMA仅用40ns就可完成传送,剩余160ns可以释放总线,给Nios II来控制,以保证系统程序的正常运转。如果FIFO深度过大,以及时钟设计不合理,会干扰Nios CPU正常工作。出现图像不流畅等状况。Lcd_clkBGRvshsWriteReadyfordataEndofpocketR

42、esetClkWritedata15:0ChipselectAddressLCD 控制器FIFOLCD时序发生图5-7 LCD控制器的内部结构图Fig. 5-7 The internal structure of the LCD controller关于方案的整体框架已经在第二章中做了介绍,本章主要介绍方案的详细设计。本设计中最关键的是LCD控制器的设计,要把LCD控制器整合到配置有Nios CPU的FPGA中。LCD控制器的内部结构如上图所示,有一个FIFO和LCD的时序发生器组成。DMA把SDRAM从Avalon总线上读取像素数据(16位),存到FIFO中缓冲,等待LCD时序发生的时序要求

43、,把相应像素数据发送到LCD(TFT),并显示。5.3 FIFO的定制FIFO(先进先出寄存器),是一种常用于数据缓存的电路器件,可应用于包括高速数据采集、多处理器接口和通信中的高速缓冲等各种领域。FIFO是一种基于RAM的器件,我们可以在FPGA中,利用内部的寄存器定制我们需要的FIFO。在这个设计中,我们采用的就是直接调用厂商(Altera)为自己的FPGA专门打造的FIFO核(关于Quartus 和SoPC Builder会在后面介绍)。通过利用Quartus 的MegaWizard定制的过程如下:图5-8设置FIFO的输出控制信号的选择 Fig. 5-8 choose FIFO out

44、put signals图59 设置“读请求信号”的类型Fig. 5-9 set rdreq signal option图5-10 设置FIFO的输出寄存器Fig. 5-10 set FIFO output register option图511生成文件列表Fig. 5-11 Generate file summary5.4 LCD时序发生下图(5-12)是TFT屏的典型时序。其中VSYNC是帧同步信号,VSYNC每发出1个脉冲,都意味着新的1屏视频资料开始发送。而HSYNC为行同步信号,每个HSYNC脉冲都表明新的1行视频资料开始发送。而VDEN则用来标明视频资料的有效,VCLK是用来锁存视频

45、资料的像数时钟。并且在帧同步以及行同步的头尾都必须留有回扫时间,例如对于VSYNC来说前回扫时间就是(VSPW+1)(VBPD+1),后回扫时间就是(VFPD+1);HSYNC亦类同。这样的时序要求是当初CRT显示器由于电子枪偏转需要时间,但后来成了实际上的工业标准,乃至于后来出现的TFT屏为了在时序上于CRT兼容,也采用了这样的控制时序。图512 TFT时序Fig. 5-12 TFT Timing 在Quartus 中,利用VHDL(硬件描述语言),对上述时序进行描述。形成LCD控制器的一个时序发生器的关键文件(lcd_timing.vhd)。ENTITY部分的程序代码(见附录)形成仿真文件

46、后,看波形分析是,没有错误和警号,顺利仿真。图513 时序仿真Fig. 5-13 timing Simulation5.5 LCD控制器的主要寄存器设置表53 LCDCON1寄存器设置Table 5-3 LCDCON1 RegisterLCDCON1位数功能描述初始状态LINECNT27:18行数寄存器CLKVAL17:8测定时钟频率MMODE7VM触发器频率0PNRMODE6:5TFT显示11BPPMODE4:1像素位数(16bbp)1100ENVID0视频输出使能0l LINECNT :当前行扫描计数器值,标明当前扫描到了多少行。l CLKVAL :决定VCLK的分频比。LCD控制器输出的

47、VCLK是直接由系统总线(AHB)的工作频率HCLK直接分频得到的。作为240*320的TFT屏,应保证得出的VCLK在510MHz之间。l MMODE :VM信号的触发模式(仅对STN屏有效,对TFT屏无意义)。l PNRMODE :选择当前的显示模式,对于TFT屏而言,应选择11,即TFT LCD panell BPPMODE :选择色彩模式,对于真彩显示而言,选择16bpp(64K色)即可满足要求。l ENVID :使能LCD信号输出。表54 LCDCON2 寄存器设置Table 5-4 LCDCON2 RegisterLCDCON2位数功能初始值VBPD31:24后回扫时间0x00LINEVAL23:14水平尺寸VFPD13:6前回扫时间VSPW5:0脉冲宽度l VBPD , LINEV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论