TMS320LF2407_DSP_流水灯的课程设计_第1页
TMS320LF2407_DSP_流水灯的课程设计_第2页
TMS320LF2407_DSP_流水灯的课程设计_第3页
TMS320LF2407_DSP_流水灯的课程设计_第4页
TMS320LF2407_DSP_流水灯的课程设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、DSP结构、原理和应用考试报告 TMS320LF2407 DSP 流水灯学院:中南大学软件学院专业:软件+电气工程及自动化姓名:林 爽学号:序言1.1 DSP芯片的特点DSP芯片,也称数字信号处理器, 是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速的实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:在一个指令周期内可完成一次乘法和一次加法。 程序和数据空间分开,可以同时访问指令和数据。 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。 具

2、有低开销或无开销循环及跳转的硬件支持。 快速的中断处理和硬件I/O支持。 具有在单周期内操作的多个硬件地址产生器。 可以并行执行多个操作。 支持流水线操作,使取指、译码和执行等操作可以重叠执行。 与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。 1.2 DSP芯片的分类DSP芯片可以按照下列三种方式进行分类。 1按基础特性分 这是根据DSP芯片的工作时钟和指令类型来分类的。如果在某时钟频率范围内的任何时钟频率上,DSP芯片都能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称为静态DSP芯片。例如,日本OKI 电气公司的DSP芯片、TI公司的TMS320C2XX系列芯片

3、属于这一类 如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类DSP芯片称为一致性DSP芯片。例如,美国TI公司的TMS320C54X就属于这一类。 2按数据格式分 这是根据DSP芯片工作的数据格式来分类的。数据以定点格式工作的DSP芯片称为定点DSP芯片,如TI公司的TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX系列,AD公司的ADSP21XX系列,AT&T公司的DSP16/16A,Motolora公司的MC56000等。以浮点格式工作的称为浮点DSP芯片,如TI公司的TMS320C3X/C4X/C8X

4、,AD公司的ADSP21XXX系列,AT&T公司的DSP32/32C,Motolora公司的MC96002等。 不同浮点DSP芯片所采用的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,如TMS320C3X,而有的DSP芯片则采用IEEE的标准浮点格式,如Motorola公司的MC96002、FUJITSU公司的MB86232和ZORAN公司的ZR35325等。 3按用途分 按照DSP的用途来分,可分为通用型DSP芯片和专用型DSP芯片。通用型DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片属于通用型DSP芯片。专用DSP芯片是为特定的DSP运算而设计的,更适合特殊

5、的运算,如数字滤波、卷积和FFT,如Motorola公司的DSP56200,Zoran公司的ZR34881,Inmos公司的IMSA100等就属于专用型DSP芯片。 1.3 DSP芯片的应用数字信号处理(DSP)芯片是一种特别适合于进行数字信号处理运算的微处理器可实时快速地实现各种数字信号处理算法。自20世纪80年代初诞生以来已广泛应用于通信、电子、航空航天、军事及家电产品成为一种十分重要的电子产品的核心部件。DSP芯片得到了飞速的发展。DSP芯片的高速发展,一方面得益于集成电路技术的发展,另一方面也得益于巨大的市场。在近20年时间里,DSP芯片已经在信号处理、通信、雷达等许多领域得到广泛的应

6、用。目前,DSP芯片的价格越来越低,性能价格比日益提高,具有巨大的应用潜力。DSP芯片的应用主要有:(1) 信号处理如数字滤波、自适应滤波、快速傅立叶变换、相关运算、谱分析、卷积、模式匹配、加窗、波形产生等;(2) 通信如调制解调器、自适应均衡、数据加密、数据压缩、回波抵消、多路复用、传真、扩频通信、纠错编码、可视电话等;(3) 语音如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音存储等;(4) 图形/图像如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等;(5) 军事如保密通信、雷达处理、声纳处理、导航、导弹制导等;(6) 仪器仪表如频谱分析、

