dsp实验指导书 -...

123
DSP 实验指导书 ——基于 TMS320C54x 2006.7 www.plcworld.cn

Upload: vothu

Post on 12-Feb-2018

294 views

Category:

Documents


15 download

TRANSCRIPT

Page 1: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

DSP 实验指导书——基于 TMS320C54x

2006.7

www.plcworld.cn

Page 2: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

I

DSP 是一门理论与实践并重的技术,在学习了 DSP 的结构体系与基本原理以后,必须配合通过一些典型的 DSP 实验,以加深对 DSP 软、硬件的理解与掌握,同时学会 DSP 的开发工具的使用,了解 DSP 应用系统的开发环境与开发过程,从而为今后从事 DSP 的开发打下扎实的基础。

本实验指导书包含了 10 个实验,分为三种类型,供师生查阅。1)基础性实验,熟悉和了解 DSP 的开发环境,初步学会程序的编写与 DSP

开发工具 CCS 的使用,基础实验为必做实验。2)DSP 在片的外设与硬件接口实验,通过 DSP 的开发平台和实验系统,进

一步加深对 DSP 硬件系统的理解,初步学会包括在片的外设,I/O 接口,A/D、D/A 接口、串口等的使用,教师可根据学时选做 1-2 种;

3)应用程序设计与调试,这一部分实验是综合性的,除了学会 DSP 的程序编写与调试外,要求学生综合运用数字信号处理的基本理论、MATLAB 软件,在DSP 上实现信号处理有关算法进而了解和学会基于 DSP 的信号处理系统的开发,教师可根据学时选做 1-2 种。

其它实验可放在课外供学生选做。

www.plcworld.cn

Page 3: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

II

目录

实验 ..................................................................................................................................................1

1 基础实验:CCS 的使用与简单应用程序的建立........................................................................2

1.1 实验目的 ...............................................................................................................21.2 实验内容 ...............................................................................................................21.3 实验知识背景........................................................................................................2

1.3.1 CCS 简介 ..........................................................................................21.3.2 CCS 常用文件介绍............................................................................41.3.3 CCS 常用指令简介............................................................................4

1.4 实验步骤 ...............................................................................................................71.4.1 创建源文件 ........................................................................................81.4.2 创建工程文件.....................................................................................91.4.3 设置编译与连接选项 ........................................................................121.4.4 工程编译与调试 ...............................................................................13

2 基础实验二 开发系统的使用与简单应用程序的调试...........................................................17

2.1 实验目的 .............................................................................................................172.2 实验内容 .............................................................................................................172.3 实验程序结构说明 ..............................................................................................172.4 实验步骤 .............................................................................................................17

3 在片外设实验:定时器实验 ....................................................................................................22

3.1 实验目的 .............................................................................................................223.2 实验内容 .............................................................................................................223.3 实验背景知识......................................................................................................22

3.3.1 通用 TIMER 简介 ...............................................................................223.3.2 CMD 文件简介....................................................................................233.3.3 vecs.asm 文件简介...........................................................................24

3.4 实验要求 .............................................................................................................243.5 实验程序功能与结构说明 ...................................................................................24

3.5.1 Timer 实验调试程序.........................................................................243.5.2 脱机实验介绍: ...............................................................................26

3.6 思考题.................................................................................................................29

4 接口实验:数字 I/O 实验 ........................................................................................................30

4.1 实验目的 .............................................................................................................304.2 实验内容 .............................................................................................................304.3 实验背景知识......................................................................................................30

4.3.1 DSP 系统中数字 I/O 的实现: ..........................................................304.3.2 DTK5416 系统中数字 IO所占的资源: .............................................30

4.4 实验要求 .............................................................................................................314.5 实验程序功能与结构说明 ...................................................................................31

4.5.1 数字 IO 调试程序 .............................................................................31

www.plcworld.cn

Page 4: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

III

4.5.2 脱机实验介绍: ...............................................................................334.6 思考题.................................................................................................................37

5 接口实验:同步串口实验 ........................................................................................................38

5.1 实验目的 .............................................................................................................385.2 实验内容 .............................................................................................................385.3 实验背景知识......................................................................................................385.4 实验要求 .............................................................................................................395.5 实验程序功能与结构说明 ...................................................................................395.6 思考题.................................................................................................................42

6 接口实验:A/D 采样与 D/A 输出实验 .....................................................................................43

6.1 实验目的 .............................................................................................................436.2 实验内容 .............................................................................................................436.3 实验背景知识......................................................................................................43

6.3.1 TLV320AIC23B 的介绍: .....................................................................436.3.2 DAC811 的介绍: ..............................................................................44

6.4 实验要求 .............................................................................................................456.5 实验程序功能与结构说明 ...................................................................................45

6.5.1 A/D 调试程序....................................................................................456.5.2 脱机实验介绍: ...............................................................................47

6.6 思考题.................................................................................................................51

7 信号处理实验:快速傅立叶变换(FFT) ..................................................................................52

7.1 实验目的 .............................................................................................................527.2 实验内容 .............................................................................................................527.3 实验原理 .............................................................................................................527.4 FFT 的高级编程 ...................................................................................................537.5 FFT 的 DSP 编程 ...................................................................................................557.6 CCS 使用步骤.......................................................................................................667.7 实验结果 .............................................................................................................667.8 思考题.................................................................................................................68

8 信号处理实验:数字滤波器(IIR) ......................................................................................69

8.1 实验目的 .............................................................................................................698.2 实验内容 .............................................................................................................698.3 实验原理 .............................................................................................................698.4 实验程序设计......................................................................................................708.5 实验步骤 .............................................................................................................718.6 程序运行结果......................................................................................................728.7 思考题.................................................................................................................74

9 信号处理实验:数字滤波器(FIR) ......................................................................................75

9.1 实验目的 .............................................................................................................759.2 实验内容 .............................................................................................................75

www.plcworld.cn

Page 5: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

IV

9.3 实验原理 .............................................................................................................759.4 实验程序 .............................................................................................................769.5 实验步骤 .............................................................................................................779.6 实验结果 .............................................................................................................789.7 思考题.................................................................................................................80

10 信号处理实验:数字信号发生器...........................................................................................81

10.1 实验目的 ...........................................................................................................8110.2 实验内容 ...........................................................................................................8110.3 实验原理 ...........................................................................................................8110.4 实验程序设计 ....................................................................................................8110.5 实验步骤 ...........................................................................................................8610.6 实验结果 ...........................................................................................................86

附录 A.............................................................................................................................................88

实验箱操作指南 ............................................................................................................................88

A.1 输入设备.......................................................................................................88A.2 输出设备.......................................................................................................88A.3 图形用户界面(GUI).................................................................................89

A.3.1 一级菜单界面..........................................................................89A.3.2 二级菜单界面..........................................................................90A.3.3 三级菜单界面..........................................................................92A.3.4 四级菜单界面........................................................................100

A.4 各实验具体操作步骤...................................................................................108A.4.1 实验 3 定时器实验...............................................................108A.4.3 实验 4 同步串口实验 ...........................................................108A.4.2 实验 5 数字 I O 实验 ...........................................................109A.4.4 实验 6 AD 实验....................................................................109A.4.5 实验 7 FFT 实验 ..................................................................110A.4.6 实验 8 数字滤波试验 ...........................................................110

附录 B........................................................................................................................................... 112

PC 演示系统串口版使用说明(LAB5416) ............................................................................. 112

B.1 文件说明.....................................................................................................112B.2 运行前准备 .................................................................................................112B.3 运行过程说明.............................................................................................. 112B.4 各项实验操作方法 ......................................................................................115

B.4.1 定时器实验 ...........................................................................116B.4.2 数字 IO 实验.........................................................................116B.4.3 AD 转换实验 ........................................................................116B.4.4 FFT 实验..............................................................................118

B.5 注意事项.....................................................................................................118

www.plcworld.cn

Page 6: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

1

实验本实验箱的示例程序均由两部分构成:一部分是带有与 MMI5402 通讯功能

的脱机实验;另一部分是在 CCS 环境下可以进行调试的各实验程序。脱机实验的功能如下:1. 实现与 SEED-MMI5402 的异步串口通讯:包括握手信号,实验程序的传

输、实验数据以及实验命令的传送。2. 实现实验程序本身的功能因各个实验程序的传输、实验数据以及实验命令的传送的命令字不同,这些

将会在各个实验的介绍中详细说明。在这仅介绍一下握手信号的命令字:#define UARTCONT 0x0 //命令帧不连续#define UARTMUTL 0x1 //帧连续#define RECIEVEGOOD 0xAA01//接收正确#define RECIEVEERROR 0xAA02//接收错误#define RECIEVEEND 0xAA03//接收结束#define VAILDFRAME 0xAA04//无效帧#define SYSRESET 0xAA05//系统复位#define COMMANDNODO 0xAA06//程序不处理命令#define INITOVER 0xAA0F//初始化完成以上命令字在 COMM.h 中定义。注意:以下各个实验程序的编译环境如下:CCS 版本为 2.20.28 或者是更高

版本。

www.plcworld.cn

Page 7: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

2

1 基础实验:CCS 的使用与简单应用程序的建立

1.1 实验目的

1. 熟悉 CCS 集成开发环境,掌握工程的生成方法;2. 熟悉 SEED-DEC5416 实验环境;3. 掌握 CCS 集成开发环境的调试方法;

1.2 实验内容

1. DSP 源文件的建立;

2. DSP 程序工程文件的建立;

3. 学习使用 CCS 集成开发工具的调试工具;

1.3 实验知识背景

1.3.1 CCS 简介

CCS 提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS 支持如下所示的开发周期的所有阶段

设计

概念性规划

编程与编译

创建工程文件

编写源程序

编写配置文件

调试

语法检测

逻辑检测

分析

实时调试

统计

跟踪

www.plcworld.cn

Page 8: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

3

CCS 构成及接口见下图

CCS窗口介绍:

www.plcworld.cn

Page 9: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

4

1.3.2 CCS 常用文件介绍

使用CCS时,经常遇见下述扩展名文件:1. project.mak: CCS使用的工程文件2. program.c: C程序源文件3. program.asm: 汇编程序源文件4. filename.h: C程序的头文件,包含DSP/BIOS API模块的头文

件5. filename.lib: 库文件6. project.cmd: 连接命令文件7. program.obj: 由源文件编译或汇编而得的目标文件8. program.out: (经完整的编译、汇编以及连接的)可执行文件9. project.wks: 存储环境设置信息的工作区文件保存配置文件时将产生下列文件:1. programcfg.cmd: 连接器命令文件2. programcfg.h54: 汇编头文件3. programcfg.s54: 汇编源文件

1.3.3 CCS 常用指令简介

1.设置断点。将光标放置在需要设置断点的程序行前,选择 Debug→Breakpoints,

即完成可一个断点的设置。2.CCS 提供 3种方法复位目标板

1) Reset DSP: Debug →Reset D,初始化所有的寄存器内容并暂停运行中的程序。使用此命令后,要重新装载.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) 单步进入: Debug →step into ,快捷键 F8,当调试语句不是

基本的汇编指令时,此操作进入语句内部。2) 单步执行: Debug → step Over ,此命令将函数或子函数当作

一条语句执行,不进入内部调试。3) 单步跳出: Debug →step Out ,此命令作用为从子程序中跳出

www.plcworld.cn

Page 10: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

5

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

5.内存、寄存器与变量的操作1) 查看变量 使用 view →Watch Window 命令2) 查看寄存器 使用 view →Registers →CPU Registers 命令3) 查看内存 使用 view →memory 命令

6.Graph 的设置即图形显示1) 选择View →Graph →Time/Frequency。

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

www.plcworld.cn

Page 11: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

6

示例(A) 起始地址为 0x2c28 的为原始数据

示例(B) 将起始地址为 0x3e31 的数组进行图形显示

www.plcworld.cn

Page 12: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

7

2) 点击OK,将出现所设的图形窗口。如:在滤波实验中,用以上方法设定的图形窗口,在运行滤波程序后,最终的显示结果如下图所示(可以观察到滤波前后的波形:上边为原始图形,下边为滤波后的波形):

3) 可以在图形上单击右键,选择“Float In Main Table”,这时图形将浮现在主窗口中,以便观察。

1.4 实验步骤

1. 将 DSP 仿真器与计算机连接好;2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接;3. 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察

SEED-DTK-IO1 单元的+5V,+3.3V,+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

4. 双击 图标进入 CCS 环境。

下面按照原文件、工程文件以及编译条件的设置来分别介绍一下 CCS 的使用。

www.plcworld.cn

Page 13: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

8

1.4.1 创建源文件

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

2. 编写源代码并保存

www.plcworld.cn

Page 14: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

9

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

4. 创建其他源程序(如.cmd)可重复上述步骤。

1.4.2 创建工程文件

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

www.plcworld.cn

Page 15: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

10

2. 弹出如下对话框:

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

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

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

www.plcworld.cn

Page 16: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

11

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

7. 以下操作可使您对工程中的文件进行打开、删除、查看属性等操作

www.plcworld.cn

Page 17: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

12

1.4.3 设置编译与连接选项

1. 点击 Project 选择 Build Opitions2. 在弹出的对话框中设置相应的编译参数,一般情况下,按默认值就

可以;

3. 在弹出的对话框中选择连接的参数设置,设置输出文件名,堆栈的大小以及初始化的方式。

www.plcworld.cn

Page 18: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

13

1.4.4 工程编译与调试

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

www.plcworld.cn

Page 19: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

14

2. 点击 File → load program,在弹出的对话框中载入 debug 文件夹下的.out 可执行文件。

3. 装载完毕

www.plcworld.cn

Page 20: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

15

www.plcworld.cn

Page 21: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

16

4.点击 debug → Go Main 回到 C 程序的入口

5. 打开 File →Workspace →Save Workspace 保存调试环境,以便下次调试时不需要重新进行设置。只要 File →Workspace →LoadWorkspace 即可恢复当前设置

www.plcworld.cn

Page 22: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

17

2 基础实验二 开发系统的使用与简单应用程序的调

2.1 实验目的

1. 熟悉 CCS 集成开发环境,掌握工程的生成方法;2. 熟悉 SEED-DEC5416 实验环境;3. 掌握 CCS 集成开发环境的调试方法;

2.2 实验内容

1. 编译与链接的设置,生成可执行的 DSP 文件;2. 进行 DSP 程序的调试与改错;3. 学习使用 CCS 集成开发工具的调试工具;4. 观察实验结果;

2.3 实验程序结构说明

本实验包含的文件如下:1. MATH.c这个文件中包含了实验中关于DSP运算的主要函数。主要包含有:

fixed_add(int x,int y): 定点加法运算;fixed_sub(int x,int y): 定点减法运算;fixed_mul(int x,int y): 定点乘法运算;fixed_div(int x,int y): 定点除法运算;float_add(double x,double y): 浮点加法运算;float_sub(double x,double y): 浮点减法运算;float_mul(double x,double y): 浮点乘法运算;float_div(double x,double y): 浮点除法运算;float_fixed(double x): 浮点转定点运算;fixed_float(int x): 定点转浮点运算;

2. math.cmd 这是 DSP 的链接文件。它的主要功能是将 DSP 的每段的程序链接到相应的 DSP 的存贮区中。

3. rts.lib 是一个库文件,主要包含了有关 C 的运行环境与相应的函数的代码。

2.4 实验步骤

首先将光盘下 03. Examples of Program \ 04. SEED_DTK-DBD 调试实验程序目录下的 CCS-MATH 文件夹拷贝到 D:盘根目录下。

www.plcworld.cn

Page 23: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

18

1. 将 DSP 仿真器与计算机连接好;2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接;3. 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察

SEED-DTK-IO1 单元的+5V,+3.3V,+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

4. 双击 图标进入 CCS 环境。

5. 点击 Project →open 命令,在弹出的对话框中添加 DTK-MATH.pjt 文件;

www.plcworld.cn

Page 24: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

19

6. 点击在工程视窗中右键 GEL file,在弹出的菜单中选择 Load GEL,在弹出的对话框中添加 dtk-boot.gel 文件。

7. 使用 projiect→Bulid 命令编译当前程序。使用 projiect→Bulid all命令编译整个工程程序。注意:

在这个实验中,为了加深对 CCS 的了解,分别在编译与链接过程中设置了的错误行。这些错误行都是在程序调试中经常遇到的。 源程序错误:

在函数 fixed_add()中的 z的定义未加“;”号 函数 float_add()的{}号缺右边而未完整

链接错误; DSP 的空间分配重叠

VECS: origin = 4B00h, length = 0120h 改为VECS: origin = 4B00h, length = 0100h

在进行此实验时,只有将上述的程序错误改正后才能正确的编译与链接。产生 DTK_DBD_MATH.out。

www.plcworld.cn

Page 25: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

20

8. 按照下图所示添加.out 文件,即使用 File→Load Program 菜单命令。.out 文件一般存放在 math 文件下的 debug 文件夹中。

9. 点击 debug →Go Main 回到 C程序的入口 main( )函数处。

www.plcworld.cn

Page 26: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

21

10. 使用 F5 快捷键,运行程序,在 Stdout 观察窗中查看程序运行结果。运行程序到第一个断点在 STDout 观察窗内看定点运算是否正确。然

后再运行程序到第二个断点,观察浮点运算是否正确;再运行程序,观察浮点与定点之间的转换是否正确。

www.plcworld.cn

Page 27: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

22

3 在片外设实验:定时器实验

3.1 实验目的

1. 了解 DSP 汇编程序的构成;2. 了解 DSP 程序各段的含义;3. 熟悉在汇编条件下如何编写中断服务程序;4. 了解串行通讯的过程5. 掌握长时间间隔的定时器的处理。6. 掌握片内外设的设置方法。

3.2 实验内容

1. DSP 的初始设置;2. DSP 中断向量表的建立;3. 定时中断的编写;4. 查询方式异步串口程序的编写。

