当前位置: 首页 > >

DSP实验指导书2

发布时间:

DSP 原理及应用

实 验 指 导 书
佟宁宁 编

黑龙江工程学院电子工程系
2009 年 3 月·哈尔滨

1





实验一 Code Composer Studio 入门 ........................................................................... 错误!未定义书签。 错误!未定义书签。 实验二 指示灯实验................................................................................................................................... 12 实验三 拔码开关控制..................................................................................................................................15 实验四 DSP 的定时器 ................................................................................................ 错误!未定义书签。 错误!未定义书签。

2

实验一 Code Composer Studio 入门

一、 实验目的 1. 掌握 Code Composer Studio 2.21 的安装和配置步骤过程。 2. 了解 DSP 开发系统和计算机系统与目标系统连接的方法。 3. 了解 Code Composer Studio 2.21 软件的操作环境和基本功能,了解
程。 (1) 学*创建工程和管理工程的方法; (2) 了解基本的编译和调试功能; (3) 学*使用观察窗口; (4) 了解图形功能的使用。

TMS320C55x 的软件开发过

二、 实验设备
PC 兼容机一台 ICETEK-VC5509-A-USB-EDU 试验箱一台。 USB 连接电缆一条(如使用 PP 型仿真器换用并口电缆一条) 。

三、 实验原理
开发 TMS320C55xx 应用系统一般需要以下几个调试工具来完成: 软件集成开发环境(了解 Code Composer Studio 2.21) :完成系统的软件开发,进行软件和硬 件仿真调试。它也是硬件调试的辅助手段。 开发系统(ICETEK-5100 –USB 或 ICETEK 5100-PP) :实现硬件仿真调试时与硬件系统的通信, 控制和读取硬件系统的状态和数据。 评估模块(ICETEK-VC5509-A 或 ICETEK-VC5509-C 等) :提供软件运行和调试的*台和用户系统 开发的参照。 Code Composer Studio 2.21 主要完成系统的软件开发和调试。它提供一整套的程序编制、维 护、编译、调试环境,能将汇编语言和 C 语言程序编译连接生成 COFF(公共目标文件)格式的可执 行文件,并能将程序下载到目标 DSP 上运行调试。 用户系统的软件部分可以由 CCS 建立的工程文件进行管理,工程一般包含以下几种文件: 源程序文件:C 语言或汇编语言文件(*.C 或*.ASM) 头文件(*.H) 命令文件(*.CMD) 库文件(*.LIB,*.OBJ)

四、 实验步骤
1. 实验准备 连接实验设备:打开试验箱,取出三相电源连接线(如下图) ,将电源线的一端插入实 验箱外部左侧箱壁上的电源插孔中。确认试验箱面板上电源总开关(位于试验箱底板左上角)处于 “关”的位置,连接电源线的另一端至 220V 交流供电插座上,保证稳固连接。

使用电源连接线(如上图,插头是带孔的)连接各模块电源:确认实验箱总电源断开。连接

3

ICETEK-CTR 板上边插座到实验箱底板上+12V 电源插座:ICETEK-CTR 板下边插座到试验箱底板 上+5V 电源插座;如使用 PP(并口)型仿真器,则连接仿真器上插座到试验箱底板上+5V 电源插 座;连接 DSP 评估板模块电源插座到实验箱底板上+5 电源插座。注意各插头要插到底,防止虚接 或接触不良。 连接 DSP 评估板信号线: 当需要连接信号源输出到 A/D 输入插座时, 使用信号连接线 (如上图) 分别连接相应插座。 接通电源:检查实验箱上 220V 电源插座(箱体左侧)中保险管是否完好,在连接电源线以后, 检查各模块供电连线是否正确连接,打开实验箱上的电源总开关(位于实验箱底板左上角) ,使开关 处于“开”的位置,电源开关右侧的指示灯亮。 关闭实验箱上扩展模块和信号源开关。 2. 设置 Code Composer Studio 2.21 在硬件仿真(Emulator)方式下运行: (1) 双击桌面上的图标:进入 CCS 设置窗口。

(2) 在出现的窗口中按标号顺序进行如下设置:

(3) 接着在下面的窗口中按标号顺序进行如下选择:

4

(4) 在出现的窗口中按标号顺序进行如下设置:

(5) 在出现的窗口中按标号顺序进行如下设置:

5

以上设置完成后,CCS 已经被设置成 Emulator 的方式(用仿真器连接硬件板卡的方式) ,并且 指定通过 ICETEK-5100USB 仿真器连接 ICETEK-VC5509-A 评估板。如果需要一直使用这一方式就 不需要重新进行以上设置操作了。 3. 启动 Code Composer Studio 2.21 (1)首先将实验室电源关闭。连接实验箱的外接电源线。 (2)检查 ICETEK-5100USB 仿真器的黑色 JTAG 插头是否正确连接到 ICETEK-VC5509-A 板的 J1 插头上。注:仿真器的插头中有一个孔加入了封针,与 J1 插头上的缺针位置应重合,保证不会插错。 (3) 检查是否已经用电源连接线连接了 ICETEK-VC5509-A 板上的 POW1 插座和实验箱底板上 +5V 电源插座. (4) 检查其它连线是否符号实验要求。检查实验箱上三个拨动开关位置是否符合实验要求。 (5) 打开实验箱上电源开关(位于实验箱底板左上角) ,注意开关边上红色指示灯点亮。 ICETEK-VC5509-A 板上指示灯 D5 和 D6 点亮。如果打开了 ICETEK-CTR 的电源开关,ICETEK-CTR 板上 指示灯 L1、L2 和 L3 点亮。如果打开了信号源电源开关,相应开关边的指示灯点亮。 (6)用实验箱附带的 USB 信号线连接 ICETEK-5100USB 仿真器和 PC 机后面的 USB 插座,注意 ICETEK-5100USB 仿真器上指示灯 Power 和 Run 灯点亮。 (7)双击桌面上仿真器初始化图标:

如果出现下面提示窗口,表示初始化成功,按一下空格键进入下一步操作。

6

如果窗口中没有出现“按任意键继续…”,请关闭窗口,关闭实验箱电源,在将 USB 电缆从仿真 器*纬觯祷氐冢2)步重试。 如果窗口中出现“The adapter returned an error” ,并提示“按任意键继续…”,表示初始化 失败,关闭窗口重试两三次,如果仍然不能初始化则关闭实验箱电源,再将 USB 电缆从仿真器* 出,返回第(2)步重试。 (8)双击桌面上图标:启动 CCS2.21。

(9)如果进入 CCS 提示错误,先选“Abort” ,然后用“初始化 ICETEK-5100 USB2.0 仿真器” 初始化仿真器,如果提示出错,可多做几次。如仍然出错,拔掉仿真器上 USB 接头(白色方形) , 按一下 ICETEK-VC5509-A 板上 S1 复位按钮,连接 USB 接头,再做“初始化 ICETEK-5100 USB2.0 仿真器” 。 (10)如果遇到反复不能连接或复位仿真器、进入 CCS 报错,打开 Windows 的“任务管理器” , 在“进程”卡片上的“映像名称”栏中查找是否有“cc_app.exe”,将它结束再试。 选择菜单 Debug→Reset CPU,成功*舳 CCS 后会出现如下窗口:

7

4.创建工程: (1)创建新的工程文件: 选择菜单“Project”的“New…”项。

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

8

展开主窗口左侧工程管理窗中“Projects”下新建立的“volume.pit”,其中各项均为空。 (2)在工程文件中添加程序文件: 选择菜单“Project”的“Add Files to Project…”项;在“Add Files to Project”对话框中选择文 件目录为 C:\ICETEK-VC5509-EDULab\Lab0101-UseCCS,改变文件类型为“C Source Files(*.c; *.ccc)”,选择显示出来的文件“volum.c”;重复上述步骤,添加 volume.cmd 文件到 volume 工程 中;添加 C:\ti\C5500\cgtools\lib\rts55.lib 文件到工程中。 (3)编译链接工程: 的按钮;注意编译过程中 CCS 选择菜单“Project”的“Rebuild All”项,或单击工具条中 主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。 5. 编辑修改工程中的文件: (1)查看工程文件: 展开 CCS 主窗口左侧工程管理窗中的工程各分支,可以看到“volume.pjt”工程中包含” volume.h”、 “rts55.lib”“volume.c”和“volume.cmd”文件,其中第一个“volume.h”为程序在编 、 译时根据程序中的“include”语句自动加入的。 (2)查看源文件: 双击工程管理窗中的“volume.c”文件,可以查看程序内容。可以看到,用标准 C 语言编制的 程序。 (3)编辑修改源文件及编译程序: 打开“volume.c”,找到“main() ”主函数,将语句“input=inp_buffer; ”最后的分号去掉, 这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错误的提 示:双击红色错误提示,CCS 自动转到程序中出错的地方;将语句修改正确(将语句末尾的分号加 上) ;重新编译;注意,重新编译时修改过的文件被 CCS 自动保存。 (4)修改工程文件的设置:

9

通过以上设置操作,重新编译后,程序中的用户堆栈的尺寸被设置成 1024 个字。 6. 基本调试功能: ( 1 ) 下 载 程 序 : 执 行 File → Load Program , 在 随 后 打 开 的 对 话 框 中 选 择 刚 刚 建 立 的 C:\ICETEK-VC5509-EDULab\Lab0101-UseCCS\Debug\volume.out 文件。 (2)设置软件调试断点:在项目浏览窗口中,双击 volume.c 激活这个文件,移动光标 main()行 上,单击鼠标右键选择 Toggle Breakpoint 或按 F9 设置断点(另外,双击此行左边的灰色控制条也 可以设置或删除断点标记) 。 (3)利用断点调试程序:选择 Debug→Run 或按 F5 运行程序,程序会自动停在 main()函数上。 按 F10 执行到 write_buffer( )函数; 在按 F8,程序将转到 write_buffer 函数中运行; 此时,为了返回主函数,按 shift-F7 完成 write_bufer 函数的执行; 再次执行到 write_buffer 一行,按 F10 执行程序,对比与 F8 执行的不同。 提示:在执行 C 语言的程序时,为了快速的运西功能到主函数调试自己的代码,可以使用 Debug →Go main 命令,上述实验中的使用方法是较为繁琐的一种方法。 7.使用观察窗口: (1)执行 View→Watch Window 打开观察窗口。 (2)在 volume.c 中,用鼠标双击一个变量(比如 num) ,再单击鼠标右键,选择“Quick Watch” , CCS 将打开 Quick Watch 窗口并显示选中的变量。 (3)在 volume.c 中,选中变量 num,单击鼠标右键,选择“Add to Watch Windows” ,CCS 将变量 添加到观察窗口并显示选中的变量值。 (4)在观察窗口中双击变量,则可以在这个窗口中改变变量的值。 (5)把 str 变量加到观察窗口中,点击变量左边的“+” ,观察窗口可以展开结构变量,并且显示结 构变量的每个元素的值。 (6)把 str 变量加到观察窗口中;执行程序进入 write_buffer 函数,此时 num 变量超出了作用范 围,可以利用 Call Stack 窗口察看在其他函数中的变量: 选择菜单 View→Call Stack 打开堆栈窗口。

10

双击堆栈窗口的 main()选项,此时可以观察看 num 变量的值。 8.文件输入/输出: 下面介绍如何从 PC 机上加载数据到 DSP 上。用于利用已知的数据流测试算法。 在完成下面的操作以前,先介绍 Code Composer Studio 的 Probe(探针)断点,这种断点允许用 户在指定位置提取/注入数据。Probe 断点可以设置在程序的任何位置,当程序运行到 Probe 断点时, 与 Probe 断点相关的事件将会被触发,当事件结束后,程序会继续执行。在这一节里,Probe 断点触 发的事件是:将 PC 机存储的数据文件中的一段数据加载到 DSP 缓冲区中。 ⑴ 在真实的系统中,read_signals 函数用于读取 A/D 模块的数据并放到 DSP 缓冲区中。在 这里,代替 A/D 模块完成这个工作的是 Probe 断点。当执行到函数 read_signals 时,Probe 断点完成这个工作。 ①在程序行 read_signals(input);上单击鼠标右键,选择“Toggle breakpoint” ,设置软件断点。 ②再在同一行上单击鼠标右键,选择“Toggle Probe Point” ,设置 Probe 断点。

此时,已经配置好了 Probe 断点和与之关联的事件。进一步的结果在下面实验中显示。 9.图形功能简介: 下面我们使用 CCS 的图形功能检验上一节的结果。首先进行下面设置操作:

11

