2017DSP试验指导书_第1页
2017DSP试验指导书_第2页
2017DSP试验指导书_第3页
2017DSP试验指导书_第4页
2017DSP试验指导书_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一CCS基本操作实验一、实验目的1、掌握ccsa件的基本功能和作用;2、掌握ccsa件的安装、配置过程;3、了解DSP开发系统与PC机的连接方法和步骤;4、熟悉CCS开发环境和基本操作,了解TMS320C55X软件开发过程;(1)学习创建工程和管理工程的方法;(2)了解基本的编译和调试功能;(3)学习使用观察窗口;(4)了解图形功能的使用;5、软件仿真的作用、步骤和基本原理。二、实验设备PC兼容机一台,操作系统为Windows200O,安装CodeComposerStudio2.2软件。三、实验原理1、调试工具开发TMS320C55X应用系统一般需要以下几个调试工具来完成:(1)软件集成开

2、发环境CCS(CodeComposerStudio2.2):完成系统的软件开发,进行软件和硬件仿真调试,它也是硬件调试的辅助手段。(2)开发系统、仿真器(ICETEK5100-USB):实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。(3)评估模块即评估板CS-DSP5509A:提供软件运行和调试的平台和用户目标系统开发的参照。2 2、CCSCCS的作用CCS主要完成系统的软件开发和调试。它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF(公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。3、CCST程文件用户系统

3、的软件部分可以由CCS建立的工程文件进行管理,工程一般包含以下几种文件:(1)源程序文件:C语言或汇编语言文件(*.c或*.asm);(2)头文件(*.h):各种结构体和变量的定义,宏的定义,函数的声明等;(3)命令文件(*.cmd):内存的使用情况,各个段的放置、地址和大小等情况;(4)库文件(*.lib,*.obj):TI或用户自己定义的库文件,TI提供许多特定DSP(rts55x.lib、55xdsp.lib)的库文件。用户自己编写的算法库文件。CCS既可以生成可执行工程文件,也可以生成库文件。(5)内存映射文件(*.map):CCS编译连接后,生成的内存映射文件,开发人员可以根据此文件

4、掌握内存的使用状况。(6)可执行文件(*.out):可以在DSP上运行的可执行文件。在调试的时候,用CCS的Loadprogram功能把此文件灌入到DSP芯片中。四、实验内容本实验主要是软件仿真,即完全用CC歆件运行用户程序。软件仿真是在实验条件有限的环境下,如没有EV峨DSK目标板等硬件设备。软件仿真通常用于调试纯软件的算法和进行效率分析等。由CC歆件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。在某种程度上,软件仿真是可信的。但是在有些情况下,如使用了外设DM或算法非常复杂等,则软件仿真的结果就不可信了,甚至结果错误,因为一般软件无法构造DSP中的外设。在使用软件仿真方式工作

5、时,无需连接板卡和仿真器等硬件。1、配置CCST作环境:图2CCS初始化配置窗口接着在下面出现的窗口中选择“否(N)”。此时CCS已经被设置成Simulator方式(软件仿真TMS320VC5509A器件的方式), 如果一直使用这一方式就不需要重新进行以上设置操作了。(3)启动CCS:CCS2启动软件仿真Simulator方式,双击桌面上的图标:七犯加。2、启动CCS1的窗口为方便介绍CC珞个功能,这里截取了一个实用工程的开发界面,若按照以上步骤操作的话,界面要简单的多。图3为CCSE作环境,图4为一个典型开发工程的开发界面。金tWCCStWCCS2 2(1)双击桌面上的。匚5口与,进入CCS

6、设置窗口,ImportConfiguration(2)在出现的窗口中按标号顺序进行如下设置:”。ImportConrigur-ationImportConrigur-ation&单击选择此配置*)aveandaveand图3CCS工作环境编译运行结果信息窗口编辑:”条1111-: N NL L-3-3L L3 3* *a a4 4时*,标鹿区,标明D35C-bCD35C-b由旧UODH-?UODH-?:MW砌5M口.窜.-、工作区中图形显示限;】J工作区中B B心:DLUiADLUiA! !m muuuu:遇;oaukizD DGUIfl!DflGUIfl!DflU U 2zODLM.

