DSP实验指导书 - 图文

更新时间:2023-10-10 11:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

DSP原理及应用

实验指导书

电气与电子工程学院

目录

系统概述……………………………………………………………….. CCS的安装…………………………………………………………… 实验一 CCS入门实验………………………………………………... 实验二 乘累加算法实验……………………………………………… 实验三 混合编程实验 实验四 SDRAM读写实验 实验五 FLASH读写实验 实验六 QDMA读写实验 实验七 定时器实验 实验八 PLL锁相环实验

系统概述

SEED-DTK(DSP Teaching Kit)是一套可以满足大学本科、研究生和教师科研工作的综合实验设备。其以独特的多DSP 结构、强大的DSP主板功能、丰富的外围实验电路、精心设计的实验程序、精湛的产品工艺形成的高性能产品。

在这里主要介绍的是SEED-DTK6713实验箱,它由SEED-DEC6713 板卡以及SEED-DTK_MBoard构成;其中主控板是SEED-DEC6713,母板是SEED-DTK_MBoard 板卡。此外,该款实验箱还可配置DSK板卡、图像处理卡等多种子卡。

SEED-DTK6713 实验箱实验例程 ? SSED_DEC6713 板卡实验例程

1.CCS 软件应用实验

介绍 CCS 的使用,编写简单的实验例程。 2.DSP 片上资源应用实验

本部分例程介绍的是 DSP 的片上资源。 3.SSED_DEC6713 板卡应用实验

SSED_DEC6713 板卡与实验箱资源的应用实验。包括:异步、同步串口通讯;扩展 I/O 口使用;AD/DA 的使用。

4.算法实验

包括FFT,滤波(FIR、IIR),卷积,自适应滤波器算法实验。 5.语音算法实验

包括回声,混响,语音滤波等实验 。 6.参考实验

包括USB使用实验、自举程序的编写以及 SEED-DEC6713 板卡与SEED-DTK_MBoard板卡之间数据传递实验。 ? 母板实验例程

1.DSP5402片上资源应用实验

本部分例程主要是DSP片上资源的使用介绍。 2.实验箱外设实验

实验箱母板资源的应用实验。包括:键盘、液晶、信号源的使用。 ? 其他板卡实验程序

该部分程序将根据实验箱的具体配置提供。

SEED-DTK6713的原理框图如下:

实验箱整体配置

? SEED-DTK6713 实验箱由以下几部分构成:

1.SEED-DEC6713 实验箱 DSP 基本系统

2.高性能的 32-位浮点 DSP(TMS320C6713):主频可达 300MHz,处理性能高达 2400MIPS

3.SDRAM:2M×32-位(可扩展至 4M×32位) 4.Flash:256K×16-位(可扩展至 1M×16位)

5.提供看门狗电路、电源监视、上电复位、手动复位 6.2路编程可选的RS232/RS422/RS485 7.AC97标准的Audio音频接口 8.2路 McASP

? SEED-Mboard 实验箱人机接口模块:

1.处理器为 TMS320C5402 DSP 2.SRAM:64K×16-位(可扩展至 256K×16 位) 3.Flash:256K×16-位(用于存放二级标准汉字库及驻留实验程序) 4.提供手动复位 5.1路RS232 接口

6.4路12位10μS 建立时间±10V 输出 D/A 7.17键薄膜键盘

8.240*128 大屏幕液晶显示 9.交通登演示模块

以上只介绍实验箱所用到资源,如想使用其他资源请参考各个模块的用户手册。

实验箱特点

? 模块化的产品结构: SEED-DEC6713

实验箱的DSP基本系统

可替换其它系列的DSP SEED-DECxxxx 产品 SEED-Mboard

人机接口模块、处理器为TMS320C5402 DSP SEED-DTK_PWMDRV

电机驱动模块 ? 实验箱特点:

1.独具匠心设计的双DSP结构,可以完成DSP 间的通讯实验 2.各模块丰富的资源,最大化满足实验要求 3.全数字化实验过程,包括高精度信号发生器 4.丰富多彩的实验,可以满足多种专业的教学要求 5.内容详实的实验手册和实验报告 6.公开的底层函数,提供实验可扩展性