7、函数发生、锁相环、地震处理等;(7) 自动控制如引擎控制、声控、自动驾驶、机器人控制、磁盘控制等;(8) 医疗如助听、超声设备、诊断工具、病人监护等;(9) 家用电器如高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/电视等。随着DSP芯片性能价格比的不断提高,可以预见DSP芯片将会在更多的领域内得到更为广泛的应用。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。数字信号处理的算法需要利用计算机或专用处理设备如DSP和专用集成电

8、路(ASIC)等。数字信号处理的研究方向应该更加广泛、更加深入特别是对于谱分析的本质研究,对于非平稳和非高斯随机信号的研究,对于多维信号处理的研究等,都具有广阔前景。数字信号处理技术发展很快、应用很广、成果很多。多数科学和工程中遇到的是模拟信号。以前都是研究模拟信号处理的理论和实现。模拟信号处理缺点:难以做到高精度,受环境影响较大,可靠性差,且不灵活等。数字系统的优点:体积小、功耗低、精度高、可靠性高、灵活性大、易于大规模集成、可进行二维与多维处理。随着大规模集成电路以及数字计算机的飞速发展,加之从60年代末以来数字信号处理理论和技术的成熟和完善,用数字方法来处理信号,即数字信号处理,已逐渐取

9、代模拟信号处理。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们所需要的信号形式。数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。数字信号处理是20世纪60年代,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科。它的重要性日益在各个领域的应用中表现出来。其主要标志是两项重大进展,即快速傅里叶变换(FFT)算法的提出和数字滤波器设计

10、方法的完善。数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。例如:滤波、检测、变换、增强、估计、识别、参数提取、频谱分析等。第一章、整体设计原理一、原理通过对DSP结构、原理及应用的学习。在初步了解DSP结构和原理的基础上,进行简单的应用实验,掌握DSP的基本应用。通过熟悉DSP模板的内部结构以及CCS软件,掌握DSP2407的汇编语言编程和调试方法,了解DSP的指令和I/O端口的寄存器的配置,并结合DSP实验模板对DSP进行编程控制数字输入/输出端口点亮LED显示管。实验的具体要求如下:实现LED显

11、示管的循环显示:先第1个LED亮,然后是第2个LED亮,第3个LED显示管亮。第4个灯亮。如此循环显示。二、基本理论指导实验的基本理论是DSP的数字I/O端口以及其寄存器的配置。通过对这些理论的掌握和运用,达到了解和熟悉一般DSP数字I/O的知识。(1)数字I/O端口TMS320LF2407系列有多达41个通用、双向的数字I/O(GPIO)引脚,其中大多数是基本功能和一般I/O复用引脚,TMS320LF2407系列的大多数都可以用来实现其他功能。数字I/O端口模块采用了一种灵活的方法,以控制专用I/O和复用I/O引脚的功能,所有I/O和复用引脚的功能可以通过9个16位控制寄存器来设置,这些寄存

12、器可以分为两类:l I/O口复用控制寄存器(MCRx):用来控制选择I/O引脚作为基本功能或一般I/O引脚功能。l 数据和方向控制寄存器(PxDATDIR):当I/O引脚作为一般I/O引脚功能时,用数据和方向控制寄存器可控制数据和I/O引脚的数据方向,这些寄存器直接和I/O引脚相连。(2)数字I/O端口寄存器图1给出了TMS320LF2407系列I/O端口复用引脚配置简图,从图上可以看出一些寄存器单元的配置对应于实际I/O引脚的内部结构之间的联系。图1 复用引脚配置图表1中所列的是数字I/O模块可用的寄存器单元,和其他240xA外设一样,这些寄存器被存储器映射到数据空间,地址从7090h到70