7、2zODLM.4 4:OfiLALbOfiLALb :CBJLATB;“、上下j jZi?TZi?T,C源程序编辑窗工Ij工作区中反汇编 M试窗口丁了;工作区r r用户11 1文件花理:工作区中救据显示博口:二匚窗口图4典型实用开发工程CC辨面3、创建工程(1)创建新的工程文件:选择菜单“Project的New项。图5建立新工程操作弹出下图,按编号顺序操作建立volume.pjt工程文件:图6创建新工程步骤展开主窗口左侧工程管理窗口中Projects”下新建立的volume.pjt”,其中各项均为空。(2)在工程文件中添加程序文件:选择菜单Project的AddFilestoProject”项

8、;在AddFilestoProject”对话框中选择文件目录为D:5509programUseCCS,改变文件类型为CSourceFiles(*.c)”,选择显示出来的文件“volum.c”;重复上述各步骤,添加volume.cmd文件到volume工程中;添加C:tiC5500cgtoolslibrts55.lib文件到工程中。(3)编译链接工程:选择菜单“Project”的“RebuildAll”项,或单击工具条中的盘按钮;注意编译过程中CCS主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。4、编辑修改工程中的文件:(1)查看工程文件:展开CCS主窗口左侧工程

9、管理窗中的工程各分支,可以看到“volume.pjt”工程中包含“volume.h、rts55.lib、volume.c和volume.cmd”文件,其中第一个volume.h”为程序在编译时根据程序中的“include”语句自动加入的。(2)查看源文件:双击工程管理窗中的“volume.c”文件,可以查看程序内容。可以看到,用标准C语言编制的程序,大致分成几个功能块:-头文件。描述标准库程序的调用规则和用户自定义数据、函数头、数据类型等。具体包含哪一个头文件,需要根据程序中使用了哪些函数或数据而定。比如:如果程序中使用了printf函数,它是个标准C提供的输入/输出库函数,选中“printf

10、”关键字,按Shift+F1会启动关于此关键字的帮助,在帮助信息中可发现其头函数为stdio.h,那么在此部分程序中需要增加一条语句:#includestdio.h- 工作变量定义。定义全局变量。- 子程序调用规则。这部分描述用户编制的子程序的调用规则。也可以写到用户自己编制的.h文件中去。- 主程序。即main()函数。它可分为两部分:变量定义和初始化部分、主循环部分。主循环部分完成程序的主要功能。- 用户自定义函数。这个程序是一个音频信号采集、处理输出的程序。程序的主循环中调用自定义的函数read_signals来获得音频数据并存入输入缓存inp_buffer数组;再调用自定义函数writ

11、e_buffer来处理音频数据并存入输出缓存;output_signals将输出缓冲区的数据送输出设备;最后调用标准C的显示信息的函数printf显示进度提示信息。整个系统可以完成将输入的音频数据扩大volume倍后再输出的功能。read_signals()子程序中首先应有从外接AD设备获得音频数据的程序设计, 但此例中由于未采用实际AD设备,就未写相应控制程序。此例打算用读文件的方式获得数据,模拟代替实际的AD输入信号数据。write_buffer()子程序中首先将输入缓冲区的数据进行放大处理,即乘以系数volume,然后放入输出缓冲区。output_signals()函数完成将处理后的设备

12、输出的功能,由于此例未具体操作硬件输出设备,所以函数中未写具体操作语句。双击工程管理窗中的“volume.h”文件,打开此文件显示,可以看到其中有主程序中要用到的一些宏定义如“BUF_SIZE”等。volume.cmd文件定义程序所放置的位置,此例中描述了CSDSPVC5509A估板的存储器资源,指定了程序和数据在内存中的位置。比如:它首先将CSDSPVC5509Ai估板的可用存储器分为五个部分,每个区给定起始地址和长度(区域地址空间不允许重叠);然后指定经编译器编译后产生的各模块放到哪个区。这些区域需要根据评估板硬件的具体情况来确定。(3)编辑修改源文件及编译程序:打开volume.c,找到

13、main()主函数,将语句input=inp_buffer;最后的分号去掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错误的提示;双击红色错误提示,CCS自动转到程序中出错的地方;将语句修改正确(将语句末尾的分号加上);重新编译;注意,重新编译时修改过的文件被CCS自动保存。(4)修改工程文件的设置:UseExternalMakefileIP.ExporttoMakeFile.MakeFile. .CcmpieCcmpieFile回 IHIHRebuildRebuildAll过)pbuildBuildBuildCleanJenciesJenciesScanM