7.精湛的产品设计和加工工艺,体现出的专业产品制造 实验箱功能实现

? 实验箱中 SEED-DEC6713工作状态如下:

1.Boot 模式:采用CE1 8位宽度的外部 FLASH(缺省状态);JP10、JP9皆为短路。 2.串口通讯:采用的是A通道异步串行接口,RS232全双工方式;JP4 短路, JP3短路。 3.音频输出:立体声输出左、右声道耳机驱动输出;JP1、JP2的2-3短路。 4.边沿模式:小端模式(缺省状态);JP11开路 ? 实验箱中SEED-Mboard模块工作状态如下:

1.工作方式的选择

SEED-Mboard 的工作模式为 MC工作方式。 2.BOOT 模式

当 SEED-Mboard处于MC工作方式时,只能用 FLASH 引导方式,既程序存放在FLASH中,上电或复位后,DSP将FLASH中的程序 BOOTLOAD到SRAM 中,程序在 SRAM中运行。

3.工作频率

使用10MHz外部频率输入;当复位后,PLL 硬件初始化设置为 5 倍频。其芯片管脚 CLKMD3~CLKMD1 设置为 010;便于 DSP 读取 FLASH的程序。系统工作正常后,可通过设置 CPU的寄存器 CLKMD,将 PLL 设为需要的倍频数。

4.串口通讯

MCBSP0用于 UART 通讯,因 MCBSP 是一种同步串口,而 UART 是一种异步串口,所以 VC5402没有直接和 UART 通讯的片内外设,只有通过软件方式,用 MCBSP和 DMA 来完成 UART 通讯功能,在硬件电路上,BDX0 作为数据发送端,BDR0 和BFSR0作为数据接收端。

5.增强型 HPI口

SEED-Mboard 使用 HPI 口作为 GPIO 口,用做键盘扫描,HPI 口的 HD0-HD3,XF 做输出,工作时置为 0,而 HD4-HD7,BIO 做输入,工作时接上拉电阻,实现键盘操作。

CCS的安装

本实验箱中主要使用SEED_DEC6713板卡,其处理器为TI的TMS320VC6713,因 此在这介绍CCS6000的安装与使用。

CCS 安装

安装 C6000 系列 2.0以上的 CCS 软件,步骤如下: 第一步:双击 Code Composer Studio 图标;

第二步:按照光标依次执行;

第三步:

第四步:

第五步:

第六步:默认路径为 c:\\ti;

第七步:

第八步:

第九步:

第十步:可以安装 Adobe Acrobat Reader 用来阅读 PDF 文件;

第十一步:重启动计算机,选择 YES;

第十二步:点击 exit,退出Code Composer Stdio安装;

模拟仿真的设置

1.双击

图标进入CCS 环境。点击“Clear”按钮,原有的设备驱动程序配置;

2.做如下设置;

3.点击“Import”按钮导入,保存退出后进入CCS界面,就可以进行仿真实验了。

硬件仿真器的安装

硬件仿真器款式很多,如 PP 系列、USB 系列、PCI 系列等等,不同的系列仿真器的安装也不尽相同,在此我们将介绍常用的 USB 系列,其他系列的安装是类似的,具体请参见硬件仿真器所配的光盘内容。下面介绍一下 SEED-XDSUSB2.0仿真器的安装。

? SEED-XDSUSB2.0 的驱动安装

1.将 USB 仿真器的 USB 插头插入 PC 机的 USB 插槽中,启动计算机后识别SEED-XDSUSB2.0硬件,识别后安装其驱动程序。双击\\Utilities\\C6000\\SEED-XDSUSB2.0 \\USBdriver\\Disk1下的setup.exe文件;(此文件是仿真器所配的光盘的内容)

2.按照提示依次执行,同时默认路径为 CCS 的安装路径;

3.安装完毕后打开控制面板查看系统中的设备管理器,出现如下结果,证明硬件连接 成功,否则需检查硬件是否连接正确和 USB 驱动安装是否安装正确;