3.3 实验背景知识

3.3.1 通用 TIMER简介

TMS320VC5416 的定时器的说明:VC5416 中有一个可编程的片上定时器,总共包含有三个可由用户设置的寄存

器,并可以申请主机的中断。这三个寄存器分别为 TIM、PRD、TCR。这些寄存器与对应的存贮空间地址如下表所示:

时间寄存器(TIM)是一个 16 位的存贮器映射寄存器,它的值由周期寄存器来进行装载,并且做减一操作。

周期寄存器(PRD)是一个 16 位的存贮器映射寄存器,它是用来重装时间寄存器(TIM)寄存器的值的。

定时器控制寄存器(TCR)是一个 16 位的存贮器映射寄存器,包含了定时

www.plcworld.cn

Page 28: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

23

器的控制与状态信息。

3.3.2 CMD 文件简介

cmd 文件用于 DSP 代码的定位。由 3部分组成:1. 输入/输出定义:

.obj 文件:链接器要链接的目标文件。

.lib 文件:链接器要链接的库文件。.map 文件:链接器生成的交叉索引文件。.out 文件:链接器生成的可执行代码;链接器选项 。

2. MEMORY 命令:描述系统实际的硬件资源。3. SECTIONS 命令:描述"段"如何定位。下面例子则可说明其基本格式:-o sample.out-m sample.map-stack 100sample.obj meminit.obj-l rts.libMEMORY{

PAGE 0: VECT: origin = 0xff80, length 0x80PAGE 0: PROG: origin = 0x2000, length 0x400PAGE 1: DATA: origin = 0x800, length 0x400

}SECTIONS{

.vectors : {} >PROG PAGE 0

.text : {} >PROG PAGE 0.data : {} >PROG PAGE 0.cinit : {} >PROG PAGE 0.bss : {} >DATA PAGE 1

}下面介绍一下 CMD 文件中常用的程序段名与含义1. .cinit 存放 C程序中的变量初值和常量;2. .const 存放 C程序中的字符常量、浮点常量和用 const 声明的常量;3. .text 存放 C程序的代码;4. .bss 为 C 程序中的全局和静态变量保留存储空间;5. .far 为 C 程序中用 far 声明的全局和静态变量保留空间;6. .stack 为 C 程序系统堆栈保留存储空间,用于保存返回地址、函数间的

参数传递、 存储局部变量和保存中间结果;7. .sysmem 用于 C程序中 malloc、calloc 和 realloc 函数动态分配存储空

www.plcworld.cn

Page 29: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

24

3.3.3 vecs.asm 文件简介

vecs.asm 是 DSP 的中断向量表文件。中断服务程序的地址(中断向量)要装载到存储器的合适区域。一般中断向量表文件是采用汇编语言编写;在文件中一般汇编指令.sect 来生成一个表。这个表包含中断向量的地址和跳转指令。因为中断读物的标志符在汇编语言模块外部使用,所以标志符用.ref 或.global3.3.4 GEL 文件简介

GEL 文件的功能同 cmd 文件的功能基本相同,用于初始化 DSP。但它的功能比 cmd 文件的功能有所增强,GEL 在 CCS 下有一个菜单,可以根据 DSP 的对象不同,设置不同的初始化程序 。以下面的例子介绍一下 GEL 文件的构成。

例:#define DEC5416_CTL 0x60000 //定义 DEC5416_CTL 寄存器#define DEC5416_INT 0x60001 //定义 DEC5416_ INT 寄存器#define DEC5416_STA 0x60002 //定义 DEC5416_ STA 寄存器StartUp( ) ; 开始函数{

GEL_MapReset(); ; 存储空间复位GEL_MapAdd(0x0000,0,0x7fff,1,1); 定义程序空间 0000-7fff 可读写GEL_MapAdd(0x8000,0,0x7000,1,1); 定义程序空间 8000-f000 可读写GEL_MapAdd(0x0000,1,0x1000,1,1); 定义数据空间 0000-f000 可读写GEL_MapAdd(0xffff,2,1,1,1); 定义 i/o 空间 0xffff 可读写GEL_MapOn(); 存储空间打开GEL_MemoryFill(0xffff,2,1,0x40); 在 i/o 空间添入数值 40h

}

3.4 实验要求

能够掌据汇编语言的程序结构。正确进行异步串口的通讯与定时器的设置。能够与系统正确通讯。通过 LCD 与键盘可以控制定时器的运行。

3.5 实验程序功能与结构说明

3.5.1 Timer 实验调试程序

3.5.1.1 在 Timer 实验调试程序中,主要包含以下文件:

1. timer.c:这是实验的主程序,主要包含 CSL 初始化,DSP 初始化,Timer 及Timer 中断初始化,Timer 中断程序。

2. vector.asm:包含 5416 的中断向量表。3. dec5416.cmd:声明了系统的存贮器配置与程序各段的链接关系。

www.plcworld.cn

Page 30: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

25

3.5.1.2 程序流程图

CSL 初始化

定时器中断初始化

关中断

开中断

for(;;)循环等待进入

中断程序

定时器各寄存器配置

系统时钟设置

启动定时器

主程序流程图

i++;

开总中断

返回

中断程序流程图

www.plcworld.cn

Page 31: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

26

3.5.1.3 实验步骤

首先将光盘下 03. Examples of Program \ 04. SEED_DTK-DBD 调试实验程序目录下的 CCS-Timer 的文件夹拷贝到 D:盘根目录下。

1. 将 DSP 仿真器与计算机连接好;2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接;3. 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察

SEED-DTK-IO1 单元的+5V,+3.3V,+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

4. 打开 CCS,进入 CCS 的操作环境。5. 装入 timer.pjt 工程文件,添加 dtk-boot.gel 文件。6. 装载程序 timer.out,进行调试。7. 在程序的第 101 行“i=i+1;”处设置断点。8. 运行程序,程序会停在断点处,表明已进入定时器中断。继续运行程序,

程序每次都会停在断点处。实验者可根据自己的需要改变周期寄存器的值,从而控制每次进中断的时间。

3.5.2 脱机实验介绍:

本实验的主要功能是将串口通讯(SEED-DEC5416 与 MMI5402 异步串口通讯)与调试好的 time 实验结合在一起,形成一个完整的脱机实验程序。

定时器实验实现的功能如下:程序运行后,经过 DSP 与异步串口初始化后,系统等待主机的命令。当系统

设置好当前的时间并发出启动定时器时,开始启动定时器。定时器的时间间隔为千分之一秒。每当定时器运行 1000 次,也就是一秒之后,DSP 向系统发送报时信息,传回当前的时间信息。系统在 LCD 上显示当前的时间。

本实验内容分为以下几部介绍:

3.5.2.1 工程包含文件介绍

在定时器实验中,主要包含了以下文件:1. timer.asm:包含了以下功能:DSP 的初始化:设定 VC5416 的初始软件

等待周期,设定存贮区的映射,建立中断向量表,系统时钟的设定,异步串口的初始化。

2. 异步串口的发送与接收子程序。3. 定时器的操作及中断服务程序。4. vector.asm:包含了 VC5416 的中断向量表。5. dec5416.cmd:声明了系统的存贮器配置与程序各段的链接关系。6. vc54x.inc: 声明了 VC54x 系列 DSP 的片内寄存器的地址与设置的常量

定义。7. dec5416.inc:定义了 SEED-DEC5416 模板上资源的地址与设置的常量定

义。

www.plcworld.cn

Page 32: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

27

8. Dtk-boot.gel: 系统的初始化文件。9. *.h:各子函数的头文件。其中在 comm.h 函数中定义了 Time 实验中所用的命令宏:/*定时器实验*/#define TIMESET 0xAA12 //设置时间#define TIMEBACK 0xAA13 //返回时间/*定时器实验数据帧格式*/typedef struct Time_Frame{

unsigned int Type; //帧类型unsigned int Hour; //小时unsigned int Minute; //分钟unsigned int Second; //秒

}Time_Frame;

3.5.2.2 程序流程图

Time 实验流程图包括三个部分:主程序、实验处理以及定时器中断服务的流程图。

注意:实验处理是主程序中的一部分,即是主程序流程图中的实验处理部分。此部分在是第一部分 Time 调试程序的基础上进行修改而来的,为了使读者能够更好的理解整合实验的程序与 Time 调试程序的结构不同之处,特地将此部分内容单独介绍。

串口、定时器初始化

发送握手信号

N

实验处理

Y

N

接收串口数据

判断串口状态

通讯错误

数据处理

通讯错误处理

Y

DSP 初始化

主程序流程图

www.plcworld.cn

Page 33: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

28

3.5.2.3 实验调试

首先将光盘下 03. Examples of Program \ 05. SEED_DTK-DBD 脱机实验程序目录下的 DTK-TIMER 的文件夹拷贝到 D:盘根目录下。

1. 将 DSP 仿真器与计算机连接好;2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接;3. 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察

SEED-DTK-IO1 单元的+5V,+3.3V,+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

4. 等待 LCD 显示器上出现“引导程序启动完成!”,进入 SEED-DTK_DBD

终止处理

N

Y

Y

开始

定时器设置命令 定时器实验程

实验终止命令

回到程序主循环

实验处理流程图

定时器中断程序

定时中断计数

时间信息回送

计数累计处理

中断处理结束

定时器中断服务程序

www.plcworld.cn

Page 34: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

29

的“实验选项”的菜单下,选择“定时器实验”一项,等待 LCD 显示器上出现“定时器程序引导完成。”

5. 打开 CCS,进入 CCS 的操作环境。6. 装入 DTK-TIMER.pjt 工程文件后,添加 Dtk-boot.gel 文件,然后装载

DTK-TIMER.out 文件。7. 进行调试。

注意:只有系统设置好当前的时间并发出时,即通过键盘操作选好初始时间(具体操作请参考附录三),定时器才开始启动,运行至断点。

3.5.2.4 实验演示

在脱机(不接 CCS)的情况下,可以首先进行实验的演示。1. 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察

SEED-DTK-IO1 单元的+5V,+3.3V,+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源

2. 等待 LCD 显示器上出现“引导程序启动完成!”。3. 进入 SEED-DTK_DBD 的“实验选项”的菜单下,选择“定时器实验”一

项。4. 等待 LCD 显示器上出现“定时器实验装载成功”之后(定时器实验程序

从 MMI5402 的 Flash 装载到 SEED-DEC5416 的 Flash 处,且程序跳转成功)。即可按菜单指示操作,完成 Time 实验的演示。

3.6 思考题

理解 DSP 程序的编写过程,如何编写中断程序?

www.plcworld.cn

Page 35: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

30

4 接口实验:数字 I/O 实验

4.1 实验目的

1. 熟悉 CCS 的开发环境;2. 掌握 DSP 扩展数字 I/O 口的方法;3. 了解 SEED-DEC5416 的硬件系统;

4.2 实验内容

1. DSP 的初始化2. UART 的初始化3. TMS320C5416 数字 I/O 口使用

4.3 实验背景知识

4.3.1 DSP 系统中数字 I/O 的实现:

DSP 系统中一般只有少量的数字 I/O 资源,而一些控制中经常需要大量的数字量的输入与输出。因而,在外部扩展 I/O 资源是非常有必要的。在扩展 I/O资源时一般占用 DSP 的 I/O 空间。其实现方法一般有两种:其一为采用锁存器像74LS273、74lS373 之类的集成电路;另一种是采用 CPLD 在其内部做锁存逻辑,我们采用的是后者。

4.3.2 DTK5416 系统中数字 IO 所占的资源:

1.交通灯控制口地址为:0x080000(I/O 空间);其说明如下:D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00

NR NY NG ER EY EG SR SY SG WR WY WG

WG:方向西的绿灯控制位;WY:方向西的黄灯控制位;WR:方向西的红灯控制位;SG:方向南的绿灯控制位;SY:方向南的黄灯控制位;SR:方向南的红灯控制位;EG:方向东的绿灯控制位;

www.plcworld.cn

Page 36: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

31

EY:方向东的黄灯控制位;ER:方向东的红灯控制位;NG:方向北的绿灯控制位;NY:方向北的黄灯控制位;NR:方向北的红灯控制位;当以上各位置“1”时,点亮各控制位所代表的交通灯状态的 LED 灯。

2.LED 控制口地址为:0x080002(IO 空间):其说明如下:D7 D6 D5 D4 D3 D2 D1 D0

OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 OUT0

向控制位 OUT[7:0]写入“1”时,点亮相应位置的 LED 灯。

注:8 个 LED 灯是位于 SEED-CPLD 板上的,其控制线是通过 DTK_IO 单元模块转接的,然后经 SEED-CPLD 单元模块驱动后再点亮 LED 灯的。

4.4 实验要求

通过本实验,了解 DSP 对 I/O 口的操作,完成交通灯与 LED 的控制。熟练使用 CCS 对程序进行调试。

4.5 实验程序功能与结构说明

4.5.1 数字 IO 调试程序

4.5.1.1 在数字 IO 调试程序中,主要包含以下文件:

1. boot.asm:C 环境的引导程序;2. dec5416.c:对 SEED-DEC5416 各项资源的操作的函数集,主要包含了对

UART 的操作的各个函数,对 CODEC 的各个控制函数。以及对系统各项的初始化函数。

3. io.c:这是实验的主程序,包含了系统的初始化,及控制交通灯与数字量输出。

4. memory.asm:包含了对 FLASH 的各项操作、程序空间 MEMORY 的读写。5. sysreg.asm:包含了对 DSP 的各项控制,像中断的设置、系统时钟设置、

及 各项寄存器的操作。6. uart.asm:对异步串口的寄存器的读与写。7. vector.asm:包含了 VC5416 的中断向量表。8. dec5416.cmd:声明了系统的存贮器配置与程序各段的连接关系。

4.5.1.2 程序流程图

www.plcworld.cn

Page 37: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

32

4.5.1.3 IO 调试程序的实验步骤首先将光盘下 03. Examples of Program \ 04. SEED_DTK-DBD 调试实验程

序目录下的 CCS-IO 的文件夹拷贝到 D:盘根目录下。1. 将 DSP 仿真器与计算机连接好;2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接;3. 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察

SEED-DTK-IO1 单元的+5V,+3.3V,+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

4. 打开 CCS,进入 CCS 的操作环境5. 装入 CCS-IO.pjt 工程文件,添加 dtk -boot.gel 文件,开始进行调试。6. 打开 io.c 文件,到第 71,72 行,修改 TESTCOMMAND 和 TESTDATA 的宏

定义。

DEC5416 系统初始化

设置系统时钟

条件编译实现交通灯运

行模式的选择

TestCommand

西

Break

Def

ault

LED 灯数字输出

www.plcworld.cn

Page 38: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

33

TESTCOMMAND 是交通灯操作控制选项。可以为 1、2、3、4、5 这 5个数。1为自动运行;2为夜间模式;3为交通灯东西通;4为交通灯南北通;5为禁行。SEED-DTK_IO1 单元的 Traffic Lamp 处将显示结果。

TESTDATA 是 8 位二进制 led 灯显示数字,可以为 0-255 之间的整数。在 Traffic Lamp 的右侧,led 灯将按照二进制显示所定义的数字。

7. 装载程序 CCS-IO.out8. 运行,观察。在程序运行过程中,可直接在 Watch Window 里修改

TestCommand 的值,即将每一种运行方式所对应宏定义的值直接赋值给TestCommand,即可改变运行方式。例如在程序运行过程中,若想将运行方式改为夜间模式,就请将 TestCommand 赋值为 0xAA16(关于各种方式的宏定义在 comm.h 中给出)即可。如下图所示:

9. 重新到第 6)步开始尝试其他情况或者退出实验

4.5.2 脱机实验介绍:

本实验的主要功能是将串口通讯(SEED-DEC5416 与 MMI5402 异步串口通讯)与调试好的数字 I/O 实验结合在一起,形成一个完整的脱机实验程序。

数字 I/O 实验主要完成的功能:在此实验中,SEED-DEC5416 首选进行初始化,包括对外设 UART、本身频率

的设定及一些状态区的初始化。然后等待 SEED-MMI5402 发送命令;SEED-DEC5416 响应交通灯自动模式、交通灯手动模式、交通灯东西通、交通灯南北通、及交通灯的禁行与夜间模式的操作命令。同时还响应,对 SEED-DEC5416 的复位。

本实验内容分为以下几部介绍:4.5.2.1 工程包含文件介绍

1. io.c:这是实验的主程序,包含了系统的初始化,主要是异步串口的初始化、以及系统时钟的设置;完成与 SEED-MMI5402 系统的异步通讯,控制交通灯与数字量输出。

2. dec5416.c:对 SEED-DEC5416 各项资源的操作的函数集,主要包含了对UART 的操作的各个函数,对 CODEC 的各个控制函数。以及对系统各项的初始化函数。

3. boot.asm:C 环境的引导程序;4. memory.asm:包含了对 FLASH 的各项操作、程序空间 MEMORY 的读写。5. sysreg.asm:包含了对 DSP 的各项控制,像中断的设置、系统时钟设置、

及各项寄存器的操作。6. uart.asm:对异步串口的寄存器的读与写。7. vector.asm:包含了 VC5416 的中断向量表。

www.plcworld.cn

Page 39: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

34

8. dec5416.cmd:声明了系统的存贮器配置与程序各段的连接关系。9. vc54x.inc:声明了 VC54x 系列 DSP 的片内寄存器的地址与设置的常量定

义。10. dec5416.inc:定义了 SEED-DEC5416 模板上资源的地址与设置的常量定