14、IIMIIrueLifpendentiesLifpendentiesRecerltProjectFiles图7BuildOptions对话框通过以上设置操作,重新编译后,程序中的用户堆栈的尺寸被设置成1024个字。5、基本调试功能:(1)下载程序:执行FileLoadProgram,在随后打开的对话框中选择刚刚建立的C:timyprojectsUseCCSDebugvolume.out文件。(2)设置软件调试断点:在项目浏览窗口中,双击volume.c激活这个文件,移动光标到main()行上,单击鼠标右键选择ToggleBreakpoint或按F9设置断点(另外,双击此行左边的灰色控制条也可以

15、设置或删除断点标记)。(3)利用断点调试程序:选择DebugRun或按F5运行程序,程序会自动停在main()函数上。按F10执行到write_buffer()函数。再按F8,程序将转到write_buffer函数中运行。此时,为了返回主函数,按shift-F7完成write_buffer函数的执行。再次执行到write_buffer一行,按F10执行程序,对比与F8执行的不同。提示:在执行C语言的程序时,为了快速的运行到主函数调试自己的代码,可以使用DebugGomain命令,上述实验中的使用的是较为繁琐的一种方法。6 6、使用观察窗口:11)执行ViewWatchWindow打开观察窗口。

16、(2)在volume.c中,用鼠标双击一个变量(比如num),再单击鼠标右键,选择QuickWatch,CCS将打开QuickWatch窗口并显示选中的变量。(3)在volume.c中,选中变量num,单击鼠标右键,选择AddtoWatchWindow”,CCS将把变量添加到观察窗口并显示选中的变量值。(4)在观察窗口中双击变量,则可以在这个窗口中改变变量的值。(5)把str变量加到观察窗口中,点击变量左边的+;观察窗口可以展开结构变量,并且显示结构变量的每个元素的值。匕朝匚tDebugPgilertDebugPgiler选择菜单SourceControlSourceControlConhgu

17、ration5i.iConhguration5i.iBuildOptions.BuildOptions.选抒菜单;cie5iM(6)把str变量加到观察窗口中;执行程序进入write_buffer函数,此时num变量超出了作用范围,可以利用CallStack窗口察看在其他函数中的变量:1选择菜单ViewCallStack打开堆栈窗口。2双击堆栈窗口的main()选项,此时可以察看num变量的值。7、文件输入/输出:下面介绍如何从PC机上加载数据到DSP上。用于利用已知的数据流测试算法。在完成下面的操作以前,先介绍CodeComposerStudio的Probe(探针)断点,这种断点允许用户在指

18、定位置提取/注入数据。Probe断点可以设置在程序的任何位置,当程序运行到Probe断点时,与Probe断点相关的事件将会被触发,当事件结束后,程序会继续执行。在这一节里,Probe断点触发的事件是:将PC机存储的数据文件中的一段数据加载到DSP的缓冲区中。(1)在真实的系统中,read_signals函数用于读取A/D模块的数据并放到DSP缓冲区中。在这里,代替A/D模块完成这个工作的是Probe断点。当执行到函数read_signals时,Probe断点完成这个工作。在程序行read_signals(input)上单击鼠标右键,选择Togglebreakpoint,设置软件断点。再在同一行

19、上单击鼠标右键,选择ToggleProbePoint”,设置Probe断点。(2)执行以下操作:图8设置探点此时,已经配置好了Probe断点和与之关联的事件。进一步的结果在下面实验中显示。8、图形功能简介:卜面我们使用CCS的图形功能检验上一节的结果。首先进行下面设置操作:FileFileI/OI/Oreaigna1s(input);FileInputFileOutputFileInputFileOutput| |R R单击选择数据文件:CKVC55l)4-Jil)Ul.ahl.ai i单由复选此框Lood弭DataWorkspaceFileI/O-.,中一用广断点关联Frnt.Frnt.Pr

20、ntPraviPravi选择菜单项Recent3 3D DRacertWcrkspaossRecentPiograrnFiesRecentPiograrnFiesRecent5mlb*decentGRecent5mlb*decentGELFile5ELFile5Launch5Launch5或upup: : rl+O:trl+5NeNe3LoadProgramReloedProgramLoadSyrrbalsReload5ymbokUnloadSymbols选择来单输入放置以idFiliidFiliHadHad5MH5MH锄赚酢捅!RiC!RiC能由OpSuriE-在弹出的图形窗口中单击鼠标右键