4. 将仿真器JTAG插头与实验箱主控板 SEED-DEC6713 的 JTAG 插头 J1 相连,打开实验箱电源开关。观察 SEED-DTK_MBoard 单元的+5V、+3.3V、+15V、-15V 的电源指示灯以及SEED-DEC6713的D2与D4的电源指示灯是否均亮;若有不亮的,请断开电源,检查电源;

5.将\%utilites\\C6000\\SEED-XDSUSB2.0\\USBdriver\\下的 usb20emurst.exe 文件拷贝到计算机上,双击 usb20emurst.exe,如果出现如下提示,证明仿真器与目标系统连接正常。

? 驱动程序的配置

如果已经进行过配置,则不需要再进行配置了。 1.双击桌面上的 Setup CCS 2(6000)。“Clear”原有的设备驱动程序配置;

根据 DSP 的型号选择相应的 TI 原装驱动程序,根据 DSP 的型号选择相应的TI 驱

动程序,本实验箱采用 SEED-DEC6713,故选择 C671x XDS510 Emulator。

2.单击Import a Configuration File;

3. 进入下图所示界面,选择C671x XDS510 Emulator后,单击 Import 后,点击Close 命令;

4. 点中C671x XDS510 Emulator驱动后, 鼠标右键, 在弹出的菜单中点击Properties;

5.在弹出的对话框中点击▼,添加 Auto_ generate board data file with extra Configure;

6.点击 Browse,弹出一个对话框;

7.在上一步操作中弹出的对话框中,选中 CCS 中 drivers 目录下的 seedusb2.cfg文

件,同时打开;

8.点击图标 next;

9.I/O Port为 0x240,点击图标 Next;

10.根据系统 CPU的个数选择 Add Single 的相应次数,然后点击 next;

11.点击图标 Finish;

12.关掉CCS setup,保存设置; 13.启动CCS,出现CCS 调试界面。

实验一 CCS入门实验

一、实验目的:

1.熟悉 CCS 集成开发环境,掌握工程的生成方法; 2.熟悉 SEED-DEC6713 实验环境; 3.掌握 CCS 集成开发环境的调试方法。 二、实验内容:

1.DSP 源文件的建立; 2.DSP 程序工程文件的建立; 3.学习使用 CCS 集成开发工具的调试工具。 三、实验背景知识: ? CCS简介

CCS(Code Composer Studio)是TI公司为DSP推出的集成软件开发环境(IDE),是DSP领域第一个完整的、开放型的集成开发环境,CCS功能强大,提供了配置、建立、调试、跟踪和分析的工具,包括了应用程序开发所必需的功能,便于对实时信号处理程序的编制和测试,能够加速开发进程,提高工作效率。

CCS的构成及接口见下图所示:

CCS窗口及功能介绍如下图所示:

CCS直观、易用,具有实时分析、观察DSP的信息等功能。在CCS里,能对数据进行图形化可视分析,有多种专业的画图工具,可以对信号做时域/频域的分析、做快速傅立叶(FFT)变换等,如下图所示:

? CCS常用功能如下

1.设置断点

将光标放置在需要设置断点的程序行前,单击Debug→Breakpoints,或单击工具栏按钮,即可完成一个断点的设置。单击工具栏按钮2.CCS提供了如下3种方法对CPU进行复位

(1) Reset DSP:单击Debug →Reset CPU,初始化所有的寄存器内容并暂停运行中的程序。使用此命令后,要重新装载.out 文件后,再执行程序。

(2) Restart:单击Debug → Restart ,将PC 值恢复到当前载入程序的入口地址。 (3) Go main:单击Debug →Go main,将程序运行到主程序的入口处暂停。 3.CCS提供了4种方法来执行程序

(1) 连续执行:单击Debug →Run ,程序运行,直到遇到断点为止。 (2) 暂停执行:单击Debug →Halt ,程序停止运行。

(3) 动画执行:单击Debug →Animate,用户反复运行程序,直到遇到断点为止。 (4) 自由执行:单击Debug →Run Free ,禁止所有断点运行程序。 4.CCS 提供了4种单步执行操作

(1) 单步进入:快捷键F8,Debug →Step Into,当调试语句不是基本的汇编指令时,此操作进入语句内部。

(2) 单步执行:点击Debug → Step Over,此命令将函数或子函数当作一条语句执行,不进入内部调试。

