DSP技术与应用实验报告.docx
《DSP技术与应用实验报告.docx》由会员分享,可在线阅读,更多相关《DSP技术与应用实验报告.docx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、DSP实验报告姓 名: 年 级: 专 业: 学 号: 任课教师: 目 录实验一、CCS入门实验实验二、编写一个以C语言为基础的DSP程序实验三、异步串口通信实验四、A/D及D/A转换实验五、PID算法控制实验实验六、快速傅里叶变换(FFT)算法实验一、CCS入门实验实验课程: DSP实验 实验题目: CCS入门实验 实验日期: 2013年 12 月 3 日 姓名: 学号: Project/new;输入:volume,按Finish;Project/add files to project;查找范围:C:CCStudio_v3.3tutorialdsk2812volume1;文件类型:all f
2、iles;分别添加:Volume.c、Load.asm、Vectors.asm、Volume.cmd;在C:CCStudio_v3.3C2000cgtoolslib中添加:rts2800_ml.lib;将C:CCStudio_v3.3tutorialdsk2812volume1 volume.h复制到:C:CCStudio_v3.3C2000cgtoolsinclude文件夹中;Project/rebuild all;File/load program;打开C:CCStudio_v3.3MyProjectsvolumeDebugvolume.out;鼠标双击:volume.c,找到dataIO
3、(),右击,运行toggle software breakpoint;File/data,查找范围:C:CCStudio_v3.3tutorialdsk2812volume1;文件类型:all files,打开:sina.dat,输入:0x8000、0x2000;View/memory,0x8000;View/graph/timefrequency;如下图波形:频谱 实验二、编写一个以C语言为基础的DSP程序实验课程: DSP实验 实验题目: 编写一个以C语言为基础的DSP程序 实验日期: 2013年 12 月 3 日 姓名: 学号: 一实验目的 1学习用标准C语言编制程序;了解常用的C语言程
4、序设计方法和组成部分。 2学习编制连接命令文件,并用来控制代码的连接。 3学会建立和改变map文件,以及利用它观察DSP内存使用情况的方法。 4熟悉使用软件仿真方式调试程序。 二实验原理 1 标准C语言程序 CCS支持使用标准C语言开发DSP应用程序。当使用标准C语言编制的程序时,其源 程序文件名的后缀应为.c(如:volume.c)。 CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目 标DSP的可执行代码。最后生成的是coff格式的可下载到DSP中运行的文件,其文件名后 缀为.out。 由于使用C语言编制程序,其中调用的标准C的库函数由专门的库提供,在编译连接时
5、 编译系统还负责构建C运行环境。所以用户工程中需要注明使用C的支持库。 2 命令文件的作用 命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP硬件中的位置分配 信息。通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP 所管理的内存中。命令文件也为链接程序提供了DSP外扩存储器的描述。在程序中使用CMD 文件描述硬件存储区,可以只说明使用部分,但只要是说明的,必须和硬件匹配,也就是只 要说明的存储区必须是存在的和可用的。 3 内存映射(map)文件的作用 一般地,我们设计、开发的DSP程序在调试好后,要固化到系统的ROM中。为了更 精确地使用ROM空间,我
6、们就需要知道程序的大小和位置,通过建立目标程序的map文件可以了解DSP代码的确切信息。当需要更改程序和数据的大小和位置时,就要适当修改cmd文件和源程序,再重新生成map文件来观察结果。另外,通过观察map文件,可以掌握DSP存储器的使用和利用情况,以便进行存储器方面的优化工作。4程序设计要求程序框图(图2-1):三实验设备 PC兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装Code Composer Studio 2.0软件。四实验内容与步骤1实验准备 设置软件仿真模式,参看:本书第一部分、四、1。2建立新的
7、工程文件 (1)启动 Code Composer Studio 2.21。 (2)进行以下设置3编辑输入源程序 (1)C语言程序 -先新建源程序窗口: -输入源程序:int x,y,z;main()x=1; y=2;while ( 1 )z=x+y;-保存源程序为CProgram.c:(2)连接命令文件-如同第(1)步操作,建立空的源程序窗口。-输入连接命令文件内容:-lrts55x.libMEMORYDARAM:O=0x100,l=0x7f00DARAM2:O=0x8000,l=0x8000SECTIONS .text:DARAM .bss:DARAM .stack:DARAM .cinit
8、:DARAM -如同第(1)步操作,将文件存为:C:ICETEK-F2812-A-EDUlabDSP281x_examplesLab0102-CProgram CProgram.cmd(3)将上述编译的源程序加入工程 CProgram.pjt。5编译源文件、下载可执行程序(1)单击菜单“Project”、“Rebuild All”。(2)执行 FileLoad Program,在随后打开的对话框中选择刚刚建立的C:ICETEK-F2812-EDULabLab0102-CProgramdebugCProgram.out 文件。完成后,系统自动打开一个反汇编窗口“Disassembly”,并在其中
9、指示程序的入口地址为“_c_int00”。6打开观察窗口开启 CPU 寄存器观察窗口:单击菜单 View-Registers-Core。7观察程序运行结果这时,在“Disassembly”代表程序运行位置的绿色箭头指向程序的入口地址,程序将从此开始执行。(1)选择菜单中 Debug-Go Main,CCS 自动打开 CProgram.c,程序会停在用户主程序入口 main 上,这从反汇编窗口和 CProgram.c 窗口中的指示箭头位置可以看出。(2)在内存观察窗口中观察变量的值:选择“View”菜单中“Memory”项,在“Memroy Window Options”窗口中的“Adress”
10、项中输入&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”栏
11、中的取值,并修改成 0;选择菜单Debug-Restart,返回程序起点。(7)重新单步运行程序8内存映像文件(1)选择菜单 Project-Build Options,启动“Build Options”工程设置对话框。(2)单击“Linker”属性页,在“Map Filename”项中观察生成的 map 文件名和路径。(3)单击“取消”退出。9对照观察 map 文件和 cmd 文件的内容(1)选择菜单 File-Open,将找到C:ICETEK-F2812-A-EDUlabDSP281x_examplesLab0102-CProgram Debug 目录,将文件类型改为“Memory Map
12、 Files”,选择 CProgram.map 文件、打开。打开 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 函数中
13、后,变量 x、y、z 均开设在栈中。-还能看出程序运行都需要调用 rts2800.lib 中的哪些模块。10改变内存分配修改 cmd 文件中的PAGE 0 : PROG(R) : origin = 0x3E8000, length = 0x10000 改为PAGE 0 : PROG(R) : origin = 0x3E9000, length = 0x10000 重新编译工程,观察 map 文件中有何变化。11退出 CCS 实验三、异步串口通信实验课程: DSP实验 实验题目: 异步串口通信 实验日期: 2013年 12 月 12 日 姓名: 学号: 一、实验目的1、熟悉2812 内部具有两个
14、相同的 SCI 模块,SCIA 和 SCIB。2、通过学习串口通讯实验,理解DSP的传口与PC之间是怎样进行交互的。5、学会C语言中断程序设计,以及运用中断程序控制程序流程。二、实验要求1、做到独立建立CCS开发环境2、以使用DSP内部的事件管理器为例,学会编译程序调试、仿真、下载程序;三、实验设备计算机,串行通信数据线、DSP2812实验箱(包括USB仿真器+2812系统板+相关连线及电源)。四、实验原理、方法1、SCI模块2812 内部具有两个相同的 SCI 模块,SCIA 和 SCIB,每一个 SCI 模块都各有一个接收器和发送器。SCI的接收器和发送器各具有一个16 级深度的FIFO(
15、First in fist out 先入先出)队列,它们还都有自己独立的使能位和中断位,可以在半双工通信中进行独立的操作,或者在全双工通信中同时进行操作。根据信息的传送方向,串行通信可以分为单工、半双工和全双工三种,其各自的定义如下图所示。图1 串行通信的三种方式首先,我们从图2可以看到,SCI 模块具有两个引脚,SCITXDA和 SCIRXDA,分别实现发送数据和接收数据的功能,这两个引脚对应于 GPIOF 模块的第 4 和第 5 位,在编程初始化的时候,需要将 GPIOFMUX 寄存器的第 4和第 5位置为1,才能使得这两个引脚具有发送和接收的功能,否则就是普通的I/O 引脚。 外部晶振通
16、过 PLL 模块产生了 CPU 的系统时钟 SYSCLKOUT,然后 SYSCLKOUT 经过低速预定标器之后输出低速时钟LSPCLK供给SCI。要保证 SCI 的正常运行,系统控制模块下必须使能 SCI 的时钟,也就是在系统初始化函数中需要将外设时钟控制寄存器PCLKCR的SCIAENCLK位置1。 从图 2,我们可以清楚的看到 SCIA 可以产生两个中断,SCIRXINTA 和 SCITXINTA,即发送中断和接收中断。 图2 SCIA的CPU接口SCI模块的其他一些特点见下面的表格:2、SCI模块发送和接受数据的原理SCI模块的工作原理如图3所示,之所以 SCI能工作于全双工模式,是因为
17、它有独立的数据发送器和数据接收器,这样能够保证SCI既能够同时进行,也能够独立进行发送和接收的操作。 SCI 发送数据的过程如下:如图 3 右半部分所示,在FIFO 功能使能的情况下,首先,发送数据缓冲寄存器 SCITXBUF 从 TX FIFO中获取由CPU 加载的需要发送的数据,然后 SCITXBUF 将数据传输给发送移位寄存器 TXSHF,如果 SCI的发送功能使能,TXSHF则将接收到的数据逐位逐位的移到SCITXD引脚上。 SCI 接收数据的过程如下:如图 3 的左半部分所示,首先,接收移位寄存器 RXSHF 逐位逐位的接收来自于 SCIRXD 引脚的数据,如果 SCI 的接收功能使
18、能,RXSHF 将这些数据传输给接收缓冲寄存器 SCIRXBUF,CPU就能从 SCIRXBUF读取外部发送来的数据。当然,如果FIFO功能使能的话,SCIRXBUF会将数据加载到RX FIFO的队列中,CPU再从 FIFO的队列读取数据。3、SCI的数据格式在 SCI中,通信协议体现在SCI的数据格式上。通常将 SCI的数据格式称之为可编程的数据格式,原因就是可以通过 SCI 的通信控制寄存器 SCICCR 来进行设置,规定通信过程中所使用的数据格式。SCI 使用的是 NRZ的数据格式,NRZ数据格式包括了如下表所示的内容:序号内容11 个起始位218 个数据位31 个奇/偶/非极性位412
19、 个结束位5在地址位模式下,有1个用于区别数据或者地址的特殊位(仅用于多处理器通信)从上面的表中我们可以看到,真正的数据内容是18 位,1个字符的长度。我们通常将带有格式信息的每一个数据字符叫做一帧,在通信中常常是以帧为单位的。前面已经介绍过,SCI 有空闲线模式和地址位模式,而在平常使用的时候,我们一般都是两个处理器之间的通信,例如2812和 PC 机或者2812和 2812之间通信,这时候,我们更适合使用空闲线模式,而地址位模式一般用于多处理器之间的通信。在空闲线模式下,SCI发送或者接收一帧的数据格式如图4所示,其中 LSB是数据的最低位,MSB 是数据的最高位。具体的定义如图 4 所示
20、的这些数据格式的寄存器是通信控制寄存器 SCICCR,其内容如图 5 所示。使用 SCICCR 进行数据格式编程如表2所示。4、SCI的波特率前面我们知道了 SCI 在通信时采用的数据格式的问题,那么 SCI 是以什么样的速度去发送这些数据的呢?这个速度就是由波特率来决定的。所谓的波特率就是指每秒所能发送的位数。2812 的每个 SCI都具有两个 8 位的波特率寄存器,SCIHBAUD 和 SCILBAUD,通过编程,可以实现达到 64K 不同的速率。波特率的计算公式如下所示:其中 BRR=波特率选择寄存器中的值,从十进制转换成十六进制后,高8 位赋值给 SCIHBAUD,低 8位赋值给 SC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 技术 应用 实验 报告
限制150内