在弹出的图形窗口中单击鼠标右键,选择“Clear Display” 。 按 F12 运行程序。观察 Input 窗口的内容。 10.选择菜单 File→workspace→save workspacs As…,输入文件名 SY.wks 。 11.退出 CCS。

12

实验二

指示灯实验

一.实验目的
1.了解 ICETEK-VC5509-A 板在 TMS320VC5509DSP 外部扩展存储空间上的扩展。 2.了解 ICETEK-VC5509-A 板上指示灯扩展原理。 3.学*在 C 语言中使用扩展的控制寄存器的方法。

二.实验设备
计算机,ICETEK-VC5509-EDU 实验箱(或 ICETEK 仿真器+ICETEK-VC5509-A 系统板+ 相关连线及电源) 。

三.实验原理
1.TMS320VC5509DSP 的 EMIF 接口: 存储器扩展接口(EMIF)是 DSP 扩展片外资源的主要接口,它提供了一组控制信号和地 址、数据线,可以扩展各类存储器和寄存器映射的外设。 -ICETEK-VC5509-A 评估板在 EMIF 接口上除了扩展了片外 SDRAM 外,还扩展了指示灯、 DIP 开关和 D/A 设备。具体扩展地址如下: 400800-400802h: D/A 转换控制寄存器 400000-400000h: 板上 DIP 开关控制寄存器 400001-400001h: 板上指示灯控制寄存器 -与 ICETEK-VC5509-A 评估板连接的 ICETEK-CTR 显示控制模块也使用扩展空间控制主 要设备: 602800-602800h: 读-键盘扫描值,写-液晶控制寄存器 600801-600801h: 液晶辅助控制寄存器 602801h 、600802h: 液晶显示数据寄存器 602802-602802h: 发光二极管显示阵列控制寄存器 2.指示灯扩展原理:

13

3.实验程序流程图:

四.实验步骤
1.实验准备: 连接实验设备 关闭实验箱上扩展模块和信号源电源开关。 2.设置 Code Composer Studio 2.21 在硬件仿真(Emulator)方式下运行。 3.启动 Code Composer Studio 2.21: 选择菜单 Debug→Reset CPU。 4.打开工程文件: 工程文件为:C:\ICETEK-VC5509-EDULab\Lab0301-LED\LED.pjt。 打开源程序 LED.c 阅读程序,理解程序内容。 5.编译、下载程序。 6.运行程序,观察结果。 7.退出 CCS: 五、观察实验结果

14

实验三 :拨码开关控制实验
一.实验目的
1.了解 ICETEK-VC5509-A 板在 TMS320VC5509DSP 外部扩展存储空间上的扩展。 2.了解 ICETEK-VC5509-A 板上拨码开关扩展原理。 3.熟悉在 C 语言中使用扩展的控制寄存器的方法。

二.实验设备
计算机,ICETEK-VC5509-EDU 实验箱(或 ICETEK 仿真器+ICETEK-VC5509-A 系统板+相 关连线及电源) 。

三.实验原理
1.TMS320VC5509DSP 的 EMIF 接口: 存储器扩展接口(EMIF)是 DSP 扩展片外资源的主要接口,它提供了一组控制信号和地址、 数据线,可以扩展各类存储器和寄存器映射的外设。 -ICETEK-VC5509-A 评估板在 EMIF 接口上除了扩展了片外 SDRAM 外,还扩展了指示 灯、DIP 开关和 D/A 设备。具体扩展地址如下: 400800-400802h: D/A 转换控制寄存器 400000-400000h: 板上 DIP 开关控制寄存器 400001-400001h: 板上指示灯控制寄存器 -与 ICETEK-VC5509-A 评估板连接的 ICETEK-CTR 显示控制模块也使用扩展空间控制主 要设备: 602800-602800h: 读-键盘扫描值,写-液晶控制寄存器 600801-600801h: 液晶辅助控制寄存器 602801h 、600802h: 液晶显示数据寄存器 602802-602802h: 发光二极管显示阵列控制寄存器 2.拨码开关扩展原理:

15

3.实验程序流程图:

四.实验步骤
1.实验准备: 连接实验设备: 关闭实验箱上扩展模块和信号源电源开关。 2.设置 Code Composer Studio 2.21 在硬件仿真(Emulator)方式下运行。 3.启动 Code Composer Studio 2.21: 选择菜单 Debug→Reset CPU。 4.打开工程文件: 工程文件为:C:\ICETEK-VC5509-EDULab\Lab0302-DIP\DIP.pjt。 打开源程序 DIP.c 阅读程序,理解程序内容。 5.编译、下载程序。 6.运行程序,观察结果。 7.拨动拨码开关 U4 的各位,观察指示灯 D1-D4 的显示。 8.退出 CCS:

五.观察实验结果

16

实验四 :DSP 的定时器 四
一.实验目的
1.通过实验熟悉 VC5509A 的定时器; 2.掌握 VC5509A 定时器的控制方法; 3.掌握 VC5509A 的中断结构和对中断的处理流程; 4.学会 C 语言中断程序设计,以及运用中断程序控制程序流程。

二.实验设备
计算机,ICETEK-VC5509-EDU 实验箱(或 ICETEK 仿真器+ICETEK-VC5509-A 系统板+相关连 线及电源) 。

三.实验原理
1.通用定时器介绍及其控制方法: TMS320VC5509A 内部有两个 20 位通用定时器(GP) : 每个通用定时器包括: 一个 16 位的减计数的计数器 TIM; 一个 16 位的定时器周期寄存器 PRD; 一个 16 位的定时器控制寄存器 TCR; 一个 16 位的定时器预定标寄存器 PSCR; PSCR 寄存器说明:

PSC: 4 位的预定标值,与 TIM 共同组成 20 位的定时计数器. TDDR: 预定标周期寄存器(在需要时重装入 PSC 的值) TCR 寄存器说明(详见 spru595b.pdf) 2.中断响应过程(详见 spru595b.pdf) : 外设事件要引起 CPU 中断,必须保证:IER 中相应使能位被使能,IFR 相应中断也被使能。在 软件中,当设置好相应中断标志后,开中断,进入等待中断发生的状态;外设(如定时器)中断发 生时,首先跳转到相应中断高级的服务程序中(如:定时器 1 会引起 TINT 中断) ,程序在进行服务 操作之后,应将本外设的中断标志位清除以便能继续中断,然后返回。 3.中断程序设计: 程序中应包含中断向量表,VC5509A 默认向量表从程序区 0 地址开始存放, 根据 IPVD 和 IPVH 的值确定向量表的实际地址。

17

注意观察程序中 INTR_init()函数的定义部分,其中 IPVD 和 IPVH 的值都为 0x0d0;同时观察配 置文件 ICETEK-VC5509-A.cmd 中的 VECT 段描述中 o=0x0d000。 向量表中每项为 8 个字,存放一个跳转指令,跳转指令中的地址为相应服务程序入口地址。第 一个向量表的首项为复位向量,即 CPU 复位操作完成后自动进入执行的程序入口。 服务程序在服务操作完成后,清除相应中断标志,返回,完成一次中断服务。 4.实验程序流程图:

5.实验程序分析: 实验程序的工程中包含了两种源代码,主程序采用 C 语言编制利于控制,中断向量表在 vector .asm 汇编语言文件中,利于直观地控制存储区分配。在工程中只需将它们添加进来即可,编译系统 会自动识别分别处理完成整合工作。

四.实验步骤
1.实验准备: 连接实验设备。 关闭实验箱上扩展模块和信号源电源开关。 2.设置 Code Composer Studio 2.21 在硬件仿真(Emulator)方式下运行: 3.启动 Code Composer Studio 2.21: 选择菜单 Debug→Reset CPU。 4.打开工程文件: 打开菜单“Project”的“Open”项;选择 C:\ICETEK-VC5509-EDULab\Lab0303-Timer 录中的 “Timer.pjt” 。 在项目浏览器中,双击 main.c,激活 main.c 文件,浏览该文件的内容,理解各语句作用。打开

18

ICETEK-VC5509-A.cmd,对照 vector.asm 源程序学*中断向量表的写法。 5.编译、下载程序。 6.运行程序,观察结果。 7.改变 TIMER_init()函数里*prd0 = 0x0ffff 为 “=0x0fff ”;重复步骤 5,6 观察实验现象。 8.退出 CCS。

19




友情链接: hackchn文档网 营销文档网 爱linux网 爱行业网 时尚网