DSP实验报告0705110637精.docx
《DSP实验报告0705110637精.docx》由会员分享,可在线阅读,更多相关《DSP实验报告0705110637精.docx(18页珍藏版)》请在冰豆网上搜索。
DSP实验报告0705110637精
学生实验报告
课程名称:
学生学号:
所属院部:
(理工类)
DSP技术及应用专业班级:
07电子信息工程1班0705110637学生姓名:
薛建宏
信息技术学院指导教师:
姜志鹏
2010——2011学年第1学期
金陵科技学院教务处制
实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。
若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。
纸张一律采用A4的纸张。
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。
各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。
实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验项目名称:
1、CCS使用入门实验学时:
2学时同组学生姓名:
郝文君实验地点:
B406实验日期:
2010-10-14实验成绩:
批改教师:
批改时间:
一、实验目的和要求
(一)、实验目的
(1)熟悉DSP集成开发环境CCS的界面
(2)掌握CCS设计平台的常用功能
(3)掌握用CCS设计并调试DSP程序的流程
(二)、实验要求
(1)注意掌握CCS开发DSP应用程序的步骤;
(2)理解提供的汇编语言源程序的功能。
(3)调试程序要记录调试过程中出现的问题及解决办法;
(4)编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环境的掌握及应用,不断积累编程及调试经验;
(5)实验后按实验报告规范要求给出本实验的实验报告。
二、实验仪器和设备
PIII计算机,装有ccs2.2或更高版本软件、DSP实验箱(包括仿真器)
三、实验过程
(一)教师演示讲解CCS的使用
1、介绍SEED-DTKDSP实验箱的概况,演示DSP实验箱与PC机的连接方法。
2、介绍CCS软件的界面与菜单。
3、演示CCS调试程序的一般过程,讲解CCS常用功能。
3
(二)让学生按照步骤进行操作1、操作步骤如下:
以参考程序exam1.asm为例,练习CCS调试过程:
(1)单击CCSSETUP图标,打开后,选择C516DeviceEmulator,关闭对话框,再点击确定,然后就正式打开了CCSSETUP。
(2)创建一个新工程:
Project菜单中选择New命令,在弹出的对话框中填入工程名、存放路径与目标CPU型号,本实验选择C54X。
(3)新建文件,输入参考程序如下:
.mmregs
.text
CodeStart:
;程序入口SSBXXF;XF置1CALLDelay;调用延时程序RSBXXF;XF清0CALLDelay;调用延时程序
BCodeStart;跳转到程序开头循环执行
***************************************************************延时子程序:
Delay
*用两级减一计数器来延时。
调整AR1和AR2的大小LED闪烁的频率不同**************************************************************Delay:
STM#999,AR1;循环次数1000LOOP1:
STM#4999,AR2;循环次数5000
LOOP2:
BANZLOOP2,*AR2-;如果AR2不等于0,AR2减1,再判断BANZLOOP1,*AR1-;如果AR1不等于0,AR1减1,跳转到LOOP1RET.end
.defCodeStart
4
(4)保存该文件为exam1.asm;
(5)右击exam1,选择“addFiletoProject”,再打开“exam1.asm”;(6)新建文件,输入并保存链接命令文件exam1.cmd,参考内容如下:
MEMORY{
page0:
PRAM:
org=0100hlen=0F00h/*定义程序存贮区,起始0100H,长度0F00H*/}SECTIONS{
.text:
>PRAMpage0/*将.text段映射到page0的param区*/
}
(7)向工程中添加文件:
在Project菜单中单击AddFilestoProject,在弹出的的目录中选择待加入的文件exam1.cmd。
(8)汇编、链接程序:
执行菜单Project/RebuildAll,汇编后将产生一个exam1.out文件。
(9)加载程序:
执行File/LoadProgram,选择exam1.out并打开,即可将可执行文件加载到DSP仿真器中,此时CCS将自动打开一个反汇编窗口。
该窗口中的黄色小箭头表示当前PC指向的代码行。
(10)执行菜单VIEW/Register/CPURegister命令,打开观察窗口观察以便观察CPU类各寄存器的值。
(11)运行程序:
执行Debug/Run,观察SEED-DTK实验箱的D3,应有闪烁现象,适当修改程序,该LED闪烁的频率将有所变化。
观察CPUMMR窗口各寄存器的值。
(12)程序编译过程中若有错误,根据CCS给出的错误提示进行修改,本程序中给出了错误,由学生进行修改。
(三)根据学生的实验情况适当增加其他程序调试方法的讲解。
四、实验结果与分析
五、实验心得
5
实验项目名称:
2、CCS的汇编语言程序设计与调试实验学时:
2学时同组学生姓名:
郝文君实验地点:
B406实验日期:
2010-10-14实验成绩:
批改教师:
批改时间:
一、实验目的和要求
(一)、实验目的
(1)熟悉C54x系列DSP芯片的汇编语言指令。
(2)掌握用汇编语言设计程序的方法。
(3)熟悉用CCS调试程序的过程。
(二)、实验要求
(1)实验课前事先编写实验要求的程序。
.
(2)输入提供的汇编语言参考程序,用CCS对其进行调试;
(3)调试程序要记录调试过程中出现的问题及解决办法;
(4)编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成
环境的掌握及应用,不断积累编程及调试经验;
(5)实验后按实验报告规范要求给出本实验的实验报告。
二、实验仪器和设备
至少PIII计算机,装有ccs2.2或更高版本软件
三、实验过程
(一)教师简单回顾所需知识并演示较一个简单程序的调试过程。
1、简单回顾.bss等常用汇编伪指令的含义。
2、回顾CCS的操作步骤。
3、以一个实现连加的汇编程序为例,重点演示该汇编程序的调试过程。
该汇编程序的参考内容如下:
.title“exam2.asm”
.mmregs
.bssx,5
.bss
.text
Stm
Stm
Ld
loop:
y,1#x,ar1#4,ar4#0,aAddBanzStl.end*ar1+,aloop,*ar4-a,@y
(二)学生操作
1、思考该程序在实际调试时需要加入哪些语句才能得到正确结果?
为什么?
2、为程序exam2.asm加入设置堆栈、堆栈初始化的指令,并仿照教师的演示过程调试该程序,通过观察存储器与寄存器的值检查运行结果。
3、编写并调试一段程序,对数组进行初始化
(1)使x[5]={0,0,0,0,0}
(2)使x[5]={0,1,2,3,4}
4、学生根据各自的能力调试自选的其他程序。
5、操作步骤如下:
以参考程序exam2.asm为例,练习CCS调试过程:
(1)单击CCSSETUP图标,打开后,clearC516DeviceEmulator,然后inputc5402Devicesimulator关闭对话框,再点击确定,然后就正式打开了CCSSETUP。
(2)创建一个新工程:
Project菜单中选择New命令,在弹出的对话框中填入工程名、存放路径与目标CPU型号,本实验选择C54X。
(3)新建文件,输入参考程序如下:
.title“exam2.asm”
.mmregs
.bss
.bssx,5y,1
stack.usect“stack”,10h
.text
STM#stack+10h,sp
STM#x,ar1
STM#4,ar4
LD#0,a
loop:
Add*ar1+,aloop,*ar4-Banz
Ld#y,DP
Stl.enda,@y
(4)保存该文件为exam2.asm;
(5)右击exam2,选择“addFiletoProject”,再打开“exam2.asm”;
(6)新建文件,输入并保存链接命令文件exam2.cmd,参考内容如下:
MEMORY
{
page0:
PRAM:
org=0100hlen=0F00h
page1:
DARAM:
org=0080hlen=000Fh
/*定义程序存贮区,起始0100H,长度0F00H*/
}
SECTIONS
{
.text:
>PRAMpage0/*将.text段映射到page0的param区*/
.bss:
>DARAMpage1
}
(7)向工程中添加文件:
在Project菜单中单击AddFilestoProject,在弹出的的目录中选择待加入的文件exam2.cmd。
(8)汇编、链接程序:
执行菜单Project/RebuildAll,汇编后将产生一个exam2.out文件。
(9)加载程序:
执行File/LoadProgram,选择exam2.out并打开,即可将可执行文件加载到DSP仿真器中,此时CCS将自动打开一个反汇编窗口。
该窗口中的黄色小箭头表示当前PC指向的代码行。
(10)执行菜单VIEW/Register/CPURegister命令,打开观察窗口观察以便观察CPU类各寄存器的值。
(11)运行程序:
执行Debug/Run,观察SEED-DTK实验箱的D3,应有闪烁现象,适当修改程序,该LED闪烁的频率将有所变化。
观察CPUMMR窗口各寄存器的值。
(12)程序编译过程中若有错误,根据CCS给出的错误提示进行修改,本程序中给出了错误,由学生进行修改。
6、p139例3-1
********************************************
**example.asmy=a1*x1+a2*x2+a3*x3+a4*x4**
********************************************
.title"example.asm"
.mmregs
STACK.usect"STACK",10h
.bssa,4
.bssx,4
.bssy,1
.def_c_int00
.data
table:
.word1,2,3,4
.word8,6,4,2
.text
_c_int00:
STM#0,SWWSR
STM#STACK+10h,SP
STM#a,AR1
RPT#7
MVPDtable,*AR1+
CALLSUM
end:
Bend
SUM:
STM#a,AR3
STM#x,AR4
RPTZA,#3
MAC*AR3+,*AR4+,A
STLA,@y
RET
.end
(三)根据学生的实验情况适当增加其他程序调试方法的讲解。
四、实验结果与分析
五、实验心得
实验项目名称:
3、使用探测点与文件I/O实验学时:
2学时
同组学生姓名:
郝文君实验地点:
B406
实验日期:
2010-10-21实验成绩:
批改教师:
批改时间:
一、实验目的和要求
(一)、实验目的
(1)掌握用CCS设计并调试DSP程序的流程
(2)掌握探测点与文件I/O的使用方法
(3)掌握从文件读入数据到内存的方法
(4)掌握CCS波形、图像输入输出的步骤
(二)、实验要求
(1)注意掌握CCS开发DSP应用程序的步骤;
(2)输入提供的C语言参考程序,用CCS对其进行调试;
(3)调试程序要记录调试过程中出现的问题及解决办法;
(4)编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环
境的掌握及应用,不断积累编程及调试经验;
(5)实验后按实验报告规范要求给出本实验的实验报告。
二、实验仪器和设备
PIII计算机,装有ccs2.2或更高版本软件
三、实验过程
(一)教师讲解演示CCS探测点与文件I/O的使用过程
1、探测点即探针断点(ProbePoint的原理
探针可以从PC机的文件中读取数据,它是开发算法的一个有效工具。
其作用概括为:
(1)将来自PC主机文件的输入数据传送到目标系统的缓存器中供算法使用。
(2)将来自目标系统缓存器中的输出数据传送到PC主机的文件中供分析。
(3)用数据更新窗口,如图形窗口。
2、演示通过探测点实现数据输入并查看图形的步骤。
(二)让学生按照演示步骤练习有关操作。
练习使用探测点与文件I/O,操作步骤:
1.按project选择openc盘下的ti中的tutorial中的sim54xx中的volume1.c,将
其拷贝到myproject中,打开volume1.c及其相应的命令链接文件volume.cmd、头文件、库文件、中断向量表等文件。
点击工具栏按钮或选择Project→RebuildAll。
2.选择File→LodeProgram并选取volume.out,然后点击Open。
3.在ProjectView窗口中,双击volume.c文件。
4.将光标置于主函数中的dataIO(这一行上。
DataIO函数起占位符作用。
现在,它是
一个很好的与探针断点相连接的地方,以便于从PC机文件输入数据。
5、点击工具栏按钮(ToggleProbePoint),则光标所在行变为兰色高亮。
6、选择File→FileI/O,在FileI/O对话窗中可选择输入和输出文件。
7、在FileInput栏中,点击AddFile。
8、选择sine.dat文件。
注意:
在文件类型框中可以选择数据格式,sine.dat文件包含正弦波形的16进制值。
9、点击Open,将该文件添加到FileI/O对话框的列表上,接着出现sine.dat文件控制
窗口(CCS窗口可以覆盖它)。
在运行程序时,可用这个窗口开始、停止、重复、或快速前进
来控制数据文件。
10、在FileI/O对话框中,将Address修改为inp_buffer,Length修改为100,选中Wrap
Around。
11、点击AddProbePoint,Break\Probe\ProfilePoints对话窗的ProbePoint
栏就
会出现。
12、加亮(对话框中)显示的第五步的断点设置。
13、点击Connect栏尾处的下箭头,在其下拉菜单中选择FILEINC\\sine.dat文件。
14、点击Replace。
ProbePoint列表将显示探测点已连接到sine.dat文件。
15、Page选择Data,Address输入inp_buffer.Length输入0X64,然后点击OK。
FileI/O
对话框则显示文件现已被连接到探测点。
16、在FileI/O对话框,点击OK。
17、选择View→Graph→Time/Frequency。
18.在弹出的GraphPropertyDialog对话窗中,将GraphTitle,StartAddress,
AcquisitionBufferSize,DisplayDataSize,DSPDataType,Autoscale和MaximumY-value的属性改变为如下图所示。
向下滚动或调整dialog框的大小可看到所有的属性。
19、点击OK,出现输入缓存的一个图形窗。
20.窗口中右击鼠标,从弹出的菜单中选择ClearDisplay。
21.再次选择View→Graph→Time/Frequency。
22.改变GraphTitle的属性为OutputBuffer,改变StartAddress的属性为Out_buffer,其余的设置都不变。
23.点击OK,又出现一个图形窗,在该图形窗内右击鼠标,从弹出的菜单中选择ClearDisplay。
24.选择view→WatchWindow
25.Watch窗中右击鼠标,并从弹出菜单中选择watch1。
26.在name区敲入gain并随便单击一下,在Value中输入10。
27.如果程序已暂停,点击工具栏按钮(Aminate,重新开始运行程序。
四、实验结果与分析
五、实验心得
实验项目名称:
4、定时器与中断实验实验学时:
2学时同组学生姓名:
郝文君实验地点:
B406实验日期:
2010-10-21实验成绩:
批改教师:
批改时间:
一、实验目的和要求
(一)、实验目的
(1)熟悉用CCS设计并调试程序的流程
(2)掌握定时器等片内外设的寄存器的含义及其设置方法
(3)掌握C54X中断系统的原理
(4)掌握长时间时间间隔的定时器的处理方法
(二)、实验要求
(1)注意掌握CCS开发DSP应用程序的步骤;
(2)编写一个简单的定时器中断程序,利用定时器定时,使与XF引脚相连的LED
灯亮灭,用CCS对其进行调试;
(3)调试程序要记录调试过程中出现的问题及解决办法;
(4)编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集
成环境的掌握及应用,不断积累编程及调试经验;
(5)做完实验后给出本实验的实验报告。
二、实验仪器和设备
PIII计算机,装有ccs2.2或更高版本软件
三、实验过程
(一)、教师简单回顾定时器原理与中断的原理
1、定时器由三个寄存器组成:
TIM、PRD、TCR,
TIM:
定时器寄存器,用于装载周期寄存器的数值并自动减1
PRD:
周期寄存器,用于装载定时周期的寄存器
TCR:
定时器控制寄存器,包含定时器的控制状态位。
TCR的D6~D9位名字叫PSC,TCR
的D3~D0名字叫TDDR。
定时器实际就是16位的减1计数器,它有两级计数:
(1)对CPU时钟CLKOUT计数,每来一个CLKOUT周期,PSC的内容减1。
在PSC减到0前,TIM内容不变。
(2)当PSC的内容减为0时,TIM寄存器内容减1。
一直到TIM减为0时,表示定时时间到,这时CPU发出中断信号,称为定时器中断,用TINT表示。
当TIM减为0时,PRD的内容又重新装入TIM,开始下一次定时。
(3)定时器定时长度计算公式:
Tt=T*(1+TDDR*(1+PRD2.长时间时间间隔的编程思路:
有时定时的长度不能满足需要,比如DSP工作频率160Mhz时,定时最大值约为6ms,如果需要更长的定时,就要在定时器中断子程序中再加一个计数器,直到产生一定次数的定时中断后再执行相应的操作。
3、中断是指:
CPU终止正在执行的程序,转去执行一个请求中断的内部或外部的中断服务程序,待处理完毕后,又返回到被终止的源程序处继续执行。
这一过程称为中断;中断系统是指:
为实现中断功能而设置的各种硬件和软件。
C54xDSP既支持软件中断,也支持硬件中断。
当同时有多个硬件中断出现时,C54xDSP按照中断优先级别的高低对它们进行服务。
C54xDSP的中断可以分成两大类:
第一类是可屏蔽中断。
这些都是可以用软件来屏蔽或开放的硬件和软件中断。
第二类是非屏蔽中断。
这些中断是不能够用软件指令屏蔽的,C54x对这一类中断必须予以响应,并从主程序转移到中断服务程序。
C54xDSP的非屏蔽中断包括所有的软件中断,以及两个外部硬件中断(复位和RS。
NMI(3)与中断有关寄存器有中断标志寄存器(IFR:
它的D3位是TINT0,是定时器0的中断标志位中断屏蔽寄存器(IMR:
它的某一位为0时,表示屏蔽该中断(4)中断方式控制位INTM:
是CPU状态寄存器ST1中的D11位INTM=1表示关闭所有可屏蔽中断、INTM=0开放所有可屏蔽中断
(二)让学生按照设计步骤调试程序实验操作步骤:
(1)创建一个新工程:
Project菜单中选择New命令,在弹出的对话框中填入工程名、存放路径与目标CPU型号,本实验选择C54X。
(2)新建文件,输入实验要求的参考程序(程序中的斜体部分暂不使用):
.title"timer.asm".mmregs16
.def_c_int00.defTINT0_ISRCounterSet.set1000PERIOD.set49999.asgAR1,Counter_c_int00:
STMSTMSTMSTMSTMSTM#CounterSet,Counter#0000000000010000B,TCR#PERIOD,TIM#PERIOD,PRD#0000001111001110B,TCR#0008H,IMRRSBXINTMEnd:
NOPBEndTINT0_ISR:
PSHMST0BANZNext,*CounterSTM#CounterSet,CounterBITF*AR2,#1BCsetXF:
SSBXSTBResetXF:
ResetXF,TCXF#1,*AR2NextRSBXXFST#0,*AR2ST0Next:
POPMRETE.end(3)保存该文件为timer.asm;(4)向工程中添加文件:
在Project菜单中单击AddFilestoProject,在C:
\ti\c5400\cgtool\lib\lnk.cmd,打开该文件,记住它安排.text段从程序存储器的0080H开始存放。
(5)编译、链接程序:
执行菜单Project/RebuildAll,汇编结果在将汇编信息输出窗口中给出。
编译后将产生一个timer.out文件。
(6)加载程序:
执行File/LoadProgram,选择timer.out并打开,即可将可执行文17
件加载到DSP软件仿真