(3) 单步跳出:点击Debug →Step Out,此命令为从子程序中跳出。

(4) 执行到光标处:快捷键Crtl+F10,单击Debug → Run to Cursor,此命令作用为将程序运行到光标处

5.查看内存与变量

(1) 查看变量:使用View →Watch Window 命令。

(2) 查看寄存器:使用View →Registers →CPU Registers 命令。 (3) 查看内存:使用View →Memory 命令。 6.显示图形

(1) 打开工程文件tutorial\\volume1\\volume.pjt,在Project View窗口中,双击volume.c文件,将光标置于主函数中的dataIO( )这一行上,点击工具栏按钮Toggle Probe Point,插入探测点。

(2) 选择File→File I/O,在File I/O 对话窗中可选择输入和输出文件。在File Input 栏中,单击Add File,选择sine.dat文件。

注意:在文件类型框中可以选择数据格式,sine.dat文件包含正弦波形的十六进制值。 (3) 单击Open,将该文件添加到File I/O对话框的列表上,接着出现sine.dat文件控制窗口。在运行程序时,可用这个窗口开始、停止、重复、或快速前进来控制数据文件。

(4) 在File I/O对话框中,将Address修改为inp_buffer,Length修改为100,选中Wrap Around。

(5) 单击Add Probe Point,Break\\Probe\\Profile Points 对话窗的Probe Point栏就会出现。单击Connect栏尾处的下箭头,在其下拉菜单中选择sine.dat文件,单击Replace。 Probe Point列表将显示探测点已连接到sine.dat 文件,如下图所示。在File I/O对话框,单击“确定”按钮。

,可清除所有的断点。

File I/O对话框

(6) 选择View →Graph →Time/Frequency。在弹出的Graph Property Dialog 对话窗中, 将 Graph Title,Start Address,Acquisition Buffer Size,Display Data Size,DSP Data Type 等的属性可改变为如下图所示(也可根据具体需要设置属性)。向下滚动右侧的滚动条或调整对话框的大小可看到所有的属性。

图形显示属性对话框

(7) 单击OK按钮,将出现所设的图形窗口,如下图所示。可以在图形上右击,选择Float In Main Table,这时图形将浮现在主窗口中,以便观察。

正弦曲线图形窗口

四、实验程序,包含文件: 五、实验准备

1.将 DSP 仿真器与计算机连接好;

2.将 DSP 仿真器的 JTAG插头与 SEED-DEC6713 单元的 J2 相连接;

3.启动计算机,当计算机启动后,打开 SEED-DTK6713 的电源。观察SEED-DTK_MBoard 单元的+5V,+3.3V,+15V,-15V 的电源指示灯灯以及SEED-DEC6713 的电源指示灯 D1、D3 是否均亮;若有不亮的,请断开电源,检查电源。

下面按照原文件、工程文件以及编译条件的设置来分别介绍一下 CCS 的使用。 六、实验步骤 ? 创建源文件

1.双击

图标进入CCS 环境。

2.打开 CCS 选择 File →New →Source File 命令

3.编写源代码并保存

4.保存源程序名为 math.c,选择 File →Save

5.创建其他源程序(如.cmd)可重复上述步骤。 ? 创建工程文件

1. 打开 CCS,点击 Project-->New,创建一个新工程,其中工程名及路径可任意指定

弹出如下对话框:

2.在 Project 中填入工程名,Location 中输入工程路径;其余按照默认选项,点击完成即可完成工程创建;

3.点击 Project 选择 add files to project,添加工程所需文件;

4.在弹出的对话框中的下拉菜单中分别选择.c 点击打开,即可添加源程序 math.c 添 加到工程中;

5.同样的方法可以添加文件 math.cmd、rts.lib 到工程中;在下面窗口中可以看到math.c、math.cmd、rts.lib 文件已经加到工程文件中。

? 设置编译与连接选项

1.点击 Project 选择 Build Opitions;

2.在弹出的对话框中设置相应的编译参数,一般情况下,按默认值就可以;

3.在弹出的对话框中选择连接的参数设置,设置输出文件名(可执行文件与空间分配 文件) ,堆栈的大小以及初始化的方式。