义。11. Dtk-boot.gel: 系统的初始化文件。12. *.h:各个子函数的头文件。其中在 comm.h 函数中定义了数字 IO 实验中所用的命令宏:/*交通灯实验*/#define TRAFFICAUTO 0xAA14 //自动运行模式#define TRAFFICMANNUL 0xAA15 //人工模式#define TRAFFICNIGHT 0xAA16 //夜间模式#define TRAFFICRUN 0xAA17 //运行状态#define TRAFFICHALT 0xAA18 //停止状态#define TRAFFICRESET 0xAA19 //交通灯复位#define TRAFFICEAST 0xAA1A //东西通行#define TRAFFICSOUTH 0xAA1B //南北通行#define TRAFFICFORBID 0xAA1C //禁行#define IOSET 0xAA1D //设置 IO 值#define IOBACK 0xAA1E //返回 IO 值

4.5.2.2 程序流程图数字 IO 实验流程图包括两个部分:主程序、实验处理的流程图。实验处理

是主程序中的一部分,即是主程序流程图中的实验处理部分。此部分在是第一部分数字 IO 调试程序的基础上进行修改而来的,为了使读者能够更好的理解整合实验的程序与数字 IO 调试程序的结构不同之处,特地将此部分内容单独介绍。

www.plcworld.cn

Page 40: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

35

串口初始化

发送握手信号

N

实验处理

Y

N

接收串口数据

判断串口状态

通讯错误

数据处理

通讯错误处理

Y

DSP 初始化

主程序流程图

www.plcworld.cn

Page 41: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

36

4.5.2.3 实验调试首先将光盘下 03. Examples of Program \ 05. SEED_DTK-DBD 脱机实验程

序目录下的 DTK-IO 的文件夹拷贝到 D:盘根目录下。

Y

Y

Y

Y

Y

Y

Y

N

N

N

N

N

N

N

N

Y

开始

程序主循环

交通灯自动模式

交通灯手动模式

交通灯南北通

交通灯东西通

交通灯禁行

交通灯夜间

实验终止命令

LED 设置处理

自动运行处理

夜间处理

东西通处理

手动运行处理

禁行处理

南北通处理

LED

终止实验处理

实验处理流程图

www.plcworld.cn

Page 42: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

37

1. 将 DSP 仿真器与计算机连接好。2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接。3. 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察

SEED-DTK-IO1 单元的+5V,+3.3V,+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

4. 等待 LCD 显示器上出现“引导程序启动完成!”,进入 SEED-DTK_DBD 的“实验选项”的菜单下,选择“数字 IO 实验”一项,等待 LCD 显示器上出现“数字 IO 实验装载成功”

5. 打开 CCS,进入 CCS 的操作环境。6. 装入 DTK-IO.pjt 工程文件后,添加 Dtk-boot.gel 文件,然后装载 DTK

-IO.out 文件,进行调试。4.5.2.4 实验演示

在脱机(不接 CCS)的情况下,可以首先进行实验的演示。1. 打开 SEED-DTK_DBD 的电源。观察 SEED-DTK-IO1 单元的+5V,+3.3V,

+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

2. 等待 LCD 显示器上出现“引导程序启动完成!”。3. 进入 SEED-DTK_DBD 的实验选项的菜单下,选择数字 IO 实验一项。4. 进入实验后,等待 LCD 显示器上出现“数字 IO 实验装载成功”之后(数

字 IO 实验程序从 MMI5402 的 Flash 装载到 SEED-DEC5416 的 Flash 处,且程序跳转成功)。即可按菜单指示操作,完成数字 IO 实验的演示。

4.6 思考题

加深对 DSP 扩展数字 I/O 口的理解,学会使用 DSP 的扩展总线。

www.plcworld.cn

Page 43: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

38

5 接口实验:同步串口实验

5.1 实验目的

1. 熟悉 CCS 的开发环坏境;2. 了解 DSP 的 MCBSP 外设的使用;3. 熟悉 C语言的宏函数在 MCBSP 设置中的使用情况;

5.2 实验内容

1. DSP 的初始化;2. UART 的初始化;3. MCBSP 的初始化设置;4. MCBSP 的发送;5. MCBSP 的接收;

5.3 实验背景知识

McBSP 介绍MCBSP 是 DSP 的片上外设资源。它可以与其它的 DSP、CODEC 和带有 SPI 接口

的器件进行连接。在 TMS320VC5416 上共有 3个 MCBSP(Multichannel BufferedSerial Port)。它共有三组主个管脚,包含了数据通路与控制通路。

注:CLKS 在 C5000 系列的 DSP 中没有提供,只在 C6000 中才有支持。1. 串行同步通信的信号:FSR、CLKR、DR 和 FSX、CLKX、DX

帧同步信号:FSR、FSX 位-时钟:CLKR、CLKX 串行数据流:DR、DX

2. 串行同步串行通信协议:1) 串行数据流起始时刻称为帧同步事件。帧同步事件由位-时钟采样帧

同步信号给出。2) 串行数据流长度:串行传输的数据流位数达到设定的长度后,结束

本次传输,等下一个帧同步信号达到,再发起另一次串行传输。3) 串行数据流传输速度:即每一个串行位的持续时间,由位-时钟决定4) FSR(FSX)、CLKR(CLKX)、DR(DX)三者之间的关系即如何取得帧

同步事件、何时采样串行数据位流、或何时输出串行数据位流,是可以通过 MCBSP 的寄存器进行配置的。其中 SPCR1x 后面的寄存器是二次寻址的,其过程如下:首先向 SPSAx 寄存器中写入你想要操作的寄存器的子地址,然后再向 SPSDx 中写入你想要的数据,从而完成对其的操作。

3. 同步串口实验中使用 MCBSP1 作为与 SEED-MMI5402 通讯的同步串口其连接图如下:

www.plcworld.cn

Page 44: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

39

4. 在同步串口实验中,,并而将 MCBSP1 设置成为单通道的方式使用。其设置如下:1) 设置 SPCR1 寄存器,禁止 SPI 模式;2) 设置 XCR1 寄存器,单数据相,发送数据长度为 16 位,每相 1个数据;3) 设置 XCR2 寄存器,发送数据延时一个位;4) 设置 RCR1 寄存器,单数据相,接受数据长度为 16 位,每相 1个数据;5) 设置 RCR2 寄存器,单数据相,接收延时一个位;6) 设置 PCR 寄存器,设置 BLCKR 为输入,下降沿接收数据;设置 BFSR

为输入,并且其极性为高有效;设置 BCLKX 由内部时钟产生,并且上沿发送数据;

7) 设置 SRGR1,确定分频数为 0x0FF,MCBSP2 的波待率为 625k,帧脉冲宽度为 1个数据位,0x0F:

8) 设置 SRGR2,确定时钟来源为内部的 CPU,确定帧同步为低有效;

5.4 实验要求

通过本实验,熟悉对 MCBSP 的各个寄存器的功用与设置方法,掌握 DSP 对二次寄存器的访问。熟悉同步串行通讯的编程方法。实现两个 DSP 同步通讯。

5.5 实验程序功能与结构说明

5.5.1 同步串口实验调试程序注:由于同步串口通讯程序,需要 MMI5402 发送时钟,帧同步,数据等信号,

才能与之进行通讯。所以,本调试程序中包括了与 MMI5402 进行通讯的串口通讯程序。

同步串口实验主要完成的功能:在这个实验中主要是在 SEED-DEC5416 与 MMI5402 之间的同步串口通讯。总

共有两种方式的通讯方法:1.单个数据的发送与接收,在这种方式下,当用户按下键盘的 0~9 后,

SEED-MMI5402 会将其通过同步串口发送到 SEED-DEC5416;然后由 SEED-DEC5416

www.plcworld.cn

Page 45: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

40

再发回到 SEED-MMI5402 进行 LCD 显示所按下的键值;完成一次同步串口的通讯。2.字符串数据的发送与接收,由用户通过 LCD 显示的字符串中选择一段字符

串,由 SEED-MMI5402 发送到 SEED-DEC5416;然后由 SEED-DEC5416 再发回到SEED-MMI5402 进行 LCD 显示。

在实验中还完成了对系统复位命令、打开与关闭 MCBSP 命令的响应以及通讯故障的处理。5.5.1.1 在同步串口实验调试程序中,主要包含以下文件:

1.mcbsp.c:这是实验的主程序,包含了系统的初始化,主要是同步串口的初始化、以及系统时钟的设置;完成与 SEED-MMI5402 系统的同步通讯。

2.dec5416.c:对 SEED-DEC5416 各项资源的操作的函数集,主要包含了对UART 的操作的各个函数,对 CODEC 的各个控制函数。以及对系统各项的初始化函数。

3.boot.asm:C 环境的引导程序;4.sysreg.asm:包含了对 DSP 的各项控制,像中断的设置、系统时钟设置、

及各项寄存器的操作。5.uart.asm:对异步串口的寄存器的读与写。6.vector.asm:包含了 VC5416 的中断向量表。7.dec5416.cmd:声明了系统的存贮器配置与程序各段的连接关系。8.vc54x.inc: 声明了 VC54x 系列 DSP 的片内寄存器的地址与设置的常量定

义。9.dec5416.inc:定义了 SEED-DEC5416 模板上资源的地址与设置的常量定

义。10.Dtk-boot.gel: 系统的初始化文件11.*.h:各子函数的头文件。其中在 comm.h 函数中定义了同步串口实验中所用的命令宏:#define MCBSPOPEN 0xAA1F //打开同步串口#define MCBSPCLOSE 0xAA20 //关闭同步串口

5.5.1.2 程序流程图同步串口实验流程图包括两个部分:主程序、实验处理的流程图。实验处理

是主程序中的一部分,即是主程序流程图中的实验处理部分。此部分主要内容是对同步串口实验完成功能的描述,是本实验程序的主体,故特将此部分内容单独介绍。

www.plcworld.cn

Page 46: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

41

5.5.1.3 实验步骤首先将光盘下 03. Examples of Program \ 04. SEED_DTK-DBD 调试实验程

序目录下的 DTK _MCBSP 的文件夹拷贝到 D:盘根目录下。1.将 DSP 仿真器与计算机连接好。

串口、McBSP 初始化

发送握手信号

N

实验处理

Y

N

接收串口数据

判断串口状态

通讯错误

数据处理

通讯错误处理

Y

DSP 初始化

主程序流程图

N

N

Y

Y

Y

开始

同步串口打开命令 串口实验

同步串口关闭命令 关闭串口

实验终止命令 终止处理

回到程序主循环

实验处理流程图

www.plcworld.cn

Page 47: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

42

2.将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接。3.启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察

SEED-DTK-IO1 单元的+5V,+3.3V,+15V,-15V 的电源指示灯,SEED_DEC5416的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

4.进入 SEED-DTK_DBD 的“实验选项”的菜单下,选择“同步串口实验”一项,进入后光标停留在“使用 CCS 选项”处,按 “Enter”键,通过“→”选择是否使用 CCS。在调试时选择使用 CCS。

5.打开 CCS,进入 CCS 的操作环境。6.装入 DTK _MCBSP.pjt 工程文件,添加 Dtk-boot.gel 文件,进行调试。7.装载程序 DTK _MCBSP.out。8.运行程序,此时 LCD 显示器的下方将出现“同步串口实验装载成功!”9.打开 MCBSP.c 文件,在第 202 行 if(MCBSP_RRDY(mcbsp1))”处设置断点。10.在“发送模式”一项任意选择“整帧”或“单个”,在“串口状态”一

项选择“开启”,这是程序将停在所设的断点处。11.继续运行程序。12.若“发送模式”选择的是“整帧”,则在“自动发送数据”选项选择任

意字符串,此数据串将在 LCD 显示器最下方的“数据接受:”后出现,说明通讯成功。若“发送模式”选择的是“单个”,则在 LCD 显示器下方的键盘上输入任意数字,此数字将在 LCD 显示器最下方的“数据接受:”后出现,说明通讯成功。

注意:如果操作失误或者发现对实验箱的操作已不起作用,请复位实验箱,这时一定要在 CCS 下重新复位 CPU,再重复步骤 6)-步骤 12)。5.5.1.4 实验演示

在脱机(不接 CCS)的情况下,可以首先进行实验的演示。1.打开 SEED-DTK_DBD 的电源。观察 SEED-DTK-IO1 单元的+5V,+3.3V,+

15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

2.等待 LCD 显示器上出现“引导程序启动完成!”。3.进入 SEED-DTK_DBD 的“实验选项”的菜单下,选择“同步串口实验”一

项,进入后光标停留在“使用 CCS 选项”处,按 “Enter”键,通过“→”选择是否使用 CCS。在脱机演示选择不使用 CCS。

4.进入实验后,选择不使用 CCS 选项,等待 LCD 显示器上出现“同步串口实验装载成功”之后(同步串口实验程序从MMI5402的 Flash装载到 SEED-DEC5416的 Flash 处,且程序跳转成功)。即可按菜单指示操作,完成同步串口实验的演示。

5.6 思考题

SEED-DEC5416 模板上 McBSP 各寄存器的初始化是否可以改变,但仍然能与MMI5402 进行同步串口通讯。

www.plcworld.cn

Page 48: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

43

6 接口实验:A/D 采样与 D/A 输出实验

6.1 实验目的

1. 熟悉 CCS 的开发环境;2. 熟悉 SEED-DTK5416 的系统硬件。3. 了解 SEED-MMI 的系统硬件;4. 熟悉 CODEC 芯片 TLV320AIC23B 的做为 A/D 的原理;5. 了解同步串口 MCBSP 的基本原理;6. 掌握 MCBSP 的设置;7. 了解 DAC811 的工作方式;8. 了解 D/A 信号的产生过程;

6.2 实验内容

1. AP 的初始化;2. D/A 与 CODEC 的初始化;3. 产生不同幅度与频率的波形;4. 将 CODEC 做一般的 A/D 采样 D/A 输出的波形;5. DSP 之间的 UART 通讯;

6.3 实验背景知识

6.3.1 TLV320AIC23B 的介绍:

TLV320AIC23B(以下简称AIC23)是 TI推出的一款高性能的立体声音频Codec芯片,内置耳机输出放大器,支持 MIC 和 LINE IN 两种输入方式(二选一),且对输入和输出都具有可编程增益调节。AIC23 的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的 Sigma-delta 过采样技术,可以在 8K 到 96K 的频率范围内提供 16bit、20bit、24bit 和 32bit 的采样,ADC和 DAC 的输出信噪比分别可以达到 90dB 和 100dB。与此同时,AIC23 还具有很低的能耗,回放模式下功率仅为 23mW,省电模式下更是小于 15uW。

1.音频接口:主要连接为 :BCLK: 数字音频接口时钟信号(bit 时钟),AIC23 工作在主模式,

该时钟由 AIC23 产生;LRCIN: 数字音频接口 DAC 方向的帧信号;LRCOUT: 数字音频接口 ADC 方向的帧信号;DIN: 数字音频接口 DAC 方向的数据输入;DOUT: 数字音频接口 ADC 方向的数据输出;

www.plcworld.cn

Page 49: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

44

这部分可以和 DSP 的 McBSP(Multi-channel buffered serial port,多通道缓存串口)无缝连接,唯一要注意的地方是 McBSP 的接收时钟和AIC23 的 BCLK 都由 AIC23 来提供,连接示意图如下:

2.模拟输入(LINE IN)输入接口:主要管脚为 :LLINEIN: 左声道 LINE IN 输入;RLINEIN: 右声道 LINE IN 输入;连接示意图如下:

3. DSP 与 AIC23 的连接采用 DSP 模式,帧信号宽度为一个 bit 长,比如在字长 16bit(即左右声道的采样各为 16bit),帧长为 32bit 的情况下,采用 DSP Mode 帧信号宽度 1bit 即可。

6.3.2 DAC811 的介绍:

1. DAC811 为 12BIT,±10V 量程,±15V 供电的并行 D/A 转换器。它内部有 2个锁存器。操作时,先将数据锁存到锁存器中,然后再启动转换寄存器;这样,D/A 输出相应的电平。

2.其操作逻辑真值表如下:

www.plcworld.cn

Page 50: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

45

6.4 实验要求

通过本实验,完成模拟信号的采集,与模拟信号的生成,掌握对 DAC811 的寄存器的设置,掌握对 TLV320AIC23B 的设置,以及完成模拟信号从输出到采集的整个过程;将设定的波形显示在 LCD 上。

6.5 实验程序功能与结构说明

6.5.1 A/D 调试程序

6.5.1.1 在 A/D 采样实验的调试程序中,主要包含以下文件:1. ad.c:这是实验的主程序,包含系统初始化,配置 CODEC,AD 设置,通

过 CODEC 进行 AD 采样等。2. boot.asm:C 环境的引导程序。3. dec5416.c:对 SEED-DEC5416 各项资源的操作的函数集,主要包含了对

UART 的操作的各个函数,对 CODEC 的各个控制函数。以及对系统各项的初始化函数。

4. memory.asm:包含了对 FLASH 的各项操作、程序空间 MEMORY 的读写。5. sysreg.asm:包含了对 DSP 的各项控制,像中断的设置、系统时钟设置、

及 各项寄存器的操作。6. uart.asm:对异步串口的寄存器的读与写。7. vector.asm:包含了 VC5416 的中断向量表。8. dec5416.cmd:声明了系统的存贮器配置与程序各段的连接关系。

6.5.1.2 程序流程图

www.plcworld.cn

Page 51: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

46

6.5.1.3 A/D 采样实验调试程序的实验步骤首先将光盘下 03. Examples of Program \ 04. SEED_DTK-DBD 调试实验程

序目录下的 CCS-AD 的文件夹拷贝到 D:盘根目录下。1. 将 DSP 仿真器与计算机连接好。2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接。3. 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察

SEED-DTK-IO1 单元的+5V,+3.3V,+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

4. 打开 CCS,进入 CCS 的操作环境5. 装入 CCS-AD.pjt 工程文件,添加 dtk-boot.gel 文件,开始进行调试。6. 打开 ad.c 文件,到第 60,61 行,可以修改宏定义 SAMPLELONG 和