13、9Fh。寄存器单元中保留的位所是无效的,读时为0,写对它无影响。表1 数字数字I/O模块控制寄存器地址地址存储寄存器说明7090hMCRAI/O复用控制寄存器A7092hMCRBI/O复用控制寄存器B7094hMCRCI/O复用控制寄存器C7098hPADATDIRI/O端口A数据和方向寄存器709AhPBDATDIRI/O端口B数据和方向寄存器709ChPCDATDIRI/O端口C数据和方向寄存器709EhPDDATAIRI/O端口D数据和方向寄存器7095hPEDATAIRI/O端口E数据和方向寄存器7096hPEDATDIRI/O端口F数据和方向寄存器下面介绍I/O口复用输出控制寄存器。

14、下面描述了I/O口复用控制寄存器A(MCRA)I/O口复用控制寄存器B(MCRB),I/O口复用控制寄存器C(MCRC),其中表2是I/O口复用控制寄存器A(MCRA)的配置,对寄存器的每个位的值做了详细的描述;表3是I/O口复用控制寄存器B(MCRB)的配置,对寄存器的每个位的值做了详细的描述。表4是I/O口复用控制寄存器C(MCRC)的配置,对寄存器的每个位的值做了详细的描述。l I/O口复用控制寄存器A(MCRA)地址7090h注:R=可读,W=可写,_0=复位后的值表2 I/O口复用控制寄存器A(MCRA)的配置l I/O口复用控制寄存器B(MCRB地址7092h)注:R=可读,W=可

15、写,_0=复位后的值表3 I/O口复用控制寄存器B(MCRB)的配置l I/O口复用控制寄存器C(MCRC地址7094h)注:R=可读,W=可写,_0=复位后的值表4 I/O口复用控制寄存器C(MCRC)的配置以下介绍DSP的I/O口数据和方向寄存器。TMS320LF2407系列总共有6个数据和方向控制寄存器(PxDATADIR),当I/O口用作一般I/O引脚功能时,用数据和方向控制寄存器,可控制数据和到双向I/O引脚的数据方向。这些寄存器直接和双向I/O引脚相连。当I/O用作基本功能时,这些寄存器的设置对相应的引脚无影响。l 端口A数据和方向控制寄存器A(PADATADIR)地址7098h注

16、:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口B数据和方向控制寄存器(PBDATDIR)地址709Ah注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口C数据和方向控制键寄存器(PCDATDIR)地址709Ch注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口D数据和方向控制键寄存器(PDDATDIR)地址709Eh注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口E数据和方向控制键寄存器(PEDATDIR)地址7094h注:_+复位后的值和相应引脚的状态有

17、关,R=可读,W=可写,_0=复位后的值l 端口F数据和方向控制键寄存器(PFDATDIR)地址7096h注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值二、硬件电路1原理图及说明 电源及LED显示电路根据TMS320LF2407的数字I/O口复用寄存器和数据、方向寄存器,可应用到LED显示管的点亮上。因为用发光二极管作为指示是控制系统中常用的方法。而且接口电路简单,编程方便而且直观。设计的电路图如图2所示。图2 TMS320LF2407与LED显示管相连第三章、软件设计这里用软件延时的方法来调整发光二极管的延时时间间隔。当发光二极管被点亮之后,通过改变端口的数据输

18、出,达到点亮不同的LED显示管的目的。实验要求实现LED显示管的循环显示:先第1个LED亮,然后是第2个LED亮,第3个LED显示管亮。第4个灯亮。如此循环显示。在给端口赋初值为0000 0001后,其高8位为0000 0000;主要是对低8位进行操作。通过对低8位左移一位再与0000 0001相或,得到的值通过端口输出,便可以完成0000 0001à à0000 1111的显示,每改变一次显示的时间间隔是由软件延时控制产生的。当数据的最高位等于1的时候,根据判断将程序跳转,从1111 1111开始对数据的操作变为先与0111 1111B相与,再右移一位,将得到的结果输出。

