ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:1.70MB ,
资源ID:6637966      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6637966.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP实验.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DSP实验.docx

1、DSP实验 数字信号处理器(DSP)实验报告实验课程: DSP原理及应用学生姓名: XXXX学 号: XXXXXX专业班级: 物联网二班 目录前言 3实验一:CCS入门实验 4实验二:编制链接控制文件 9实验三:数据存取实验 16实验四:定点数除法实验 20前言 “数字信号处理器”课程实验是在学习“数字信号处理器”课程中加强理解基本的DSP的设计的方法、思路和流程而开设的实践性课程。通过本实验课程的学习,使学生进一步掌握定点运算DSP的基本知识,包括TMS320C54x的基本硬件资源:总线结构、存储器、中央处理单元、片内外设,以及DSP软件设计的方法和软件工具CCS的使用,同时通过实验接受了D

2、SP开发的基本步骤训练,为以后从事深入的专业开发打下基础。本课程实验包含四个必修实验。实验一 CCS入门实验,可使学生掌握Code Composer Studio 3.X 软件的操作环境和基本功能,掌握TMS320C5xxx 软件开发过程。实验二 编制链接控制文件,可学习到命令文件控制代码的编制,学会建立和改变map 文件,以及利用它观察DSP 内存使用情况的方法。实验三 数据存取实验,可使学生掌握操作TMS320C5xxx 内存空间的指令。实验四 定点数除法实验,可进一步理解用减法和移位指令实现除法运算。实验一:CCS入门实验11实验目的(1) 掌握Code Composer Studio

3、3.5的安装和配置。(2) 了解DSP开发系统和计算机与目标系统的连接方法。(3) 了解Code Composer Studio 3.0软件的操作环境和基本功能,了解TMS320C5xxx软件开发过程: 学习创建工程和管理工程的方法。 了解基本的编译和调试功能。 学习使用观察窗口。 了解图形功能的使用。1.2实验内容(1) 完成CCS软件的配置和启动。(2) 创建工程文件,创建源文件并添加到工程文件中,完成编译。(3) 下载和运行输出文件,描述F10、F9、F8、F5等按键的作用。(4) 使用观察窗口查看str变量和num变量的值(5) 掌握文件输入/输出的功能,在程序行read_signal