? 工程编译与调试

1.点击 Project →Build all,对工程进行编译,如正确则生成 out 文件;若是修改程序,可以使用 Project →Build命令,进行编译连接,它只对修改部分做编译连接工作。可节省编译与连接的时间。编译通过,生成.out 文件;

这段程序我们可以看出来,将已经得到的相关元素进行相乘并累加,最后将所得到的结果赋值到A4寄存器中,即得到我们所需要的结果。

六、实验步骤: 1.打开乘累加的工程文件,并打开其源代码。

2.打开寄存器观察窗口和数据存储窗口,这里的数据存储窗口我们需要是从0x20000、0x21000、0x22000地址开始的三段存储空间,如下图所示:

3.编译并运行程序,观察相关寄存器值的变化和存储器值的变化情况,如下所示:

实验三 混合编程实验

一、 实验目的:

1.在了解纯 C 语言程序工程和汇编语言程序工程结构的基础上,学习在 C 工程中加入汇编编程的混合编程方法;

2.了解混合编程的注意事项;

3.理解混合编程的必要性和在什么情况下要采用混合编程。 二、实验内容:

1.DSP 源文件的建立; 2.DSP 工程文件的建立;

3.掌握 C语言和汇编语言在 DSP 中混合的应用。 三、实验背景知识:

C语言程序优缺点: ? 优点

易于开发和维护。由于用C 语言书写接近自然语言,其可读性强、利于理解,在 编制、修改、实现算法方面比用汇编语言开发容易。

1.可移植性强。

2.不容易发生流水线冲突。编译器能提供完善的解决流水线冲突的结果。 3.有大量现存的算法可利用。 4.适用于人机界面的开发。 ? 缺点

1.代码量大。 2.程序效率较低。

3.优化代码存在一定困难。

综上所述,我们一般用C 语言设计应用程序的总体框架、解决人机接口和对速度效率要求不太高的复杂算法。 汇编语言程序优缺点: ? 优点

1.更能发挥系统特点。由于汇编语言掌控系统硬件的能力强于C 语言,设计出来的程序更加贴近硬件特性,往往能将硬件效能发挥到极致。

2.代码精练,效率高。用汇编语言设计的程序,代码短、不容易产生冗余。 3.代码量小。 ? 缺点

1.可读性差。不利于复杂算法的开发和实现。 2.可移植性差。

3.容易产生流水线冲突。由于排除冲突需要靠人来辅助完成,这要求编程人员有较为丰富的开发经验和对硬件工作机制的深刻理解。 如何混合编程

1.混合工程: 在工程中可以同时包含C 语言程序和汇编语言程序, 无需更改编译选项。一般地,我们使用C 程序为主,加入汇编语言程序模块。

2.使用模块技术:在应用程序中划分出比较清晰的模块,不同模块可采用不同语言设计。强调效率和速度的模块采用汇编设计。尽量少用汇编语言设计程序。

3.如何找出需要用汇编程序设计的模块:

(1)用C 语言完成设计后,运用CCS 的软件仿真功能,充分测试程序,找到程序 运行中的瓶颈(速度方面的和空间方面的)。

(2)再使用分块仿真技术尽可能缩小模块。

(3)找到的模块单独写成子程序,存入独立的文件中。

(4)由于CCS 编译器能产生C 语言程序到汇编程序的中间文件, 观察需要优化的模块的汇编结果,进行人工优化。

(5)最后运用人工优化后形成的汇编程序模块,代替原来需要优化的C 语言模块,进行编译。