SAMPLERATE。SAMPLELONG 有 3 个选择 256、512、1024,表示采样点数。SAMPLERATE 也有 3 个选择 1、2、3。1 表示采样率为 8k,2 表示采样率为 44k,3 表示采样率为 96k。

7. 修改完宏定义后,编译、链接生成 CCS-AD.out 文件,装载程序CCS-AD.out。

8. 本实验和 FFT 实验,数字滤波实验都需要设置实验箱信号源。通过液晶和按键,设置信号源。菜单路径为:“系统设置”-“信号发生器设置”。

在“信号发生器设置”这一菜单下:“通道”设为“0”;“信号类型”可根据需要任意选择;“信号频率”和“信号振幅”可在屏幕下方“有效输入”限定的范围内任意输入,建议设为 1000 左右;“信号发生器开关”设为“开启”。此时便有正弦信号输入 CODEC

芯片。

系统时钟设置

CODEC 芯片接口等的配置

AD 采样参数设置

条件编译实现采样频率的选择

初始化 DEC5416

通过 CODEC 进行 AD 采样

www.plcworld.cn

Page 52: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

47

9. 运行程序。可以观察收到的数据和显示的图像,数据保存在 dataleft数组中,图像显示的即为 dataleft 数组。如下图显示了采样频率为 44K,采样长度(点)为 1024 点时的采样结果:

显示图像时请注意所显示数组的数据类型及长度。可以修改信号源,继续执行,观察输入不同信号源的执行结果。

10. 重新执行第 6)步,变化采样频率或采样长度,或者退出实验。

6.5.2 脱机实验介绍:

本实验的主要功能是将串口通讯(SEED-DEC5416 与 MMI5402 异步串口通讯)与调试好的 AD 实验结合在一起,形成一个完整的脱机实验程序。

在 A/D 采样的实验主要实现如下功能:在实验中采用 CODEC 芯片 TLV320AIC23B 的立体声输入的双声道的 A/D 采样

通路来实现的。因而在 DSP 与异步串口初始化后,也要对 CODEC 初始化。当系统初始化完成之后开始系统查询主机的命令。当接收到 SEED-MMI5402

系统的 A/D 设置命令时,设置 A/D 采样的长度,数据的通路,A/D 的采样率等参数。当接收到 SEED-MMI5402 系统的 A/D 采样命令时;依据 A/D 设置的参数进行采样,将数据保存在缓冲区。

当接收到 SEED-MMI5402 系统的数据传送命令时;将数据传回 SEED-MMI5402系统进行显示。

此外还响应与 SEED-MMI5402 系统的通讯与系统复位命令。本实验内容分为以下几部介绍:

6.5.2.1 工程包含文件介绍1. da.c:这是实验的主程序,包含了系统的初始化,D/A 转换参数的设置,

D/A 转换的启动。2. ac811.c:对 DAC811 转换芯片操作的函数集。3. da_a.asm:对 D/A 转换的时钟初始化;4. system_int.asm:seed-mmi5402 系统初始化。

www.plcworld.cn

Page 53: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

48

5. vector.asm:seed-mmi5402 的中断向量表。6. uart.asm:对异步串口的寄存器的读与写。7. vector.asm:包含了 VC5416 的中断向量表。8. dec5416.cmd:声明了系统的存贮器配置与程序各段的链接关系。9. Dtk-boot.gel: 系统的初始化文件10. *.h:各子函数的头文件。其中在 comm.h 函数中定义了 AD 实验中所用的命令宏:#define ADSTART 0xAA40 //启动 AD 采样#define ADSET 0xAA41 //AD 设置#define ADDATASEND 0xAA43 //AD 数据传送#define ADOVER 0xAA42 //AD 数据采样结束#define ADGAIN 0xAA44 //AD 前向增益调整/*AD 属性设置 */typedef struct _AdConfig{

unsigned int SampleLong; //AD 采样数据长度unsigned int SampleRate; //AD 采样率unsigned int GainSet; //AD 前向增益调整unsigned int DataLeft; //选择左通路数据还是右通路

}AdConfig, *PAdConfig;/*AD 采样率调整*/#define ADSAMPL8K 0xd //采样率为 8k#define ADSAMPL44K 0x23 //采样率为 44k#define ADSAMPL96K 0x1d //采样率为 96k

6.5.2.2 程序流程图AD 实验的流程图包括两部分:主程序与实验处理的流程图。实验处理是主程

序中的一部分,即是主程序流程图中的实验处理部分。此部分在是第一部分 AD调试程序的基础上进行修改而来的,为了使读者能够更好的理解整合实验的程序与 AD 调试程序的结构不同之处,特地将此部分内容单独介绍。

www.plcworld.cn

Page 54: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

49

N

N

N

Y

Y

Y

Y

开始

信号源设置命令 设置实验属性

AD 转换开始命令 AD 实验程序

数据传送命令 数据回送处理

实验终止命令 终止处理

回到程序主循环

实验处理流程图

串口、AD 初始化

发送握手信号

N

实验处理

Y

N

接收串口数据

判断串口状态

通讯错误

数据处理

通讯错误处理

Y

DSP 初始化

主程序流程图

www.plcworld.cn

Page 55: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

50

6.5.2.3 实验调试

首先将光盘下 03. Examples of Program \ 05. SEED_DTK-DBD 脱机实验程序目录下的 DTK–AD 的文件夹拷贝到 D:盘根目录下。

1. 将 DSP 仿真器与计算机连接好。2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC5416 单元的 J1 相连接。3. 启动计算机,当计算机启动后,打开 SEED-DTK_DBD 的电源。观察

SEED-DTK-IO1 单元的+5V,+3.3V,+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812 的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

4. 等待 LCD 显示器上出现“引导程序启动完成!”,进入 SEED-DTK_DBD 的“实验选项”的菜单下,选择“AD 实验”一项,进入后光标停留在“使用 CCS 选项”处,按 “Enter”键,通过“→”选择是否使用 CCS。在调试时选择使用 CCS。

5. 打开 CCS,进入 CCS 的操作环境。6. 装入 DTK-AD.pjt 工程文件后,添加 Dtk-boot.gel 文件,然后装载 DTK

-AD.out 文件,进行调试。7. 在 AD.c 的 194 行处添加断点,然后设置将 dataright [ ]数组的图形显

示参数,然后进行调试。

6.5.2.4 实验演示在脱机(不接 CCS)的情况下,可以首先进行实验的演示。1. 打开 SEED-DTK_DBD 的电源。观察 SEED-DTK-IO1 单元的+5V,+3.3V,

+15V,-15V 的电源指示灯,SEED_DEC5416 的 D2 以及 SEED-DSK2812的 D2 是否均亮;若有不亮的,请断开电源,检查电源。

2. 等待 LCD 显示器上出现“引导程序启动完成!”。3. 进入 SEED-DTK_DBD 的实验选项的菜单下,选择 AD 转换实验一项。4. 进入实验后,选择不使用 CCS 选项,等待 LCD 显示器上出现“AD 转换

实验 装载成功”之后(AD 实验程序从 MMI5402 的 Flash 装载到

www.plcworld.cn

Page 56: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

51

SEED-DEC5416 的 Flash 处,且程序跳转成功)。即可按菜单指示操作,完成 AD 实验的演示。

6.6 思考题

加深理解音频编/解码芯片 AIC23 的各种功能,如 AD 采集、音频编解码等。

www.plcworld.cn

Page 57: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

52

7 信号处理实验:快速傅立叶变换(FFT)

7.1 实验目的

(1) 了解 FFT 的原理;(2) 了解使用 Matlab 语言实现 FFT 的方法;(3) 了解在 DSP 中 FFT 的设计及编程方法;(4) 熟悉对 FFT 的调试方法;

7.2 实验内容

本试验要求使用 FFT 变换求一个时域信号的频域特性,并从这个频域特性求出该信号的频率值。使用 Matlab 语言实现对 FFT 算法的仿真,然后使用 DSP 汇编语言实现对 FFT 的 DSP 编程。

7.3 实验原理

对于有限长离散数字信号{x[n]},0≤x≤N-1,它的频谱离散数学值{X(K)}可由离散傅氏变换(DFT)求得。DFT 定义为:

1

0

)/2(][)(N

N

nkNjenxKX k=0,1,…,N-1

也可以方便的把它改写成如下形式:

1

0

][)(N

N

nkNWnxKX

式中 WN(有时简写为 W)代表 nkNje )/2( 。不难看出, nkW 是周期性的,且周

期为 N,即

nkN

lNkmNnN WW ))(( m,l=0,±1,±2,……

Wnk的周期性是 DFT 的关键之一。为了强调起见,常用表达式 WN取代 W 以便明确地给出 Wnk的周期为 N。

由 DFT 的定义可以看出,在 x[n]为复数序列的情况下,完全可以直接运算 N

点 DFT 需要 2)1( N 次复数乘法和 N(N-1)次复数加法。因此,对于一些相当大

的 N 值(如 1024 点)来说,直接计算它的 DFT 所需要的计算量是很大的。一个优化的实数 FFT 算法是一个组合以后的算法。原始的 2N 个点的实输入序列组合成一个 N点的复序列,然后对复序列进行 N点的 FFT 运算,最后再由 N点复数输出拆散成 2N 点的复数序列,这 2N 点的复数序列与原始的 2N 点的实数输入序列的 DFT 输出一致。

FFT 的基本思想在于:将原来的 N点序列分成两个较短的序列,这些序列的DFT 可很简单地组合起来得到原序列的 DFT。例如,若 N 为偶数,将原有的 N 点序列分成两个(N/2)点序列,那么计算 N 点 DFT 将只需要约[(N/2)2*2]=N2/2次复数乘法。即比直接计算少作一半乘法。因子(N/2)2 表示直接计算(N/2)

www.plcworld.cn

Page 58: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

53

点 DFT 所需要的乘法次数,而乘数 2代表必须完成两个 DFT。上述处理方法可以反复使用,即(N/2)点的 DFT 计算也可以化成两个(N/4)点 DFT(假定 N/2 为偶数),从而又少作一半乘法。使用这种方法,在组合输入和拆散输出的操作中,FFT 的运算量减半。这样,利用实数 FFT 算法来计算实输入序列的 DFT 的速度几乎是一般复 FFT 算法的两倍。

假定序列{x[n]}的点数 N是 2的幂,按上述处理方法,定义两个分别为 x[n]的偶数项和基数项的(N/2)点序列 x1[n]和 x2[n],即:

x1[n]=x[2n] n=0,1,…,(N/2)-1x2[n]=x[2n+1] n=0,1,…,(N/2)-1

{x[n]}的 N 点 DFT 可写成:

1

0

][)(N

N

nkNWnxKX +

1

0

][N

N

nkNWnx

(n为偶数) (n为奇数)

=

12/

0

2]2[N

N

nkNWnx +

12/

0

)12(]12[N

N

knNWnx

因考虑到 kNW 可写成:

kNW = 2/)2( ][ Nje = )2//()2( Nje = 2/NW

故 X(k)可写为:

12/

02/1 ][)(

N

N

nkNWnxKX +

12/

02/2 ][

N

N

nkN

kN WnxW

= )(1 KX )(KXW kN 2

式中 )(1 KX 和 )(2 KX 是 )(1 nx 和 )(2 nx 的(N/2)点 DFT。上式表明,N点 DFT X

(k)可分解为按上式的规则加以组合的两个(N/2)点 DFT。

7.4 FFT 的高级编程

FFT 算法的 Matlab 语言编程十分简单,直接使用 Matlab 下的 FFT 函数就可以了,可以参考 FFT 函数的帮助文件,使得 Matlab 编程简单方便,这里不再做详细的描述,下面介绍 C语言对 FFT 的编程,了解 FFT 实现的方法。

在本程序中采用地址表查找,其中的数据是用 C语言计算出来,然后输出到文件中拷上去的。其中 FFT 的算法验证的输入是用 C语言生成正弦波和方波的数据放在 FFT_INPUT 中的,其中的C语言程序如下:

#include<stdio.h># include<stdib.h>int signal(int x)(方波子程序){int t=x%8;if(t<=3)return 1;

www.plcworld.cn

Page 59: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

54

else return –1;}void main0{int i,j,k;FILE*fp;Int mm[256];for(i=0;i<=255;i++)mm[i]=(sin(3.141593536*i/4+3.1414/16)*(-32768)/2);正弦波程序//mm[i]=signal(i)*(-32768)/2;k=0;for(i=0;i<=255;i++)

{fp=fopen(“sinsin.txt”, “a”);if(k%8=0)fprintf(fp, “\n .word”);fprintf(fp, “0%xh,”mm[i]);fclose(fp);k++;}}在程序中由于要用到位到序地址计算,如果用汇编则必须使得所分的首地址

为整数,为避免这种情况,采用查表的方法进行位地址的计算,而该表也是由 C语言生成的其程序如下:

#include<stdio.h>#include<stdib.h>#include<math.h>void main0{

int num[256],i,m=0,n,k,q;FILE*fp;

for(i=0;i<=255;i++){num[i]=I;printf(“%d,”,num[i]);}

for(i=0;i<=255;i++){ q=num[i];

for(k=0;k<=7;k++){n=q%2;q=q/2;m=m+n*pow(2,(7-k));}num[i]=m;m=0’

www.plcworld.cn

Page 60: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

55

}k=0;for(i=0;i<=255;i++){fp=fopen(“fft_real.txt”, “a”);if(k%8=0)fprintf(fp, “\n .word”);fprintf(fp, “000%xh,”,num[i]);fclose(fp);k++;}

}在 FFT 的主程序中,是按照每一趟的蝶形来进行运算的,因此,在每一趟的

蝶形中要用到 SIN,COS 的值,这些值也是用 C语言生成的#include<stdio.h>#include<stdib.h>#include<math.h>#define pi 3.1415926536maim(){