21、,选择ClearDisplay”。-按F12运行程序。观察Input窗口的内容。-退出CCS。五、实验报告要求1、实验报告中不能和实验内容中的文字雷同,用自己的话描述;2、总结ccsa件应用的体会;3、画图说明Input和Output的图形为什么看到的不同,和断点有关吗?4、画出CCS的结果波形。六、思考题1、报告中阐述软件仿真和硬件仿真的区别、工作过程等;2、阐述配置和启动CCS的几个重要过程;3、阐述探点的使用过程;4、看到的波形是连续的,则程序中的数据是模拟信号吗?七、注意事项1、自己建立的工程和文件不要放置在C或D盘的目录下;2、运行CCS前,必须先配置SetupCCS;3、在观察波形

22、的时候,注意变量地址的引用:&4、加探点的时候须小心,确保探点设置成功。瞬入数据个教GrachIire/lreQuenwMiInlehInleh;IncremeittIncremeittD DL LEplayDataSizeEplayDataSize跳出出hWrio/Vonsttlabcn.an.9 9- -valuevalueS SaaplincaaplincRat*?Rat*?tHiltHilPlotDataFromPlotDataFromL L6 6弓EtedData.DiEtedData.DiLefttoEightLefttoEight选择此蕖QuKWabdn口15时Esprs

23、ionLi*OdtputWhvreswrioutDARAM.vectors:VECT.trcinit:DARAM.gblinit:DARAMfrt:DARAM.cinit:DARAM.pinit:DARAM.sysinit:DARAM.bss:DARAM2.far:DARAM2.const:DARAM2.switch:DARAM2.sysmem:DARAM2.cio:DARAM2.MEM$obj:DARAM2.sysheap:DARAM2.sysstack:DARAM2.stack:DARAM26、 选 择Project-Options-Linker-Library标签,添加实时支持库rts5

24、5.lib。7、编译并链接工程,下载exp3a.out,并选择Go-Main命令。8、观察并记录CPU?存器窗口中ACOAROT0的值,观察memorys和x的内容,并记录s的值。9、重新单步执行C代码和汇编代码,观察的译器产生白汇编代码exp3a.asm,注意汇编程序的返回值是如何被传递到C调用程序的。四、实验报告要求1、记录实验内容中要求的观察结果;2、简述C和汇编混合编程中的参数是如何传递的;3、若将exp3a中的s定义放入main()函数中,应到哪个位置观看其内容?为什么?4、对本次实验作出小结。五、思考题5使用混合编程法完成计算A(i)X(i)。i1六、注意事项1、汇编程序在被C语言

25、程序调用时的文件命名要求。2、混合编程的接口考虑。实验三FIR滤波器设计一、实验目的1、熟悉FIR滤波器工作原理及其编程。2、熟悉线性相位FIR数字滤波器特性。二、实验设备PC兼容机一台,操作系统为Windows2000,安装CodeComposerStudio2.2软件。三、实验原理1、有限冲击响应数字滤波器的基础理论(请参考相关书籍)。2、模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。3、数字滤波器系数的确定方法。4、根据要求设计低通FIR滤波器。要求:通带边缘频率10kHz,阻带边缘频率22kHz,阻带衰减75dB,采样频率50kHz。设计:(1)过渡带宽度

26、=阻带边缘频率-通带边缘频率=22-10=12kHz(2)采样频率:f1=通带边缘频率+(过渡带宽度)/2=10000+12000/2=16kHz1=2兀f1/fs=0.64兀(3)理想低通滤波器脉冲响应:h1n=sin(nQ1)/n/=sin(0.64nn)/n/兀(4)根据要求,选择布莱克曼窗,窗函数长度为:N=5.98fs/过渡带宽度=5.98*50/12=24.9(5)选择N=25,窗函数为:wn=0.42+0.5cos(2nn/24)+0.8cos(4nn/24)(6)滤波器脉冲响应为:hn=h1nwn|n|12(7)根据上面计算,各式计算出hn,然后将脉冲响应值移位为因果序列。(8

27、)完成的滤波器的差分方程为:yn=-0.001xn-2-0.002xn-3-0.002xn-4+0.01xn-5-0.009xn-6-0.018xn-7-0.049xn-8-0.02xn-9+0.11xn-10+0.28xn-11+0.64xn-12+0.28xn-13-0.11xn-14-0.02xn-15+0.049xn-16-0.018xn-17-0.009xn-18+0.01xn-19-0.002xn-20-0.002xn-21+0.001xn-225、程序流程图:参数选取:实验程序采用64阶滤波参数,低通滤波,汉明窗(HammingWindow)函数,截止频率为2400Hz,采样频率