19、当输出数据的最低位为0的时候程序跳转,完成了基本功能的一个循环,程序跳到循环开始的地方,即给程序重新赋值为0000 0001,进行下一轮的循环。如此即可以实现实验要求的功能。3.1程序所用的DSP的程序空间和寄存器(一)系统寄存器包括系统控制和状态寄存器SCSR1,开始地址7018h;状态寄存器ST0和ST1;(二)I/O口的寄存器I/O口复用控制寄存器A(MCRA),地址7090h;I/O口复用控制寄存器C(MCRC),地址7094h;端口B数据和方向控制键寄存器(PBDATDIR) 地址709Ah端口F数据和方向控制键寄存器(PFDATDIR) 地址7096h前面两者用来定义I/O的输入输

20、出功能,后面两者控制LED的亮灭。(三)自定义寄存器 LED寄存器,定义在数据区。由.bss定义在数据区BLK_B2,长度为1个字节; DEYH寄存器,定义在数据区。由.bss定义在数据区BLK_B2,长度为1个字节;数据区BLK_B2在数据页(Page 1)上定义的,地址是从Page1的0060h开始,长度20个字节。(四)存储空间 图3是定义的程序的存储控件和数据存储空间。图3 TMS320LF2402 DSP存储器映射图如图3中所示,程序存储在Page 0区,即程序区,起始位置为007Fh,终止位置为FE00h;数据存储在Page 1,即数据区,数据区的data0中,LED寄存器的地址从

21、0060h到0061h;DEYH寄存器的地址是从0061h到0062h。3.2程序流程框图根据设计依据中介绍的算法,进行编程。主程序的流程图如图4所示:图4 主程序流程图其他子程序,如系统初始化,软件延时等的框图从略。3.3.程序重要部分的说明该程序最重要的部分是通过端口的赋值点亮LED显示管和点亮之后循环显示的过程中的算法运算。在第2部分基本理论里面已经说了数字I/O口的I/O复用寄存器和数据、方向寄存器。第3部分讲到了具体的算法。根据算法产生的数据赋值到端口的数据寄存器上,数据寄存器的数据经过74HC273产生的驱动脉冲驱动输出,当对应的数据位输出为高电平的时候,就点亮所在LED显示管的相

22、应的位置。同时产生的锁存脉冲使得被点亮的LED灯一直保持点亮的状态,直到软件延时结束之后,DSP将新的数据输送到端口寄存器,端口的数据被刷新,LED显示管的各位的灯就按照程序设计的方式被点亮起来。算法的重要性体现在灯的循环点亮的过程中,实际上是在每个循环中分为两个部分完成的。首先由第一个灯被点亮到1、2个被点亮,到14全部点亮,这个过程是一部分,通过对初始值01H左移后与01H相或,使得二进制初始值中的为1的最后一位不断前移,而且在移动的过程中不断补充后面左移得到的0,使之为1,那么就可以得到实验要求的循环的前面半部分;而后面的半部分是和前面的相反,但又不是仅仅相反而已。实际上实现程序的后半部

23、分可以将前半部分显示过的数据进行逆运算完成,而这个过程结束判断的标志位也相应的发生了变化。将现有的输送到端口的值进行判断(根据寄存器的第9位的值是否为1),达到要求的时候认为前半部分的点亮完成;进入逆运算。将数据右移之后并与7FH相与,即是和0111 1111B(二进制数)相与,可以把寄存器的数据的较高位的1移到下一位,并将原来的高位置零。这正是实验的目的。此时判断的条件其实变化为读取寄存器的最低位是否为0,当满足条件的时候就认为程序的一个循环结束了,跳转到循环开始之初,即赋初值的地方去就可以实现实验要求的功能了。3.4.源程序#include "2407c.h"#incl

24、ude<ioports.h>#define uint unsigned intunsigned char data4=0x01,0x02,0x04,0x08 ;uint index;void disable() asm(" setc INTM");void enable() asm(" clrc INTM"); void initial() asm(" setcSXM");/ 抑制符号位扩展asm(" clrcOVM");/ 累加器中结果正常溢出asm(" clrcCNF");/ B

