电信DSP实验指导书1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

电信《DSP技术及应用》实验指导书1实验一正弦信号发生器【实验目的】1.熟悉CodeComposerStudio开发环境,了解相关的开发工具。2.掌握DSP软件开发流程。通过使用CCS软件,学会创建工程、编译、连接工程。3.掌握CCS软件的调试方法。学习使用CCS的探针(ProbePoint)和断点(Breakpoint)调试工程,能够用图形窗口观察数据。4.使用查表法和泰勒级数展开法实现正弦信号发生器。【实验原理】1.CCS软件开发环境介绍CCS(CodeComposerStudio)是TI公司为其TMS320系列DSP提供的一个高度集成的软件开发和调试环境,它将DSP工程项目管理、源代码的编辑、目标代码的生成、调试和分析都打包在一个环境中,使其可以基本涵盖软件开发的每一个环节。CCS主要包括以下工具:1.C编译器、汇编优化器和连接器(代码生成工具)2.指令集仿真器(Simulator)3.实时的基础软件(DSP/BIOS)4.主机和目标机之间的实时数据交换(RTDX)5.实时分析和数据可视化利用CCS,用户可以方便地建立一个DSP的工程项目,并对相应的源文件进行管理或编辑修改。所有源文件的编译、汇编和连接只需要一个按钮就可以一次完成,用户不必再通过输入冗长的命令行来完成这些操作。经过上面的过程产生的目标代码可以在CCS的环境下通过硬件仿真工具,如XDS510等,下载到用户目标系统中进行调试和运行。如果没有用户目标系统,还可以将目标代码装载到Simulator中运行。Simulator利用计算机的资源模拟DSP的运行情况,可以帮助用户熟悉DSP的内部结构和指令,在有的情况下还可以对部分的程序功能进行非实时的验证。在CCS中,用户可以利用其提供的数据可视化工具按照数据的格式来观察数据,如眼图、星座图、FFT瀑布图等,较好的分析数据。2.查表法电信《DSP技术及应用》实验指导书2该方法实用于信号精度要求不高的场合。需要占用大量存储空间,但是运算速度快。利用Matlab软件产生正弦表,参考代码如下:clearall;clc;N=256;fs=1200;dt=(1:N)/fs;f1=300;f2=100;x=(sin(2*pi*f1*dt)+sin(2*pi*f2*dt))*32768/2;x=round(x)fw1=fopen('sin.inc','wt');fprintf(fw1,'.data\n');fprintf(fw1,'sin_table:\n');fork=1:Nfprintf(fw1,'.word%d\n',x(k));endfigure(1);plot(x);该代码产生x为正弦信号,并且以sin.inc文件形式存放。3.泰勒级数展开法该方法需要存储空间小,精度高,运算速度相对较慢。对于sin、cos展开35792222sin=-+-+=x(1-(1-(1-(1-))))3!5!7!9!23456789xxxxxxxxxx24682222cos=1-+-+=1-(1-(1-(1-)))2!4!6!8!2!345678xxxxxxxxx其中x是弧度值。产生正弦信号的过程是:先计算0-45度的sin、cos值,接着利用sin2=sincosxxx求0-90度值;通过复制求0-359度值。【实验内容与步骤】1.创建一个新项目工程1)从菜单或者快捷方式中打开CCS。电信《DSP技术及应用》实验指导书3图1CCS界面2)选择Project→New。在myprojects文件夹中建立一个以自己姓名拼音命名的新的工程文件,如”zhangsan”,如下图所示:图2项目创建对话框3)在Target中选择器件类型TMS320C54xx。4)点击完成。这样CCS就新建了一个名为“zhangsan.pjt”的工程文件,注意工程所在文件夹,必须放在安装文件所在的ti文件夹中的myprjects里“..ti\myprojects\”。2.向工程中添加文件方法:将volume1文件夹的文件拷贝到自己所建工程文件夹内,然后按下面步骤操作。1)选择Project→AddFilestoProject,将volume.c添加至工程。2)选择Project→AddFilestoProject,选择汇编源文件(*.asm)类型的文件,将vector.asm和load.asm添加至工程。vector.asm文件定义了中断向量表,其中RESET中断将跳转电信《DSP技术及应用》实验指导书4至C语言程序的入口地址c_int00。3)选择Project→AddFilestoProject,添加volume.cmd文件。该文件将源程序中定义的程序段、数据段、和堆栈段等定位到相应的程序存储器和数据存储器中。4)选择Project→AddFilestoProject,进入c:\ti\c5400\cgtools\lib,文件类型选择日标文件和库文件(*.o*,*.lib),添加rts.lib文件。这是一个C语言运行环境库。5)在ProjectView中展开文件夹,如下图所示。提示:1)--4)步均可将鼠标移到zhangsan.pjt接着使用右键完成操作。注意,你不必自己向你的工程中添加Include文件,因为CCS在编译过程中会自动地寻找Include文件并将已们添加至工程中。在你编译完你的工程以后,你就可以在你的ProjectView中找到Include文件。在编译一个程序时,ccs将按照下列顺序在工程文件中查找文件:·包含源文件的文件夹·在Include搜索路径中列出的文件夹·在C54X_C_DIR(编译器)和C54X_A_DIR(汇编器)环境变量的定义中列出的文件夹。图3项目文件查看窗口此时,工程中文件有:·volume.c这是主程序的源代码。·volume.h这是volume.c包含的头文件,用来定义不同的变量和结构。·load.asm这个文件包含了模拟对DSP形成运算负载的程序。电信《DSP技术及应用》实验指导书5·vectors.asm这是定义中断向量的表文件。·volume.cmd这个CMD文件。·rts.libDSP运行环境库。如果你要从你的工程中删除一个文件,在ProjectView中右击文件,在弹出的菜单中选择“RemovefromProject。3.查看源代码双击volume.c,源代码会出现在CCS窗口的右半窗口。在此C程序中应注意以下部分:·主函数main输出第一条信息后,进入一个无限循环。在该循环内,主函数调用了函数dataIO和processing。·函数processing将输入缓冲区中取出的每一个值乘以增益(gain),然后将结果送入输出缓冲区。它也调用了汇编加载程序,这在变量调入的处理过程中会消耗大量指令周期。·本程序中的函数dataIO完成返回(return)操作,使用探针从文件中将数据读入缓冲区,其效率大大超过了用C代码来完成I/O操作。4.编译和运行程序按以下步骤编译运行程序:1)选择Project→RebuildAll或者单击窗口菜单,CCS将编译、连接工程中的所有文件,这个工程的编译连接消息将在底部的一个窗口显示。默认方式编译过程中,在当前项目文件存在目录下将生成一个Debug子目录,生成可执行zhangsan.out文件放在该目录下。2)选择File→LoadProgram,选择在\zhangsan\debug目录刚刚生成的zhangsan.out文件。CCS将把程序载入到DSP内,并且打开一个反汇编(Disassembly)窗口。在反汇编窗口你可以看到一个绿色的箭头,它表示当前DSP的程序指针地址(PC值),注意此时PC指针将指向c_int00的位置。3)在反汇编窗口中点击一条汇编指令,按下F1,CCS寻找该条指令的帮助文件。这是一个熟悉的汇编指令的帮助信息的好办法。4)选择Debug→GoMain,使程序从主函数main处开始执行程序,这一进程将在main处暂停显示符号。电信《DSP技术及应用》实验指导书65)选择Debug→Run或单击工具条中的。6)选择Debug→Halt或单击工具条中的,使程序退出运行状态。5.使用断点和观察窗当你开发并测试一个程序的时候,你经常需要查看在程序执行过程中一个变量的值的变化。本节中,你将使用断点和观察窗口来查看这些值,你也可以在到达断点以后使用单步调试命令。1)选择File→loadProgram,装载zhangsan.out。2)双击打开volume.c程序,把你的光标移到这一行:dataIO();3)单击ToggleBreakpoint工具栏按钮,或者按下F9,此时将在这一行设置一个断点,用红色的小点表示。4)选择View→WatchWindow或者,一个单独的窗口将出现在CCS窗口的右下方。在程序运行中,该区域将显示被观察的变量的值。在默认方式下,首先选中的是WatchLocals选项,在函数执行时,局部变量被显示出来。图6变量观察窗口电信《DSP技术及应用》实验指导书75)程序如果未回到main处,选择Debug→GoMain.6)选择Debug→Run或者按下F5或者。7)选择Watch1选项,在Name栏单击表达式按钮,并将dataIO作为变量名输入。单击观察窗口的空白处保存设置,变量值会立即显示出来。图7变量观察窗口9)单出(StepOver)或按F10键单步调用执行指令dataIO()。10)结束本练习,使用,清除所有断点。7.为文件的I/O添加探针(ProbePoint)在本节中,你将添加一个探针,这个探针将从你的电脑上的文件中读取数据,探针是在算法开发中十分有用的工具。你可以通过以下几条途径使用它们:·通过一定的算法,把主机电脑文件中的输入数据向目标板上的缓冲区传输。·把目标板上缓冲区内的输出数据向主机传输,用于分析。·更新窗口,比如一个图表等。探针和断点有些相似,因为他们都可以中止目标板来完成已们的行为。但是,他们也有所不同,具体如下:·探针即刻停止目标板,完成一个单独的行为,然后继续目标板的执行过程。·断点停止CPU的工作,直到它的执行过程重新被手动继续。·探针允许输入输出文件自动的被执行,而断点不行。本节显示了如何使用探针向目标板传送数据。并且使用了一个断点在运行到探针的时候来更新所有打开的窗口。窗口中包括输入和输出的窗口。1)选择Project→RebuildAll或者单击。2)选择File→LoadProgram,将zhangsan.out加载到DSP中。电信《DSP技术及应用》实验指导书83)在volume.c中dataIO();这一行使用设置一个断点。4)单击,在dataIO();这一行前面出现一个蓝色菱形标志,表示在这一行插入探针。5)选择File→FileI/O。出现了文件I/O对话框,这样你就可以选择输入输出的文件。选择AddFile,选择sine.dat文件,添加到FileI/O的对话框中。这时出现了一个sine.dat的窗口,当你运行程序时,你可以用这个窗口开始,停止,回放数据文件。在FileI/O对话框中,把Address改为“inp_buffer,把Length改为“100,在WrapAround选项前打钩。如下图所示:图8FileI/O对话框其中,Address栏指出了文件中的数据将置于何处。Length栏指每一次程序运行到探针时从数据文件中读取数据的长度。WrapAround选项使CCS循环从文件中读取数据。这就使数据文件被视为连续的数据流。一个关于sine.dat文件的控制窗口显示出来。图9sine.dat控制窗口6)单击AddProbePoint,出现Break/Probe/Frofile对话框。建立探针和sine.dat文件连接。具体过程,点击绿色一行,如下图所示。电信《DSP技术及应用》实验指导书9点击Connect列表中下拉菜单,选取sine.dat文件,如下图所示。点击add,可以得到:电信《DSP技术及应用》实验指导书10图10AddProbePoint设置7)单击确定完成AddPr

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功