28、为48000Hz,增益40dB。四、实验步骤1、实验准备:-设置软件仿真模式,-启动CCS,选择菜单DebugResetCPU。2、打开工程,FIR55Fir.pjt。3、编译并下载程序。4、设置断点:在有注释“breakpoint”的语句设置软件断点。5、打开观察窗口,观察滤波效果显示:*选择菜单View-Graph-Time/Frequency”进行如下设置:QGraphPropertyDidlagQGraphPropertyDidlaglisplajrTyjeDualTimeGraphTitlGraphTitl GraphicalDiiplyGraphicalDiiplyInt9rlIn

29、t9rl ved.Dalved.Dal白SourcesSourcesNoNoMStartAJdriss-upperd:spStartAJdriss-upperd:sp康fir菱utStartAddreS3StartAddreS3- -lower5plower5pftfUutjuiftfUutjuiPagePageATAATAIBAcquisitiAcquisitiOILOILBufferSiBufferSiiHLndtJ?LndtJ?工mci*mci*电巾公ntnti-MlJisplaySiJisplaySi128HDSPDSPDatData aTypeType3232- -bibitfltf

30、laatingpointaatingpointSamjliiigRatwSamjliiigRatw出工)i-MPlotfromPlotfromLofttoRightLofttoRightLHtrhiEtedDisplayLHtrhiEtedDisplayisActoscaleActoscaleOnOnDCDCValueValue0AxzDisplayAxzDisplayOnOnzlOK工azl|耳虱p|(1)选择Debug菜单的Animate”项,或按F12键运行程序。(2)观察窗口中各波形的时域波形。FIR戏沌开蛤波形发生(3)将各观察窗口参数中DisplayType”项分别改成FFTMag

31、nitude(4)观察窗口中各波形的频域波形。(5)理解滤波效果。6、退出CCS:五、实验报告要求1、报告中的内容阐述不得和上述内容雷同;2、画出FIR滤波算法的流程图;3、给出滤波算法的主观效果评价。六、思考题1、自己编写FIR滤波算法如何?2、dsplib中的FIR用到了哪些优化技术?3、FIR滤波效果明显吗?还有没有效果更好的算法?请举例。实验四定时器使用实验一、实验目的1、通过实验掌握和熟悉VC5509A的定时器的工作原理;2、掌握VC5509A定时器的控制方法、寄存器的配置;3、掌握VC5509A的中断结构和对中断的处理流程;4、学会C语言中断程序设计,以及运用中断程序控制程序流程;

32、5、掌握实验箱的工作配置过程、仿真器的连接和配置等。二、实验设备计算机;DSP硬件仿真器;CS-DSP5509A实验开发系统。在做实验之前,需要接通该实验所需的硬件电路,先连接仿真器,再给核心板供电,然后打开实验箱的电源开关,实验中不要再按复位键,以免实验由于DSP复位而失败。三、实验原理1、通用定时器介绍及其控制方法(详见spru595b.pdf):TMS320VC5509A内部有两个20位通用定时器(GP),每个通用定时器包括:(1)一个16位的减计数的计数器TIM;(2)一个16位的定时器周期寄存器PRD;(3)一个16位的定时器控制寄存器TCR;(4)一个16位的定时器预定标寄存器PRSC;PRSC寄存器说明:1510915109654543 30ReservedPSGraph-Time/Frequency进行如下设置:口GraphPropertyDialogGraphPropertyDialogX XDispla.yTypeDispla.yTypeDual7imDual7im GraphTitieGraphTitiekDkD。,ATIATIZmterlZmterldDataSdDataSonrcftsonrcftsKoKoStStMT

温馨提示

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

评论

0/150

提交评论