《DSP技术与应用》上机实验指导书.docx

上传人:b****6 文档编号:13612846 上传时间:2023-06-15 格式:DOCX 页数:39 大小:1.10MB
下载 相关 举报
《DSP技术与应用》上机实验指导书.docx_第1页
第1页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第2页
第2页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第3页
第3页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第4页
第4页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第5页
第5页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第6页
第6页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第7页
第7页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第8页
第8页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第9页
第9页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第10页
第10页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第11页
第11页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第12页
第12页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第13页
第13页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第14页
第14页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第15页
第15页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第16页
第16页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第17页
第17页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第18页
第18页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第19页
第19页 / 共39页
《DSP技术与应用》上机实验指导书.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《DSP技术与应用》上机实验指导书.docx

《《DSP技术与应用》上机实验指导书.docx》由会员分享,可在线阅读,更多相关《《DSP技术与应用》上机实验指导书.docx(39页珍藏版)》请在冰点文库上搜索。

《DSP技术与应用》上机实验指导书.docx

《DSP技术与应用》上机实验指导书

北京印刷学院

信息与机电工程学院

信息工程系

DSP技术与应用

 

自动化教研室编

目录

实验一:

CODECOMPOSERSTUDUIO实验.........................3

实验二:

数据存取实验.......................................10

实验三:

I/O端口实验、定时器实验............................13

实验四:

数/模转换和数/模转换实验...........................15

实验五:

键盘输入实验.......................................22

实验六:

液晶显示器控制显示实验.............................25

 

实验一:

CODECOMPOSERSTUDUIO实验

一.实验目的

1.掌握CodeComposerStudio2.21的安装和配置步骤过程。

2.了解DSP开发系统和计算机与目标系统的连接方法。

3.了解CodeComposerStudio2.21软件的操作环境和基本功能,了解TMS320C28xx软件

开发过程。

(1)学习创建工程和管理工程的方法。

(2)了解基本的编译和调试功能。

(3)学习使用观察窗口。

(4)了解图形功能的使用。

二.实验设备

1.PC兼容机一台;操作系统为Windows2000(或WindowsNT、Windows98、WindowsXP,

以下假定操作系统为Windows2000)。

Windows操作系统的内核如果是NT的应安装相应的补丁程序(如:

Windows2000为ServicePack3,WindowsXP为ServicePack1)。

2.ICETEK-F2812-EDU实验箱一台。

如无实验箱则配备ICETEK-ICETEK-USB仿真器或

ICETEK-ICETEK-PP仿真器和ICETEK-F2812-A评估板,+5V电源一只。

3.USB连接电缆一条(如使用PP型仿真器换用并口电缆一条)。

三.实验原理

*开发TMS320C5xxx应用系统一般需要以下几个调试工具来完成:

-软件集成开发环境(CodeComposerStudio2.21):

完成系统的软件开发,进行软件和硬件

仿真调试。

它也是硬件调试的辅助手段。

-开发系统(ICETEK5100USB或ICETEK5100PP):

实现硬件仿真调试时与硬件系统的

通信,控制和读取硬件系统的状态和数据。

-评估模块(ICETEKF2812-A等):

提供软件运行和调试的平台和用户系统开发的参照。

*CodeComposerStudio2.21主要完成系统的软件开发和调试。

