稿DSP技术及应用实验指导书.docx

上传人:b****6 文档编号:6865178 上传时间:2023-01-11 格式:DOCX 页数:21 大小:211.97KB
下载 相关 举报
稿DSP技术及应用实验指导书.docx_第1页
第1页 / 共21页
稿DSP技术及应用实验指导书.docx_第2页
第2页 / 共21页
稿DSP技术及应用实验指导书.docx_第3页
第3页 / 共21页
稿DSP技术及应用实验指导书.docx_第4页
第4页 / 共21页
稿DSP技术及应用实验指导书.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

稿DSP技术及应用实验指导书.docx

《稿DSP技术及应用实验指导书.docx》由会员分享,可在线阅读,更多相关《稿DSP技术及应用实验指导书.docx(21页珍藏版)》请在冰豆网上搜索。

稿DSP技术及应用实验指导书.docx

稿DSP技术及应用实验指导书

《DSP技术及应用》

 

实验指导书

 

适用专业:

电子信息工程

 

金陵科技学院

实验1CCS使用入门

实验序号:

1实验名称:

CCS使用入门

适用专业:

电子信息工程学时数:

4学时

一、实验目的

(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常用功能。

(二)让学生按照步骤进行操作

1、操作步骤如下:

以参考程序TestXF.ASM为例,将SEED-DTK实验箱通过XDS510仿真器与PC机相连,并显示正常连接后,开始练习CCS调试过程:

(1)单击CCSSETUP图标,设置为硬件仿真模式,即C5416XDS510EMULATOR。

(2)创建一个新工程:

Project菜单中选择New命令,在弹出的对话框中填入工程名、存放路径与目标CPU型号,本实验选择C54X。

(3)新建文件,输入参考程序如下:

.mmregs 

.def _c_int00

.text 

_c_int00:

 ;程序入口

SSBX XF ;XF置1

CALL Delay ;调用延时程序

RSBX XF ;XF清0

CALL Delay;调用延时程序

B _c_int00;跳转到程序开头循环执行

**************************************************************

*延时子程序:

Delay,已知DSP系统初始工作频率为32MHz或160MHz

*用两级减一计数器来延时。

调整AR1和AR2的大小LED闪烁的频率不同

**************************************************************

Delay:

 

STM #999,AR1 ;循环次数1000

LOOP1:

 STM #4999, AR2 ;循环次数5000

LOOP2:

 BANZ LOOP2,*AR2- ;如果AR2不等于0,AR2减1,再判断

BANZ LOOP1,*AR1- ;如果AR1不等于0,AR1减1,跳转到LOOP1

RET

.end

(4)保存该文件为TestXF.asm;

(5)输入并保存链接命令文件TestXF.CMD,参考内容如下:

MEMORY 

{

page 0:

PRAM:

 org=0100h len=0F00h 

/*定义程序存贮区,起始0100H,长度0F00H*/

}

SECTIONS

{

.text:

>PRAM page 0 /*将.text段映射到page0的param区*/

}

(6)向工程中添加文件:

在Project菜单中单击AddFilestoProject,在弹出的的目录中选择待加入的文件TestXF.asm、TestXF.cmd。

(7)练习从工程中删除一个文件。

(8)汇编、链接程序:

执行菜单Project/RebuildAll对源程序进行编译,最后将产生一个TestXF.out文件。

(9)加载程序:

执行File/LoadProgram,选择TestXF.out并打开,即可将可执行文件加载到DSP仿真器中,此时CCS将自动打开一个反汇编窗口。

该窗口中的黄色小箭头表示当前PC指向的代码行。

(10)执行菜单VIEW/Register/CPURegister命令,打开观察窗口观察以便观察CPU类各寄存器的值。

(11)运行程序:

执行Debug/Run,观察SEED-DTK实验箱的D3,应有闪烁现象,适当修改程序,该LED闪烁的频率将有所变化。

XF引脚LEDD3的连接图如图所示。

(12)程序编译过程中若有错误,根据CCS给出的错误提示进行修改。

例如,本程序中若将

.def _c_int00伪指令删除,则CCS将提示符号_c_int00未定义。

要求学生尝试修改其他内容,如CMD文件,观察有可能发生的错误现象。

(三)根据学生的实验情况适当增加其他程序调试方法的讲解。

五、实验注意事项

实验过程中注意爱护设备,实验完毕要按正常操作关闭设备。

六、讨论、思考题

1.TestXF.asm程序里延迟子程序的延迟时间怎样确定的?

D3闪烁频率是怎样确定?

2.观察并思考调试过程中单步执行命令stepover、stepinto、stepout、runtocursor的不同功能。

2.打开其他示例程序并调试通过,在有关窗口中显示正确运行结果。

 

实验二汇编语言程序设计与调试

实验序号:

2实验名称:

汇编语言程序设计与调试

适用专业:

电子信息工程学时数:

4学时

一、实验目的

(1)熟悉C54x系列DSP芯片的汇编语言指令。

(2)掌握用汇编语言设计程序的方法。

(3)熟悉用CCS调试程序的过程。

二、实验要求

(1)输入提供的汇编语言参考程序,用CCS对其进行调试;

(2)调试程序要记录调试过程中出现的问题及解决办法;

(3)编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环境的掌握及应用,不断积累编程及调试经验;

(4)实验后给出本实验的实验报告。

三、实验设备、环境

至少PIII计算机,装有ccs2.2(或ccs3.1)软件

四、实验步骤及内容

(一)教师简单回顾所需知识并演示一个程序的输入调试过程。

1.简单回顾常用汇编伪指令的含义。

2.回顾CCS的操作步骤

3.以一个实现连加的汇编程序为例(PPT的316页),重点演示该汇编程序的调试过程。

(1)该汇编程序的参考内容如下:

.title“exam2.asm”

.mmregs

.bssx,5

.bssy,1

.text

Stm#x,ar1

Stm#4,ar4

Ld#0,a

Loop:

Add*ar1+,a

Banzloop,*ar4-

Stla,@y

.end

(2)参考CMD文件:

MEMORY

{

page0:

PRAM:

org=1000hlen=0F00h/*定义程序存贮区,起始0100H,长度0F00H*/

page1:

DRAM:

org=1000h,len=100h/*定义数据存贮区,起始1000H,长度0100H*/

}

SECTIONS

{

.text:

>PRAMpage0/*将.text段映射到page0的PRAM区*/

.bss:

>DRAMpage1/*将.bss段映射到page1的DRAM区*/

}

(3)运行该程序,但发现无法正确运行,从存储器的安排角度去解决这个问题。

(4)存储器安排问题解决后,再次运行程序,但在y单元未观察到运行结果,要求改写代码,使得在y单元获得正确的计算结果(提示:

从直接寻址的规律角度思考)。

(5)CCS中存储器的观察方法

选择VIEW/memory,打开窗口,在其中Address中输入要观察的x单元地址,被选择观察Datamemory,即可打开指定单元起始的DM进行观察。

要修改某单元内容,只需双击即可修改。

(二)学生按照设计选题编写简单程序

1、设计并调试汇编程序实现连续乘加功能(PPT的325页)

2、学生自行编写其他汇编程序并调试直至满足功能要求

如:

(1)编写一段程序,对数组进行初始化,使x[5]={0,0,0,0,0}(PPT的316页)

(2)编写一段程序,对数组进行初始化,使x[5]={0,1,2,3,4}(读懂PPT325页的程序,自己编写)

(3)编写一段程序,首先对数组x[20]赋值,再将数据存储器中的数组x[20]复制到数组y[20]。

(PPT的278页)

(三)学生在参考程序中添加两行代码:

STLA,AR1

LD*AR1+,T

按调试过程对其进行调试,观察CCS给出的警告提示,并思考为什么会有这种警告以及怎样消除之。

(四)记录调试过程中出现的问题、解决的思路及解决的办法。

五、讨论思考题

1、DSP汇编程序中流水线冲突的解决有哪些规律?

2、怎样比较实现同一功能的两个程序所用的算法的优劣?

 

实验三使用探测点与文件I/O

实验序号:

3实验名称:

使用探测点与文件I/O

适用专业:

电子信息工程学时数:

4学时

一、实验目的

(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.创建工程,并加入C语言程序volume.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,选择将dataio()行的探针对指定数据文件连接:

点击Connect栏尾处的下箭头,在其下拉菜单中选择sine.dat文件;点击Replace。

ProbePoint列表将显示探测点已连接到sine.dat文件;点击“确定”。

FileI/O对话框则显示文件现已被连接到探测点。

12.在FileI/O对话框,点击“确定”。

13.

点击

按钮,在dataio()行增加一断点,点击动态运行按钮。

14.选择View→Graph→Time/Frequency。

15.在弹出的GraphPropertyDialog对话窗中,将GraphTitle,StartAddress,AcquisitionBufferSize,DisplayDataSize,DSPDataType,Autoscale和MaximumY-value的属性改变为如下图所示。

向下滚动或调整dialog框的大小可看到所有的属性。

16.点击OK,出现输入缓存的一个图形窗。

17.窗口中右击鼠标,从弹出的菜单中选择ClearDisplay。

18.再次选择View

Graph

Time/Frequency。

19.改变GraphTitle的属性为OutputBuffer,改变StartAddress的属性为Out_buffer,其余的设置都不变。

20.点击OK,又出现一个图形窗,在该图形窗内右击鼠标,从弹出的菜单中选择ClearDisplay。

21.选择view→WatchWindow

22.Watch窗中右击鼠标,并从弹出菜单中选择AddTab。

23.在Expression区敲入gain并单击OK,变量值出现在Watch窗口。

 

24.如果程序已暂停,点击工具栏按钮(Aminate),重新开始运行程序。

25.在Watch窗口中双击gain。

26.在EditVariable窗口中修改gain值为10,并点击OK。

27.注意在OutputBuffer图形中信号幅度变化反映了增益的提高

31.仿照此例程,编写程序,实现图片的亮度变换算法,要求算法执行前后,图片的亮度相应变化。

如;

五、实验注意事项

实验过程中注意爱护设备,实验完毕要按正常操作关闭设备。

六、讨论、思考题

1.查找资料思考怎样实现动态刷新图形。

2.查找资料思考并练习怎样显示频谱等图形。

 

实验四定时器与中断实验

实验序号:

4实验名称:

定时器与中断实验

适用专业:

电子信息工程学时数:

4学时

一、实验目的

(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+PRD)

2.长时间时间间隔的编程思路:

有时定时的长度不能满足需要,比如DSP工作频率160Mhz时,定时最大值约为6ms,如果需要更长的定时,就要在定时器中断子程序中再加一个计数器,直到产生一定次数的定时中断后再执行相应的操作。

3、中断是指:

CPU终止正在执行的程序,转去执行一个请求中断的内部或外部的中断服务程序,待处理完毕后,又返回到被终止的源程序处继续执行。

这一过程称为中断;中断系统是指:

为实现中断功能而设置的各种硬件和软件。

C54xDSP既支持软件中断,也支持硬件中断。

当同时有多个硬件中断出现时,C54xDSP按照中断优先级别的高低对它们进行服务。

C54xDSP的中断可以分成两大类:

第一类是可屏蔽中断。

这些都是可以用软件来屏蔽或开放的硬件和软件中断。

第二类是非屏蔽中断。

这些中断是不能够用软件指令屏蔽的,C54x对这一类中断必须予以响应,并从主程序转移到中断服务程序。

C54xDSP的非屏蔽中断包括所有的软件中断,以及两个外部硬件中断(复位)和。

(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"

.mmregs

.def_c_int00

.defTINT0_ISR

CounterSet.set1000

PERIOD.set49999

.asgAR1,Counter

_c_int00:

LDMPMST,A

AND#7FH,A

OR#0180H,A

STLMA,PMST

STM#CounterSet,Counter

STM#0000000000010000B,TCR

STM#PERIOD,TIM

STM#PERIOD,PRD

STM#0000001111001110B,TCR

STM#0008H,IMR

RSBXINTM

End:

NOP

BEnd

TINT0_ISR:

PSHMST0

BANZNext,*Counter-

STM#CounterSet,Counter

BITF*AR2,#1

BCResetXF,TC

setXF:

SSBXXF

ST#1,*AR2

BNext

ResetXF:

RSBXXF

ST#0,*AR2

Next:

POPMST0

RETE

.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并打开,即可将可执行文件加载到DSP软件仿真器simulator中,此时CCS将自动打开一个反汇编窗口。

(7)点击鼠标右键,选择弹出菜单的setpctocursor,在弹出的对话框内填入PC指向的地址,这时绿色箭头的位置即为PC指向的地址。

(8)选择菜单VIEW\Register\cpuregister,打开CPU的MMR窗口观察,同时观察实验平台上相应的LED。

(9)运行程序:

执行Debug/Run。

(10)应能观察到LED灯闪烁。

(11)程序编译过程中若有错误,根据CCS给出的错误提示进行修改,若无实验现象,则调试程序使之实现。

(12)修改程序,使LED的闪烁频率为3Hz。

五、实验注意事项

实验过程中注意爱护设备,实验完毕要按正常操作关闭设备。

六、讨论、思考题

1.写出LED的闪烁频率与CPU主频的关系表达式?

2.认真研究程序timer.asm中的斜体部分有何作用?

3.撰写实验报告时必须为参考程序增加详细注释。

 

实验二参考程序,要求全部运行一遍并掌握,写到实验报告中时,要增加适当的注释

1.实现y=a*x+b

.title"exam21.asm"

.def_c_int00

.bssa,1

.bssx,1

.bssb,1

.bssy,1

.text

_c_int00LD#a,DP

LD@a,T;取a值,T=a

MPY@x,B;完成ax乘积,B=ax

ADD@b,B;完成ax+b运算,B=ax+b

STLB,@y

.end

2.实现y=a1*x1+a2*x2ppt第289页

.title"exam22.asm"

.def_c_int00

.bssa,2

.bssx,2

.bssy,2

.text

_c_int00LD@x,T

MPY@a,B

LD@x+1,T

MAC@a+1,B

STLB,@y

STHB,@y+1

.end

MEMORY

{

page0:

PRAM:

org=0100hlen=0F00h

/*定义程序存贮区,起始0100H,长度0F00H*/

page1:

DARAM:

org=2000hlen=100h

/*定义数据存贮区,起始2000H,长度0100H*/

}

SECTIONS

{

.text:

>PRAMpage0/*将.text段映射到page0的PRAM区*/

.bss:

>DARAMpage1/*将.bss段映射到page1的DARAM区*/

}

3.连续乘加

.title"exam23.asm"

.mmregs

.def_c_int00

stack.usect"STK",20h

.bssa,5

.bssx,5

.bssy,2;假设结果超过16位,因此设存放结果单元y为两个单元

.data;因为后面用MVPD访问该段,说明该段应分配到程序存储器

table:

.word

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

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

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