(6)程序中可使用内嵌汇编。比如:asm(“ MOV T1, *SP(#1)”); 编译器可直接使用内嵌的汇编语句生成最终代码。但需要语句中双引号中为合法的汇编语句,比如要以空格开头等等。

何时使用混合编程技术

1.当程序中需要操作与硬件密切相关的设备,而用C 语言较难实现时。比如:在中断

程序设计时需要设置中断向量表,向量表中空间有限用C 语言语句有困难,且需向 量表要在内存中精确定位,这时可将设置中断向量表的部分用汇编语言代替。

2.当需要绕开C 编译器的规定,进行特殊操作时。比如:C 语言规定,程序不能访 问程序代码区,而系统功能需要进行类似访问时可采用限制较小的汇编语言程序设计。

3.当需要提高模块的效率(包括空间上和时间上两方面的),而C 语言程序无法达到要 求时。

使用混合编程时的注意事项

1.在汇编程序中使用其他C 语言模块中定义的变量或函数名称时, 需要在引用的名称前加一下划线。如:C 中定义的变量为x,在汇编中引用时要用_x。

2.汇编语言写的子程序需要符合C 语言的调用规则, 尤其是在默认的辅助寄存器使用上和栈的使用上要求兼容。

3.在汇编语言模块中,需要编程者自己消除流水线冲突。 4.在使用内嵌汇编技术时,需要考虑以下内容:

(1)要非常小心地处理,以免破坏C 语言操作环境。编译器在遇到内嵌汇编语句时,不会对其中的汇编语句进行分析处理。

(2)避免从内嵌汇编语句跳转到C 语言模块中,那将极容易造成寄存器使用上的混乱,从而产生难以预料的结果。

(3)不要在内嵌汇编语句中改变C 语言模块中变量的值,但可以安全地读取它们的值。 (4)在汇编程序中不要使用内嵌汇编。 实验程序解释

实验程序提供了一个使用C 与汇编程序混合编程的实例,是一个用汇编语言模块优化自己编制的应用程序的实例。 首先用户拿到的是一个纯用C 语言开发的工程,再根据假设,需要将其中一个模块改造成用汇编语言模块优化的模块。通过实验过程,用户可充分了解混合编程可以采取的步骤和方法。 四、实验程序,包含文件:

1.Complex.c:实验的主程序; 2.ComProg.sa定点加法汇编程序; 3.DEC6713.gel:系统初始化;

4.link.cmd:声明了系统的存储器配置与程序各段的连接关系。 五、实验准备:

首先将光盘下 03. Examples of Program \\ 04. SEED-DTK6713实验程序目录下的3.1.4 ComplexProg 的文件夹拷贝到 D:盘根目录下。

1.将 DSP 仿真器与计算机连接好;

2.将 DSP 仿真器的 JTAG插头与 SEED-DEC6713 单元的 J2 相连接;

3.打开 SEED-DTK6713 的电源。观察 SEED-DTK_MBoard 单元的+5V,+3.3V,+15V,-15V 的电源指示灯以及 SEED-DEC6713的电源指示灯 D2、D4 是否均亮;若有不亮的,请断开电源,检查电源。 六、实验步骤

1.双击图标进入 CCS 环境; 2.装入 ComplexProg.pjt 工程文件, 添加 DEC6713.gel 文件; 3.装载 ComplexProg.out 文件,进行调试; 4.执行程序,观察结果。

实验四 SDRAM 读写实验

一、实验目的:

1.认识 DEC6713 外部存储器 SDRAM; 2.掌握外部接口EMIF的配置; 3.熟悉 SDRAM 的读取操作。 二、实验内容:

1.系统初始化; 2.外部接口的初始化; 3.SDRAM 的读写操作。 三、实验背景知识: ? SDRAM简介

SEED-DEC6713 模板上用单片 32-位 4-banks 的 SDRAM 来扩展外部大容量同步动态随机存储器,原理框图如下图所示:

由上图可见,SEED-DEC6713 模板上通过 4 个 0? 电阻 R22~R25 来兼容 2 种不同容量的 SDRAM,缺省配置时,SDRAM 的容量为 2M×32-位,此时焊接 R22 和 R24,不焊R23 和 R25;最大配置时,SDRAM 的容量为 4M×32-位,此时焊接 R23 和 R25,不焊 R22和 R24。 ? SDRAM地址分配

SDRAM 被映射到VC6713的CE0存储空间,工作频率为 100MHz,支持 8/16/32-位访问,字节地址为 0x8000 0000~0x80FF FFFF。 ? EMIF 接口 SDRAM 配置

在对 SDRAM 进行读/写访问前, 需通过EMIF的CE0控制寄存器 CE0CTL将CE0

本文来源:https://www.bwwdw.com/article/wo0f.html

Top