它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF(公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。

*用户系统的软件部分可以由CCS建立的工程文件进行管理,工程一般包含以下几种文件:

-源程序文件:

C语言或汇编语言文件(*.ASM或*.C)

-头文件(*.H)

-命令文件(*.CMD)

-库文件(*.LIB,*.OBJ)

四.实验步骤

1.实验准备

由于本实验采用软仿真模式,不要打开实验箱电源。

2.设置CodeComposerStudio2.21在软仿真(Simulator)方式下运行

请参看本书第三部分、第一章、四、1。

3.启动CodeComposerStudio2.21

请参看本书第三部分、第一章、五、2。

选择菜单Debug→ResetCPU。

成功地启动了CCS后会出现如下窗口:

图2-1-1CCS软件界面介绍

4.创建工程

(1)创建新的工程文件

选择菜单“Project”的“New…”项。

图2-1-2创建工程文件

如下图,按编号顺序操作建立volume.pjt工程文件:

图2-1-3新建工程

展开主窗口左侧工程管理窗口中“Projects”下新建立的“volume.pjt”,其各项均为空。

(2)在工程文件中添加程序文件:

选择菜单“Project”的“AddFilestoProject…”项;在“AddFilestoProject”对话框中选择文件目录为C:

\ICETEK-F2812-A-EDUlab\DSP281x_examples\Lab0101-UseCCS,改

变文件类型为“CSourceFiles(*.c;*.ccc)”,选择显示出来的文件“volum.c”;重复上述各步骤,添加C:

\ICETEK-F2812-A-EDUlab\DSP281x_examples\Lab0101-UseCCS\volume.cmd文件到volum工程中;添加C:

\ti\c2000\cgtools\lib\rts2800_ml.lib。

(3)编译连接工程:

选择菜单“Project”的“RebuildAll”项,或单击工具条

中的按钮;注意编

译过程中CCS主窗口下部“Build”提示窗中显示编译信息,最后将给出错误和警告的统

计数。

5.编辑修改工程中的文件

(1)查看工程文件

展开CCS主窗口左侧工程管理窗中的工程各分支,可以看到“volume.pjt”工程中包

含“volume.h”、“rts2800.lib”、“volume.c”和“volume.cmd”文件,其中第一个为程序在编译时根据程序中的“include”语句自动加入的。

(2)查看源文件

*双击工程管理窗中的“volume.c”文件,可以查看程序内容。

可以看到,用标准C语

言编制的程序,大致分成几个功能块:

-头文件。

描述标准库程序的调用规则和用户自定义数据、函数头、数据类型等。

具体

包含哪一个头文件,需要根据程序中使用了哪些函数或数据而定。

比如:

如果程序中

使用了printf函数,它是个标准C提供的输入/输出库函数,选中“printf”关键字,按

Shift+F1会启动关于此关键字的帮助,在帮助信息中可发现其头函数为stdio.h,那么

在此部分程序中需要增加一条语句:

#include“stdio.h”。

-工作变量定义。

定义全局变量。

-子程序调用规则。

这部分描述用户编制的子程序的调用规则。

也可以写到用户自己编

制的.h文件中去。

-主程序。

即main()函数。

它可分为两部分:

变量定义和初始化部分、主循环部分。

循环部分完成程序的主要功能。

-用户自定义函数。

这个程序是一个音频信号采集、处理输出的程序。

程序的主循环中调用自定义的函数

read_signals来获得音频数据并存入输入缓存inp_buffer数组;再调用自定义函数

write_buffer来处理音频数据并存入输出缓存;output_signals将输出缓冲区的数据送输出设

备;最后调用标准C的显示信息的函数printf显示进度提示信息。

整个系统可以完成将输

入的音频数据扩大volume倍后再输出的功能。

read_signal子程序中首先应有从外接AD设备获得音频数据的程序设计,但此例中由

于未采用实际AD设备,就未写相应控制程序。

此例打算用读文件的方式获得数据,模拟

代替实际的AD输入信号数据。

write_buffer子程序中首先将输入缓冲区的数据进行放大处理,即乘以系数volume,

然后放入输出缓冲区。

output_signals函数完成将处理后的设备输出的功能,由于此例未具体操作硬件输出设

备,所以函数中未写具体操作语句。

*双击工程管理窗中的“volume.h”文件,打开此文件显示,可以看到其中有主程序中

要用到的一些宏定义如“BUF_SIZE”等。

*volume.cmd文件定义程序所放置的位置,此例中描述了ICETEK-F2812-A评估板的

存储器资源,指定了程序和数据在内存中的位置。

比如:

它首先将ICETEK-F2812-A评估板的可用存储器分为八个部分,每个区给定起

始地址和长度(区域地址空间不允许重叠);然后指定经编译器编译后产生的各模块放到哪

个区。

这些区域需要根据评估板硬件的具体情况来确定。

(3)编辑修改源文件及编译程序

打开“volume.c”,找到“main()”主函数,将语句“input=inp_buffer;”最后的分号去

掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现

发现错误的提示;双击红色错误提示,CCS自动转到程序中出错的地方;将语句修改正确

(将语句末尾的分号加上);重新编译;注意,重新编译时修改过的文件被CCS自动保存。

(4)修改工程文件的设置

图2-1-4修改工程文件

通过以上设置操作,重新编译后,程序中的用户堆栈的尺寸被设置成1024个字。

6.基本调试功能

(1)下载程序:

执行File􀃆LoadProgram,在随后打开的对话框中选择刚刚建立的

C:

\ICETEK-F2812-A-EDUlab\DSP281x_examples\Lab0101-UseCCS\Debug\volume.out文

件。

(2)设置软件调试断点:

在项目浏览窗口中,双击volume.c激活这个文件,移动光标到main()

行上,单击鼠标右键选择ToggleBreakpoint或按F9设置断点(另外,双击此行左边的灰

色控制条也可以设置或删除断点标记)。

(3)利用断点调试程序:

选择Debug􀃆Run或按F5运行程序,程序会自动停在main()函数上。

①按F10执行到write_buffer()函数。

②再按F8,程序将转到write_buffer函数中运行。

③此时,为了返回主函数,按shift-F7完成write_buffer函数的执行。

④再次执行到write_buffer一行,按F10执行程序,对比与F8执行的不同。

提示:

在执行C语言的程序时,为了快速的运行到主函数调试自己的代码,可以使用

Debug􀃆Gomain命令,上述实验中的使用的是较为繁琐的一种方法。

7.使用观察窗口

(1)执行View􀃆WatchWindow打开观察窗口。

(2)在volume.c中,用鼠标双击一个变量(比如num),再单击鼠标右键,选择“QuickWatch”,

CCS将打开QuickWatch窗口并显示选中的变量。

(3)在volume.c中,选中变量num,单击鼠标右键,选择“AddtoWatchWindow”,CCS将

把变量添加到观察窗口并显示选中的变量值。

(4)在观察窗口中双击变量,则弹出修改变量窗口。

此时,可以在这个窗口中改变变量的值。

(5)把str变量加到观察窗口中,点击变量左边的”+”,观察窗口可以展开结构变量,并且显示结

构变量的每个元素的值。

(6)把str变量加到观察窗口中;执行程序进入write_buffer函数,此时num变量超出了作用

范围,可以利用CallStack窗口察看在其他函数中的变量:

①选择菜单View􀃆CallStack打开堆栈窗口。

②双击堆栈窗口的main()选项,此时可以察看num变量的值。

8.文件输入/输出

下面介绍如何从PC机上加载数据到DSP上。

用于利用已知的数据流测试算法。

在完成下面的操作以前,先介绍CodeComposerStudio的Probe(探针)断点,这种断点

允许用户在指定位置提取/注入数据。

Probe断点可以设置在程序的任何位置,.当程序运行到Probe断点时,与Probe断点相关的事件将会被触发,当事件结束后,程序会继续执行。

在这一节里,Probe断点触发的事件是:

从PC机存储的数据文件中的一段数据加载到DSP的缓冲区中。

(1)在真实的系统中,read_signals函数用于读取A/D模块的数据并放到DSP缓冲区中。

这里,代替A/D模块完成这个工作的是Probe断点。

当执行到函数read_signals时,Probe

断_______点完成这个工作。

①在程序行read_signals(input);上单击鼠标右键选择“Togglebreakpoint”,设置软件断点。

②再在同一行上单击鼠标右键,选择“ToggleProbePoint”,设置Probe断点。

(2)执行以下操作

图2-1-5设置fileio文件

此时,已经配置好了Probe断点和与之关联的事件.进一步的结果在下面实验中显示。

9.图形功能简介

下面我们使用CCS的图形功能检验上一节的结果。

首先进行下面设置操作:

图2-1-6设置图形显示功能

图2-1-6设置图形显示功能

-在弹出的图形窗口中单击鼠标右键,选择“ClearDisplay”。

-按F12运行程序.观察input窗口的内容。

10.选择菜单File→workspace→saveworkspacsAs…,输入文件名SY.wks。

11.退出CCS。

请参看本书第三部分、第一章、六。

五.实验结果

通过对工程文件“volume”的编译、执行后得到结果的图形显示如下:

图2-1-7结果显示

六.问题与思考

 

实验二:

数据存取实验

一.实验目的

1.了解TMS320F2812A的内部存储器空间的分配及指令寻址方式。

2.了解ICETEK-F2812-A评估板扩展存储器空间寻址方法,及其应用。

3.了解ICETEK-F2812-EDU实验箱扩展存储器空间寻址方法,及其应用。

4.学习用CodeComposerStudio修改、填充DSP内存单元的方法。

5.学习操作TMS32028xx内存空间的指令。

二.实验设备

计算机,ICETEK-F2812-A-EDU实验箱(或ICETEK仿真器+ICETEK-F2812-A评估板+相关连线及电源)。

三.实验原理

TMS32028xxDSP内部存储器资源介绍:

TMS32028xx系列DSP基于增强的哈佛结构,可以通过三组并行总线访问多个存储空间。

它们分别是:

程序地址总线(PAB)、数据读地址总线(DRAB)和数据写地址总线(DWAB)。

由于总线工作是独立的,所以可以同时访问程序和数据空间。

TMS32028xx系列DSP的地址映象请参考ICETEK–F2812-A评估板硬件使用指导部分I-4

页的介绍。

四.实验步骤

1.实验准备

连接实验设备:

请参看本书第三部分、第一章、二。

关闭实验箱上扩展模块和信号源电源开关。

2.设置CodeComposerStudio2.21在硬件仿真(Emulator)方式下运行

请参看本书第三部分、第一章、四、2。

3.启动CodeComposerStudio2.21

请参看本书第三部分、第一章、五、2。

选择菜单Debug→ResetCPU。

4.打开工程文件

工程文件为:

:

\ICETEK-F2812-A-EDUlab\DSP281x_examples\Lab0201-Memory\Memory.pjt

5.编译、下载程序。

6.程序区的观察和修改

(1)运行到main函数入口:

选择菜单Debug->GoMain,当程序运行并停止在main函数入口

时,展开“Disassembly”反汇编窗口,发现main函数入口地址为81000H,也就是说从

此地址开始存放主函数的程序代码。

(2)显示程序区:

(3)修改程序区的存储单元

程序区单元的内容由CCS的下载功能填充,但也能用手动方式修改;双击“Code”

窗口地址“0x81000:

”后的第一个数,显示“EditMemory”窗口,在“Data”中输入0x20,

修改page:

为program,单击“Done”按钮,观察“Code”窗口中相应地址的数据被修改,

同时在反汇编窗口中的反汇编语句也发生了变化,当前语句被改成了“TRAP#0”。

将地

址0x81000上的数据改回0xfe08,程序又恢复成原样。

(4)观察修改数据区

①显示数据存储区:

图2-5-1显示数据存储器

同样请打开窗口Data1,起始地址在0x80100。

②修改数据单元:

数据单元可以单个进行修改,只需双击想要改变的数据单元即可,如同

第(3)步中修改程序区单元的操作相同。

③填充数据单元:

图2-5-2观察DATA数据

观察“Data”窗口中的变化。

请同样将0x80100开始的头16个单元的值用0填充。

7.运行程序观察结果

(1)打开Memory.c,在有注释的行上加软件断点。

(2)按“F5”键运行到各断点,注意观察窗口“Data”和“Data1”中的变化,体会用程序修

改数据区语句的方法。

8.退出CCS

请参看本书第三部分、第一章、六。

五.实验结果

实验程序运行之后,位于数据区地址80000H开始的16个单元的数值被复制到了数据区

80100H开始的16个单元中。

*通过改写内存单元的方式,我们可以手工设置DSP的一些状态位,从而改变DSP工作

的状态。

六.问题与思考

 

实验三:

I/O端口实验、定时器实验

一.实验目的

1.通过实验熟悉F2812A的定时器;

2.掌握F2812A定时器的控制方法;

3.掌握F2812A的中断结构和对中断的处理流程;

4.学会C语言中断程序设计,以及运用中断程序控制程序流程。

二.实验设备

计算机,ICETEK-F2812-EDU实验箱(或ICETEK仿真器+ICETEK-F2812-A系统板+相关连

线及电源)。

三.实验原理

1.通用定时器介绍及其控制方法(详见spru078a.pdf)

TMS320F2812A内部有三个32位通用定时器(TIMER0/1/2),定时器1和2被保留给

实时操作系统(DSPBIOS)用,只有定时器0可以提供给用户使用。

2.中断响应过程(详见spru078a.pdf)

a.接受中断请求。

必须由软件中断(从程序代码)或硬件中断(从一个引脚或一个基于

芯片的设备)提出请求去暂停当前主程序的执行。

b.响应中断。

必须能够响应中断请求。

如果中断是可屏蔽的,则必须满足一定的条件,

按照一定的顺序去执行。

而对于非可屏蔽中断和软件中断,会立即作出响应。

c.准备执行中断服务程序并保存寄存器的值。

d.执行中断服务子程序。

调用相应得中断服务程序ISR,进入预先规定的向量地址,并

且执行已写好的ISR。

3.中断类别

可屏蔽中断:

这些中断可以用软件加以屏蔽或解除屏蔽。

不可屏蔽中断:

这些中断不能够被屏蔽,将立即响应该类中断并转入相应的子程序去执

行。

所有软件调用的中断都属于该类中断。

4.中断的优先级

如果多个中断被同时激发,将按照他们的中断优先级来提供服务。

中断优先级是芯片内

部已定义好的,不可修改。

4.实验程序流程图

5.实验程序分析

本实验设计的程序是在上实验3.1基础上修改得来,由于实验3.1控制指示灯闪烁的延时

控制是用循环计算方法得到的,延时不精确也不均匀,采用中断方式可以实现指示灯的定时闪烁,时间更加准确。

四.实验步骤

1.实验准备

连接实验设备:

请参看本书第三部分、第一章、二。

关闭实验箱上扩展模块和信号源电源开关。

2.设置CodeComposerStudio2.21在硬件仿真(Emulator)方式下运行

请参看本书第三部分、第一章、四、2。

3.启动CodeComposerStudio2.21

请参看本书第三部分、第一章、五、2。

选择菜单Debug→ResetCPU。

4.打开工程文件

打开菜单“Project”的“Open”项;选择

C:

\ICETEK-F2812-A-EDUlab\DSP281x_examples\Lab0303-Timer目录中的“Timer.pjt”。

在项目浏览器中,双击time.c,激活time.c文件,浏览该文件的内容,理解各语句作

用。

5.编译、下载程序。

6.运行程序,观察结果。

7.改变“CpuTimer0Regs.PRD.all=0xffff;”函数里的值;重复步骤5,6观察实验现象。

8.退出CCS

请参看本书第三部分、第一章、六。

五.实验结果

-指示灯在定时器的定时中断中按照设计定时闪烁。

-使用定时器和中断服务程序可以完成许多需要定时完成的任务,比如DSP定时启动A/D转

换,日常生活中的计时器计数、空调的定时启动和关闭等。

-在调试程序时,有时需要指示程序工作的状态,可以利用指示灯的闪烁来达到,指示灯灵

活的闪烁方式可表达多种状态信息。

六.问题与思考

 

实验四:

数/模转换和数/模转换实验

(一)单路,多路模数转换(AD)

一.实验目的

1.通过实验熟悉F2812A的定时器。

2.掌握F2812A片内AD的控制方法。

二.实验设备

计算机,ICETEK-F2812-EDU实验箱(或ICETEK仿真器+ICETEK-F2812-A系统板+相关连

线及电源)。

三.实验原理

1.TMS320F2812A芯片自带模数转换模块特性

-12位模数转换模块ADC,快速转换时间运行在25mhz,ADC时钟或12.5MSPS。

-16个模拟输入通道(AIN0—AIN15)。

-内置双采样-保持器

-采样幅度:

0-3v,切记输入ad的信号不要超过这个范围,否则会烧坏2812芯片的。

2.模数模块介绍

ADC模块有16个通道,可配置为两个独立的8通道模块以方便为事件管理器A和B

服务。

两个独立的8通道模块可以级连组成16通道模块。

虽然有多个输入通道和两个序列

器,但在ADC内部只有一个转换器,同一时刻只有1路ad进行转换数据。

3.模数转换的程序控制

模数转换相对于计算机来说是一个较为缓慢的过程。

一般采用中断方式启动转换或保存

结果,这样在CPU忙于其他工作时可以少占用处理时间。

设计转换程序应首先考虑处理过

程如何与模数转换的时间相匹配,根据实际需要选择适当的触发转换的手段,也要能及时地

保存结果。

关于TMS320F2812ADSP芯片内的A/D转换器的详细结构和控制方法,请参见文档

spru060a.pdf。

4.实验程序流程图

四.实验步骤

1.实验准备

(1)连接实验设备:

请参看本书第三部分、第一章、二。

(2)准备信号源进行AD输入。

①取出2根实验箱附带的信号线(如右图,两端均为单声道语音插头)。

②用1根信号线连接实验箱底板上信号源I模块(图2-10-1中单实线框

中部分)的“波形输出”插座(图2-10-1中的3或4)和“A/D输入”模块(图2-10-1中虚

线框中部分)的“ADCIN0”插座(图2-10-1中的A),注意插头要插牢、到底。

这样,信

号源I的输出波形即可送到ICETEK-F2812-A评估板的AD输入通道0。

③用1根信号线连接实验箱底板上信号源

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2