int i,j=0,k,m,n;FILE*fp;static float a0,a1,b1,b2;static int w[512][2];for((i=0;i<8;i++){for(m=0;m<pow(2,i);m++){w[m][0]=(cos(2*pi*m/pow(2,i+1))*32767);w[m][1]=( sin(2*pi*m/pow(2,i+1))*(-32767);fp=fopen(“xossin.txt”, “a”);if(j%8=0)fprintf(fp, “\n .word ”);j=j+2;fprintf(fp, “0%xh,0%xh,”,w[m][0], w[m][1]);fclose(fp)}

}}

其中得到值按照用到的顺序排列,使用时只要顺序取出就可以了。FFT 的主体部分又分为 5 各小部分,其中的顺序如下:1.除掉波形总的直流

部分 2.将要进行 FFT 变换的数据按照位到序的顺序装入到蝶形运算区 3.进行蝶形运算 4.进行功率谱计算 5.求波形的频率

其程序的解释见程序注释。

7.5 FFT 的 DSP 编程

从上面FFT实现的过程可以看出,其实现步骤主要有以下四步:

www.plcworld.cn

Page 61: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

56

(1) 将输入序列压缩和位倒序。(2) N点的复数 FFT。(3) 奇数号部分和偶数号部分分离。(4) 产生最后的输出数据。

最初,将原始输入的 2N 点的实序列 a(n),存储在 4N 大小的数据处理缓冲区的下半部分。

.asg AR1,FFT_TWID_PLD #FFT_DP,DPSTM #SYSTEM_STACK,SP

rfft_task:STM #FFT_ORIGIN,AR3 ; to dataSTM #data_input,AR4RPT #K_FFT_SIZE*2-1

;K_FFT_SIZE=128MVDD *AR4+,*AR3+

0C00h0C01h……0CFEh0CFFh0D00h a(0)0D01h a(1)…… ……0DFFEh a(254)0DFFFh a(255)

然后通过子程序调用,有以下几步计算①去除原始数据的直流分量。由于采样的需要,信号发生器输出的为叠加了直流分量的正弦信号,所以有

此一步。.asg AR3,FFT_INPUT.def data_ave

data_ave:STM #FFT_ORIGIN,FFT_INPUT ; AR3 1 st original inputLD #0,ARPT #K_FFT_SIZE*2-1ADD *FFT_INPUT+,A ;累加原始数据到 ANOPLD A,#-1-K_LOGN ;A右移8位,即A/256,输入数

据取平均STM #K_FFT_SIZE*2-1,BRCSTM #FFT_ORIGIN,FFT_INPUT ; AR3 1 st original inputRPTB ave_end-1SUB *FFT_INPUT,A,B ;B=A-(*FFT_INPUT)

www.plcworld.cn

Page 62: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

57

NEG B ;B=(*FFT_INPUT)-A,即将原始数据去除直流分量

STL B,-1,*FFT_INPUT+ ;除以2以防止溢出后存入原址ave_end:

NOPRET②将输入序列位倒序存储,以使算法结束后的输出序列为自然顺序。首先,将 2N 点的实输入序列拷贝到标记为 FFT_ORIGIN 的连续内存空间中,

理解为一个 N 点的复数序列 d(n)。时序列中索引为偶数的作为 d(n)的实部,索引为奇数的作为 d(n)的虚部。这一部就是压缩。然后,将得到的复数序列位倒序存储到数据处理缓冲区 fft_data。

0C00h R(0)=a(0)0C01h I(0)=a(1)0C02h R(64)=a(128)0C03h I(64)= a(129)…… ……0CFCh R(63)=a(126)0CFDh I(63)=a(127)0CFEh R(127)=a(254)0CFFh I(127)=a(255)

0D00h a(0)0D01h a(1)0D02h a(2)0D03h a(3)…… ……0DFCh a(252)0DFDh a(253)0DFEh a(254)0DFFh a(255)

;Bit Reversal Routine.asg AR2,REORDERED_DATA.asg AR3,ORIGINAL_INPUT.asg AR7,DATA_PROC_BUF.def bit_rev

bit_rev:SSBX FRCT ;FRCT=1;准备小数乘

法STM #FFT_ORIGIN,ORIGINAL_INPUT ; AR3 -> 1 st original

inputSTM #fft_data,DATA_PROC_BUF ; AR7 -> data

processing bufferMVMM DATA_PROC_BUF,REORDERED_DATA ; AR2 -> 1st bit-reversed

data;DATA_PROC_BUF,REORDERED_DATA 同指向 fft_data;ORIGINAL_INPUT 指向 FFT_ORIGINSTM #K_FFT_SIZE-1,BRCRPTBD bit_rev_end-1STM #K_FFT_SIZE,AR0 ; AR0 = 1/2 size of circ

bufferMVDD *ORIGINAL_INPUT+,*REORDERED_DATA+MVDD *ORIGINAL_INPUT-,*REORDERED_DATA+MAR *ORIGINAL_INPUT+0B ;位倒序

www.plcworld.cn

Page 63: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

58

bit_rev_end:RET ; return to Real FFT main

module③一个 N点的复数序列存储在数据处理缓冲区。

对d(n)作 fft 变换,结果得到 D(k)=f{d(n)}=R(k)+jI(k)。0C00h R(0)0C01h I(0)0C02h R(1)0C03h I(1)…… ……0CFCh R(126)0CFDh I(126)0CFEh R(127)0CFFh I(127)

0D00h a(0)0D01h a(1)0D02h a(2)0D03h a(3)…… ……0DFCh a(252)0DFDh a(253)0DFEh a(254)0DFFh a(255)

;256-Point Real FFT Routine.asg AR1,GROUP_COUNTER.asg AR2,PX.asg AR3,QX.asg AR4,WR.asg AR5,WI.asg AR6,BUTTERFLY_COUNTER.asg AR7,DATA_PROC_BUF ; for Stages 1 & 2.asg AR7,STAGE_COUNTER ; for the remaining

stages.def fft

fft:; Stage 1-----------------------------------------------------------------------------------------------------------

STM #K_ZERO_BK,BK ;BK=0 so that *ARn+0% = *ARn+0;循环缓冲器大小为0

LD #-1,ASM ; outputs div by 2 ateach stage

MVMM DATA_PROC_BUF,PX ; PX -> PRLD *PX,A ; A := PRSTM #fft_data+K_DATA_IDX_1,QX ; QX -> QRSTM #K_FFT_SIZE/2-1,BRCRPTBD stage1end-1STM #K_DATA_IDX_1+1,AR0SUB *QX,16,A,B ; B := PR-QRADD *QX,16,A ; A := PR+QRSTH A,ASM,*PX+ ; PR’:= (PR+QR)/2ST B,*QX+ ; QR’:= (PR-QR)/2

www.plcworld.cn

Page 64: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

59

||LD *PX,A ; A := PISUB *QX,16,A,B ; B := PI-QIADD *QX,16,A ; A := PI+QISTH A,ASM,*PX+0 ; PI’:= (PI+QI)/2ST B,*QX+0% ; QI’:= (PI-QI)/2||LD *PX,A ; A := next PR

stage1end:; Stage 2

MVMM DATA_PROC_BUF,PX ; PX -> PRSTM #fft_data+K_DATA_IDX_2,QX ; QX -> QRSTM #K_FFT_SIZE/4-1,BRCLD *PX,A ; A := PRRPTBD stage2end-1STM #K_DATA_IDX_2+1,AR0

; 1st butterflySUB *QX,16,A,B ; B := PR-QRADD *QX,16,A ; A := PR+QRSTH A,ASM,*PX+ ; PR’:= (PR+QR)/2ST B,*QX+ ; QR’:= (PR-QR)/2||LD *PX,A ; A := PISUB *QX,16,A,B ; B := PI-QIADD *QX,16,A ; A := PI+QISTH A,ASM,*PX+ ; PI’:= (PI+QI)/2STH B,ASM,*QX+ ; QI’:= (PI-QI)/2

; 2nd butterflyMAR *QX+ADD *PX,*QX,A ; A := PR+QISUB *PX,*QX-,B ; B := PR-QISTH A,ASM,*PX+ ; PR’:= (PR+QI)/2SUB *PX,*QX,A ; A := PI-QRST B,*QX ; QR’:= (PR-QI)/2||LD *QX+,B ; B := QRST A, *PX ; PI’:= (PI-QR)/2||ADD *PX+0%,A ; A := PI+QRST A,*QX+0% ; QI’:= (PI+QR)/2||LD *PX,A ; A := PR

stage2end:; Stage 3 thru Stage

logN-1STM #K_TWID_TBL_SIZE,BK ; BK = twiddle table size

alwaysST #K_TWID_IDX_3,d_twid_idx ; init index of

twiddle tableSTM #K_TWID_IDX_3,AR0 ; AR0 = index of twiddle

www.plcworld.cn

Page 65: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

60

tableSTM #cosine,WR ; init WR pointerSTM #sine,WI ; init WI pointerSTM #K_LOGN-2-1,STAGE_COUNTER ; init stage counterST #K_FFT_SIZE/8-1,d_grps_cnt ; init group counterSTM #K_FLY_COUNT_3-1,BUTTERFLY_COUNTER ; init butterfly counterST #K_DATA_IDX_3,d_data_idx ; init index for input

datastage:

STM #fft_data,PX ; PX -> PRLD d_data_idx, AADD *(PX),ASTLM A,QX ; QX -> QRMVDK d_grps_cnt,GROUP_COUNTER ; AR1 contains group

counter;A circular buffer of size R must start on a N-bit boundary (that is, theN LSBs;of the base address of the circular buffer must be 0), where N is thesmallest;integer that satisfies 2 N > R. The value R must be loaded into BK.group:

MVMD BUTTERFLY_COUNTER,BRC ; # of butterflies in each grpRPTBD butterflyend-1LD *WR,T ; T := WRMPY *QX+,A ; A := QR*WR || QX->QIMACR *WI+0%,*QX-,A ; A := QR*WR+QI*WI || QX->QRADD *PX,16,A,B ; B := (QR*WR+QI*WI)+PRST B,*PX ; PR’:=((QR*WR+QI*WI)+PR)/2||SUB *PX+,B ; B := PR-(QR*WR+QI*WI) || PX->PIST B,*QX ;QR’:=(PR-(QR*WR+QI*WI))/2||MPY *QX+,A ; A := QR*WI [T=WI] || QX->QIMASR *QX,*WR+0%,A ; A := QR*WI-QI*WRADD *PX,16,A,B ; B := (QR*WI-QI*WR)+PIST B,*QX+ ; QI’ :=((QR*WI-QI*WR)+PI)/2 ||

QX->QR||SUB *PX,B ; B := PI-(QR*WI-QI*WR)LD *WR,T ; T := WRST B,*PX+ ; PI’:= (PI-(QR*WI-QI*WR))/2 ||

PX->PR||MPY *QX+,A ; A := QR*WR || QX->QI

butterflyend:; Update pointers for next group

PSHM AR0 ; preserve AR0

www.plcworld.cn

Page 66: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

61

MVDK d_data_idx,AR0MAR *PX+0 ; increment PX for next groupMAR *QX+0 ; increment QX for next groupBANZD group,*GROUP_COUNTER-POPM AR0 ; restore AR0MAR *QX-

; Update counters and indices fornext stage

LD d_data_idx,ASUB #1,A,B ; B = A-1STLM B,BUTTERFLY_COUNTER ; BUTTERFLY_COUNTER = #flies-1STL A,1,d_data_idx ; double the index of dataLD d_grps_cnt,ASTL A,ASM,d_grps_cnt ; 1/2 the offset to next groupLD d_twid_idx,ASTL A,ASM,d_twid_idx ; 1/2 the index of twiddle tableBANZD stage,*STAGE_COUNTER-MVDK d_twid_idx,AR0 ; AR0 = index of twiddle table

fft_end:RET ; return to Real FFT main module④将 fft 的计算结果分离为 RP(偶实部),RM(奇实部),IP(偶虚部),IM

(奇虚部)。RP(k)=RP(N-k)=0.5*(R(k)+R(N-k))RM(k)=-RM(N-k)=0.5*(R(k)-R(N-k))IP(k)=IP(N-k)=0.5*(I(k)+I(N-k))IM(k)=-IM(N-k)=0.5*(I(k)-I(N-k))RP(0)=R(0)IP(0)=I(0)RM(0)=IM(0)=RM(N/2)=IM(N/2)=0RP(N/2)=R(N/2)IP(N/2)=I(N/2)

0C00h RP(0)=R(0)0C01h IP(0)=I(0)0C02h RP(1)0C03h IP(1)…… ……0CFCh RP(126)0CFDh IP(126)0CFEh RP(127)0CFFh IP(127)

0D00h a(0)0D01h a(1)0D02h IM(127)0D03h RM(127)…… ……0DFCh IM(2)0DFDh RM(2)0DFEh IM(1)0DFFh RM(1)

;====================================================================;Unpack 256-Point Real FFT Output

www.plcworld.cn

Page 67: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

62

.def unpackunpack:; Compute intermediate values RP, RM, IP, IM

.asg AR2,XP_k

.asg AR3,XP_Nminusk

.asg AR6,XM_k

.asg AR7,XM_Nminusk

STM #fft_data+2,XP_k ; AR2 -> R[k] (tempRP[k])

STM #fft_data+2*K_FFT_SIZE-2,XP_Nminusk ; AR3 -> R[N-k](tempRP[N-k])

STM #fft_data+2*K_FFT_SIZE+3,XM_Nminusk ; AR7 -> temp RM[N-k]STM #fft_data+4*K_FFT_SIZE-1,XM_k ; AR6 -> temp RM[k]STM #-2+K_FFT_SIZE/2,BRCRPTBD phase3end-1STM #3,AR0ADD *XP_k,*XP_Nminusk,A ; A := R[k]+R[N-k]

=2*RP[k]SUB *XP_k,*XP_Nminusk,B ; B := R[k]-R[N-k]

=2*RM[k]STH A,ASM,*XP_k+ ; store RP[k] at AR[k]STH A,ASM,*XP_Nminusk+ ; store RP[N-k]=RP[k] at AR[N-k]STH B,ASM,*XM_k- ; store RM[k] at AI[2N-k]NEG B ; B := R[N-k]-R[k] =2*RM[N-k]STH B,ASM,*XM_Nminusk- ; store RM[N-k] at AI[N+k]ADD *XP_k,*XP_Nminusk,A ; A := I[k]+I[N-k] =2*IP[k]SUB *XP_k,*XP_Nminusk,B ; B := I[k]-I[N-k] =2*IM[k]STH A,ASM,*XP_k+ ; store IP[k] at AI[k]STH A,ASM,*XP_Nminusk-0 ; store IP[N-k]=IP[k] at AI[N-k]STH B,ASM,*XM_k- ; store IM[k] at AR[2N-k]NEG B ; B := I[N-k]-I[k] =2*IM[N-k]STH B,ASM,*XM_Nminusk+0 ; store IM[N-k] at AR[N+k]

phase3end:ST #0,*XM_k- ; RM[N/2]=0ST #0,*XM_k ; IM[N/2]=0

进而得到原始序列的傅利叶变换:AR(k)=AR(2N–k)=RP(k)+cos(k/N)*IP(k)–sin(k/N)*RM(k)AI(k)=–AI(2N–k)=IM(k)–cos(k/N)*RM(k)–sin(k/N)*IP(k)AR(0)=RP(0)+IP(0)AI(0)=IM(0)–RM(0)AR(N)=R(0)–I(0)AI(N)=0这里:

www.plcworld.cn

Page 68: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

63

A(k)=A(2N–k)=AR(k)+j AI(k)=F{a(n)}

0C00h AR(0)0C01h AI(0)0C02h AR(1)0C03h AI(1)…… ……0CFEh AR(127)0CFFh AI(127)

0D00h AR(128)0D01h AI(128)…… ……0DFCh AR(254)0DFDh AI(254)0DFEh AR(255)0DFFh AI(255)

; Compute AR[0],AI[0], AR[N], AI[N].asg AR2,AX_k.asg AR4,IP_0.asg AR5,AX_NSTM #fft_data,AX_k ; AR2 -> AR[0] (tempRP[0])STM #fft_data+1,IP_0 ; AR4 -> AI[0] (tempIP[0])STM #fft_data+2*K_FFT_SIZE+1,AX_N ; AR5 -> AI[N]ADD *AX_k,*IP_0,A ; A := RP[0]+IP[0]SUB *AX_k,*IP_0,B ; B := RP[0]-IP[0]STH A,ASM,*AX_k+ ; AR[0] = (RP[0]+IP[0])/2ST #0,*AX_k ; AI[0] = 0MVDD *AX_k+,*AX_N- ; AI[N] = 0STH B,ASM,*AX_N ; AR[N] = (RP[0]-IP[0])/2

; Compute final output values AR[k], AI[k].asg AR3,AX_2Nminusk.asg AR4,COS.asg AR5,SINSTM #fft_data+4*K_FFT_SIZE-1,AX_2Nminusk ; AR3 ->

AI[2N-1](temp RM[1])STM #cosine+K_TWID_TBL_SIZE/K_FFT_SIZE,COS ; AR4 -> cos(k*pi/N)STM #sine+K_TWID_TBL_SIZE/K_FFT_SIZE,SIN ; AR5 -> sin(k*pi/N)STM #K_FFT_SIZE-2,BRCRPTBD phase4end-1STM #K_TWID_TBL_SIZE/K_FFT_SIZE,AR0 ; index of twiddle tablesLD *AX_k+,16,A ; A := RP[k]

||AR2->IP[k]MACR *COS,*AX_k,A ;

A :=A+cos(k*pi/N)*IP[k]MASR *SIN,*AX_2Nminusk-,A ; A := A-sin(k*pi/N)*RM[k] ||

AR3->IM[k]LD *AX_2Nminusk+,16,B ; B := IM[k] ||AR3->RM[k]MASR *SIN+0%,*AX_k-,B ; B := B-sin(k*pi/N)*IP[k] ||

AR2->RP[k]MASR *COS+0%,*AX_2Nminusk,B ; B := B-cos(k*pi/N)*RM[k]

www.plcworld.cn

Page 69: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

64

STH A,ASM,*AX_k+ ; AR[k] = A/2STH B,ASM,*AX_k+ ; AI[k] = B/2NEG B ; B := -BSTH B,ASM,*AX_2Nminusk- ; AI[2N-k] = -AI[k]= B/2STH A,ASM,*AX_2Nminusk- ; AR[2N-k] = AR[k] = A/2

phase4end:RET ; returntoRealFFTmain module

⑤计算功率谱密度P[k]=AR(k)2+ AI(k)2

;=====================================================;Compute the Power Spectrum of the Complex Output of the 256-Point RealFFT

.asg AR2,AX

.asg AR3,OUTPUT_BUF

.def power

power:STM #data_output,OUTPUT_BUF ; AR3 points to output bufferSTM #K_FFT_SIZE*2-1,BRCRPTBD power_end-1STM #fft_data,AX ; AR2 points to AR[0]SQUR *AX+,A ; A := AR^2SQURA *AX+,A ; A := AR^2 + AI^2STH A,*OUTPUT_BUF+

power_end:RET ; return to main program

⑥计算输入信号主频f 输入= Kfs/2N

其中 P ( K ) 为功率谱的最大值,fs为采样频率,2N 为样本点数.def find.asg AR2,POWER.asg AR3,STORE.asg AR4,INDEX.asg AR5,MAXFREQ

find:STM #data_output,POWERSTM #data_find,STORESTM #data_index,INDEXSTM #data_freq,MAXFREQLD #0,ALD #0,B

STL A,*STORESTM #K_FFT_SIZE-1,BRCRPTB find_end-1SUB *POWER,*STORE,ABC next,ALEQMVDD *POWER,*STORESTL B,*INDEX

next:MAR *POWER+ADD #1,B

find_end:RSBX FRCT

www.plcworld.cn

Page 70: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

65

MPY*INDEX,#K_SAMPLE_RATE,A ;A*Sample rate

LDA,#-1-K_LOGN ;A/256

STL A,*MAXFREQRET

www.plcworld.cn

Page 71: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

66

7.6 CCS 使用步骤

1.打开 CCS,新建立一工程文件 FFT.pjt。2.将汇编源文件fft.asm、中断向量表vectors.asm和链接命令文件fft.cmd

添加到 fft.pjt 中。3.在 project 菜单下选择 build options 选项,选取 Linker 选项, 调整为

-q -c -m".\Debug\fft.map" -o".\Debug\fft.out" -w –x。点击编译,链接图标,通过后生成 fft.out 文件和 fft.map 文件,其余选项可默认。

4.在 file 菜单下,选择 load program 选项,将生成的 fft.out 文件装载到 DSP 中。

5.运行程序,在 view 菜单下选择 watch window 选项来观测变量值。6.可以在 view 菜单下选择 graph/time frequence,弹出如下对话框。

按照要求,设置好相应的参数,来观测信号输入和经 FFT 变换后输出数据的

波形。

7.具体调试执行程序时,可使用断点,单步执行等方式。

7.7 实验结果

1. 程序运行起始地址为 3000H,输入的数据在数据空间地址为 1400H,长度为 400H,输出的功率谱在数据空间地址 1800H,长度为 400H。

2. 程序运行前的输入数据的时域图和频域图如下:

www.plcworld.cn

Page 72: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

67

图 1 输入数据的时域图

图 2 输入数据的频域图

图 3 经 FFT 变换后输出数据的功率谱图

图1中的横坐标表示点数;图2中的横坐标表示频率,图中设置为500Hz。

www.plcworld.cn

Page 73: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

68

图 1和图 2在调入程序到 CCS 中,在程序运行之前就可以得到。运行程序,可以得到图 3,图 3 为程序运行后计算出输入信号的功率谱

图,直接在 CCS 中描点画图就可以得到图 3。

7.8 思考题

从图 2 中可以看到,输入信号的频率成分为 170Hz 和 500hz,而图 3 中频率成分为 170Hz,这是由于 CCS 内部的 FFT 变换已经将频率的高一半去除。这是如何引起的?

www.plcworld.cn

Page 74: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

69

8 信号处理实验:数字滤波器(IIR)

8.1 实验目的

(5) 了解 IIR 滤波器的原理及使用方法;(6) 了解使用 Matlab 语言设计 IIR 滤波器的方法;(7) 了解 DSP 对 IIR 滤波器的设计及编程方法;(8) 熟悉对 IIR 滤波器的调试方法;

8.2 实验内容

本试验要求设计滤波器采样频率为 1000hz,截止频率 200hz 的高通滤波器。设计 IIR 滤波器实现上面要求。

输入信号频率为 50HZ 和 400HZ 的合成信号,目的是通过我们设计的滤波器将 50HZ 的信号滤掉,余下 400HZ 的信号成分,达到滤波的效果。

8.3 实验原理

数字滤波器的输入x[k]和输出y[k]之间的关系可以用如下常系数线性差分方程及其 z变换描述:

系统的转移函数为:

设 N=M,则传输函数变为:

转换成极零点表示为:

式中, jz 表示零点, jp 表示极点,它具有 N个零点和 N个极点,如果任何一

个极点在 Z 平面单位圆外,则系统不稳定。如果系数 bj全部为 0,滤波器成为非递归的 FIR 滤波器,这时系统没有极点,因此 FIR 滤波器总是稳定的。对于IIR 滤波器,有系数量化敏感的缺点。由于系统 对序列施加的算法,是由加法、

延时和常系数乘三种基本运算的组合,所以可以用不同结构的数字滤波器来实现而不影响系统总的传输函数。图 5.1 是四阶直接型 IIR 滤波器的结构。

N

k

kk

M

k

kk

za

zb

zXzY

zH

0

1

1)()(

)(

Nn

Nn

zbzbzazaa

zH

11

110

1)(

N

j j

j

pz

zzCzH

1

)(

][][][0 1

ikybikxakyN

i

M

iii

www.plcworld.cn

Page 75: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

70

图 1 四阶直接型 IIR 滤波器的结构

8.4 实验程序设计

1.滤波器的 Matlab 语言设计

编写 matlab 程序,生成 FIR 滤波器系数后,附到 DSP 汇编语言程序中。fs=1000;fs2=fs/2;

f1=50;f2=400;

pi=3.141592653;

i=0:1:255

x=sin(2*pi*f1*i/fs)+sin(2*pi*f2*i/fs)

X=fft(x,512);

P1=X.*conj(X)/512;

subplot(2,1,1);plot(P1(1:256))

wp=100/500;ws=300/500;

%[n,wn]=buttord(wp,ws,1,40);%this is low pass filter

%[b,a]=butter(n,wn);

[n,wn]=buttord(ws,wp,1,40);% this is for high pass filter

[b,a]=butter(n,wn,'high');

subplot(2,2,2);freqz(b,a,512,1000)

y=filter(b,a,x);

Y=fft(y,512);

P=Y.*conj(Y)/512;

%f=1000*(0:255)/512;

subplot(2,1,2);

plot(P(1:256))

n

a=a*2^12

b=b*2^12

www.plcworld.cn

Page 76: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

71

wn

下图是对应频率特性图:

图 2 滤波器的频率特性图

下图是滤波后的功率谱图:

图 3 滤波后的信号功率谱图

2.编写一输入信号程序,文件名为 firinput.c。输入数据为 50hz 和 400hz的合成信号,采样率为 1000hz,256 个样点。

3.DSP 汇编语言程序设计。由汇编源文件 filter.asm,中断向量表vectors.asm 和链接命令文件 filter.cmd 组成。

8.5 实验步骤

1.打开 CCS,新建立一工程文件 iir.pjt。2.将汇编源文件 filter.asm、中断向量表 vectors.asm 和链接命令文件

filter.cmd 添加到 iir.pjt 中。3.在 project 菜单下选择 build options 选项,选取 Linker 选项, 调整为

-q -c -m".\Debug\filter.map" -o".\Debug\filter.out" -w –x。点击编译,链接图标,通过后生成 filter.out 文件和 iir.map 文件,其余选项可默认。

4.在 file 菜单下,选择 load program 选项,将生成的 filter.out 文件装载到 DSP 中。

5.运行程序,在 view 菜单下选择 watch window 选项来观测变量值。依次输入 inputdata 和 filterdata 来观测输入输出变量值,这两个变量分别为滤波前的输入数据和滤波后输出数据的首地址。

www.plcworld.cn

Page 77: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

72

6.可以在 view 菜单下选择 graph/time frequence,弹出如下对话框。

按照要求,设置好相应的参数,来观测输入和输出数据的波形。7.具体调试执行程序时,可使用断点,单步执行等方式。

8.6 程序运行结果

根据提供的配置文件,其中滤波前的数据首地址放在数据存储空间的地址384H 处,滤波后的数据首地址放在数据存储空间的地址 264H。

图 4 滤波前 CCS 中的数据时域波形

www.plcworld.cn

Page 78: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

73

图 5 滤波前 CCS 中的数据频域波形

图 6 滤波后 CCS 中的数据时域波形

www.plcworld.cn

Page 79: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

74

图 7 滤波后 CCS 中的数据频域波形

8.7 思考题

1.为什么要对 matlab 程序生成的系数进行调整,即将浮点数转换成整数?2.试改变输入的信号(保证一个频率在通带范围内,一个在通带范围外),

进行相应的数据调整,然后在 CCS 底下观测看输入数据波形。3.可进行滤波器系数的调整再进行相应滤波,然后在 CCS 底下看输出数据

波形情况有何变化。

www.plcworld.cn

Page 80: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

75

9 信号处理实验:数字滤波器(FIR)

9.1 实验目的

(1)了解 FIR 滤波器的原理及使用方法;(2)了解使用 Matlab 语言设计 FIRR 滤波器的方法;(3)了解 DSP 对 FIR 滤波器的设计及编程方法;(4)熟悉对 FIR 滤波器的调试方法;

9.2 实验内容

本试验要求设计滤波器采样频率为 1000hz,截止频率 300hz 的低通滤波器。设计 FIR 滤波器实现上面要求。

输入信号频率为 40HZ 和 480HZ 的合成信号,目的是通过我们设计的滤波器将 480HZ 的信号滤掉,余下 40HZ 的信号成分,达到滤波的效果。

9.3 实验原理

一个线性位移不变系统的输出序列 y(n)和输入序列 x(n)之间的关系,应满足常系数线性差分方程:

x(n): 输入序列,y(n): 输出序列,ai、bi : 滤波器系数, N: 滤波器的阶数。

在式上式中,若所有的 ai 均为 0,则得 FIR 滤波器的差分方程:

对上式进行 z 变换,可得 FIR 滤波器的传递函数:

FIR 滤波器的结构

FIR 滤波器的单位冲激响应 h(n)为有限长序列。

若 h(n)为实数,且满足偶对称或奇对称的条件,则 FIR 滤波器具有线性相位特性。

z-1z-1x(n) y(n)

x(n-1) x(n-N+1)

b0

b1

bN-2

bN-1

z-1

0)()()(1

1

0

ninyainxbnyM

ii

N

ii

)()(1

0

N

ii inxbny

)()(

)(1

0

N

i

ii zb

zXzY

zH

www.plcworld.cn

Page 81: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

76

偶对称:h(n)= h(N-1-n);奇对称:h(n)= -h(N-1-n)。

偶对称线性相位 FIR 滤波器的差分方程:

N— — 偶数

在数字滤波器中,FIR 滤波器具有如下几个主要特点:

① FIR 滤波器无反馈回路,是一种无条件稳定系统;

② FIR 滤波器可以设计成具有线性相位特性。

本实验程序设计的就是一种偶对称的线性相位滤波器。

程序算法实现采用循环缓冲区法。

算法原理:

① 在数据存储器中开辟一个N个单元的缓冲区(滑窗),用来存放最新的N个输入样本;

② 从最新样本开始取数;

③ 读完最老样本后,输入最新样本来代替最老样本,而其他数据位置不变;

④ 用 BK 寄存器对缓冲区进行间接寻址,使缓冲区地址首尾相邻。

9.4 实验程序

1.滤波器的 Matlab 语言设计编写 matlab 程序,生成 FIR 滤波器系数后,附到 DSP 汇编语言程序中。Matlab 程序如下:

f=[0 0.6 0.6 1];

m=[1 1 0 0]

b=firls(36,f,m)

freqz(b,1,512)

b=b*2^15

频率响应图如下:

图 1 滤波器的频率特性图

相位特性图如下:

)]1()([)(1

2

0

N

ii iNnxinxbny

www.plcworld.cn

Page 82: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

77

图 2 滤波器的相位特性图

2.编写一输入信号程序,文件名为 firinput.c。输入数据为 40hz 和 480hz的合成信号,采样率为 1000hz,256 个样点。

3. DSP 汇编语言程序设计。由汇编源文件 fir.asm,中断向量表 vectoes.asm和链接命令文件 fir.cmd 组成。

9.5 实验步骤

1.打开 CCS,新建立一工程文件 fir.pjt。2.将汇编源文件fir.asm、中断向量表vectors.asm和链接命令文件fir.cmd

添加到 fir.pjt 中。3.在 project 菜单下选择 build options 选项,选取 Linker 选项, 调整为

-q -c -m".\Debug\fir.map" -o".\Debug\fir.out" -w –x。点击编译,链接图标,通过后生成 fir.out 文件和 firr.map 文件,其余选项可默认。

4.在 file 菜单下,选择 load program 选项,将生成的 fir.out 文件装载到 DSP 中。

5.运行程序,在 view 菜单下选择 watch window 选项来观测变量值。依次输入 input 和 output 来观测输入输出变量值,这两个变量分别为滤波前的输入数据和滤波后输出数据的首地址。

6.可以在 view 菜单下选择 graph/time frequence,弹出如下对话框。

www.plcworld.cn

Page 83: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

78

按照要求,设置好相应的参数,来观测输入和输出数据的波形。7.具体调试执行程序时,可使用断点,单步执行等方式。

9.6 实验结果

程序运行结果如下:根据提供的配置文件,其中滤波前的数据首地址放在数据存储空间的地址

60H 处,滤波后的数据首地址放在数据存储空间的地址 4000H。

图 3 滤波前 CCS 中的数据时域波形

www.plcworld.cn

Page 84: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

79

图 4 滤波前 CCS 中的数据频域波形

图 5 滤波后 CCS 中的数据时域波形

www.plcworld.cn

Page 85: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

80

图 6 滤波后 CCS 中的数据频域波形

9.7 思考题

1.为什么要对 matlab 程序生成的系数进行调整,即将浮点数转换成整数?2.试改变输入的信号(保证一个频率在通带范围内,一个在通带范围外),

进行相应的数据调整,然后在 CCS 底下观测看输入数据波形。3.可进行滤波器系数的调整再进行相应滤波,然后在 CCS 底下看输出数据

波形情况有何变化。

www.plcworld.cn

Page 86: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

81

10 信号处理实验:数字信号发生器

10.1 实验目的

(1)了解产生信号的两种方法及各自的优缺点;(2)熟悉使用 C语言编写较复杂的程序;(3)熟悉 C语言对外设的访问;(4)熟悉使用汇编语言编写较复杂的程序 ;

10.2 实验内容

本试验要求产生连续的信号,这些连续的信号可以是方波、锯齿波、三角波、余弦波等其他各种波形,各种波形产生的原理基本相同,本实验以产生连续的余弦波为例,如果需要产生其他波形,请参考本实验的设计。

10.3 实验原理

产生连续的波形的方法主要有两种,第一种方法为查表法,即事先将需要输出的数据计算好,存储在 DSP 中,然后依次输出就可以了。查表法的优点是速度快,可以产生频率较高的波形,而且不占用 DSP 的计算时间;查表法的缺点是在于需要占用 DSP 的内部的存储空间,尤其对采样频率尤其比较大的输出波形,这样,需要占用的内部的空间将更大,而 DSP 内部的存储空间毕竟有所限制。这样使得查表法的应用场合十分有限。

第二种方法为计算法,即采用计算的方法依次计算数据而后输出,然后再计算而后输出。计算法的优缺点正好和查表法相反。其优点是不占用 DSP 的存储空间,其缺点是占用 DSP 的计算时间,使得执行程序的开销变大。

由于查表法实现较为方便,本实验仅介绍计算法产生一个余弦波信号,从DA 输出。由余弦信号的递推公式:

])2cos[(])1cos[(cos2)cos( xnxnxnx

从上式得知,如果需要产生连续的余弦信号,必须知道首先两个余弦值的大小,然后就可以利用上式计算出后面的数据。

10.4 实验程序设计

本实验程序基于以上设计思路,使用 C 语言实现连续余弦波的输出,主程序如下:/* Program for generates a sequence cosine signal *//* used wt-5410usb in dsp tms320vc5410 *//* and send this signal to ad50(at wt-5410usb) *//* If you use oscillograph you can see this signal *//* Designed by wcang.axn.mpin *//* 2002.6.8 *//* All rights reserved. Property of wcang.axn.mpin *//* "@(#) DSP/BIOS 4.51.0 06-10-02 (wcang.axn.mpin)" */

www.plcworld.cn

Page 87: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

82

ioport unsigned port0bfff;

#define IOSR port0bfff#define _cosx 0.999390827

#pragma DATA_SECTION(_COSX,"data_buf1")float _cosx[200];#pragma DATA_SECTION(dacdata,"data_buf2")int dacdata[180];

void delay(void);void main(void){unsigned int i=0;_cosx[0]=1.000;dacdata[0]=4095;_cosx[1]=_COSX;dacdata[1]=_COSX*2047+2048;

i=1;while(1)

{if(i++>179)

break;_cosx[i]=2*_COSX*_cosx[i-1]-_cosx[i-2];dacdata[i]=_cosx[i]*2047+2048;

}i=0;while(1)

{if(i>179)

i=0;IOSR=dacdata[i++];/*delay*/

}}

void delay(void){

long int j;for(j=0; j<200; j++)asm("_nop");

}程序所使用的配置文件为:

www.plcworld.cn

Page 88: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

83

-c-o cos.out-l rts.lib

MEMORY{

PAGE 0:PARAM : origin=0x1000, length=0x0efd

PAGE 1:DARAM : origin=0x2000, length=0x2000

}

SECTIONS{

.text : {} > PARAM PAGE 0

.cinit: {} > PARAM PAGE 0

.data: {} > DARAM PAGE 1

.bss: {} > DARAM PAGE 1

.const: {} > DARAM PAGE 1}

对程序的说明:1.使用标准 C语言编写程序,使用 CCS 自带的 C Compiler 将 C 语言文件转换成

标准汇编语言文件;2.CCS 中的 C Compiler 对程序中用到的变量是自动分配 RAM 空间的,用户也可

以自己分配 RAM 的特定空间给特定的变量;3.标准 C 语言不提供直接访问硬件的语句,所以对硬件的访问必须使用 CCS 提

供的硬件访问语句;4.如果必要,可以使用 C和汇编的嵌套编程,使用 asm“_xxxxx”;

如果需要改变数据的大小,从硬件上说,就是改变信号的幅值,可以将数据乘以或除以相应的因子就可以了。也可以在数据上加上或减去一个数值,结果可以使得波形在水平轴上移位,从硬件上说,就是加上或减去直流分量。

如果需要改变信号产生的频率,只需要在送数据到 DA 时加上相应的延时就可以了。理论上说,频率可以无限制的低,最低为 0HZ;然而频率的上限会有一定的限制,这些限制包括 DA 的转换时间的限制以及 DSP 发送数据的限制,DA 的限制是不能改变的,除非更换 DA,DSP 发送数据的限制可以通过改变程序,优化程序代码来提高发送的速度。最快的频率是采用纯汇编编写程序,以提高信号发生的频率。

下面给出一个采用纯汇编编写的信号产生程序以及所必须的配置文件,此程序实际调试通过,以供需要产生快速信号频率的用户参考。

; This program computers the cosine of an angle using the Taylor Series Expansion; Designed by wcang.axn.mpin;2002.6.8

www.plcworld.cn

Page 89: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

84

;All rights reserved. Property of wcang.axn.mpin;"@(#) DSP/BIOS 4.51.0 06-10-02 (wcang.axn.mpin)"

.mmregs

.def cos_generate,end_of_cose

.def d_cos_delay1,d_cos_delay2,d_theta,d_cosxd_cos_delay1 .usect "cos_vars",1d_cos_delay2 .usect "cos_vars",1d_theta .usect "cos_vars",1d_cosx .usect "cos_vars",1

k_cos_delay_1 .set 06602h ;cos(5)*0.8k_cos_delay_2 .set 064d8h ;cos(10)*0.8k_cos_theta .set 07f83h ;cos(5)k_2 .set 2h ;循环缓冲区大小

k_256 .set 256 ;指针

COSDATA .usect "cos_data",256

.textSSBX FRCTST COSDATA,AR5NOPSTM #600H,SP

LD #d_cos_delay1,DPNOP

;初始化缓冲区

STM #d_cos_delay1,AR3STM #d_theta,AR4RPTZ A, #3hSTL A,*AR3+

;设置循环缓冲区大小

STM #1,AR0STM #d_cosx,AR2STM #k_2,BKSTM #k_256-1,BRCNOPSTM #d_cos_delay1,AR3ST #k_cos_delay_1,*AR3+ST #k_cos_delay_2,*AR3STM #d_cos_delay1,AR3 ;输出值

ST #k_cos_theta,d_cosx

www.plcworld.cn

Page 90: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

85

cos_generate:RPTB end_of_coseMPY *AR2,*AR3+0%,A ;cos(theta)*cos((n-1)theta)SUB *AR3,15,A ;1/2*cos((n-2)theta)SFTA A,1,ASTH A,*AR3 ;保存

MVDD *AR3,*AR5+NOP

end_of_cose: B cos_generate ;下一次采样

cosend: .end

配置文件:

MEMORY {PAGE 0: PARAM: org = 0800h len = 1780hPAGE 1: DARAM: org = 080h len = 1780h

}

SECTIONS {.text : > PARAM PAGE 0.bss : > DARAM PAGE 1.data : > DARAM PAGE 1cos_vars : > DARAM PAGE 1coeff : > DARAM PAGE 1cos_data : > DARAM PAGE 1

}

对程序的说明:(1)程序利用了以下公式:cos(na) = 2*cos(a)*cos{(n-1)a} - cos{(n-2)a} 其中,a 的大小决定了信号的分辨率,程序中数值 a 为 5,那么一个信号周期采样72 个点.在开始的时候使用公式 cos(3a) = 2*cos(a)*cos(2a) - cos(a) 之后利用第一个公式进行递推运算就可以了。所以在开始的时候需要 cos(a)和cos(2a)的值作为常数输入。(2)为防止溢出,运算的值不可大于 1 或小于-1,所以起始值乘了系数 0.8。这样,输出值会在 -0.8~0.8 之间。如果需要扩大数据的值,只需要在最后输出时乘上相应的系数就可以了。其中,10 进制纯小数(绝对值小于 1)转换成十六进 制 的 方 法 是 将 该 数 乘 以 32768 , 然 后 转 换 成 十 六 进 制 。 例 如 :0.13×32768=4259.84(10A3),0.13 的十六进制为 10A3。(3)为了保证是小数乘法,必须将标志寄存器 FRCT 设为 1 (SSBX FRCT)。(4)递推时,由于实际只需要 cos(na)和 cos((n-1)a),故只分配了 2个空间,用 BK 来循环计数。相应的语句有:

STM #k_2,BKSTM #1,AR0MPY *AR2,*AR3+0%,A

www.plcworld.cn

Page 91: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

86

10.5 实验步骤

1.打开 CCS,新建立一工程文件 cos.pjt。2.将汇编源文件 cos.asm 和链接命令文件 cos.cmd 添加到 cos.pjt 中。3.在 project 菜单下选择 build options 选项,选取 Linker 选项, 调整为

-q -c -m".\Debug\cos.map" -o".\Debug\cos.out" -w –x。点击编译,链接图标,通过后生成 fir.out 文件和 firr.map 文件,其余选项可默认。

4.在 file 菜单下,选择 load program 选项,将生成的 fir.out 文件装载到 DSP 中。

5.运行程序,可使用断点,单步执行等方式。并结合在 view 菜单下选择 watchwindow 选项来观测变量值。

6.可以在 view 菜单下选择 graph/time frequence,弹出如下对话框。

按照要求,设置好相应的参数,来观测输入和输出数据的波形。

10.6 实验结果

从程序中可看出,产生的信号数据的地址放在 23h 处,时域和频域波形图如下。

产生信号频域波形:

www.plcworld.cn

Page 92: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

87

产生信号时域波形:

www.plcworld.cn

Page 93: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

88

附录 A

实验箱操作指南

A.1 输入设备

SEED-MMI5402 采用 19 键薄膜键盘作为输入设备。按键的布局如下

Esc 9 8 +

7 6 5 -

4 3 2

1 0 .Enter

← ↑ ↓ →

键盘按键基本功能定义如下:

类别 按键 功能说明

数字键 0~9 编辑输入数字

小数点 · 编辑输入浮点数字

+符号键

← 选择上一个备选选项,显示上一屏实验结果

↑ 选择上一个菜单项

→ 选择下一个备选选项,显示下一屏实验结果

方向键

↓ 选择下一个菜单项

Esc 退出到上一级菜单功能键

Enter 确认输入值,进入到当前菜单选项的下一级菜单界面

A.2 输出设备

SEED-MMI5402 采用 128 行×240 列象素液晶显示屏,若采用 16×16 点阵汉字库,可

以显示汉字 8 行×15 列汉字。

www.plcworld.cn

Page 94: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

89

A.3 图形用户界面(GUI)

图形用户界面需要协同输入、输出设备完成菜单选项的转移、菜单内容的编辑和选择等

功能,并具有良好的可扩展性。

SEED-MMI5402 图形用户界面(GUI)是一个由四级菜单,26 个基本图形界面组成的。

下面对绘制的图形界面进行了描述:

注:

方框中的内容为可设置内容(选择/编辑);

灰底为反色显示的内容;

/隔开的为可选选项;

… 表示菜单项下有若干可选选项;

► 表示菜单项可以进入,或有下一屏可以显示;

◄ 表示有上一屏可以显示;一级菜单界面

A.3.1 一级菜单界面

A.3.1.1 主菜单界面

SEED-DTK 系统

实验选项►系统设置►帮助►

“主菜单”界面为一级菜单界面,其中的菜单选项说明如下:

允许功能操作菜单选项

功能键 操作

↑ 移动到“系统设置► ”(循环)

↓ 移动到“帮助► ”(循环)

实验选项

Enter 进入二级菜单“实验选项”↑ 移动到“帮助► ”(循环)

↓ 移动到“实验选项► ”(循环)

系统设置

Enter 进入二级菜单“系统设置”↑ 移动到“实验选项► ”(循环)

↓ 移动到“系统设置► ”(循环)

帮助

Enter 进入二级菜单“帮助”

www.plcworld.cn

Page 95: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

90

A.3.2 二级菜单界面

A.3.2.1 实验选项界面

实验选项

定时器实验► 数字 IO 实验►同步串口实验► AD 实验►FFT 实验► 数字滤波实验►异步串口实验► 音频实验►电机控制实验► 2812 通讯►CAN 通讯实验►

“实验选项”界面为二级菜单界面,其父界面为“主菜单”界面。Esc 键,返回“主菜单”界面。

允许功能操作菜单选项

功能键 操作

↑ 移动到“CAN 通讯实验► ”(循环)

↓ 移动到“数字 IO 实验► ”(循环)

Enter 进入三级菜单界面“定时器实验”

定时器实验

Esc 返回一级菜单界面“主菜单”↑ 移动到“定时器实验► ”(循环)

↓ 移动到“同步串口实验► ”(循环)

Enter 进入三级菜单界面“数字 IO 实验”

数字 IO 实验

Esc 返回一级菜单界面“主菜单”↑ 移动到“数字 IO 实验► ”(循环)

↓ 移动到“AD 实验► ”(循环)

Enter 进入三级菜单界面“同步串口实验”

同步串口实验

Esc 返回一级菜单界面“主菜单”↑ 移动到“同步串口实验► ”(循环)

↓ 移动到“FFT 实验► ”(循环)

Enter 进入三级菜单界面“AD 实验”

AD 实验

Esc 返回一级菜单界面“主菜单”↑ 移动到“AD 实验► ”

↓ 移动到“数字滤波实验► ”Enter 进入三级菜单界面“FFT 实验”

FFT 实验

Esc 返回一级菜单界面“主菜单”↑ 移动到“FFT 实验► ”↓ 移动到“异步串口实验► ”

Enter 进入三级菜单界面“数字滤波实验”

数字滤波实验

Esc 返回一级菜单界面“主菜单”

异步串口实验 ↑ 移动到“数字滤波实验► ”

www.plcworld.cn

Page 96: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

91

↓ 移动到“音频实验► ”Enter 进入三级菜单界面“异步串口实验”Esc 返回一级菜单界面“主菜单”

↑ 移动到“异步串口实验► ”

↓ 移动到“电机控制实验► ”Enter 进入三级菜单界面“音频实验”

音频实验

Esc 返回一级菜单界面“主菜单”↑ 移动到“音频实验► ”↓ 移动到“定时器实验► ”

Enter 进入三级菜单界面“电机控制实验”

电机控制实验

Esc 返回一级菜单界面“主菜单”↑ 移动到“电机控制实验► ”↓ 移动到“CAN 通讯实验► ”

Enter 进入三级菜单界面“2812 通讯”

2812 通讯

Esc 返回一级菜单界面“主菜单”↑ 移动到“2812 通讯► ”

↓ 移动到“定时器实验► ”Enter 进入三级菜单界面“CAN 通讯实验”

CAN 通讯实验

Esc 返回一级菜单界面“主菜单”

A.3.2.2 系统设置界面

系统设置

信号发生器设置►通信设置►LCD 设置►

通讯方向的选择►

“系统设置”界面为二级菜单界面,其父界面为“主菜单”界面。Esc 键,返回“主菜单”界面。

允许功能操作菜单选项

功能键 操作

↑ 移动到“通讯方向的选择► ”(循环)

↓ 移动到“通信设置► ”(循环)

Enter 进入三级菜单界面“信号发生器设置”

信号发生器设置

Esc 退出到一级菜单界面

↑ 移动到“信号发生器设置► ”(循环)

↓ 移动到“LCD 设置► ”(循环)

Enter 进入三级菜单界面“通信设置”

通信设置

Esc 退出到一级菜单界面

www.plcworld.cn

Page 97: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

92

↑ 移动到“通信设置► ”(循环)

↓ 移动到“通讯方向的选择► ”(循环)

Enter 进入三级菜单界面“LCD 设置”

LCD 设置

Esc 退出到一级菜单界面

↑ 移动到“LCD 设置► ”(循环)

↓ 移动到“信号发生器设置► ”(循环)

Enter 进入三级菜单界面“通讯方向的选择”

通讯方向的选择

Esc 退出到一级菜单界面

A.3.2.3 帮助界面

帮助

ENTER:进入菜单/编辑状态

退出编辑并保存;

ESC:退出菜单/编辑状态

退出编辑不保存;

↑ ↓ :选择菜单项;

← → :选择备选项;

“帮助”界面为二级菜单界面,用于显示帮助信息,其父界面为“主菜单”界面。只有 Esc键有效,返回“主菜单”界面。

A.3.3 三级菜单界面

A.3.3.1 定时器实验界面

定时器实验

小时

分钟

返回主菜单

状态栏

“定时器实验”界面为三级菜单界面,其父界面为“实验选项”界面。

允许功能操作菜单选项

功能键 操作(括号中为功能键有效条件)

↑ 移动到上一个菜单选项(循环)小时

↓ 移动到下一个菜单选项(循环)

www.plcworld.cn

Page 98: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

93

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

Esc 返回菜单界面“实验选项”↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

分钟

Esc 返回菜单界面“实验选项”

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

Esc 返回菜单界面“实验选项”↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 返回“主菜单”界面。

返回主菜单

Esc 返回菜单界面“实验选项”

状态栏显示系统定时器实验状态,及操作提示信息。

注意:

“小时”选项的输入范围为 0~23;“分钟”选项的输入范围为 0~59;“秒”选项的输入

范围为 0~59。

www.plcworld.cn

Page 99: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

94

A.3.3.2 同步串口实验界面

同步串口实验

使用 CCS… 是/否发送模式… 整帧/自动

串口状态… 关闭/开启

自动发送数据______返回主菜单

状态栏

“同步串口实验”界面为三级菜单界面,其父界面为“实验选项”界面。

允许功能操作菜单选项

功能键 操作(括号中为功能键有效条件)

← → 选择状态下,选择是否使用 CCS↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

使用 CCS…

Esc 返回菜单界面“实验选项”← → 选择状态下,选择发送模式(自动/手动)

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

Esc 返回菜单界面“实验选项”

发送模式…

0~9 手动模式下,发送的字符

← → 选择状态下,选择发送数据

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择并发送字符串

自动发送数据

Esc 返回菜单界面“实验选项”← → 选择状态下,选择串口状态(开启关闭)

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

串口状态

Esc 返回菜单界面“实验选项”

www.plcworld.cn

Page 100: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

95

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 返回“主菜单”界面。

返回主菜单

Esc 返回菜单界面“实验选项”

A.3.3.3 数字 IO 实验界面

数字 IO 实验

交通灯模式… 手动

交通灯操作… /东西/南北/禁行

IO 值 0返回主菜单

状态栏

“定时器实验”界面为三级菜单界面,其父界面为“实验选项”界面。

允许功能操作菜单选项

功能键 操作(括号中为功能键有效条件)

← → 选择状态下,选择交通灯模式

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择的交通灯模式

交通灯模式…

Esc 返回菜单界面“实验选项”← → 选择状态下,选择交通灯操作

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择的交通灯操作

交通灯操作…

Esc 返回菜单界面“实验选项”↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非 IO 值编辑状态:进入编辑 IO 值状态

IO 值编辑状态:确认编辑值

0~9 编辑状态:输入 IO 值

IO 值

Esc 返回菜单界面“实验选项”

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

返回主菜单

Enter 返回“主菜单”界面。

www.plcworld.cn

Page 101: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

96

Esc 返回菜单界面“实验选项”

注意:

IO 值的输入范围是 0~255。初始设置为 0。这也是 8 位二进制数能表示的范

www.plcworld.cn

Page 102: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

97

A.3.3.4 FFT 实验界面

FFT 实验

使用 CCS 是/否FFT 设置►FFT 转换

FFT 结果►返回主菜单

状态栏

“FFT 实验”界面为三级菜单界面,其父界面为“实验选项”界面。

允许功能操作菜单选项

功能键 操作

← → 选择状态下,选择是否使用 CCS

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

Esc 返回菜单界面“实验选项”

使用 CCS…

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 进入“FFT 设置”界面

Esc 返回 “实验选项”界面

FFT 设置►

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 启动 FFTEsc 返回菜单界面“实验选项”

FFT 转换

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 进入“FFT 结果”界面

Esc 返回 “实验选项”界面

FFT 结果►

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 返回“主菜单”界面。

返回主菜单

Esc 返回菜单界面“实验选项”

www.plcworld.cn

Page 103: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

98

A.3.3.5 数字滤波实验界面

数字滤波实验

使用 CCS 是/否数字滤波参数设置►数字滤波

数字滤波结果►返回主菜单

状态栏

“数字滤波实验”界面为三级菜单界面,其父界面为“实验选项”界面。

允许功能操作菜单选项

功能键 操作

← → 选择状态下,选择是否使用 CCS

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

Esc 返回菜单界面“实验选项”

使用 CCS…

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 进入“数字滤波设置”界面

Esc 返回 “实验选项”界面

数字滤波设置►

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 启动 FFT

数字滤波转换

Esc 返回菜单界面“实验选项”↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 进入“数字滤波结果”界面

Esc 返回 “实验选项”界面

数字滤波结果►

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 返回“主菜单”界面。

返回主菜单

Esc 返回菜单界面“实验选项”

www.plcworld.cn

Page 104: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

99

A.3.3.6 信号发生器设置界面

信号发生器设置

通道 0信号类型… 正弦/方波/三角波

信号频率 1000 Hz信号幅度 1 V信号发生器开关 关闭

返回主菜单

状态栏

“信号发生器设置”界面为三级菜单界面,其父界面为“系统设置”界面。

允许功能操作菜单选项

功能键 操作(括号中为功能键有效条件)

↑ 移动到上一个菜单选项

↓ 移动到下一个菜单选项

Enter 非通道编辑状态:进入通道编辑状态

通道编辑状态:确认编辑值

0~9,+ 通道选择编辑状态:输入通道号

通道

Esc 返回菜单界面“系统设置”← → 选择信号类型

↑ 移动到上一个菜单选项

↓ 移动到下一个菜单选项

Enter 确认选择的信号类型

信号类型…

Esc 返回菜单界面“系统设置”↑ 移动到上一个菜单选项

↓ 移动到下一个菜单选项

Enter 非信号频率编辑状态:

进入编辑信号频率状态

信号频率编辑状态:

确认编辑值

0~9 信号频率编辑状态:输入信号频率

信号频率

Esc 返回“系统设置”界面

↑ 移动到上一个菜单选项信号幅度

↓ 移动到下一个菜单选项

www.plcworld.cn

Page 105: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

100

Enter 非信号幅度编辑状态:

进入编辑信号幅度状态

信号幅度编辑状态:

确认编辑值

0~9 信号幅度编辑状态:输入信号幅度

Esc 返回“系统设置选项”界面

↑ 移动到上一个菜单选项

↓ 移动到下一个菜单选项

Enter 信号发生器开/关

信号发生器开

Esc 返回“主菜单”界面。

↑ 移动到上一个菜单选项

↓ 移动到下一个菜单选项

Enter 返回“主菜单”界面。

返回主菜单

Esc 返回“系统设置”界面

注意:

1. 在 AD、FFT、数字滤波等实验的实验设置中均自带有信号源的设置,它们将覆盖

信号发生器设置界面中对信号源的设置。这里的信号发生器设置界面是一个独立的

信号源设置,只要开启信号发生器,即可输出相应的信号,为需要信号源的实验提

供适当的信号。

2. “通道”选项初始值为 0。本系统只能选择 0。3. 信号类型有正弦、方波、三角波三种类型,初始设置为正弦。

4. 信号频率的有效输入范围为 30Hz~10KHz。初始设置为 30Hz。建议输入为 500Hz以上。而且对于不同采样频率,应该注意香农定理,即采样频率应该高于信号频率

的两倍。所以当选择信号频率高于 4KHz 时候,采样频率不能采用 8KHz,而是应

该采用 44KHz 或者 96KHz。对于过低的信号频率,应该注意的是采集点数应该尽

可能多些,否则采的点数不能够形成能够辨认的波形。

5. 信号振幅的有效输入范围为小于 1000mV,建议尽可能高些,比如 900mV。初始

设置为 0mV。

A.3.3.13 通信设置界面

A.3.4 四级菜单界面

A.3.4.1 AD 设置界面

AD 设置

信号类型 正弦

信号频率(Hz)30

www.plcworld.cn

Page 106: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

101

信号振幅(mV)0采样频率(Hz)8K数据长度(点)128

“AD 设置”界面为四级菜单界面,其父界面为“AD 实验”界面。

允许功能操作菜单选项

功能键 操作

← → 选择状态下,选择信号类型

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

信号类型

Esc 返回菜单界面“AD 实验”↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

信号频率

Esc 返回菜单界面“AD 实验”

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

信号振幅

Esc 返回菜单界面“AD 实验”← → 选择状态下,选择采样频率

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

采样频率

Esc 返回菜单界面“AD 实验”

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

数据长度

0~9 编辑状态下,输入数字

www.plcworld.cn

Page 107: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

102

Esc 返回菜单界面“AD 实验”

注意:

1. 信号类型有正弦、方波、三角波三种类型,初始设置为正弦。

2. 信号频率的设置范围为:30Hz~10KHz。初始设置为 30Hz。设置成 1000Hz 左右

比较利于观察。

3. 信号振幅设置范围为:0~1000mV。初始设置为 0mV。设置比较高更利于观察。

比如 900mV。4. 采样频率有 8KHz、44KHz、和 96KHz 三种选择,初始设置为 8KHz。5. 采样长度设置范围为 128~1024,初始设置为 128。建议采用较多点数观察。比

如 1024。6. 以上参数关系。根据香农定理,采样频率必须高于信号频率的两倍。所以当信号频

率比较高的时候,例如大于 4KHz,那么采样频率就需要使用 44KHz 或者 96KHz。当频率比较低时候,比如 30Hz,那么采用比较高的采样频率会需要更长的采集长

度。否则将显示不出足以辨认的波形。

A.3.4.2 AD 结果界面

AD 结果

起点:0 终点:0

值域: ~

[图形区 90×240]

“AD 实验结果”界面为四级菜单界面,其父界面为“AD 实验”界面。

允许功能操作菜单选项

功能键 操作(括号中为功能键有效条件)

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

起点

Esc 返回菜单界面“AD 实验”↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

终点

Esc 返回菜单界面“AD 实验”

www.plcworld.cn

Page 108: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

103

注意:

1.起点数值必须小于终点数值。起点终点数值都必须小于 2000。2.终点数值必须小于采样长度。

3.终点数值高于采样长度,将没有反应。

A.3.4.3 FFT 设置界面

FFT 设置

信号类型 正弦

信号频率(Hz)30信号振幅(mV)0采样频率(Hz)8K数据长度(点)1024

“FFT 设置”界面为四级菜单界面,其父界面为“FFT 实验”界面。

允许功能操作菜单选项

功能键 操作

← → 选择状态下,选择信号类型

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

信号类型

Esc 返回菜单界面“FFT 实验”↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

信号频率

Esc 返回菜单界面“FFT 实验”↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

信号振幅

Esc 返回菜单界面“FFT 实验”← → 选择状态下,选择采样频率

↑ 移动到上一个菜单选项(循环)

采样频率

↓ 移动到下一个菜单选项(循环)

www.plcworld.cn

Page 109: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

104

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

Esc 返回菜单界面“FFT 实验”← → 选择状态下,选择采样频率

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

数据长度

Esc 返回菜单界面“FFT 实验”

注意:

1.除数据长度以外的参数选择同 AD 实验的注意事项。

2.数据长度有三个选项,1024、512、128。初始选项为 1024。

A.3.4.4 FFT 结果界面

FFT 信号>

起点:0 终点:0

值域: ~

[图形区 90×240]

“FFT 结果”界面为四级菜单界面,其父界面为“FFT 实验”界面。“FFT 结果”有 2 个界面,

一个为原始信号显示界面,另一个为 FFT 频谱显示界面。

允许功能操作菜单选项

功能键 操作(括号中为功能键有效条件)

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

Esc 返回菜单界面“FFT 实验”

起点

← → 切换到 FFT 频谱显示界面

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

终点

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

www.plcworld.cn

Page 110: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

105

0~9 编辑状态下,输入数字

Esc 返回菜单界面“FFT 实验”← → 切换到 FFT 频谱显示界面

FFT 频谱<

起点:0 终点:0

值域: ~

[图形区 90×240]

允许功能操作菜单选项

功能键 操作(括号中为功能键有效条件)

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

Esc 返回菜单界面“AD 实验”

起点

← → 切换到 FFT 信号显示界面

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

Esc 返回菜单界面“AD 实验”

终点

← → 切换到 FFT 信号显示界面

注意:

1.起点小于终点。起点终点初始值为 0。2.FFT 信号图像的终点小于数据长度。

3.FFT 频谱图像的终点小于数据长度的二分之一。

A.3.4.5 数字滤波设置界面

数字滤波设置

信号类型… 正弦

数据长度(点) 1024滤波器类型… FIR

www.plcworld.cn

Page 111: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

106

“数字滤波设置”界面为四级菜单界面,其父界面为“数字滤波实验”界面。

允许功能操作菜单选项

功能键 操作

← → 选择状态下,选择信号类型:正弦、方波、三角波

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

信号类型

Esc 返回菜单界面“数字滤波实验”← → 选择状态下,选择采样的数据长度:256、512、1024

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

数据长度

Esc 返回菜单界面“数字滤波实验”

← → 选择状态下,选择数字滤波器类型:FIR、IIR↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非选择状态下,进入选择状态

选择状态下,确认选择

滤波器类型

Esc 返回菜单界面“数字滤波实验”

A.3.4.6 数字滤波结果界面

原始信号>

起点:0 终点:0

值域: ~

[图形区 90×240]

“数字滤波结果”界面为四级菜单界面,其父界面为“数字滤波实验”界面。“数字滤波结果”有 2 个界面,一个为原始信号显示界面,另一个为滤波后信号显示界面。

允许功能操作菜单选项

功能键 操作(括号中为功能键有效条件)

起点 ↑ 移动到上一个菜单选项(循环)

www.plcworld.cn

Page 112: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

107

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

Esc 返回菜单界面“数字滤波实验”← → 切换到滤波信号显示界面

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

Esc 返回菜单界面“数字滤波实验”

终点

← → 切换到滤波信号显示界面

滤波信号<

起点:0 终点:0

值域: ~

[图形区 90×240]

允许功能操作菜单选项

功能键 操作(括号中为功能键有效条件)

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

Esc 返回菜单界面“数字滤波实验”

起点

← → 切换到原始信号显示界面

↑ 移动到上一个菜单选项(循环)

↓ 移动到下一个菜单选项(循环)

Enter 非编辑状态下,进入编辑状态

编辑状态下,确认输入值

0~9 编辑状态下,输入数字

Esc 返回菜单界面“数字滤波实验”

终点

← → 切换到原始信号显示界面

www.plcworld.cn

Page 113: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

108

注意:

1.起点终点初始值为 0。2.终点值大于起点值。

3.终点值要小于数据长度值。

A.4 各实验具体操作步骤

A.4.1 实验 3 定时器实验

A.4.1.1 实验步骤:

1. 开机实验选项定时器实验

2. 等待加载程序完毕

3. 可以更改小时(<24)、分钟(<60)、秒(<60)的参数

4. 上下移动选项,键“Enter”表示设定完毕

5. 如要更改时间,可以随时更改

6. 如想退出此程序,选择“返回主菜单”。

A.4.1.2 液晶显示结果:

当更改完时间参数之后,计时器开始累加,从设定的秒数开始。

A.4.3 实验 4 同步串口实验

A.4.3.1 实验步骤:

1. 开机实验选项同步串口实验

2. 在“使用 CCS”选项中选择:否

3. 等待装载程序

4. 选择发送方式:整帧或单个

5. 在“串口状态”选项中选择:开启

6. 在“自动发送数据”选项中选择要发送的字符串

7. 如想退出此程序,选择“返回主菜单”。

A.4.3.2 液晶显示结果:

整帧发送方式:

1. 选择“串口测试。。。”,下方显示数据接收结果:“串口测试。。。”;2. 选择“土豆呼叫白薯”,下方显示数据接收结果:“土豆呼叫白薯”;

www.plcworld.cn

Page 114: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

109

3. 选择“老鼠爱大米。”,下方显示数据接收结果“老鼠爱大米”;4. 选择“萝卜我是白菜”,下方显示数据接收结果“萝卜我是白菜”;5. 选择“救救我!!!”,下方显示数据接收结果“救救我!!!”。

单个发送方式:

在键盘处按下任意数字键(0-9),下方显示数据接收结果为按键所选数字。

A.4.2 实验 5 数字 I O 实验

A.4.2.1 实验步骤:

1. 开机实验选项数字 I O 实验

2. 等待装载程序

3. 设定交通灯模式:东西、南北

4. 设定基本的 IO 值

5. 如想退出此程序,选择“返回主菜单”。

A.4.2.2 液晶显示结果:

1. 设定交通模式:

手动模式:

东西: 则东西向绿灯亮;南北向红灯亮;

南北: 则南北向绿灯亮;东西向红灯亮;

禁行: 则南北向与东西向红灯亮

自动模式: 选定后,东西南北灯按照道路交通模式闪亮;

夜间模式: 选定后,四个黄灯亮,表示夜间行使。

2. 设定基本 IO 值,在实验箱左侧八个灯按照设定的值显示,更改数值则重新显示。

A.4.4 实验 6 AD 实验

A.4.4.1 实验步骤:

1. 开机实验选项AD 实验

2. 在“使用 CCS”选项中选择:否

3. 等待装载程序

4. AD 设置:在 AD 设置当中设置信号类型(正弦、方波、三角波)、信号频率

(30<f<10K)、信号幅值(a<1V)、采样频率(8K、44K、96K)、数据长度

(0<L<=1024)5. AD 转换

6. AD 结果

7. 如想退出此程序,选择“返回主菜单”。

www.plcworld.cn

Page 115: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

110

A.4.4.2 液晶显示结果:

根据 AD 设置的参数,进行 AD 转换,设定显示起点以及终点之后,能够显示采样

的结果。

A.4.5 实验 7 FFT 实验

A.4.5.1 实验步骤:

1. 开机实验选项FFT 实验

2. 在“使用 CCS”选项中选择:否

3. 等待装载程序

4. FFT 设置:在 FFT 设置当中设置型号类型(正弦、方波、三角波)、信号频率

(30<f<10K)、信号振幅(a<1V)、采样频率(8K、44K、96K)、数据长度

(0<L<=1024)5. FFT 转换

6. FFT 结果

7. 如想退出此程序,选择“返回主菜单”。

A.4.5.2 液晶显示结果:(左右键可以更换显示界面)

1. 设置 FFT 信号起点以及终点值,显示出相应的原始信号;

2. 设置 FFT 频谱起点以及终点值,显示出相应的 FFT 转换结果。

3. 如果想要重新设置输入信号并且显示,可以直接在“FFT 设置”当中更改,并且重新

执行“FFT 转换”、“FFT 结果”即可看到新的转换结果。

A.4.6 实验 8 数字滤波试验

A.4.6.1 实验步骤:

1. 开机实验选项FFT 实验

2. 在“使用 CCS”选项中选择:否

3. 等待装载程序

4. 数字滤波设置:在 FFT 设置当中设置型号类型(正弦、方波、三角波)、数据长度

(0<L<=1024)、滤波器类型(FIR、IIR)

5. 数字滤波

6. 数字滤波结果

7. 如想退出此程序,选择“返回主菜单”。

A.4.6.2 液晶显示结果:(左右键可以更换显示界面)

1. 设置原始信号起点以及终点值,显示出相应的原始信号;

2. 设置滤波后信号起点以及终点值,显示出相应的滤波结果。

www.plcworld.cn

Page 116: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

111

3. 如果想要重新设置输入信号并且显示,可以直接在“数字滤波设置”当中更改,并且

重新执行“数字滤波”、“数字滤波结果”即可看到新的转换结果。

www.plcworld.cn

Page 117: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

112

附录 B

PC 演示系统串口版使用说明

(lab5416)

B.1 文件说明

在文件夹里面有三个文件:SEED-DTK DBD Lab5416.EXE、Lab5416.OUT。SEED-DTK DBD Lab5416.EXE 是 PC 机端 DSP 教学实验人机界面主控程序,PC 机

的 RS232 异步串口与 SEED-DEC5416 的异步串口 B 连接,通过本主控程序实现 PC 机与

SEED-DEC5416 之间的相互通信,并在本程序的控制下,将 SEED-DEC5416 上运行的实

验程序从 PC 机上下装到 SEED-DEC5416 中,实验程序则将实验结果回传给 PC 机,由

PC 机显示。

Lab5416.OUT 为 SEED-DEC5416 上运行的 DSP 实验程序,在开始实验之前,由 PC机上主控程序进行下装。

本文件是 SEED-DTK DBD Lab5416 主控程序的使用手册。

B.2 运行前准备

使用 SEED-DTK DBD 型 DSP 实验箱配套提供的串口线,连接计算机和

SEED-DEC5416 的串口 B。打开 SEED-DTK DBD 型 DSP 实验箱的电源。执行 SEED-DTKDBD Lab5416.EXE。

B.3 运行过程说明

执行程序后,画面显示如下图。

www.plcworld.cn

Page 118: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

113

点菜单中“连接设置”→ “方式选择”,进行连接方式的设定。

目前系统只能使用默认设置,即端口号 COM1,波特率 19200,数据位数 8,无校验位,

停止位 1。按下确定,结束设置。

www.plcworld.cn

Page 119: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

114

点击“连接设置”→ “打开串口”,可以执行打开串口的功能,相应的“关闭串口”,可以关闭

串口连接。

当点击“打开串口”出现错误提示“Can’t open connection”时候,说明串口正在被使用,

请关闭其他使用串口的程序。

www.plcworld.cn

Page 120: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

115

第一次打开串口,如果成功,程序会通过串口将 DSP 实验程序下装到 SEED-DEC5416中。

如果串口连接错误或者板卡错误,导致不能装载程序,会出现提示。这时应该退出程序。

检查电脑和实验箱之间的连接和实验箱的电源。

程序装载成功后,可以在实验选项菜单选择某项实验,进行实验。

B.4 各项实验操作方法

当点击实验选项菜单的某项实验后,如果串口未打开,会出现错误提示。这时候应该重

新执行打开串口动作。

www.plcworld.cn

Page 121: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

116

实验选项菜单包括以下实验:

B.4.1 定时器实验

在编辑栏填写相应数字,设置“时”、“分”、“秒”,按下“启动”,开始定时器计时。其中“小时”编辑栏的范围是 0-23,“分钟”和“秒”编辑栏范围是 0-59。当“启动”按下后,“启动”按钮变

灰,“小时”、“分钟”、“秒”编辑栏变灰。不能再改变时分秒的设置。按下“退出”,退出定时器

实验。由于定时器实验比较简单,可以用来快速检测实验箱当前是否工作正常以及微机和实

验箱是否正常连接。

B.4.2 数字 IO 实验

选择交通灯模式和交通灯操作的相关项目,观察 DTK 实验箱上 SEED-DTK_IO 板上交

通灯的变化。需要注意的是点击的频率不要过高,否则会反应不过来。设定 0-255 之间的

IO 值,按下“设定”,可以观察 DTK 实验箱 SEED-DTK_LED 板上,D1~D8 这八个 LED 灯

的变化。按下“退出”,退出数字 IO 实验。

B.4.3 AD 转换实验

该实验和FFT实验需要用SEED-DTK DBD型DSP实验箱的人机接口SEED-MMI5402来设置信号源,可通过 SEED-DTK DBD 型 DSP 实验箱的液晶屏和键盘来设置。方法如下:

首先通过上下键选择“系统设置”,然后按“Enter”进入系统设置界面,然后选择“信号发生器

设置”进入信号发生器设置界面,其中“通道”选择默认的 0 通道,信号类型可以选择“方波”、“三角波”、“正弦波”其一。信号频率可以选择 30Hz~10kHz,信号振幅选择 1000mV 一下,

www.plcworld.cn

Page 122: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

117

信号发生器开关选择“开”,然后选择返回主页面。这样信号发生器设置完毕。进入 AD 转换

实验界面后,首先设置数据长度和采样频率。数据长度范围在 128~1024 之间,采样频率

有三个可以选择分别是 8000Hz,44000Hz,96000Hz。需要注意的是,当采样频率不大于

信号频率的 2 倍时候,AD 转换后的图像将不能准确显示。按下“应用”后,可以按下“AD 转

换”,待对话框下方的提示“数据接收完毕”,就可以选择起点终点观察采样图形。按下“退出”,退出 AD 转换实验。

www.plcworld.cn

Page 123: DSP实验指导书 - img.xuegongkong.comimg.xuegongkong.com/Attachment/201305/2013052410280000001.pdf · dsp是一门理论与实践并重的技术,在 学习 ... 通过dsp的开发平台和实验系统,进

118

B.4.4 FFT 实验

该实验和 AD 转换实验需用 SEED-DTK DBD 型 DSP 实验箱的人机接口

SEED-MMI5402 来设置信号源。设置方法见上。 参数设置和 AD 转换实验同理。设置完毕

后,按下“FFT 转换”,开始转换,传输。当对话框下方的提示“数据接收完毕”,就可以选择

起点终点分别观察原始 FFT 信号和 FFT 频谱。按下“退出”,退出 FFT 实验。

B.5 注意事项

1. 使用 SEED-DTK DBD Lab5416,当打开串口之后,SEED-DEC5416 板将不能和

SEED-MMI5402 进行通讯,即,不能再通过 SEED-DTK 实验箱的人机接口进行实

验的操控。反之亦然。所以通过 PC 机串口和人机接口板进行实验操控不能同时运

行。

目前 SEED-DTK DBD Lab5416 只能以默认通信设置进行通讯。

www.plcworld.cn