触控屏接口驱动设计论文44443.doc_第1页
触控屏接口驱动设计论文44443.doc_第2页
触控屏接口驱动设计论文44443.doc_第3页
触控屏接口驱动设计论文44443.doc_第4页
触控屏接口驱动设计论文44443.doc_第5页
免费预览已结束,剩余72页可下载查看

下载本文档

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

文档简介

摘 要sopc触控屏接口驱动设计紧跟嵌入式系统发展趋势,采用一种新的嵌入式系统设计技术sopc(片上可编程系统)技术进行的触控屏接口驱动设计产品开发。tft触摸屏具有电压低、功耗小、易集成、轻巧便携以及显示效果好等突出优点,现已广泛应用于各种显示领域,在人机交互中扮演着重要的角色。本文设计的是基于sopc触控屏接口驱动。该驱动设计分为硬件开发和软件开发两个流程。通过软件控制硬件电路触控屏的显示。本设计采用altera公司的cycloneiii系列的fpga芯片配置nios ii处理器,采用verilog语言编写触控屏接口驱动;在sopc用户自定义ip核添加设计的驱动组件;使用altera公司提供的quartus ii 8.0和nios ii 8.0作为调试环境;完成了设计任务,达到了预期的效果。关键词:nios ii;quartus ii;fpga;verilog;sopcabstractthe sopc touch screen interface drive design follows embedded systems development trend, using a new method of embedded system design technology - the sopc (chip programmable system) technology for touch screen interface drive design product development. tft touch screen with voltage, low consumption, easy integration, lightweight portable and display prominent advantages effect is good, has been widely applied in all kinds of display field, in human-computer interaction plays an important role.this design is based on the sopc touch screen interface drivers. the driver design into hardware development and software development two processes. through software control hardware circuit touch screen displays.the system uses alteras fpga chip configuration cycloneiii series niosii processor, the touch screen is base on verilog language preparation interface drive; using the sopc user-defined ip nuclear add design driver components ; using alteras quartus ii 8.0 companies and nios ii 8.0as a debugging environment; to complete the design task to achieve the desired results.keywords: nios ii;quartus ii;fpga;verilog;sopc目录1 绪论11.1 sopc builder11.2 verilog hdl语言及modelsim se 6.0软件21.3 软件quartus8.031.4 ip核简介31.5 lcd控制器ip核设计意义和目的42 avalon总线规范52.1 avalon总线特点52.2avalon从端口传输52.2.1 avalon从端口信号介绍52.2.2 avalon从端口读传输62.3 avalon主端口传输72.3.2 avalon主端口读传输72.3.3 avalon主端口写传输82.4 avalon总线地址对齐方式82.4.1 本地地址对齐92.4.2 动态地址对齐93基于sopc的触控屏驱动电路设计103.1 触控屏设计思路103.1.1 lcd控制器原理113.1.2 总体设计结构113.2 触控屏功能模块123.2.1 avalon-mm slave接口模块123.2.2 avalon-mm master接口模块143.2.3 触控屏时序产生模块153.2.4fifo帧缓存模块183.3 modelsim仿真183.3.1 测试原理与波形194基于sopc触控屏系统硬件设计214.1 开发板简介224.1.1 核心板224.1.2 sdram接口224.2 sopc系统特点与开发流程234.3 sopc builder硬件开发环境254.3.1 sopc builder功能254.3.2 sopc builder组件254.4 sopc builder创建系统模块264.4.1 创建quartus ii工程264.4.2 配置sopc builder274.4.3 生成nios ii系统334.5 集成niosii系统到quartusii工程334.5.1 创建包含nios ii系统的quartus ii顶层模块344.5.2 fpga引脚分配及其他设置354.5.3 quartus ii工程的编译并下载355 基于sopc的触控屏软件设计375.1 niosii编程375.1.1 hal系统库375.1.2 nios ii ide工程结构385.1.3 数据宽度和hal类型定义395.2 创建c/c+工程395.3 配置工程的系统属性405.4 编译及运行41结 论43致 谢44参考文献45附录a 英文原文46附录b 中文翻译60731 绪论近年来,随着半导体技术的发展,sopc (system-on-a-programmable-chip),即可编程片上系统。 用可编程逻辑技术把整个系统放到一块硅片上,称作sopc。可编程片上系统(sopc)是一种特殊的嵌入式系统:首先它是片上系统(soc),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能11。1.1 sopc buildersopc builder是altera公司实现sopc概念的一款工具软件,使得用户可以通过自定义逻辑的方法方便地开发基于nios ii的sopc系统。sopc builder集成在eda工具quartus ii中,提供nios ii处理器及一些常用外设接口,用于组建一个在模块级和组件级定义的系统,能够自动生成片外、总线和总线仲裁器等所需的逻辑。基于sopc的设计在很大程度上依赖于利用集成电路ip(intellectual property)1。集成电路ip是指经过预先设计、预先验证、符合产业界普遍认同的设计规范和设计标准,具有相对独立,并可以重复利用的电路模块或子系统。lcd控制器ip核设计,用硬件描述语言实现控制器的逻辑功能,这种参数化的组件设计具有很强的通用性和兼容性。nios是altera公司推出的第二代ip软核处理器,与其它ip核一起构成了sopc系统的主要部分。sopc builder在eda工具quartusii中,提供了nios ii处理器及一些常用外设接口,如flash、sdram控制器、spi接口、时钟桥、三太桥以及锁相环pll等,对于一些库中没有提供的模块用户可以定义添加。用户可以通过自定义逻辑的方法在sopc设计中添加自开发的ip核。定制用户逻辑外设是使用nios嵌入式软核处理器的sopc系统的重要特性。本文采用自定义添加tft触控屏接口驱动定制用户逻辑外设。采用cyclone iii ep3c40f484c6开发板自带触摸屏 (分辨率为800484,可以显示字、彩图等),利用spoc builder中元件编辑器create new component,实现了嵌入式nios ii软核处理器与tft触摸屏显示模块驱动接口的系统设计,并给出了相应的系统硬、软件的流程和主要程序。本设计核心是嵌入式系统的硬件配置、硬件设计、硬件仿真、硬件调试、软件设计、软件调试等。sopc builder是altera nios嵌入式处理器开发软件包,用于实现nios ii系统的配置、生成;nios ii ide,用于进行软件开发、调试及运行。基于nios ii的sopc系统开发分为硬件开发和软件开发两个流程。硬件开发过程包括由用户定制系统硬件的构建,采用verilog语言进行sopc的触控屏接口设计,之后在sopc软件下添加,然后由计算机完成硬件系统的生成;软件开发则与单片机语言开发一样,在构建的硬件系统之上建立软件设计。利用quartus ii工具,用于完成nios ii系统的综合、硬件优化、适配、编程最后下载到开发板中进行硬件系统测试;在构建的硬件系统之上建立软件设计,利用nios ii软件编写简单的c程序控制触控屏显示简单的图像,验证设计的正确性和可靠性。一般lcd 控制器的中央控制单元都是相同的。因此, 可以通过合理的功能划分, 考虑将中央控制单元设计成ip。有了成熟的中央控制单元, 再配合特定lcd 接口电路和cpu 接口电路, 就可以满足不同的应用需求, 有效地解决重复设计问题,而且sopc嵌入式设计周期短、效率高并且在以后的生活中应用率高并且有广阔的发展空间。1.2 verilog hdl语言及modelsim se 6.0软件(1)verilog hdl语言介绍verilog hdl是一种硬件描述语言,是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能7。verilog hdl是一种硬件描述语言,是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。在verilog hdl中有两种基本语句:连续赋值语句,在此表达式中寄存器和线网都可以连续驱动线网,实现基本的结构化建模:过程赋值语句,在此表达式中寄存器和线网都将运算结果存入寄存器,实现基本的行为建模。一个设计通常包含许多模块,每个模块都有一个输入/输出的接口和该模块相应的功能描述。而该功能描述既可以采用结构化的描述方式,也可以采用行为化的描述方式,或者两者的结合。这些模块都被加工到一定的抽象级别,然后通过线网互连4。(2)modelsim se 6.0软件介绍modelsim具备强大的模拟仿真功能,在设计、编译、仿真、测试、调试开发过程中,有一整套工具供你使用,而且操作起来极其灵活,可以通过菜单、快捷键和命令行的方式进行工作。在modelsim中进行仿真有两种工作方式:工程仿真流程该方式使用工程建立仿真环境,简单、易学、易用,可以方便地借助gui进行对话时操作,起许多工程工具完成;基本仿真流程直接建立仿真库,并以仿真库为基础直接进行仿真,此工作方式便于生成do文件脚本内容,便于批命令自动执行。本设计主要采用工程仿真流程,用于对用户自定义ip核驱动程序的仿真。1.3 软件quartus8.0作为altera的新一代开发软件,quartus ii具有简单易学、易用、可视化、集成化设计环境等优点,它提供了一种与结构无关的设计环境,使得设计人员无须精通器件的内部结构,只需运用自己熟悉的输入工具(如原理图输入或高级行为描述语一言)进行设计,开发系统把这些设计转换为最终结构所需要的格式5。有关结构的详细知识己经装入开发工具软件,设计人员无需手工优化自己的设计,因此设计的速度非常快。quartus编译器是quartus ii的核心,提供了功能强大的设计处理功能,可以使设计更好地用altera fpga实现。出错定位功能和出错警告信息窗口中丰富的提示信息可以是设计修改变得较为轻松。quartus ii设计输入有两种方式:原理图方式;文本输入方式。本文涉及采用原理图设计输入方式。quartus8.0是单片可编程系统(sopc)设计的综合性环境和sopc开发的基本设计工具; 本设计中quartus ii 用于完成nios ii系统的综合、硬件优化、适配、编程下载以及硬件系统调试。1.4 ip核简介 ip核是一种具有自主知识产权的功能电路模块,其目的是将一些在数字电路中常用但比较复杂的功能模块,如fir滤波器、sdram控制器、pci接口等设计成能让其他用户直接使用的模块,以减轻工程师的负担,避免重复劳动。随着cpldfpga的规模越来越大,设计越来越复杂,使用ip核是一个发展趋势。中央处理器、以太网控制器、lcd控制器和pci接口等都是ip核的具体例子。ip核是soc(systemonchip) 设计的核心。ip核分为软核、固核和硬核三种类型。软核是用hdl(硬件描述语言)方式提交,其性能已通过功能和时序验证。不依赖于任何实现工艺和实现技术,具有很大的灵活性。使用者可以方便地将其映射到自己所使用的工艺上,可复用性很高。随着笔记本电脑、便携式信息终端、投影设备、pda以及壁挂电视的发展,lcd作为重要的人机交互界面已经越来越显示出它的优越性。其次,它的低功耗、低工作电压、体积小、重量轻以及显示对比度高等优点。另外,在设计上可以根据产品的需要,设计出各种多样化的具有产品特色的字符图形,从而使得产品更具有吸引力。一个完整的soc系统,包含了不同种类的ip核。对于需要人机交互的soc系统来讲,显示控制器的ip核是不可缺少的。lcd显示作为目前一种主流的显示方式获得广泛应用。因此,lcd控制器的ip核设计对于soc应用系统设计具有非常重要的意义6。ip核设计的主要工具是硬件描述语言hdl。1.5 lcd控制器ip核设计意义和目的lcd屏作为一种显示器件,现己成为嵌入式设备中必不可少的外围接口器件之一。lcd控制器是用于处理器与lcd显示驱动器之间的接口部件,它对lcd屏提供时序信号和显示数据,用来控制数据在lcd屏上的显示,是lcd显示系统的重要组成部分6。本文提出一种针对lcd控制器ip核的设计方法。该控制器具有avalon总线接口,将其与其它标准ip核一起构成以nios ii为核心的片上系统。针对本设计中帧缓存读操作的特点,选择以avalon主端口接口的形式对该模块进行开发,大大提高了处理器的运行效率,并实现ip核参数化设计,提高了控制器对于不同lcd屏的可复用性,最后通过对输出缓冲fifo的使用,解决了数据读出时钟与像素时钟不同步的问题。一个完整的soc系统,包含了不同种类的ip核。对于需要人机交互的soc系统来讲,显示控制器的ip核是不可缺少的。lcd显示作为目前一种主流的显示方式获得广泛应用。因此,lcd控制器的ip核设计对于soc应用系统设计具有非常重要的意义。2 avalon总线规范2.1 avalon总线特点avalon总线规范为外设的端口与总线模块之间的数据传输提供了互联模型。它定义了一种可配置的互联策略,允许设计者只保留支持特定的数据传输模式所需要的信号。在没有主或从端口先验知识的情况下,这种互联策略允许任意主外设连接到任意从外设avalon总线的主要特点:简单性;总线逻辑资源使用的优化减少对可编程逻辑器件和逻辑单元的占用;同步操作为同步的片上外设提供优化的接口,避免了复杂的时序问题,方便与片上的用户自定义更好的集成;分开的数据、地址和控制总线提供了最简单的片上接口,通过使用专用的地址和数据总线,avalon外设不需要对数据和地址周期进行译码;高性能avalon总线可以在每一个总线时钟周期内完成一次数据传送;动态地址对齐如果在总线快读不一致的两个外设之间进行数据传送,avalon总线的自动地址对齐功能将自动解决数据宽度不匹配的问题,而不需要设计者干预。2.2 avalon从端口传输avalon从端口传输是指avalon总线模块与从端口之间进行的数据传输。在avalon从端口和avalon总线模块之间的接口是本设计驱动的核心。2.2.1 avalon从端口信号介绍(1)addressavalon从端口的address信号字寻址的,指定一个字的偏移量到从端口的地址空间。根据avalon从端口的readdata信号或者writedata信号的宽度,从端口的地址每次访问一个完整的数据单元。(2)readdata和writedatareaddata和writedata是在数据传输中负责传送数据的从端口信号。一个avalon从端口可以使用这两个信号,本文设计使用了这两个信号,信号宽度为32bit。(3)chipselect、read和writechipselect、read和write信号都是avalon从端口的单比特输入信号,用以标识一个新的读或写传输的开始。当chipselect信号无效时,avalon从端口将忽略除reset信号之外所有其他的输入。2.2.2 avalon从端口读传输(1)基本从端口读传输基本从端口读传输是avalon总线规范定义的一种不具有任何总线传输特性的从端口度传输模式,它是所有其它avalon从端口读传输的参考标准。基本从端口读传输有avalon总线模块发起,根据外设数据端口的宽度,每次从avalon从端口向avalon总线模块传输一个单元的数据。基本从端口读传输没有延迟,一次基本从端口读传输在一个总线时钟周期内完成9。(2)具有等待周期的从端口读传输为基本从端口读传输中插入等待周期在时序上扩展了从端口读传输,使得avalon从端口可以在一个或多个总线时钟周期内捕获数据;然而,等待周期的引入降低了从端口的最大数据吞吐量。在理想情况下基本从端口读传输的最大数据吞吐量是每个总线时钟周期传输一个数据单元,再插入一个等待周期后,最大数据吞吐量变为每两个总线时钟周期传输一个数据单元8。从端口传输图如图2.1所示。2.1 从端口传输图(3)具有建立时间的从端口读传输一些外设,大部分是片外的异步设备,在read信号有效之前,需要address和chipselect信号稳定一段时间,这段时间称为建立时间。具有建立时间的avalon传输能自动满足各从端口信号的建立时间要求。具有建立时间的从端口读传输使用的信号与基本读传输使用的信号不同,不同的只是信号的时序。具有建立时间的从端口读传输通常用于一些片外片设。一个从外设如果具有建立时间,则意味着这个从端口读传输和写传输都具有相同的建立时间。在同一个外设里,建立时间不能与可变等待周期共存。2.3 avalon主端口传输avalon主端口传输是指avalon总线模块和avalon主端口之间进行数据传输。2.3.1 avalon主端口模块(1) waitrequestwaitrequest信号时avalon主端口的输入信号,用来表示avalon总线模块还没有准备好进行数据传输,对于主端口的传输,在发起总线传输时设置所有信号有效,然后等待直至avalon总线模块使waitrequest信号失效,才能继续进行数据传输。(2)address主端口address信号代表的是字节地址,与主端口的数据宽度无关。主端口只能设置与字节边界对其的地址有效,字边界是建立在主端口的数据宽度基础上的。(3)readdata和writedatareaddata和writedata是在数据传输中负责传数据的信号。本设计中使用了这两个信号并且两信号的宽度为32bit。.(4)read和writeread和write是来自于主端口的1位输出信号,表示主端口要开始发起一个读或写传输主端口传输是连续发生的,主端口结束一个读传输时,它能是read连续有效,在下一个周期启动另一次传输。2.3.2 avalon主端口读传输基本主端口读传输是avalon总线规范定义的一种不具有任何总线传输特性的主端口读传输,它是所有其它avalon主端口读传输的参考标准。在基本主端口读传输中,主端口通过向avalon总线模块提供有效的地址和读请求信号在时钟上升沿发起总线传输。在理想情况下,读取的数据在下一个时钟上升沿之前从avalon总线模块返回,传输在一个总线周期内结束。如果在下一个时钟上升沿读取数据还没准备好,则avalon总线模块便设置一个等待请求并使主端口暂停,直至avalon总线模块为主端口准备好有效数据。因此主端口传输中所带的等待周期一定是可变的,不存在带固定等待周期的主端口传输,也不存在带建立时间和保持时间的主端口传输10。如果avalon总线模块是waitrequest信号有效n个周期,则传输总共需要n+1个周期,avalon总线模块没有超时机制来限制主端口等待的时间,只需要waitrequest保持有效,主端口就一直处于等待状态8。具有等待周期主端口传输图2.2所示。图2.2 等待周期主端口传输图2.3.3 avalon主端口写传输基本主端口写传输是avalon总线规范定义的一种不具有任何总线传输特性的主端口写传输,它是所有其它avalon主端口写传输的参考标准。基本主端口写传输由avalon主端口发起,每次从avalon主端口向avalon总线模块传送一个数据单元。如果avalon总线模块不能在第一个总线周期内捕获数据,就将waitrequest信号设置为有效,使avalon主端口进入等待状态。2.4 avalon总线地址对齐方式当系统中存在数据宽度不匹配的主从端口对时,就必须考略地址对齐的问题。事实上,这并不局限于avalon总线,对于所有的处理器系统都会出现这样的错误。avalon总线模块抽象数据的差别,以至于任何主端口都可以与任何从端口通信,而不必考虑各自数据宽度。avalon地址对齐特性定义了从端口数据在主端口的地址空间是如何被对齐sdram控制器使用的是动态地址对齐。avalon总线模块访问内部逻辑的接口,串行i/o外设使用本地地址对齐,地址对齐只对主端口有影响,它定义了从外设数据单元在主端口地址空间内出现的位置,地址对齐方式对从端口的行为没有任何影响。对于主端口和从端口,地址对齐也不影响传输期间的信号或信号行为。2.4.1 本地地址对齐采用本地地址对齐方式,主端口的单个传输精确地对应于从端口的单次传输。当在传输数据的主从端口对齐中,主端口的数据宽度于从端口的数据宽度时,那么在一次数据传输中,从端口的数据单元存放在主端口数据单元的低位,主端口数据单元的高位无效。2.4.2 动态地址对齐传输数据的主从端口的数据宽度不同,则avalon总线模块将动态处理数据,avalon总线模块所提供的这种服务就称动态地址对齐,采用动态地址对齐,当较宽的主端口访问较窄的从端口时,avalon总线模块需要执行多次从端口读传输,直至较窄的从端口数据单元填满主端口的数据宽度,当一个32位的主端口从一个8为的从端口读取数据时,avalon总线模块与该从端口之间进行4次成功的读传输每次从端口传输8位数据后才能返回一个32位的有效数据单元,动态地址对齐抽象了从端口的物理细节,使得各个主端口进行数据传输时好像从端口的数据宽度和主端口一致。动态地址对齐方式省去了主端口软件将来自较窄的外设的数据结合在一起的操作,简化了软件的设计。主端口的数据宽度比从端口窄,那么在进行数据传输时,avalon总线模块将指定从外设合适的字节段来完成数据的传输,主端口从从端口读取数据时,avalon总线模块将指定从外设的某个字节段返回给主端口;主端口向从端口写数据时,avalon总线模块使用byteenable信号来指定将来自主端口的数据写入从端口的那个字阶段。3 基于sopc的触控屏驱动电路设计随着数字电子产品的迅猛发展,液晶显示屏因其工作电压低、功耗小、寿命长、易集成和电磁辐射污染小等优点,逐渐成为了嵌入式系统应用的主流。在嵌入式系统中,lcd控制器是用在处理器之间的接口部件,它对lcd屏提供时序信号和显示数据,用来控制数据在lcd屏幕上的显示,是lcd显示系统中重要的组成部分。3.1 触控屏设计思路根据avalon总线规范和lcd时序要求和sopc下自定义ip核要求编写lcd驱动将lcd驱动化为各个模块编写,之后通过modelsim仿真,验证设计代码的正确与否。最后将设计加入到自定义ip核中加入系统架构生成硬件系统,通过简单的软件编程实现触控屏的简单显示。本设计是基于sopc builder中以自定义组件的形式对lcd控制器进行设计。该控制组件具有avalon总线接口,可以很容易地将其与其他标准ip核一起构建以nios ii cpu 为核心的片上系统。针对本设计中帧缓存读操作的特点,选择以avalon主端口接口形式对模块进行开发;并实现ip核参数化设计,提高了控制器对于其他不同规格tft液晶屏的复用性。最终完成了对lcd控制器的测试验证。(1)研究avalon片上总线的时序,以实现一个基于avalon总线lcd控制器ip核,实现avalon主端口和avalon从端口,以便基于avalon总线和nios ii cpu构建sopc系统。(2)对lcd控制器ip核的功能在总体上进行分析和设计。划分各功能模块,并对各功能模块的功能和接口进行分析和研究。在上述研究基础上,设计并实现lcd控制器的各个功能模块,其中avalon从端口、avalon主端口、视频时序发生器、颜色处理器模块和fifo模块的研究与设计。(3)使用verilog hdl编写测试平台并使用modelsim se 6.0进行功能仿真,对所实现的各个功能模块进行功能仿真和测试,并进行集成测试。(4)使用sopc builder构建基于avalon总线的sopc系统,并搭建物理验证的试验平台。构建好sopc系统和试验平台后,在nios ii ide集成环境下编写测试软件。对所设计lcd控制器ip核进行物理验证。3.1.1 lcd控制器原理在嵌入式系统中,lcd控制器是非常重要的片上外围设备,处理器通过lcd控制器来完成对显示驱动器的控制,最终实现lcd屏的点亮操作,其原理如图3.1所示。图3.1 lcd控制器原理图由于lcd显示驱动只是一个被动系统,也就是说,仅有驱动器是不能实现lcd显示的,还需要有控制电路提供驱动系统所必需的扫描时序和显示数据。处理器通过对lcd控制器的操作,实现了对lcd显示扫描时序的设置和显示数据的写入,从而完成对lcd的显示操作。3.1.2 总体设计结构lcd控制器设计就是在sdram中开辟一段储存空间,用来存放屏幕图像的数据,称之为帧缓存。通过设计适当的硬件逻辑来建立帧缓存与屏幕图像像素之间的一一对应的关系,并配合lcd显示所必需的行、场时序信号,将帧缓存中的数据不断地输送给lcd,完成最终的显示刷新,其总体结构如图3.2所示。图3.2 lcd控制器总体框图lcd控制器刷新周期开始时,主端口模块根据帧缓存地址生成逻辑所产生的地址完成主端口的读操作,实现帧缓存中数据的读取,并将该数据输送给输出缓冲模块。同时,时序信号生成模块依据lcd屏的时序规范生成行、场同步信号,以及与像素同步的相关显示点的横、纵坐标。本设计的lcd控制器数据显示模块,不断从缓存中读取屏幕显示数据。3.2 触控屏功能模块触控屏控制模块包括:一是触控屏与avalon总线master接口,二是触控屏与avalon总线slave接口,三是颜色处理模块,四是触控屏时序产生模块。3.2.1 avalon-mm slave接口模块本模块挂载在avalon总线上,作为从设备使用,用来对所有的用户逻辑进行配置和控制。核心功能就是寄存器的操作,包括读、写,以及一些特殊指示与状态信号的产生与转换。本模块的接口信号如下,主要可以分为三部分:avalon总线从模式的接口信号、内部设计的寄存器信号、各种命令与控制指示信号。本模块实现的是最后在液晶屏上进行图形显示功能所需要用到的硬件电路。硬件电路内部各寄存器通过映射在avalon从端口的可偏移地址之内被访问。本设计中所涉及的从端口写传输操作只与avalon提供的address,write,chipselect,writedata,byteenable几组信号有关,基本过程为:当chipselect和write同时有效时,将writedala信号线上的数据输入到address映射的寄存器中。同理,从端口读传输操作只与address,read,chipselect,readdata信号有关,基本过程为:当chipselect和read同时有效时,将address映射的寄存器中的数据输入到readdata信号线上。通过从端口得到的数据分别赋值给相应的寄存器,寄存器分为:fifo地址寄存器,坐标寄存器,一帧数据长度寄存器。fifo地址寄存器存放着一帧图像数据的首地址,当一帧图像数据显示完之后回到一帧图像数据的首地址;从端口说明见表3.1。表3.1 slaveinterface模块接口信号表 名称io属性 描述备注clkin输入高速时钟,同cpu时钟rstnin系统复位信号readin读信号writein写信号address31:0in地址信号readdata31:0out输出数据writedata31:0in输入数据byteenable3:0in字节使能指示,一位指示32bit中的一个字节chipselectin芯片选择为了处理方便,所有的命令字信号全部采用翻转有效的方式,跨越时钟域的时候更好处理信号。3.2.2 avalon-mm master接口模块lcd控制器的基本功能是:产生lcd时序信号,将帧缓存中的图像信息进行有序输出。由于图形是一帧一帧的输出到lcd屏上的,而且显示刷新的过程是无限循环的,所以必须反复执行帧缓存读操作。因此,本设计针对上述读操作进行硬件加速。可以不断地从fifo读取图像数据,并且在行、场和lcd显示有效时间段读取图像数据,其他时间不读图像数据,减少了avalon总线的使用,有利于图像的显示和减少了总线的负担,分析读帧缓存的操作,可以发现,该过程总是按照一定的顺序将存储器中的数据读出来进行显示输出,规律性非常强。avalon总线规范中,avalon主端口可以主动发起数据传输,并且这个传输过程不需要处理器干预。通过设计适当的主端口控制逻辑,完全可以实现连续、有序的读取帧缓存数据,而处理器的利用效率则可以随之大大提高。avalon主端口是能够在avalon总线上发起传输的一组信号,与avalon从端口一样,avalon主端口也有读和写两种模式。在本设计中,avalon主端口的主要作用是从fifo中读取帧缓存中的图像数据。因此,只要设计主端口读模块就能满足要求。由于lcd控制器外设在第一次访问时需要几个周期的延迟,但此后能够在每个总线周期返数据,针对于此,选择带延迟的读传输模式。avalon总线规范为该模式提供了一个附加的控制信号readdatavalid,用来指示从readdata端口返回了有效的数据。延迟读传输模式的传输周期可以分成两个独立的阶段,地址阶段和数据阶段。主端口在地址阶段提供地址来发起一次传输,从端口在数据阶段提交数据完成传输。本设计中,当fifo写满数据时由从端口发一位数据给主端口并且把fifo首地址赋值给主端口地址,同时开始读fifo中的数据并且随着lcd时钟的变化主端口地址加1,当一帧数据读完时,主端口地址回到起始位,之后主端口从fifo中不断读图像数据并输送给lcd显示。masterinterface模块主要完成地址以及操作时序的产生、像素数据缓存写操作控制、数据宽度的变换等功能,具体的功能如下: 根据起始地址寄存器address、传送字节长度length、配置寄存器的控制下生成主模式的地址、读操作时序; 将读到的32bit数据变成24bit的rgb数据,将其中的8bit无效数据丢弃(这取决于软件中数据的组织形式,如果软件中数据16bit一个字,且没有无效数据的话,那么就要做相应的处理); 当数据传送完毕时,产生翻转有效的指示信号用于启动像素时序产生模块对缓存的读操作; 设计中数据的操作速度满足显示的需要。本模块的接口信号主要由寄存器信号、主模式avalon总线信号、缓存数据存储接口构成,具体如3.2表所示。表3.2 masterinterface模块接口信号表名称io属性描述备注clkin输入高速时钟,同cpu时钟rstnin系统复位信号address31:0out地址信号readout主端口的读请求信号,如果主端口从不进行读传输,不需要该信号。readdata31:0in读传输中来自avalon总线模块的数据线,如果主端口从不进行读传输,不需要该信号。byteenable3:0out字节使能指示,一位指示32bit中的一个字节。waitrequestin来自avalon总线模块的等待信号。本模块采用cpu时钟,所有信息同步于此,设计过程中只需格外注意送给像素时序模块的信号。缓存直接采用fifo。3.2.3 触控屏时序产生模块对于本文的lcd,其引出的信号线有4根:像素数据信号;lcd时钟信号;行同步信号;场同步信号;使能信号。为了实现lcd的正常显示,必须对以上信号按照规范的时序进行驱动。其中,行、场同步信号分别用来标记屏幕上一行和一帧图像的显示时间,屏幕扫描线从上到下、从左到右依次扫描。在这个过程中,只需要将帧缓存中的图像像素数据依次输出,就可以实现屏幕图像的显示。(1)行时序lcd在一个行周期内的典型信号波形如图3.3所示,其中nclk为lcd时钟信号,hd为行同步信号,以r、g、b的顺序依次排列为要显示的像素数据。图3.3 行周期内lcd输入信号波形图3.3解释了标准行周期内时序信号的基本要求:当一个低电平脉冲由hd信号线输入到lcd,标志着一行数据结束和下一行数据的开始,其时间间隔如图3.5所示。数据信号从den为高电平时有效,低电平时无效,一行中的每一点像素点的rgb数据按照像素时钟nclk的频率依次输出,驱动lcd数据信号线,这样就完成了一行图像的显示。最后,在进行下一行图像显示之前,还需要重新关闭像素数据信号一段时间,进行下一行图像数据的显示。本文设计了行计数器随着lcd时钟频率加1,当计数满时计数器清零并且随着lcd时钟频率继续计数,行计数器由一个起始信号控制,当控制信号为高电平时计数器开始计数。(2)场时序lcd屏在一个帧周期的典型信号波形如图3.4所示,其中vd为场同步信号,与行周期内信号时序类似,场同步信号的负脉冲标志着新一帧图像的开始,其时间间隔为tvd行之中周期。同时,数据信号从第tvbp个时钟周期开始有效,一直持续tvd个时钟周期,在这段时间内图像完成从上到下一行一行的输出显示。在一帧图像数据的最后一行完成显示以后,数据信号再次被关闭,时间间隔为tvfp。本文设计了场计数器当行计数器计满时场计数器加1,当场计数器计满时标志着一帧图像已经显示完毕,也标志着下一帧图像数据的显示的开始。图3.4 帧周期内lcd输入信号波形lcd屏在一个帧周期内的典型信号波形如图3.4所示,其中vd表示场同步信号,与行周期内信号时序类似,场同步信号的负脉冲标志着新一帧图像的开始,其时间间隔如图3.5所示。同时数据从den为高电平时有效,在这段时间内图像完成从上到下一行一行的输出显示。在一帧图像的最后一行完成显示以后,数据信号再次被关闭,时间间隔如图3.5所示。图3.5 lcd场时间参数由时序图可以看出,行时序和场时序的变化规律一致,只是时序参数和计数的时间单位不同,因此在实现用行时序控制场时序。在开始信号有效时行和场计数器同时计数,当复位后进入初始状态,在初始状态中进行初始化后,进入同步时间计数状态。同步时间计数状态计满后,进入场计数器技术状态,当场计数器计满后标志着一针图像的传完,重新进入行同步时间计数状态进行周而复始的状态变化。3.2.4 fifo帧缓存模块ddr控制器随着系统时钟不断往fifo写数据当一帧数据写满时就不在进行写状态,等待lcd控制器进行读状态,颜色处理器模块从fifo 中获取数据,颜色处理器每次从fifo中读取32bit数据,并不断送给lcd,颜色处理器将每一个字节作为一个像素数据,并将一个字节的像素数据转换为三个字节的rgb数据。每一个字节数据对应一个像素,颜色处理器将rgb数据作为该像素的rgb值。同步fifo缓冲器在avalon主端口与颜色处理器之间进行数据缓冲,其大小为32bit数据。颜色处理器从同步fifo缓冲器读取数据,当同步fifo缓冲器写和读相互不冲突时,同步fifo缓冲器产生读请求,让avalon主端口向avalon总线发起读传输,从总线上获取数据将写入同步fifo缓冲器。颜色处理器从fifo中读取像素值并且传给lcd显示模块。3.3 modelsim仿真为了验证设计的正确性,必须进行仿真。根据设计的不同阶段,仿真可以分为功能仿真(function simulation)和时序仿真(timing simulation)。功能仿真又称前仿真,是在不考虑器件延时的情况下仿真。其主要是验证设计中的逻辑功能是否满足设计要求。时序仿真又称为后仿真,是在考虑电路延时和器件传输延时的情况下的仿真。通常在做fpga的设计时,功能仿真完成后,只要综合布局布线后的静态时序报告没有违反时序约束的警告,就可以下到板子上去调试了,采用功能仿真就足够了。本论文采用的仿真软件是modelsim软件,modelsim具备强大的仿真功能,操作起来极其灵活。modelsim在仿真时不需要编辑输入波形文件,而是需要编写测试程序来完成初始化和产生输入激励等工作。下面就对各个模块以及最后集成测试的测试平台的编写和仿真进行讨论。3.3.1 测试原理与波形 (1) avalon从端口仿真与测试avalon从端口的仿真测试的方法是先模拟cpu编写一个测试文件仿真avalon总线模块,并用该仿真程序与lcd控制器的avalon从端口进行交互,模拟寄存器的读写。通过先向寄存器中写入值,然后再读出该值和按相应地址写入时的地址数据是否一致。图3.6为从端口的仿真波形图。图3.6 从端口仿真图从上图可知从端口一位地址对应一位数据写信号有效时将数据写入相应的寄存器,当读信号有效时对应寄存器地址将数据数输出。通过从端口数据的写入来控制lcd模块,控制lcd的读取图像的首地址和读取数据的长度。(2)avalon主端口仿真与测试avalon总线与avalon主端口之间交互的仿真的实现方法是编写测试文件avalon仿真avalon总线模块的行为。avalon模块的作用是响应avalon主端口的读请求。并将fifo中相应的数据输出给avalon主端口。通过读信号和相应的地址主端口不断地从fifo中读取图像数据并按照lcd时序将图像数据输送给lcd。图3.7为avalon主端口从显存中读取数据时的波形仿真图。图3.7 主端口仿真图图3.7是仿真图的一部分是从地址8到地址14和相应的图像像素数据,地址和数据都是32位其中数据高8位没有使用,低24位分别是r、g、b像素数据,通过主端口从fifo中读取数据并将数据传送给lcd从而完成lcd图像的显示。(3)lcd图像显示模块lcd显示模块是将fifo中读出的图像数据在触控屏上显示在其它模块经过测试正常工作后,需要对图像显示模块进行简单的测试,比如直接向lcd输入图像数据,然后检查图像显示模块在各个模式下处理后的数据是否正确,即测试从fifo中读出的数据是否将其转化成相应的像素rgb数据。测试通过后,就可以进行系统的集成测试了。本文的重点就是要严格要求lcd时序和从fifo读出的数据的时序,必须在lcd显示第一行的第一个点数据应和从fifo中读取的图像数据的首位像素点一致,并且以后读出和显示一一对应。因为系统集成测试时大部分测试工作还是对读出的像素点和显示的像素点进行测试,系统集成测试主要是看各个模块集成后,整个系统是否工作正常,测试的主要内容是系统集成后能否按正确的时序产生正确的图像rgb数据,测试对象是顶层模块。测试方法是用avalon主端口和avalon从端口模拟avalon总线行为,用从端口中提供的寄存器读写任务对寄存器进行配置,来设置从fifo读取数据的首地址和读取数据的长度等参数,然后再作如下检查:通过根据lcd显示内容计算出来的显存所用空间的大小,得出显存存储一帧数据,之后查看lcd是否正确显示一帧数据,看是否将显存中的数据读出。图3.8为lcd显示的数据。图3.8 为lcd显示的数据从图3.8可以看出当den有效时,将像素数据分为r、g、b传送给lcd,hcount和vcount分别为行计数器和场计数器 ,随着lcd时钟将各个像素点传送给lcd。4 基于sopc触控屏系统硬件设计基于sopc触控屏系统硬件设计就是在sopc下建立一个硬件系统,该系统主要包括:主要有jtag uart、sdram controller、flash,ssram,时钟桥,三态桥等构建一个简单的触控屏系统2。jtag

温馨提示

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

评论

0/150

提交评论