25、0被配置为数据存储空间asm(" setcINTM");/ 禁止所有中断*SCSR1=0x0E04;/ CLKIN=15M,CLKOUT=2*CLKIN=30M*WDCR=0x00E8;/ 不使能看门狗,因为SCSR2中的WDOVERRIDE/ 即WD保护位复位后的缺省值为1,故可以用软件禁止看门狗*IMR=0x0002;/ INT2中断*IFR=0x0FFFF;/ 清除全部中断标志,"写1清0"*MCRA=0X0000;index=0; void timerlint() *EVAIMRA=*EVAIMRA|0X0780; /允许定时器1周期中断 *EV

26、AIFRA=*EVAIFRA&0X0780; /清除定时器1周期中断标志 *T1CON=0X1602; /timer为连续增记数模式, *T1PR=0X0F00E; / *T1CMPR=0x00FF; *T1CNT=0X00; / void interrupt T1INT() int flag; flag=*EVAIFRA&0x0080; /读取中断标志 /*switch(flag) /判断中断 */if(flag!=0)outport(3,dataindex); *T1CNT=0x00; *EVAIFRA=*EVAIFRA&0x0080; index+=1; if(i

27、ndex=4) index=0; enable(); return; void interrupt nothing() enable(); return; main() disable(); initial(); timerlint(); enable(); *T1CON=*T1CON|0x0040; while(1); ;程序结束第四章、测试CCS集成开发工具与测试4.1 CCS是什么通常,DSP厂商和第三方都会为DSP的开发应用提供各种各样的软硬件开发工具(代码生成工具和代码调试工具等)。早期的DSP开发工具没有集成化,需要在DOS环境下键入比较复杂的命令,使用起来不很方便,调试、开发的效

28、率也不高。1999年,TI公司推出了CCS(Code Composer Studio)集成开发工具(直译为代码设计工作室),为DSP用户提供了十分便利的开发环境。CCS内部集成了以下软件工具:u DSP代码生成工具(包括DSP的C编译器、汇编优化器、汇编器和链接器等)u CCS集成开发工具(编辑、链接和调试DSP目标程序)。u 实时分析插件DSP/BIOS和实时数据交换模块RTDX等(必须有硬件开发板)。CCS是一种可视化集成开发工具,它集代码生成软件和代码调试工具于一体,具有强大的应用开发功能:可视化代码编辑界面:可以直接编写汇编语言和C语言程序、.H头文件和.CMD命令文件等。代码生成工具

29、:包括DSP的汇编器、C编译器和链接器等。各种调试工具:包括加载执行文件、运行、单步操作、设置断点、查看编辑存储器和寄存器、观察变量、评估程序和执行时间等。探针工具:可将PC机数据文件中的数据传到DSP,或者将DSP中数据传到PC机数据文件中,以便实现各种算法仿真和数据监视。图形显示工具:可以将DSP程序生成的数据绘制成时域/频域图等,以便于观察和分析。通用扩展语言GEL:可以让用户通过GEL语言编程,建立需要的GEL函数来扩展CCS的功能,包括配置各种参数、修改变量等。DSP/BIOS工具:它是DSP芯片简化了的操作系统内核,即各种DSP芯片操作系统的底层文件,为嵌入式系统应用提供基本的运行服务,具有代码较少、逻辑精简等优点。开放式的插入架构技术:只需安装相应的驱动程序,就能够集成第三方的专用插件。4.2 CCS窗口简介4.2.1 CCS窗口示例 CCS系统设置完成后,就可以打开CCS应用程序,在CCS集成开发环境下完成工程定义,程序的编辑、编译、链接和调试,以及程序运行结果的分析和评估等工作。一个典型的CCS集成开发环境住窗口

温馨提示

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

评论

0/150

提交评论