数字图像处理试卷.doc_第1页
数字图像处理试卷.doc_第2页
数字图像处理试卷.doc_第3页
数字图像处理试卷.doc_第4页
数字图像处理试卷.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

学号:0709121057 2010 - 2011学年 第 1 学期 综合设计报告题 目:基于TMS320VC5402与FPGA的液晶模块接口电路设计 班 级: 07电子信息工程 姓 名: 王 纪 指导教师: 崔雪英 成 绩: 电气工程系2010年11月28日课 程 设 计 任 务 书学生班级: 07电子信息工程 学生姓名: 王纪 学号: 0709121057 设计名称: 基于TMS320VC5402与FPGA的液晶模块接口电路设计 起止日期:2010-11-2211-28 指导教师: 崔雪英 设计要求:1. 根据设计题目的要求,选择确定DSP芯片型号、液晶模块2. 完成系统硬件设计3. 实现软件设计4、实现TMS320VC5402与FPGA的液晶模块接口电路目录 摘要一、理论依据二、总体方案三、设计步骤及过程四、软件使用五、心得体会参考文献摘要DSP数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用.采用大规模可编程逻辑器件(FPGA)设计与实现液晶显示电路的一种新的方法。设计了以FPGA为核心的液晶显示、控制硬件电路和基于硬件描述语言(VHDL)的各功能模块,相应地设计了外围驱动电路;通过对驱动电路的分析,设计了时钟模块、串行接口电路、内部RAM块、读写电路以及时序产生电路,并将多个模块集成在一片FPGA芯片上,实现了8064点阵液晶屏的实时显示。通过扩展外部的行、列驱动器和利用FPGA的快速定制性,可方便地实现更多像素点的液晶显示,增强了系统的灵活性。基于TMS320VC5402 DSPFPGA在液晶模块中的设计。针对高速DSP与LCD读写数据过程中时序的不匹配,提出了一种基于FPGA的解决方法。给出了快速器件DSP和慢速器件液晶模块的接口方法,并做出了逻辑时序分析;介绍了TMS320VC5402 DSP与液晶模块通过FPGA接口的硬件和软件实例,并给出了部分程序代码。利用FPGA进行I/O口的扩展,克服了DSP I/O口功能弱的缺点,提高了DSP的控制能力,节省了DSP的I/O资源。实验表明,该系统具有可靠性高的优点。一、理论依据DSP可以实现较高速的数据采集,但其指令更适于实现算法而不是逻辑控制,其外部接口的通用性较差FPGA时钟频率高,内部时延小,全部控制逻辑由硬件完成,速度快、效率高,适于大数据量的高速传输控制,可以集成外围控制、译码和接口电路,在高速数据采集方面,FPGA有单片机和DSP无法比拟的优势,其缺点是难于实现一些复杂的算法因此,单独采用DSP或者FPGA作为数据采集系统的控制核心部分都不是最佳的选择,如果采用DSP与FPGA的组合,使DSP的高速数据处理能力与FPGA的高速、复杂的组合逻辑和时序逻辑控制相结合,则可以互补二者的不足本系统采用高性能数字信号处理芯片TMS320VC5402和现场可编程门阵列EPF10K50E、复杂可编程逻辑器件EPM72 56A作为数据处理和逻辑控制芯片TMS320VC5416将寻址范围分为存储器空间、程序空间和I/O空间。其中,对I/O空间的操作由地址线、数据线和三根信号线、R/和来完成,其时序图如图1所示。读操作和写操作由R/信号线上的高低电平决定。如果不采用外部插入等待周期的方法,仅靠内部的等待周期设置寄存器,访问外部I/O空间时最多可以插入14个等待周期。如果DSP运行在100MHz的主频上(实际上TMS320VC16可以运行在最高160MHz的主频上),也只有0.14s。这对于LCD来说是远远不够的。常见的19264点阵的LCD(FM19264)实际上是由3块独立的6464点阵LCD构成的,共享地址线和数据线,可由CS1、CS2和CS3分别选中。每小块LCD都有各自独立的指令寄存器和数据寄存器,由控制线D/I上的高低电平选择。数据的锁存或出现在数据线上由E信号决定。LCD主要控制管脚的功能如表1所示。对LCD写操作的时序图如图2所示。LCD的每次读写操作最少要1s。如果能使DSP对LCD的访问象对高速设备访问一样,就能够最大限度地减小DSP资源的浪费,并且能够减少系统的复杂性,这就需要在FPGA中添加一个DSP与LCD双向通道速 对每块LCD的控制,是通过操作指令寄存器和数据寄存器实现的。在屏幕指定位置写入数据,要分三步(写入行地址,写入列地址,写入数据)才能完成,不但耗时而且增加了软件编程的复杂程度。如果能够将指令和数据合在一起作为一条指令,那么设计一套简单的指令译码电路和执行电路就可完成这项任务。二、总体方案1、硬件电路设计硬件框图如图3所示。LCD的原始控制指令如表2所示。LCD的显示画面按8行为一页的方式进行划分,共64行分成8页。LCD具有列循环寻址功能,如果第一步设定了页地址和列地址,那么以后每次向LCD写入显示数据,列地址计数器就自动加一。除非再设定列地址,否则列地址就一直累加下去,直到63。这样就简化了写入工作。考虑到实际应用方便,可把一些常用的操作按指令的方式编码。所得到的DSP控制指令如下:控制显示器开关: 0010 0000 1111 111x指定显示起始行: 0100 0000 11xx xxxx指定列地址和页地址: 0110 0yyy yyyy yxxxy:列地址(0191) x:行地址 写入数据: 1000 0000 xxxx xxxx 读显示器状态: 1010 0000 0000 0000 读显示数据: 1100 0000 0000 0000 框图中微指令ROM在接口控制中起着决定性的作用,每条指令的执行都被看作一系列单步时序操作的集合。如果从ROM的某一地址开始依次读出ROM里的数据,那么在每一个数据位上就会出现随时间变化的电平跳变。这样就可以用它作为控制信号进行控制操作。由于ROM是并行输出的,如果用不同的数据位代表不同的控制信号线,就能很容易地实现各个信号线之间的同步操作。这样就能很容易形成时序图中的时序逻辑,而且扩展方便。在上述的指令表示中,通过对高3位进行译码,可以得到ROM寻址时的起始地址。ROM各个数据位的含义如下:其中,低七位是控制LCD的接口线,FREE是微程序执行完标志,每条指令所对应的微程序分为执行状态(有多条微指令,FREE位为0)和闲置状态(一条指令,FREE位为1)。当指令执行状态机检测到FREE位的上跳沿时,加载下一条指令。LD是数据寄存器从DSP获得数据时的加载信号,微程序执行过程中,在某些指令执行时需要加载数据,可由该信号完成。RD是数据寄存器从LCD读入数据的加载信号,主要完成从LCD读入数据。取指控制逻辑主要功能是根据FIFO的状态决定是否写入新的指令以及根据执行状态机的状态读入新的指令,填写状态寄存器,给出中断信号。根据上述硬件设计,DSP的软件设计就大大简化了。以写入数据为例,在写入数据前先查询一下接口模块的状态,如果可以写入就写入数据;否则保持现有数据指针,等待下次写入。一读一写两次外部I/O操作,如果按7个等待周期、主频100MHz计算,只有140ns,加上判断所需时间,200ns内就可以完成写入数据。这里,7个等待周期是考虑到系统内还有其它器件。如果只是对该接口模块操作,两三个等待周期是没有问题的。这样,100ns内就可完成写入数据。在实际应用中,采用上述接口控制模块来完成LCD控制大大减轻了DSP的压力。推而广之,这种方法还可以应用在其它慢速设备上,如打印机等,对于提高系统效率是比较有效的。需要指出的是,尽管这种方法能够建立双向快速通道,却是以占用可编程器件有限的资源为代价的。但是随着目前可编程器件容量的日益扩大,这个问题已不是很突出的了。2、“看门狗”电路在一个DSP系统中,“看门狗”电路是必不可少的部分。“看门狗”和DSP的联络信号通常由DSP的GPIO口提供。比较常用的“看门狗”有MAX706和X25043。X25043有很好的Vcc电压监控、可编程看门狗定时器功能,还有4K字节的串行E2PROM。在X25043内部,有一个状态寄存器,控制该寄存器,就能对X25043的E2PROM进行读或写,并对看门狗超时周期进行设置。图4为DSP和X25043的接口电路。 “看门狗”的工作原理是:如果允许看门狗定时器工作,且CS保持低电平的时间长于看门狗超时周期,则RESET变为低电平,CS的下降沿将复位看门狗定时器。因此,将VC5402的外部输出引脚XF和看门狗的CS相连。在VC5402的McBSP用作其它用途及HPI功能未被使用时,可以选用HD作为GPIO,用于和看门狗通讯:设置X25043的寄存器、对X25043的E2PROM写操作和读操作。软件设计思想为:在主程序中的初始化之后,将XF脚拉低。在主程序的最后或者是某一个最重要的中断子程序中将XF拉高。软件三、设计步骤及实现过程1、VHDL语言实现主控制模块通过外部总线与FPGA连接,接收发自FPGA的命令字和数据,并对命令字进行译码,然后根据译码结果分别控制器它的模块该部分逻辑的VHDL语言实现如下:PROCESS(SCWR,RES)BEGINIF SCWR,EVENT AND SCWR=1THENIF INADR (3 DOWNTO 0)= ADR AND INADR (6 DOWNTO 4)=“000”THENCPLDREGMS1MS2=STD(7 DOWNTO 0);WHEN “10”=MS3NULL;END CASE;END IF;END IF;END PROCESS;2、硬件的选择2.1主控制器的选择采用TI公司DSP芯片TMS320VC5402。C5402采用改进的Harvanl处理结构,指令流水线操作。计算和处理速度很高,系统单指令周期可达到10ns。在片内提供16k的RAM用作程序和数据存储,其最大可扩展寻址空间为1M字节。C5402提供的McBSP串口和DAM数据传送方式极大地方便它在通信领域的应用和开发。如下图所示: TMS320VC5402 2.2电压转换芯片的选择由于TMS320VC5402的工作电压为3.3V,而外部存储器的工作电压为5V,用74LVC4245A完成3.3V到5V的电平转换。其功能是完成对芯片内部的Flash的编程工作,当程序在PC机上调试通过后,通过此接口就可以把程序完整地下载到Flash中去。 74LVC4245A使用的DSP是AD公司的一种低价格、高性能的16位定点运算DSPADSP2181。它集成度高,在ADSP21XX基础上,把24x16KB的程序存储器,16x16KB的数据存储器,两路串行接口和两路DMA都集成在一个芯片上,运行速度快,指令周期可达25ns。它具有2048个存储单元的口,支持并行的外围设备以及相应的可编程等待状态发生器,适合与不同速度的外设接口,可扩展性强。2.3译码器的选择选择常用的74LS138译码器,译码产生8种输出结果,进而控制数码管的显示。74LS138 为3 线8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其工作原理如下:当一个选通端(E3)为高电平,另两个选通端(E1)和/(E2))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。3、液晶显示模块SMC1602B的原理字符式液晶显示模块SMC1602B由一块5x7点阵液晶屏和控制芯片HD44780及其辅助电路组成。它可以显示字母、数字、符号等,显示容量为16x2 个字符,芯片工作电压为4.55.5V,工作电流为2mA(5V),模块最佳工作电压为5V,字符尺寸为4.95x7.95(WH)mm。接口信号说明SMC1602B液晶显示模块具有16条接口信号线,包括8条三态数据线,使能信号线E,读写选择信号线R/W,命令/数据选择信号线RS等,其详细的接口信号说明如表1所示。其中,VL为液晶屏的参考电源,外接可调电阻可用来调节液晶屏的对比度。R/W为读写选择信号,R/W1为读状态,R/W0为写状态。RS为寄存器选择信号,RS1为指令寄存器,RS0为数据寄存器。E为使能信号,读状态在高电平有效,写状态在高脉冲下降沿有效。这三条控制线用于主控CPU访问模块内部控制器HD44780使用。读写操作时序SMC1602B模块接口控制时序适合M6800系列MPU,具有较宽的适应能力,其具体读、写操作时序如下图所示。RAM地址映射图模块SMC1602B内部的控制器是日立公司的HD44780,它是专用于字符显示的液晶显示控制驱动集成电路,集驱动器与控制器于一体,内藏有显示缓冲区 DDRAM和用户自定义的字符发生器CGRAM。其中,显示缓冲区DDRAM是用来存储显示字符代码的,共有80x8位(80个字节),CPU可对 DDRAM进行读、写操作,读、写单元的地址由内部地址计数器AC提供。DDRAM各个单元均对应着显示屏上的各个字符位,他们的对应关系如图2所示。即使显示屏没有这么大,但他们的对应关系依然存在,由HD44780内定的,是不可更改的。因此,当需要在屏幕上某行某列显示某个字符时,CPU只需将字符对应的数据写入显示DDRAM相应的地址处即可,该模块会自动将显示DDRAM内容送往液晶屏,完成相应的显示。可见,SMC1602B模块能根据主控 CPU写入到该模块的各种命令字及显示RAM数据,自行对液晶屏进行一系列操作,而不再需要主控CPU的参与。图2RAM地址映射图图3ADSP2181与SMC1602B的接口电路指令说明液晶模块SMC1602B具有特定的指令,指令格式非常简单,主控CPU只需通过接口将指令写入到液晶模块就可设置工作方式,或者控制液晶模块实现某种功能。常用的指令如表2所示。状态字说明液晶显示模块SMC1602B内有一个忙标志位STA7,它反映了控制器HD44780内部运行时序状态。当STA71时,表示内部操作正在运行,不能接受外部数据;当STA70时,表示已准备好接收,可以随时接收CPU发来的数据和命令,这是SMC1602B向CPU发出的唯一联络信号。CPU对模块的读操作(RS0,R/W1),读出来的状态字是忙标志位与7位当前数据地址指针值的组合,其格式如表3所示。因此,对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7为0。四、软件的使用本次设计主要使用的是CCS软件,CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。CCS有两种工作模式,即:软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。 硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。 CCS文件名介绍在使用CCS前,应该先了解以下软件的文件名约定(在编写程序时最好在某盘根目录下建立一文件夹,将所有的用户文件放置该文件夹中,建议用字母来作为所有文件的文件名,而不要用汉字或数字):l project.pjtCCS定义的工程文件l program.cC 程序文件l program.asm汇编语言程序文件l filename.lib库文件l project.cmd连接命令文件l program.obj编译后的目标文件l program.out可在目标DSP上执行的文件,可在CCS监控下调试/执行l project.wks工作空间文件,可以记录你的工作环境设置。l programcfg.h54头文件l programcfg.s54汇编原文件l program.cdbCCS的设置数据库文件,是使用DSP/BIOS API必须的,其他没有使用DSP/BIOS API的程序也可以使用,当新建一个设置数据库时,会产生下面的文件。 汇编源程序(.asm)格式C5X的程序以段(Section)为基本单元构成,一个程序文件由若干段构成,每段又由若干语句(Statement)构成。C5X的程序分为初始化(Initialized)段和未初始化(Uninitialized)段两大类。初始化段可以是程序代码,也可以是程序中用到的常量、数据表等。我们可以从程序下载的角度来理解,初始化就是需要程序空间写数据(代码或数据)的段,如同初始化程序空间一样。而未初始化段为变量,在下载时,这些变量是没有值的,所以无需向程序空间写,只需留出一些空间以便在运行时存放变量的值,因此这段空间在程序未运行前是没有初始化的。段的名称和属性可以由用户自定义,如果用户不定义,汇编器将按默认的段来处理。C5X汇编器默认的段有3个:“.text”、“.data”、“.bss”。其中,“.text”为程序代码段,而“.data”为数据段,“.bss”为变量段,所以“.text”和“.data”是初始化段,而“.bss”是未初始化段,用户自定义用“.sect”和“.usect”两个汇编指示符来完成。其中“.sect”用于定义初始化段,“.usect”用于定义未初始化段,语法如下:symbol .set “section-na

温馨提示

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

评论

0/150

提交评论