编写一个以C 语言为基础的DSP程序
- 格式:docx
- 大小:834.34 KB
- 文档页数:11
电子科技大学智慧树知到“电子信息工程”《DSP技术》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共10题)1.在DSP处理器中,数据地址的产生是由()来完成的。
A.数据地址发生器B.函数发生器C.信号发生器D.状态发生器2.在IP电话系统中,DSP的作用是将连续的语音流转换成适于在以()为基础的网络上可靠传输的形式。
A.电路交换B.分组交换C.数据包D.流量3.汇编器的作用是()。
A.将C语言源代码编译成DSP汇编语言源代码B.将汇编语言源代码汇编成机器语言COFF目标文件C.把汇编生成的可重定位的COFF目标模块组合成一个可执行的COFF目标模块D.以上答案均不对4.一个自适应滤波器实现的复杂性,通常用它所需的()来衡量。
A.加法次数和阶数B.乘法阶数C.乘法次数D.乘法次数和阶数5.TMS320C54X DSP汇编指令的操作数域中,()前缀表示的操作数为间接数寻址的地址。
A.*B.#C.@D.& 6.将4568H左移8位与A相加,赋给B指令为()。
A.ADD 568H,8,B,AB.ADD 4568H,8,B,AC.ADD 568H,8,A,BD.ADD 4568H,8,A,B7.DSP芯片采用了6级流水线的工作方式。
()A.正确B.错误8.关于定点DSP所采用的Q格式,下列说法正确的是:()。
A.Q越大,数值范围越大,精度也越高B.Q越大,数值范围越小,但精度越高C.Q越大,数值范围越大,但精度越低D.Q越大,数值范围越小,精度也越低9.TMS320C54有两个通用引脚,()输入引脚可用于监视外部接口器件的状态。
A.BITB.BIOC.BIID.BIK10.在DSP的软件开发阶段,可以使用()编写源程序代码。
A.汇编语言B.C语言C.汇编语言、C语言、C++语言D.matlab第1卷参考答案一.综合考核1.参考答案:A2.参考答案:B3.参考答案:B4.参考答案:D5.参考答案:A6.参考答案:D7.参考答案:A8.参考答案:B9.参考答案:B10.参考答案:C。
一、课题名称 DSP实验—按键弹奏音乐及显示二、实验目的在硬件上,通过实验了解ICETEK –VC5509-A 评估板技术指标以及原理图和实物图。
对于试验箱的链接和使用及其原理,也有了一定的了解;在软件上,熟悉了DSP 开发集成环境Code Composer Studio的使用,了解Code Composer Studio3.1 软件的操作环境和基本功能以及DSP 开发系统和计算机与目标系统的连接方法。
学会了基本的编译和调试功能、观察窗口的使用。
三、实验内容及设计思想本次试验,主要完成了通过按键来弹奏音乐,单独按下1-6时,分别弹奏不同的音调,并且在液晶显示屏上显示相应的数字,当按下按键9时,自动弹奏一首指定的音乐,然后自动退出程序。
四、实验设备计算机,ICETEK-VC5509-A 实验箱(或ICETEK 仿真器+ICETEK-VC5509-A 系统板+相关连线及电源)。
DSP 教学实验箱结构图ICETEK –VC5509-A 原理框图五、实验原理1.EMIF 接口:TMS320C5509DSP 的扩展存储器接口(EMIF用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。
这一接口提供地址连线、数据连线和一组控制线。
ICETEK-VC5509-A 将这些扩展线引到了板上的扩展插座上供扩展使用。
2.蜂鸣器:蜂鸣器由DSP 通用I/O 管脚输出控制,可将此管脚上的频率输出转换成声音输出。
5509A 的通用I/O 口S13 控制蜂鸣器的输出频率。
控制的方法是使用DSP 通用定时器设置S13 以一定的频率改变高低状态,输出方波。
对于通用定时器周期寄存器的设置,计数值为所需频率计数值的二分之一。
音乐的频率(C 调:C D E F G A B ^C1 2 3 4 5 6 7 ^1C: 264,297,330,352, 396,440,495,5283.蜂鸣器的连接:由于选用的蜂鸣器所需电流较小,所以采用将DSP 通用I/O 引脚直接驱动的方式。
随着信息处理技术的飞速发展,数字信号处理技术逐渐发展成为主流技术,它在电子信息、通信、软件无线电、自动控制、仪表技术、信息家电等高科技领域得到了越来越广泛的应用。
相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用越来越广泛。
同时DSP(数字信号处理器)的出现和FPGA的迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。
本课题主要应用MATLAB软件设计FIR数字滤波器的系数,用这些系数设计FIR滤波器并用编程仿真;应用DSP集成开发环境CCS调试程序,用TMS320C2812来实现了FIR数字滤波。
具体工作包括:对FIR数字滤波器的基本理论进行了分析和探讨;采用MATLAB软件来学习数字滤波器的基本知识,计算数字滤波器的系数,研究算法的可行性,对FIR低通数字滤波器进行前期的设计和仿真;系统介绍了TI公司数字信号处理器的硬件结构、性能特点和DSP 的集成开发环境CCS;应用DSP集成开发环境用CCS调程序,用TMS320C2812来实现了FIR数字滤波。
关键词:数字滤波器,DSP,FIR,MATLAB1绪论 (1)2系统开发平台与环境 (1)2.1CCS开发环境 (1)2.2DSP开发实验箱 (2)3FIR滤波器设计过程 (2)3.1FIR滤波器设计总框图 (2)3.2FIR滤波器设计的原理 (3)3.3FIR滤波器的设计方法 (3)4程序流程图 (4)5编写程序并仿真 (5)5.1滤波器计算函数如下 (5)5.2仿真结果 (5)6总结 (6)7参考文献 (7)8附录 (8)1绪论在信号处理中,滤波占有十分重要的地位。
数字滤波是数字信号处理的基本方法。
数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。
我不应把我的作品全归功于自己的智慧,还应归功于我以外向我提供素材的成千成万的事情和人物!——采于网,整于己,用于民2021年5月12日dsp实验报告总结篇一:dsp课程设计实验报告总结DSP课程设计总结(XX-XX学年第2学期)题目:专业班级:电子1103 学生姓名:万蒙学号:指导教师:设计成绩:XX 年6 月目录一设计目的----------------------------------------------------------------------3 二系统分析----------------------------------------------------------------------3 三硬件设计3.1 硬件总体结构-----------------------------------------------------------3 3.2 DSP模块设计-----------------------------------------------------------4 3.3 电源模块设计----------------------------------------------------------4 3.4 时钟模块设计----------------------------------------------------------5 3.5 存储器模块设计--------------------------------------------------------6 3.6 复位模块设计----------------------------------------------------------6 3.7 JTAG模块设计--------------------------------------------------------7 四软件设计4.1 软件总体流程-----------------------------------------------------74.2 核心模块及实现代码---------------------------------------8五课程设计总结-----------------------------------------------------14一、设计目的设计一个功能完备,能够独立运行的精简DSP硬件系统,并设计简单的DSP控制程序。
实验1.2 : 编写一个以C 语言为基础的DSP程序一.实验目的1.学习用标准C语言编制程序;了解常用的C语言程序设计方法和组成部分。
2.学习编制连接命令文件,并用来控制代码的连接。
3.学会建立和改变map文件,以及利用它观察DSP内存使用情况的方法。
4.熟悉使用软件仿真方式调试程序。
二.实验设备PC兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装Code Composer Studio 2.0软件。
三.实验原理1.标准C语言程序CCS支持使用标准C语言开发DSP应用程序。
当使用标准C语言编制的程序时,其源程序文件名的后缀应为.c(如:volume.c)。
CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP的可执行代码。
最后生成的是coff格式的可下载到DSP中运行的文件,其文件名后缀为.out。
由于使用C语言编制程序,其中调用的标准C的库函数由专门的库提供,在编译连接时编译系统还负责构建C运行环境。
所以用户工程中需要注明使用C的支持库。
2.命令文件的作用命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP硬件中的位置分配信息。
通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP 所管理的内存中。
命令文件也为链接程序提供了DSP外扩存储器的描述。
在程序中使用CMD文件描述硬件存储区,可以只说明使用部分,但只要是说明的,必须和硬件匹配,也就是只要说明的存储区必须是存在的和可用的。
3.内存映射(map)文件的作用一般地,我们设计、开发的DSP程序在调试好后,要固化到系统的ROM中。
为了更精确地使用ROM空间,我们就需要知道程序的大小和位置,通过建立目标程序的map文件可以了解DSP代码的确切信息。
当需要更改程序和数据的大小和位置时,就要适当修改cmd文件和源程序,再重新生成map文件来观察结果。
另外,通过观察map文件,可以掌握DSP存储器的使用和利用情况,以便进行存储器方面的优化工作。
4.程序设计要求程序框图(图2-1):四.实验内容与步骤1.实验准备设置软件仿真模式。
2.建立新的工程文件(1)双击桌面上图标,启动Code Composer Studio 2.21。
(2)进行以下设置(如图2-2):3.编辑输入源程序(1)C语言程序-先新建源程序窗口:-输入源程序:intx,y,z;main(){x=1; y=2;while ( 1 ){z=x+y;}}图2-3 新建源文件-保存源程序为CProgram.c:(2)连接命令文件-如同第(1)步操作,建立空的源程序窗口。
-输入连接命令文件内容:-l rts2800.lib-stack 400h-heap 100MEMORY{PAGE 0 : PROG(R) : origin = 0x3E8000, length = 0x10000 PAGE 0 : BOOT(R) : origin = 0x3FF000, length = 0xFC0 PAGE 0 : RESET(R) : origin = 0x3FFFC0, length = 0x2PAGE 0 : VECTORS(R) : origin = 0x3FFFC2, length = 0x3E PAGE 1 : M0RAM(RW) : origin = 0x000000, length = 0x400PAGE 1 : M1RAM(RW) : origin = 0x000400, length = 0x400 PAGE 1 : L0L1RAM(RW) : origin = 0x008000, length = 0x2000图2-4 保存为c文件PAGE 1 : H0RAM(RW) : origin = 0x3F8000, length = 0x2000 }SECTIONS{/* 22-bit program sections */.reset : > RESET, PAGE = 0vectors : > VECTORS, PAGE = 0.pinit : > PROG, PAGE = 0.cinit : > PROG, PAGE = 0.text : > PROG, PAGE = 0/* 16-Bit data sections */.const : > L0L1RAM, PAGE = 1.bss : > L0L1RAM, PAGE = 1.stack : > M1RAM, PAGE = 1.sysmem : > M0RAM, PAGE = 1/* 32-bit data sections */.ebss : > H0RAM, PAGE = 1.econst : > H0RAM, PAGE = 1.esysmem : > H0RAM, PAGE = 1}-l rts2800.lib-如同第(1)步操作,将文件存为:C:\ICETEK-F2812-A-EDUlab\DSP281x_examples\Lab0102-CProgram\CProgram.cmd(3) 将上述编译的源程序加入工程CProgram.pjt。
4.编译源文件、下载可执行程序(1) 单击菜单“Project”、“Rebuild All”。
(2) 执行FileàLoad Program ,在随后打开的对话框中选择刚刚建立的C:\ICETEK-F2812-EDULab\Lab0102-CProgram\debug\CProgram.out 文件。
完成后,系统自动打开一个反汇编窗口“Disassembly”,并在其中指示程序的入口地址为“_c_int00”。
5.打开观察窗口开启CPU寄存器观察窗口:单击菜单View->Registers->Core。
6.观察程序运行结果这时,在“Disassembly”代表程序运行位置的绿色箭头指向程序的入口地址,程序将从此开始执行。
(1) 选择菜单中Debug->Go Main,CCS自动打开CProgram.c,程序会停在用户主程序入口main上,这从反汇编窗口和CProgram.c窗口中的指示箭头位置可以看出。
(2) 在内存观察窗口中观察变量的值:选择“View”菜单中“Memory…”项,在“Memroy Window Options”窗口中的“Adress”项中输入&x,单击“OK”完成设置;“Memory”窗口中x 的当前取值显示在第1个地址的后。
(3) 将变量x、y、z分别加入观察窗口:在源程序中双击变量名,再单击鼠标右键,选择“Add to Watch Window”。
这时,这3 个变量还未作初始化。
(4) 单步运行2次,在观察窗中观察到变量x、y被赋值。
变化的值被显示成红色。
同时在“Memory”窗口中也能观察到x和y值的改变。
(5) 再单步运行,可观察到z 的值被计算出来。
双击观察窗口中变量x、y在“Value”栏中的取值并修改成其他取值,单步运行后观察结果。
(6) 双击观察窗口中变量x、y在“Value”栏中的取值,并修改成0;选择菜单Debug->Restart,返回程序起点。
(7) 重新单步运行程序7.内存映像文件(1) 选择菜单Project->Build Options…,启动“Build Options”工程设置对话框。
(2) 单击“Linker”属性页,在“Map Filename”项中观察生成的map文件名和路径。
(3) 单击“取消”退出。
8.对照观察map文件和cmd文件的内容(1) 选择菜单File->Open…,将找到C:\ICETEK-F2812-A-EDUlab\DSP281x_examples\Lab0102-CProgram \Debug 目录,将文件类型改为“Memory Map Files”,选择CProgram.map文件、打开。
(2) 打开CProgram.cmd 文件。
(3)程序的入口地址:map文件中“ENTRY POINT SYMBOL”中说明了程序入口地址(_c_int00)。
(4) 内存使用情况:-map文件中“MEMORY CONFIGURATION”标明了程序占用RAM 的使用情况,共占用aaH个存储单元。
-观察map文件中的“SECTION ALLOCATION MAP”段,可以看出CProgram.obj的入口地址为0x3e801e,这也是main函数的入口地址。
-用户堆栈段从400H 开始,程序运行到main函数中后,变量x、y、z 均开设在栈中。
-还能看出程序运行都需要调用rts2800.lib 中的哪些模块。
9.改变内存分配修改cmd文件中的PAGE 0 : PROG(R) : origin = 0x3E8000, length = 0x10000改为PAGE 0 : PROG(R) : origin = 0x3E9000, length = 0x10000重新编译工程,观察map文件中有何变化。
10.退出CCS五.注意事项在重新单步运行程序,注意观察在CPU寄存器窗口中,各寄存器使用情况,观察哪个寄存器参与了运算。
六.实验结果1.通过实验可以发现,修改cmd文件可以安排程序和数据在DSP内存资源中的分配和位置;map文件中描述了程序和数据所占用的实际尺寸和地址。
2.C语言编制的程序,在经过编译器编译后,需要连接若干C标准程序辅助运行。
以下是运行流程:(1)程序入口为_c_int00,执行标准C库中的程序,负责初始化C环境、申请堆栈、初始化有初始值的变量等。
(2)程序最终转到用户编制的主函数运行。
(3)程序在主函数中的无限循环中持续运行。
七.心得体会这次实验的准备工作有两个,分别是仿真和硬件连接,我们组先选择了仿真的方案。
在仿真过程中,按步骤一切都还顺利,观察窗中观察到变量x、y被赋值。
变化的值被显示成红色。
改变了内存分配,观察到map的变化。
但是当我们写入冒泡程序时,但是编译后发现了错误。
实验完成的不是很好,但是实验的过程中熟悉了dsp的调试过程,编程环境,以及了解了从编程到烧录的步骤,还是有所收获。