4、s(int *input)上设置Probe断点,执行FileFile I/O,打开对话框,加载数据sine2.dat到目标机上,并进行关联设置,最后用图形窗口观察inp_buffer的图形。1.3实验原理开发TMS320C5xxx应用系统一般需要以下几个调试工具来完成:(1) 软件集成开发环境(Code Composer Studio 2.0):完成系统的软件开发,进行软件和硬件仿真调试。它也是硬件调试的辅助手段。(2) 开发系统(ICETEK 5100 USB或ICETEK 5100 PP):实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。(3) 评估模块(ICETEK

5、VC5416-A或ICETEK VC5416-C等):提供软件运行和调试的平台和用户系统开发的参照。*Code Composer Studio 2.0主要完成系统的软件开发和调试。它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF (公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。*用户系统的软件部分可以由Code Composer Studio建立的工程文件进行管理,工程文件一般包含以下几种文件: 源程序文件: 汇编语言文件或C语言(*.ASM 或*.C) 头文件: (*.H) 命令文件: (*.CMD) 库文件: (*.LIB,

6、*.OBJ)CCS软件安装的操作一般包括几个步骤:CCS软件的安装、配置和启动,工程文件的创建、编译和调试。调试手段有很多,要掌握常用按键F10、F8等的基本使用,掌握观察窗口的使用, 掌握使用文件输入/输出功能,并利用图形窗口观察其波形。1.5实验条件(1) PC一台:操作系统为Windows2000(或Windows NT、Windows XP),Windows的内核如果是NT的,应安装相应的补丁程序(如:Windows2000为Service Pack3,Windows XP为Service Pack1)。(2) DSP实验箱一台,USB连接电缆一条。1.6实验步骤1. 设置Code C

7、omposer Studio在软件仿真(Simulator)方式下运行(1) 双击桌面上“Setup CCS 3(C5000)”,启动“Code Composer Studio Setup”。(2) 在“Import Configuration”对话框中单击“Clear”按钮,在接下来的对话框中选择“是”,清除原先的系统设置;观察窗口“Code Composer Studio Setup”中左侧“System Configuration”栏中“My System”项被清空。(3) 单击“Close”按钮,退出“Import Configuration”对话框。(4) 选择“Code Compo

8、ser Studio Setup”窗口“File”菜单中“Exit”项退出,并在接下来显示的对话框中选择“是”,保存设置;再选择“否”,不启动CCS。2. 启动Code Composer Studio 3.1双击桌面上“CCS 3(C5000)”,启动Code Composer Studio 3.0;可以看到显示出的C54X Code Composer Studio 窗口。3. 创建工程(1) 创建新的工程文件:(2) 在工程文件中添加程序文件:(3) 编译连接工程:4. 编辑修改工程中的文件(1) 查看工程文件:(2) 查看源文件:(3) 编辑修改源文件:(4) 修改工程文件的设置:5. 基

9、本调试功能(1) 执行FileLoad Program , 在随后打开的对话框中选择刚刚建立的F:volumevolume.out 文件。(2) 在项目浏览窗口中,双击volume.c激活这个文件,移动光标到main()行上,右击鼠标选择Toggle Breakpoint或按F9设置断点。(3) 选择DebugRun或按F5运行程序,程序会自动停在main()函数头上。(4) 注意:在执行C语言的程序时,为了快速的运行到主函数调试自己的代码,可以使用DebugGo main命令,上述实验中的使用的是较为繁琐的一种方法。6. 使用观察窗口1 执行ViewWatch Window打开观察窗口。2

10、在volume.c中,选中任意一个变量,右击鼠标,选择“Quick Watch”,CCS将打开Quick Watch窗口并显示选中的变量。3 在volume.c 中,选中任意一个变量,右击鼠标,选择“Add to Watch Window”,CCS 将把变量添加到观察窗口并显示选中的变量值。4 在观察窗口中双击变量,则弹出修改变量窗口。此时,可以在这个窗口中改变变量的值。5 把str 变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,并且显示结构变量的每个元素的值。6 把str 变量加到观察窗口中;执行程序进入write_buffer 函数,此时num 函数超出了作用范围,可

11、以利用Call Stack 窗口察看在不同作用范围的变量: 执行ViewCall Stack 打开堆栈窗口。 双击堆栈窗口的main()选项,此时可以察看num 变量的值。7. 文件输入/输出介绍如何从PC机上加载数据到目标机上。可用于使用已知的数据流测试算法的正确性。在完成下面的操作以前,先介绍Code Composer Studio 的Probe(探针)断点,这种断点允许用户在指定位置提取/注入数据。Probe 断点可以设置在程序的任何位置,当程序运行到Probe断点时,与Probe 断点相关的事件将会被触发,当事件结束后,程序会继续执行。在这一节里,Probe 断点触发的事件是:从PC

12、机的数据文件加载数据到目标系统的缓冲区中下面我们使用CC 的图形功能检验上一节的结果。(1) 执行ViewGraphTime/Frequency 打开Graph Property Dialog 窗口。(2) 修改属性为如下值并确定。 在弹出的图形窗口中单击鼠标右键,选择“Clear Display”。(3) 按F12运行程序,观察input窗口的内容。1.7实验结果下面我们使用CC 的图形功能检验上一节的结果。执行ViewGraphTime/Frequency 打开Graph Property Dialog 窗口。按F12运行程序,观察input窗口的内容。1.8实验心得了解了DSP编程软件C

13、SS的操作环境和基本功能和实用,为以后的实验打基础。1.9实验例程序1. volume.h#define BUF_SIZE 0x64#define TRUE 1#define FALSE 0struct PARMS int Beta; int EchoPower; int ErrorPower; int Ratio; struct PARMS *Link;2. volume.c#include volume.hint inp_bufferBUF_SIZE; /* BUF_SIZE的定义见volume.h */int out_bufferBUF_SIZE;int *input;int *outp

14、ut;int volume = 1;struct PARMS str = 2934,9432,213,9432,&str ;int read_signals(int *input) /* read reference signal */ /* read input signal */ return(TRUE); int write_buffer(int *input,int *output,int count) while( count-) *output+ = (*input+) * volume; return(TRUE); main() int num = BUF_SIZE; while

15、(TRUE) /* loop forever*/ input = &inp_buffer0; output = &out_buffer0; read_signals(input); /* read input signals from PC file*/ write_buffer(input, output, num); /* write to output buffer*/ 3. volume.cmdMEMORYPAGE 0:VECT : o=80h,l=80h PRAM : o=100h,l=1f00hPAGE 1:DRAM : o=2000h,l=1000h SECTIONS .text

16、 : PRAM PAGE 0 .data : PRAM PAGE 0 .cinit : PRAM PAGE 0 .switch : PRAM PAGE 0 .const : DRAM PAGE 1 .bss : DRAM PAGE 1 .stack : DRAM PAGE 1 .vectors : VECT PAGE 0实验二:编制链接控制文件2.1实验目的(1) 学习用汇编语言编制程序;了解汇编语言程序与C 语言程序的区别和CCS 使用它们在设置上的不同。(2) 学习编制命令文件控制代码的连接。(3) 学会建立和改变map 文件,以及利用它观察DSP 内存使用情况的方法。(4) 熟悉使用软件

17、仿真方式调试程序。2.2实验原理(1) 汇编语言程序汇编语言程序除了程序中必须使用汇编语句之外,其编译选项的设置与C 语言编制的程序也稍有不同。其区别为: 汇编语言程序在执行时直接从用户指定入口开始,常见的入口标号为“start”,而C 语言程序在执行时,先要调用C 标准库中的初始化程序(入口标号为“_c_init00”),完成设置之后,才转入用户的主程序main()运行。 由于Code Composer Studio 的代码链接器默认支持C 语言,在编制汇编语言程序时,需要设置链接参数,选择非自动初始化,注明汇编程序的入口地址。(2) 命令文件的作用命令文件(文件名后缀为cmd)为链接程序提

18、供程序和数据在具体DSP 硬件中的位置分配信息。通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP所管理的内存中。命令文件也为链接程序提供了DSP外扩存储器的描述。(3) 内存映射(map)文件的作用一般地,我们设计、开发的DSP程序在调试好后,要固化到系统的ROM中。为了更精确地使用ROM空间,我们就需要知道程序的大小和位置,通过建立目标程序的map文件可以了解DSP代码的确切信息。当需要更改程序和数据的大小和位置时,就要适当修改cmd文件和源程序,再重新生成map文件来观察结果。(4) 源程序分析汇编语言源程序UseCMD.asm框图:2.3实验内容与步骤1. 实验

19、准备设置软件仿真模式:(1) 启动CC驱动设置窗口:双击桌面上“Setup CCS 2(C5000)”图标。(2) 清除原先驱动设置:单击“Clear”按钮。(3) 安装软件仿真驱动(Simulator):单击“C5416 Device Simulator”驱动名,单击“Import”按钮。(4) 完成设置:单击“Close”,菜单“File” “Exit” “是”。2. 打开工程文件(1) 双击桌面上“CCS 2(C5000)”,启动Code Composer Studio 2.0。(2) 打开菜单“Project”的“New”项;在“Project”项中输入UseCMD,在“Locatio

20、n”中选择F: UseCMD 目录,单击“完成”建立UseCMD.pjt。(3) 新建UseCMD.asm 和UseCMD.cmd文件,保存在F: UseCMD,并在工程中添加文件UseCMD.asm 和UseCMD.cmd。3. 设置工程文件(1) 打开设置窗口:选择菜单“Project”的“Build Options”项。(2) 选择链接设置:单击“Linker”属性页。(3) 观察汇编语言程序的特殊设置: “Autoinit Model”项设置成“No Auto initialization” “Code Entry Point”项中输入“start”。(4) 退出设置窗口:单击“确定”

21、按钮。4. 编译源文件,下载可执行程序(1) 单击菜单“Project”、“Rebuild All”。(2) 执行FileLoad Program ,在随后打开的对话框中选择刚刚建立的UseCMD.out 文件。完成后,系统自动打开源程序文件UseCMD.asm。5. 打开观察窗口(1) 开启CPU 寄存器观察窗口:单击菜单“View”“CPU Registers”“CPU Registers”。(2) 在内存观察窗口中观察变量的值:6. 观察程序运行结果此时代表程序运行位置的黄色光标条停在start标号下面语句上,程序开始执行。(1) 单步执行程序(按F10 键)2次,可观察到CPU寄存器窗

22、口中DP和ST0的值有变化。(1) 单步运行2次,在变量窗口中观察到变量x、y被赋值。(2) 单步执行到xh标号后面的语句,观察ACC寄存器和变量z值的变化。7. 生成内存映像文件(1) 单击菜单“Project”“Options”,启动“Build Options”工程设置对话框。(2) 单击“Linker”属性页,在“Map Filename”项中输入需要生成的map 文件名,比如可以输入UseCMD.map(3) 单击“确定”,完成设置。(4) 选择菜单“Project”“Rebuild All”,重新编译工程,生成新设置的map 文件。8. 对照观察map文件和cmd文件的内容(1)

23、选择菜单“File” “Open”,将找到F: UseCMD目录,将文件类型改为“Memory Map Files”,选择刚刚生成的UseCMD.map文件,打开该文件。(2) 展开工程管理窗中的UseCMD.pjt,双击其中的UseCMD.cmd 文件。(3) 程序的入口地址:cmd文件的SECTION中指定.text段放到程序区(PAGE 0)的PRAM中,在MEMORY中指定PRAM从内存地址100h开始,长度为1f00h;再看map 文件中“ENTRY POINT SYMBOL”中说明了“start”标号的地址为十六进制0000100,两者相符。(4) 内存的占用情况:通过观察map

24、文件中的“MEMORY CONFIGURATION”字段可以了解内存的使用情况,可以看到,程序所占用的长度为十六进制b,即11个字长,而数据区因开设了3个变量,所以占用了3个字的地址空间。9. 改变内存分配 修改cmd文件中的 PRAM : o = 100h , l = 1f00h 改为 PRAM : o = 200h , l = 1e00h 重新编译工程,观察map文件中有何变化。24实验结果2.5实验心得 进一步了解了CCS软件的应用,对工程文件的应用更加熟悉,能简单的验证程序的正确性。2.6实验例程序1. UseCMD.asm .global start ; 定义全局标号.mmregs

25、.data .bss x,1 ; 开设全局变量(非初始化段) .bss y,1 ; 三个变量各为一个字(16位) .bss z,1 .textstart: LD #x,DP ; 因下面诸变量使用直接寻址,装载DP值 ST #1,x ; 变量赋初值,x=1 ST #2,y ; y=2 LD x,A ; 将x的值装载至累加器 add y,A ; 累加器加上y的值 stl A,z ; 将累加器结果(32位)的低16位存放到变量zxh: b xh ; 空循环 .end2. UseCMD.cmd MEMORY PAGE 0: VECT : o = 80h,l = 80h PRAM : o = 100h,

26、l = 1f00h PAGE 1: DRAM : o=2000h,l=1000h SECTIONS .text : PRAM PAGE 0 .data : PRAM PAGE 0 .cinit : PRAM PAGE 0 .switch : PRAM PAGE 0 .const : DRAM PAGE 1 .bss : DRAM PAGE 1 .stack : DRAM PAGE 1 .vectors : VECT PAGE 0实验三:FIR滤波器算法实验3.1实验目的(1) 掌握用窗函数法设计FIR数字滤波器的原理和方法(2) 熟悉线性相位FIR数字滤波器特性(3) 了解各种窗函数对滤波器特

27、性的影响3.2实验原理(1) FIR的原理和参数生成 N阶有限冲激响应滤波器: FIR设计原理:根据系数h是偶对称,为了简化运算产生如下计算方法:如果一个FIR滤波有一个冲激响应,h(0),h(1),h(N-1),和x(n)描绘输入的时常滤波n,输出滤波y(n)的n 给出以下方程:(2) 程序的流程: 3.3实验内容与步骤1. 实验准备设置软件仿真模式:(1) 启动CC 驱动设置窗口:双击桌面上“Setup CCS 2(C5000)”图标。(2) 清除原先驱动设置:单击“Clear”按钮。(3) 安装软件仿真驱动(Simulator):单击“C5416 Device Simulator”驱动名

28、,单击“Import”按钮。(4) 完成设置:单击“Close”,菜单“File” “Exit” “是”。2. 打开工程文件(1) 双击桌面上“CCS 2(C5000)”,启动Code Composer Studio 2.0。(2) 打开菜单“Project”的“New”项;在“Project”项中输入FIR,在“Location”中选择F: FIR 目录,单击“完成”建立FIR.pjt。(3) 新建FIR.asm 和FIR.cmd文件,保存在F: FIR,并在工程中添加文件FIR.asm 和FIR.cmd。3. 设置工程文件(1) 打开设置窗口:选择菜单“Project”的“Build Op

29、tions”项。(2) 选择链接设置:单击“Linker”属性页。(3) 观察汇编语言程序的特殊设置: -“Autoinit Model”项设置成“No Auto initialization”(4) 退出设置窗口:单击“确定”按钮。4. 编译源文件,下载可执行程序(1) 单击菜单“Project”、“Rebuild All”。(2) 执行FileLoad Program ,在随后打开的对话框中选择刚刚建立的FIR.out 文件。完成后,系统自动打开源程序文件FIR.asm。5. 打开观察窗口(1) 选择菜单“View”-“Graph”-“Time/Frequency”进行如下设置: Grap

30、h Title: input Start Address: input Page: Data Acquisition Buffer Size : 1 Index Increment: 1 Display Data Size: 200 DSP Data Type: 16-bit signed integer(2) 继续选择菜单“View”-“Graph”-“Time/Frequency”进行如下设置: Graph Title: output Start Address: output Page: Data Acquisition Buffer Size : 1 Index Increment: 1 Display Data Size: 200 DSP Data Type: 16-bit signed integer6.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1