dsp实验报告fft

2022-09-20

根据工作的内容与性质,报告划分为不同的写作格式,加上报告的内容较多,很多人不知道怎么写报告。以下是小编整理的关于《dsp实验报告fft》,仅供参考,希望能够帮助到大家。

第一篇:dsp实验报告fft

DSP实验报告

实验0 实验设备安装才CCS调试环境

实验目的:

按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。 实验步骤:

以演示实验一为例:

1. 使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源; 2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStartsinewave”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out;

3. 打开源文件exer3.asm,在注释行“set breakpoint in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示; 4. 点击主菜单“View->Graph->Time/Frequency„”,屏幕会出现图形窗口设置对话框

5. 双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1;DSP Data Type设置成16-bit signed integer,如下图所示;

6. 点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察

7. 点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果:

心得体会:

通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。熟悉了DSP实验箱基本模块。让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。

实验二 基本算数运算

2.1 实验目的和要求

加、减、乘、除是数字信号处理中最基本的算术运算。DSP 中提供了大量的指令来 实现这些功能。本实验学习使用定点DSP 实现16 位定点加、减、乘、除运算的基本方法 和编程技巧。本实验的演示文件为exer1.out。

2.2 实验原理

1) 定点 DSP 中的数据表示方法

C54X 是16 位的定点DSP。一个16 位的二进制数既可以表示一个整数,也可以表

示一个小数。当它表示一个整数时,其最低位(D0)表示20,D1 位表示21,次高位(D14) 表示214。

2) 实现 16 位定点加法

C54X 中提供了多条用于加法的指令,如ADD,ADDC,ADDM 和ADDS。其中

ADDS 用于无符号数的加法运算,ADDC 用于带进位的加法运算(如32 位扩展精度加 法),而ADDM 专用于立即数的加法。

3) 实现 16 位定点减法

C54X 中提供了多条用于减法的指令,如SUB,SUBB,SUBC 和SUBS。其中SUBS 用于无符号数的减法运算,SUBB 用于带进位的减法运算(如32 位扩展精度的减法), 而SUBC 为移位减,DSP 中的除法就是用该指令来实现的。

4) 实现 16 位定点整数乘法

在C54X 中提供了大量的乘法运算指令,其结果都是32 位,放在A 或B 寄存器 中。乘数在C54X 的乘法指令很灵活,可以是T 寄存器、立即数、存贮单元和A 或B 寄存器的高16 位。

5) 实现 16 位定点小数乘法

在 C54X 中,小数的乘法与整数乘法基本一致,只是由于两个有符号的小数相乘, 其结果的小数点的位置在次高的后面,所以必须左移一位,才能得到正确的结果。C54X 中提供了一个状态位FRCT,将其设置为1 时,系统自动将乘积结果左移一位。但注意 整数乘法时不能这样处理,所以上面的实验中一开始便将FRCT 清除。两个小数(16 位) 相乘后结果为32 位,如果精度允许的话,可以只存高16 位,将低16 位丢弃,这样仍可 得到16 位的结果。

6) 实现 16 位定点整数除法

在 C54X 中没有提供专门的除法指令,一般有两种方法来完成除法。一种是用乘法 来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于 除以常数特别适用。另一种方法是使用SUBC 指令,重复16 次减法完成除法运算。

7) 实现 16 位定点小数除法

在 C54X 中实现16 位的小数除法与前面的整数除法基本一致,也是使用循环的

SUBC 指令来完成。但有两点需要注意:第一,小数除法的结果一定是小数(小于1),

1 所以被除数一定小于除数。

2.3 实验内容

本实验需要使用C54X 汇编语言实现加、减、乘、除的基本运算,并通过DES 的存 贮器显示窗口观察结果。

1) 编写实验程序代码

2) 用 ccs simulator 调试运行并观察结

2.4 实验结果

1、加法结果

2、乘法结果

3、减法结果

4、除

4 2.5 思考题(0.5、0.25)

5 实验三 C54X的浮点数的算术运

一、实验目的

1) 练习 TMS320C54X 汇编程序的编写与调试方法,重点练习C54X 程序流程控制的方法。 2) 学习并掌握应用 TMS320C54X 来进行浮点数的各种算术运算的算法实现。

3) 练习并掌握 TMS320C54X 的汇编语言的汇编指令系统的使用方法,重点练习具有C54X 特点的一些在功能上有所扩展的特殊指令,并了解这些指令在进行算术运算或各种控制时所带来的方便。

4) 练习并掌握用 CCS 调试程序的一些基本操作。

二.实验原理

1) 浮点数的表示方法

在定点运算中,小数点是在一个特定的固定位置。例如,如果一个 32-bit 的数把小数点放在最高有效位(也就是符号位)之后,那么就只有分数(绝对值小于1)才能被显示。在定点运算系统中,虽然在硬件上实现简单,但是表示的操作数的动态范围要受到限制。

3) 浮点数运算的步骤

程序代码分成四个 ASM 文件输入,通过编译生成.obj 文件,连接生成.out 文件后就可以在DES320PP-U 实验系统上调试运行(先要创建一个工程文件,然后加入四个工程文件,并且一起编译,连接。因为每个文件都对下一个文件作了引用)。步骤如下:

a. 首先启动 setup CCS C5000,在其中设置目前需要的CCS 的工作状态为C54xxsimulator,保存这一设置并退出。然后再启动CCS 实验系统软件CCS C5000。

b. 在下拉菜单中选择“File”->“Load Program”以装入所要调试的程序fc.out,这时,在反汇编窗口中能看到程序的源代码。

c. 在下拉菜单中选择“View”->“CPU Registers”->“CPU Register”,可以看见在CCS 界面下部份会出现CPU 中的相关寄存器;选择“View”->“Memory…”,在弹出的“Memory Window Options”窗口中选择要观察的区域为数据区,地址开始为0x80h,然后就可以看见出现一个Data Memory 窗口,其中显示了从0x80h 开始的 .bss 区。

d. 在反汇编窗口中需要观察的地方设置断点:在这条指令处双击将其点为红色即可。比如在加法程序中有指令nop 的位置都可以加一个断点。

e. 在下拉菜单中选择“调试”——“连续运行”(或直接点击“运行程序”按钮)运行浮点数程序。如果编写程序时在计算完毕后遇到一个断点,那么程序到此会自动停止。

f. 当示范程序在第一个断点处停下来时,此时就可以看见程序初始化后的情况:被加数12.0 以浮点数的格式放在内存区0x08a-0x08b 中,其值为4140h 和0000h。加数12.0 放在内存区0x08c-0x08d 中,其值也为4140h 和0000h。

6 g. 再点击“运行程序”按钮,之后程序会在下一个断点处停下来,这时可以看见被加数被格式转换后的变量op1hm、op1lm 和op1se 的值在内存区0x084-0x086 中,分别为00c0h、0000h 和0082h。同样加数被格式转换后的变量op2se、op2hm 和op2lm的值在内存区0x087-0x089 中,分别为0082h、00c0h 和0000h。

h. 再点击“运行程序”按钮,程序停下来时就可以观察到在存储器窗口中表示结果的变量rlthm、rltlm、rltsign 和rltexp 的值在内存区0x080-0x083 中,其值分别为0040h、0000h、0180h 和0083h。

i. 这时可以看到 A 寄存器中的值为AH=41c0h,AL=0000h 这就是最后的以浮点数的格式表示的结果值24(=12+12)。加法运算到此结束。

j. 继续点击“运行程序”按钮,当程序再次停下来时就可以看见在A 寄存器中显示的13.0 与12.0 进行减法运算的结果:AH=3f80h,AL=0000h。这是用浮点数格式表示的数1(=13-12)。减法运算的程序到此结束。

k. 继续点击“运行程序”按钮,当程序再次停下来时就可以看见在A 寄存器中显示的12.0 与12.0 进行乘法运算的结果:AH=4310h,AL=0000h。这是用浮点数格式表示的数144(=12*12)。乘法运算的程序到此结束。

l. 继续点击“运行程序”按钮,当程序再次停下来时就可以看见在A 寄存器中显示的12.0 与4.0 进行除法运算的结果:AH=4040h,AL=0000h。这是用浮点数格式表示的数3(=12/4)。至此加、减、乘、除四种运算都运行完毕。

m. 如果程序运行不正确,请检查源程序是否有误,必要时可以在源程序中多插入断点语句。程序在执行到断点语句时自动暂停,此时可以通过检查各个寄存器中的值以及内存单元中的值来判断程序执行是否正确。

三.在 CCS 的C54xx simulator 上调试观察实验结果

浮点加法断点一:

7 浮点加法断点二:

浮点加法断点三:

8 浮点减法

浮点数乘法

9 浮点数除法

四 心得体会

通过学习C54X的浮点数的算术运算,以及实验结果的观察,使我了解了浮点数运算的原理,学习并掌握用TMS320C54X来进行浮点数的各种算术运算的算法实现。 实验四用定时器实现数字振荡器

10 实验四 用定时器实现数字振荡器

4.1 实验目的

在数字信号处理中,会经常使用到正弦/余弦信号。通常的方法是将某个频率的正弦/余弦值预先计算出来后制成一个表,DSP 工作时仅作查表运算即可。在本实验中将介绍另一种获得正弦/余弦信号的方法,即利用数字振荡器用叠代方法产生正弦信号。本实验除了学习数字振荡器的DSP 实现原理外,同时还学习C54X 定时器使用以及中断服务程序编写。另外,在本实验中我们将使用汇编语言和C 语言分别完成源程序的编写。

4.2 实验要求

本实验利用定时器产生一个 2kHz 的正弦信号。定时器被设置成每25uS 产生一次中断(等效于采样速率为40K)。利用该中断,在中断服务程序中用叠代算法计算出一个SIN值,并利用CCS 的图形显示功能查看波形。

4.3 实验原理

1) 数字振荡器原理

设一个传递函数为正弦序列 sinkωT,其z 变换为 H(z)=

其中,A=2cosωT, B=-1, C=sinωT。设初始条件为0,求出上式的反Z 变换得:

y[k]=Ay[k-1]+By[k-2]+Cx[k-1] 2) C54X 的定时器操作

C54X 的片内定时器利用CLKOUT 时钟计数,用户使用三个寄存器(TIM,PRD,TCR)来控制定时器,参见表4-1。在表4-2 中列出了定时器控制寄存器的各个比特位的具体定义。‘VC5402 的另一个定时器(定时器1)的控制寄存器分别为:0x30(TIM1),0x31(PRD1),0x32(TCR1)。

3) C54X 中断的使用

在 C54X 中用户可以通过中断屏蔽寄存器IMR 来决定开放或关闭一个中断请求。图4-1 给出了C5402 的IMR 寄存器的各个比特位的定义。

图 4-1 ‘C5402 的IMR 寄存器

其中,HPINT 表示HPI 接口中断,INT3-INT0 为外部引脚产生的中断,TXINT 和TRINT 为TDM 串口的发送和接收中断,BXINT0 和BRINT0 为BSP 串口的发送和接收中断,TINT0 为定时器0 中断。在中断屏蔽寄存器IMR 中,1 表示允许CPU 响应对应的中断,0 表示禁止。当然要CPU 响应中断,ST1 寄存器中的INTM 还应该为0(允许所有的中断)。

本实验的初始化程序读取中断向量表的启始地址,然后设置PMST 的高9 位,以便DSP 能正确响应中断,代码如下:

ld #0,dp ;设置DP 页指针 ssbx intm ;关闭所有中断

11 ld #vector, a ;读出中断向(地址vector 在中断向量表程序中定义) and #0FF80h, a ;保留高9 位(IPTR) andm #007Fh, pmst ;保留PMST 的低7 位 or pmst, a ;

stlm a, pmst ;设置PMST(其中包括IPTR)

4.4 实验内容

本实验需要使用 C54X 汇编语言或C 语言实现数字振荡器,并通过CCS 提供的图形显示窗口观察出信号波形以及频谱。实验分下面几步完成:

1) 根据确定数字振荡器的频率,确定系数。 2) 启动 CCS,新建工程文件。

3) 选择 Project 菜单中的Options 选项,或使用鼠标右键单击工程文件名(如sinewave.pjt)并选择build options 项来修改或添加编译、连接中使用的参数。选择Linker 窗口,在“Output Filename”栏中写入输出OUT 文件的名字,如sine.out,你还可以设置生成的MAP 文件名。

4) 完成编译、连接,正确生成OUT 文件。

5) 选 View→Graph→Time/Frequency„打开图形显示设置窗口。 6) 在汇编源程序的中断服务程序(_tint)中的“nop”语句处设置断点。 7) 用右键单击图形显示窗口,并选择“Proporties”项以便修改显示属性。

12 8) 清除所有断点,关闭除波形显示窗口外的所有窗口,并关闭工程文件。 9) 完成编译、连接,正确生成OUT 文件。

10)打开 C 源程序(timer.c)窗口,在中断服务程序(函数tint())的“con_buf=0;”语句处增加一个断点。同样打开图形显示窗口,并将“Start Address”改为buf;“Acquisition Buffer Size”改为“Display Data Size”改为128,“DSP DataType”为“32-bit floating point”

11)选择 Debug→Animate,运行程序,观察输出波形。

第二篇:dsp课程设计实验报告总结

DSP课程设计总结

(2013-2014学年第2学期)

目 :

专业班级 :

电子1103

学生姓名 :

号 :

11052304

指导教师 :

设计成绩 :

2014 年 6 月

1 目

一 设计目的--------3 二 系统分析--------3 三 硬件设计 3.1 硬件总体结构----------------------------3 3.2 DSP模块设计----------------------------4 3.3 电源模块设计---------------------------4 3.4 时钟模块设计---------------------------5 3.5 存储器模块设计-------------------------6 3.6 复位模块设计---------------------------6 3.7 JTAG模块设计-------------------------7 四 软件设计

4.1 软件总体流程----------------------7 4.2 核心模块及实现代码--------8 五 课程设计总结----------------------14

2

一、 设计目的

设计一个功能完备,能够独立运行的精简DSP硬件系统,并设计简单的DSP控制程序。

二、 系统分析

1.1设计要求 硬件要求:

(1)使用TMS320VC5416作为核心芯片。 (2)具有最简单的led控制功能。 (3)具有存放程序的外部Flash芯片。 (4)外部输入+5V电源。 (5)绘制出系统的功能框图。

(6)使用AD(Altium Designer)绘制出系统的原理图和PCB版图。 软件要求:

利用实验箱的模拟信号产生单元产生不同频率的信号,或者产生两个频率的信号的叠加。在DSP中采集信号,并且对信号进行频谱分析,滤波等。通过键盘选择算法的功能,将计算的信号频率或者滤波后信号的频率在LCD上显示。

三、 硬件设计

3.1 硬件总体结构

3

3.2 DSP总体结构

3.3 电源模块设计

3.4 时钟模块设计

4

3.5 存储器模块设计

3.6复位模块设计

5

3.7 JTAG模块设计

四、 硬件设计

4.1 软件总体流程

6

4.2核心模块及实现代码 1.采集数据去直流

in_x[m] = port8002 & 0x00ff;//读取数据

m++;

intnum = m;

if (intnum == Len)

//以256个点为采样周期 { intnum = 0; xavg = 0.0; for (s=0; s

7

xavg = xavg/Len;//采样均值 for (s=0; s

//输入实部 pi[s] = 0;

//输入虚部 for (p=0; p

xmid[0] = x[s]; r = 0; rm= 0;

for (j=0; j

} y[s] = rm;

r = xmid[j] * h[j]; rm = rm + r; xmid[FLen-p-1] = xmid[FLen-p-2];

4. LCD显示

SendCMD(CLEAR);

showperson();

Delay(1);

//----------------------------

SendCMD(CLEAR);

SendCMD(0x0080);

//设定DDRAM的地址在第一行 80H

delay_100us();

for(i =0;i<16;i++)

{

SendDat(data_buff3[i]);

delay_100us();

asm(" nop "); } asm(" nop ");

SendCMD(0x0090);

shownum(f1);

//------------------------------ SendCMD(0x0088);

//设定DDRAM的地址在第二行 90H delay_100us(); for(i =0;i<16;i++)

{

SendDat(data_buff4[i]);

delay_100us(); }

SendCMD(0x0098);

shownum(f2); 4.3 软件实验效果图 1.去直流

12

2.滤波前fft

3.滤波后fft

13 4.窗口函数

五 课程设计总结

在为期两个多星期的综合设计中,重新熟悉了一下AD和CCS软件的操作 。在画原理图时,各元件的连接及封装形式都应参照手册。只有深刻了解各管脚的功能,才能准确快速地画好原理图。画好原理图后,要先编译一下看是否有连接错误。

如果原理图有所改变,可以在PCB中重新导入。如果元器件管脚或IO引脚变绿,可能是间距违反了规定的rule。可以将rule里的间距改小一点。在pcb连线过程中,我发现 移动clk时钟器件,其管脚变绿,但rule并无问题。后经查阅资料,取消了Drc功能,才恢复正常。在连接滤波电容时,将滤波电容靠近其滤波元器件。

在软件设计过程中,前两天一直没有搞清楚设计要求,进展缓慢。首先了结了一下各个模块程序的输入输出变量的含义,只有 这样才能正确地调用各个函数。在计算频率时,其实我只计算了一个频率。

14 输入是一个混频信号,由于左右对称,在128点内可得到两个最大幅度,0到30(或其他分界点亦可,视滤波效果而言),比较一次,30到128,再比较一次。滤波函数仅仅只是计算了窗口函数,故还需将输入信号函数和窗口函数进行卷积得到最终结果。

在编写LCD显示模块程序时,经常出现乱码。Unsigned

char类型的字符串数组,一个汉字相当于两个英文字母,如果地址1没有安排好容易出现乱码。

15

第三篇:DSP第一次实验报告

信息与通信工程学院

信号与信息处理综合实验(DSP部分)

实验报告

级: 2012211127

名: 刘灿

号: 2012210732 期: 2015.4.10 一.实验题目

Hello World和LED 二.实验目的

熟悉平DSK6416开发台,掌握CCS软件的基本操作流程,达到熟练操作软、硬件系统开发、调试的目的。

三.实验任务及要求

1.任务

(1)在控制台中显示Hello World

运行程序后,在控制台显示Hello World (2)控制LED灯闪烁

FTP给出一个LED的程序模板,可以控制LED 0的闪烁。基于该模板,需要完成:

(a) 修改闪烁的频率;

(b) 通过写8bit数值到CPLD寄存器来控制LED,使得4个LED以200ms的频率同时打开和关闭。

2.要求

(1)实现基本功能且不出现任何错误

(2)基于原理实现多功能的扩展

四.组内分工

刘杰

程序代码的编写与调试

刘灿

建立工程以及目标系统的配置

五.实验内容及流程

1.实验内容

这次实验内容是显示hello world和控制LED灯的闪烁。由于是dsp的第一次实验,内容比较简单,主要还是在于熟悉ccs这个软件在进行dsp开发时的具体建立工程、配置文件、导入实验板和程序烧写调试的过程和步骤。

2.实验流程介绍

1.新建工程

(1)打开ccs后点击菜单中的“File->New->Project”,选择“CCS project”,然后进入下一个页面进行工程的命名。

(2)命名完成之后是选择工程的硬件平台,我们实验室所使用的实验板是DSK6416,它的芯片为C6000系列的TMS320C6416,所以在“Project Type”下拉框中选择“C6000”,其余选项默认即可。

(3)接下来是设置工程属性,在“Device Variant”下拉栏中选择“Generic devices-> Generic C64xx Device”,“Device Endianness”选择little,,其余保持默认值。

(4)然后工程模板选择“hello world”,就完成了工程的新建。

2.代码编译和链接

(1)添加源代码 (2)配置CSL库

将C6000的CSL库,存在本地PC机硬盘上,我们hello world工程的代码路径为C: icsl。在pll_led工程图标上单击右键,选择“Show Build Settings…”来设置编译属性,设置include options,单击新建,在对话框中输入“C: icslinclude”

(3)定义芯片型号:

在“predefine symbols”选项中输入芯片型号CHIP_6416 (4)指定链接库:

在工程属性的“C6000 Linker”的“File Search Path”选项中需要添加DSK6416和CSL6416这两个库,其路径分别为“c: idsk6414libdsk6414bsl.lib”和“c: icsllib_2xcsl6414.lib”

(5)添加cmd文件:

在工程路径下新建一个文本文件,将其后缀修改成.cmd,名称可随便修改,并且在文本文件中写入下列内容: -stack 0x400 -heap 0x400 保存并编译工程,生成“.out”文件。

3.软件调试

在工程中运行“New ->Target Configuration File”新建配置文件,命名为DSK6416_led.ccxml来完成CCS软件和板卡的连接。命名完后在配置文件Basic中Connection选择Spectrum digital DSK-EVM-eZdsp onboard USB Emulator,Device选择DSK6416,保存。然后进行调试,设置断点。最后将程序烧录到实验板中,检查实验结果。

六.源代码及注释

#include #include "dsk6416.h" #include "dsk6416_led.h" #include "dsk6416_dip.h" void main(void) {

printf("Hello World! ");

//控制台显示“hello world”

DSK6416_init();

//初始化LED和DIP

DSK6416_LED_init();

DSK6416_DIP_init();

while(1) {

if (DSK6416_DIP_get(3) == 0)

//开关3控制LED灯以200ms闪烁

{

DSK6416_LED_toggle(3);

DSK6416_waitusec(200000);

}

else if(DSK6416_DIP_get(2) == 0)

//开关2控制LED灯以100ms闪烁

{

DSK6416_LED_toggle(3);

DSK6416_waitusec(100000);

}

else if(DSK6416_DIP_get(1) == 0)

//开关1控制4个灯以200ms同时亮灭

{

DSK6416_rset(DSK6416_USER_REG, 0x0f);

DSK6416_waitusec(200000);

DSK6416_rset(DSK6416_USER_REG, 0x00);

DSK6416_waitusec(200000);

}

else if(DSK6416_DIP_get(0) == 0) //开关0控制4个灯循环亮灭,间隔200ms

{

for(int i=0;i<4;i++){

DSK6416_LED_toggle(i);

DSK6416_waitusec(200000); }

}

} }

七.实验结果

1.按照实验步骤进行操作后,实验控制台正常显示显示“Hello World”,如下图:

2.实验板上DIP 0~3开关控制的LED灯闪烁效果也符合程序预期的效果。

八.遇到的问题

由于第一次实验的内容较为简单,我们在编程方面没有遇到什么困难,工程的建立和系统的配置也能照着实验指导书按部就班的完成。但是在连接实验板时我们遇到了连接不上的问题。机房的电脑连接实验板后安装不了驱动,我们自己带的笔记本电脑也有没有反应的现象。后来我们换了同学的电脑才成功的连接上。

九.心得体会

第一次的实验总的来说比较容易,主要是对ccs这个软件的操作和建立工程的过程的熟悉。通过这次实验我对于这学期dsp实验的流程和步骤有了大体的了解,也熟悉了ccs的编程和调试,也为下次的实验打好了基础。

第四篇:2013级DSP实验期末考试题

1、LED灯结合外部中断实验

 以一次正反向LED灯亮显示为一个周期,实现正向1,3,2,4灯依次亮,反向3,1,4,2依次亮,如此重复进行  在运行中的任何时候均可用外部中断停止

 要求在LED灯的程序上进行修改,即此工程名字为LED.pjt,或者自行创建工程

2、通过拨码开关控制流水灯的速度

 流水灯显示顺序依次为1,2灯,2,3灯,3,4灯,1,4灯,1,2灯,2,3灯......  用拨码开关分别控制流水灯,以正常为基准,可以实现加速、减速、暂停/继续  例如:拨码状态0001实现加速,0002实现暂停  暂停的时候状态要保持,继续的时候从当前状态开始

 要求在拨码开关的程序上进行修改,即此工程名字为DIP.pjt,或者自行创建工程

3、语音采集与放送结合指示灯实验

 使其中一个声道有数据读写时,指示灯1,2亮

 另一个声道有数据读写时,4灯亮  要求声音播放正常

 要求在语音采集与放送的程序上修改,即工程的名字为audio.pjt,或者自行创建工程

4、语音采集与放送结合ADC实验

 利用信号发生器加入白噪声  右通道是原音,左通道是加噪后的声音,右通道和左通道的声音不同

 要求在语音采集与放送的程序上修改,即工程的名字为audio.pjt,或者自行创建工程

5、DA多路转换结合拨码开关控制实验

 利用通道DAC1或DAC2输出正弦波、余弦波、方波、三角波等,自己设计复杂的图形也可(至少实现4种波形)

 例如:拨码开关为0001时输出正弦波,0010时输出波形为方波,波形输出由自己控制,拨码开关状态也由自己控制

 要求在拨码开关的程序上修改,即工程的名字为DIP.pjt,或者自行创建工程

6、定时器结合DAC实验

 用定时器触发DA模块完成正弦波、余弦波、方波、三角波等波形的循环显示,自己设计复杂的图形也可

 定时时间尽量长才能看见完整的波形

 注意定时器、向量表、cmd文件及寄存器配置  波形都用数学函数实现(至少实现4种波形)

 要求在DA转换的程序上修改,即工程的名字为DA.pjt,或者自行创建工程

7、结合外部中断、定时器以及LED灯实验

 利用外部中断控制实现指示灯的不同显示效果,定时器实现指示灯的亮灭长度  至少完成两种不同的指示灯显示功能

 主要考核两个中断的结合,注意向量表和CMD文件及中断的初始化的配置

 要求在定时器中断的程序上修改,即工程的名字为Timer.pjt,或者自行创建工程

8、自建C工程及混合编程实验

 包括自建工程、自建源文件、添加源文件、自动加载、C与汇编的混合编程、观察效率、

防止.ASM文件被替换等知识点

 每个知识点均有分值

 脱稿限时完成

 考试时现场完成以上操作

9、直方图均衡化增强

 在DSP中自行设计两幅80*80的相对复杂的图像(与实验中两幅图像不同)  将其进行直方图统计

 进行直方图均衡化增强

 使用View中Graph工具显示出原图、增强后图、相应直方图  对整个过程进行分析

 要求自己自建工程,工程名字不可和源代码工程名字相同

 脱稿限时完成

10、边缘检测

 在DSP中自行设计两幅80*80的相对复杂的图像(与实验中两幅图像不同)  实现基于Laplace算子的边缘检测

 使用View中Graph工具显示出Laplace算子的边缘检测结果  对整个过程进行分析

 要求自己自建工程,工程名字不可和源代码工程名字相同

 脱稿限时完成

11、外部中断、定时器、LED灯结合

 利用外部中断控制LED灯闪烁速度,实现每按一次按键,LED灯闪烁速度依次变慢。

至少实现两种情况

 定时器周期默认设定为最大值,不需修改

 要求在外部中断的程序上修改,即工程的名字为XINT.pjt,或者自行创建工程

12、AD转换和外部中断实验

 利用外部中断来启动AD转换,显示出波形

 要求在AD转换的程序上修改,即工程的名字为AD.pjt,或者自行创建工程

13、语音采集、外部中断、定时中断、LED灯结合

 能实现语音信号的采集,用外部中断来控制语音的快进,暂停,倒退,正常播放等  左声道持续送原音,右声道送待控制的音频

 同时用指示灯表示相应的操作,比如指示灯1亮代表播放,指示灯2亮代表暂停等,定

时器实现指示灯的亮灭长度

 注意要存储一段音频数据及存储数据的大小,右声道才能听出快进,暂停,倒退,正常

播放的效果(按一下执行下一个功能)

 要求在AD转换的程序上修改,即工程的名字为AD.pjt,或者自行创建工程

14、用定时器触发播放已保存好的语音信号

 先将通过DSP采集的语音信号进行存储

 左声道持续播放原音,右声道通过定时器中断重复播放存储的语音信号  进入定时中断时打印:“播放”

 要求在定时器中断的程序上修改,即工程的名字为Timer.pjt,或者自行创建工程

自行创建的工程需以学号为工程名。 除第8题以外,其它题目可堂下自行准备好程序,考试时抽取题目之后,将代码考到计算机中,演示结果并回答问题。 考试过程中,调试程序及演示结果时,不允许看ppt以及其它资料,但可看源代码。

第五篇:DSP实验指导书完全版正文_图文(精)

第一章 实验系统介绍

一、系统概述

EL-DSP-EXPII教学实验系统属于一种综合的教学实验系统,该系统采用双CPU 设计,实现了DSP 的多处理器协调工作。两个DSP 通过HPI 口并行连接, CPU1可以通过HPI 主机接口访问CPU2的存储空间。该系统采用模块化分离式结构,使用灵活方便用户二次开发。客户可根据自己的需求选用不同类型的CPU 适配板,我公司所有CPU 适配板是完全兼容的,用户在不需要改变任何配置情况下,更换CPU 适配板即可作TI 公司的不同类型的DSP 的相关试验。除此之外,在实验板上有丰富的外围扩展资源(数字、模拟信号发生器,数字量IO 扩展,语音CODEC 编解码、控制对象、人机接口等单元),可以完成DSP 基础实验、算法实验、控制对象实验和编解码通信试验。

EL-DSP-EXPII 教学实验系统功能框图

二、硬件组成

该实验系统其硬件资源主要包括: ● CPU 单元

● 数字量输入输出单元 ● 存储器及信号扩展单元 ● BOOTLOADER 单元 ● 语音模块 ● 液晶模块 ● CPLD 接口 ● A/D转换单元 ● D/A转换单元 ● 信号源单元 ● 温控单元 ● 步进电机 ● 直流电机 ● 键盘接口 ●

电源模块

1、 C PU 单元

CPU 单元包括CPU

1、CPU2两块可以更换的 CPU板,用户可根据需要选择不同种 类的CPU 板。板上除CPU 之外还包括以下单元: 1) CPU模式选择

CPU 通常情况下可以根据用户需求工作在不同的模式下,主要用MP/MC ————

的电平来决定。当MP/MC ————

为高电平时,DSP 工作在微处理器模式,当MP/MC —————

为低电平时。DSP 工作在为计算机方式。在不同模式下存储器映射表有所不同。详细信息请查阅相应的数据手册。 2)电源模块

在CPU 板上由于TMS320VC54X 数字信号处理器内核采用3.3V 和1.8V 供电,因此需要将通用的5V 转换成3.3V 和1.8V 。为中央处理器提供内部电源。转换电路如图所示:

3

3) 电平转换

由于数字信号处理其内部采用3.3V 和1.8V 供电,而且其输入输出接口电平为3.3V ,对于数字量输出而言完全可以和5V 电平兼容。但对于数字量输入而言,由于其内部是3.3V ,因此不能将中央处理器的输出口直接和外围扩展的5V 器件相连,必须加入电平转换期间进行电平转换和信号隔离。典型的就是数据线,必须进行隔离,对于其他的涉及到的输入信号也要进行相应的转换。在CPU 板上,U2(LVTH16245)完成了该项功能。 4) 复位电路以及时钟单元

复位电路主要包括上电复位和硬件手动复位,每次复位要求至少要有8到10个系统时钟。因此要求适当的配置复位电路RC 网络。时钟电源主要利用数字信号处理器内部晶振源,并通过外部锁相环控制电路,选择适当倍频倍数,为CPU 内部提供系统时钟。

2、数字量输入输出单元

● 8bit 的数字量输入(由八个带自锁的开关产生),通过74LS244缓冲;8bit 的数

字量输出(通过八个LED 灯显示),通过74LS273锁存。数字量的输入输出都映射到CPU 的IO 空间。

● 数字量显示的八个LED 数码管,通过HD7279控制。

3、存储器及信号扩展单元:

1 静态存储器SRAM(IS61C256 32K×8bit 在该实验板上,使用的存储器接口芯片是ISSI 公司的IS61C256,它具有以下特点:

● 访问速度

10、

12、

15、20、25ns 可选; ● 低功耗:400mW (典型); ● 低静态功耗

-250μW (典型)CMOS 器件; -55mW (典型)TTL 器件;

● 全静态操作,无需时钟或刷新; ● 输入输出和TTL 电平兼容; ● 单5V 供电。

静态存储器分为两个部分, 一部分是32K ×16bit 的程序存储器(地址为8000H ~0FFFFH )芯片序号U20、U21和32K ×16bit 的数据存储器(地址为0000H ~7FFFH )芯片序号U

22、U23。根据选择不同类型的CPU 分别映射到相应地址的程序空间和数据空间。

2 、DSK 扩展信号插座:

接插件P

7、P8是和TI 公司DSK 兼容的信号扩展接口,可连接图像处理、高速AD 、DA 、USB 、以太网等扩展板,也可以连接TI 公司的标准DSK 扩展信号板。

4、BOOTLOADER 单元:

使用的存储器接口芯片是28C256 32K×8bit ,地址为数据空间8000H ~0FFFFH ,它具有以下特点:

● 访问速度快于45ns ● 低功耗:典型静态CMOS 电流20μA ● 单5V 供电

● 供电电压可在±10%变化 ● 典型编程时间4S ● 100mA 闩锁保护从-1V 到V CC + 1V ● 高噪声门限 ● CMOS/TTL 输入/输出电平兼容 ●

标准28脚DIP 、PDIP 封装或32脚PLCC 封装

板上芯片序号U24用来存放用户程序,可以通过选择CPU 板上的MP/MC_______ 来选择bootloader 模式。出厂时存储器内固化了系统测试程序,上电后可对系统硬件进行自动测试。在本系统中采用并行存储器引导模式。

5、 语音处理单元

语音CODEC 采用TLC320AD50芯片。该芯片采用sigma-delta 技术提供高精度低速信号变换,有两个串行同步变换通道、D/A转换前的差补滤波器和A/D变换后的滤波器。其他部分提供片上时序和控制功能。Sigma-delta 结构可以实现高精度低速的数模/模数转换。芯片的各种应用软件配置可以通过串口来编程实现。主要包括:复位、节电模式、通信协议、串行时钟速率、信号采样速率、增益控制和测试模式。最大采样速率22.05kb/s,采样精度16bit 。

语音处理单元由语音输入模块、TLC320AD50模块、输出功率模块组成。语音输入模块采用偏置和差动放大技术,并经过滤波和处理后将输入到语音编解码芯片TLV320AD50,前端输入的电压范围为-2.5V---+2.5V。经过变换后输入到AD50的芯片的差动信号范围为0---5V 。TLC320AD50C 作为主方式,通过DSP 的MCBSP0口进行通信。 音频信号通过D/A转换后输出,由于TLC320AD50输出的是差动信号,因此首先经过差动放大,然后可以推动功率为0.4W 的板载扬声器,也可以接耳机输出。

语音处理单元原理框图 语音处理单元接口说明:

J14:音频输入端子,可输入CD 、声卡、MP

3、麦克风等语音信号。 J15:音频输出端子,可接耳机、音箱。 J3: 语音处理单元输入信号接口 J1: 语音处理单元输出信号接口

J6: 地

语音处理单元拨码开关说明:

语音处理单元可调电位器说明:

注:语音处理单元的二号孔IN 和OUT 通过导线的连接,可以为温控单元,信号源单元提供A/D,D/A转换的功能。详细操作参见实验指导。

6、液晶模块

本实验系统选用中文液晶显示模块LCM12864ZK ,其字型ROM 内含8192个16*16 点中文字型和128个16*8半宽的字母符号字型;另外绘图显示画面提供一个64*256点的绘图区域GDRAM ;而且内含CGRAM 提供4 组软件可编程的16*16 点阵造字功能。电源操作范围宽(2.7V to 5.5V;低功耗设计可满足产品的省电要求。同时,与CPU 等微控器的接口界面灵活(三种模式并行8 位/4 位串行3 线/2 线 ;LCD 数据接口基本上分为串行接口和并行接口两种形式,本实验采用串行接口方式,用户根据需要改变跳线JS1改用并行接口方式。

JS1 注:连接1,2 串行方式

液晶模块拨码开关说明:

7、CPLD 接口

采用XILINX 公司的XC95144XL 芯片,完成译码和时序控制。JTAG4为CPLD 下载接口。可用XILINX 公司的软件,通过并口下载电缆对CPLD 在线编程。

D

2、D3为CPLD 工作指示灯 ,正常工作时D

2、D3点亮。CPU1复位时, D3不亮,CPU2复位时,D2不亮。

8、D/A转换单元

数模转换采用DAC08芯片,分辨率8位,精度1LSB ,转换时间可达85ns 。DAC08

可以应用在8-bit, 1 us A/D变换,伺服电机、波形发生、语音编码、衰减器、可编程功率变换器、CRT 显示驱动、高速modems 以及其他要求低成本、高速等多功能场合。在本实验系统中,DAC08采用对称偏移二进制输出方式,输出电压范围-5V~+5V。

注:Vref=+10V 对称偏移二进制输出编码图

底板DAC08参考电压Vref=+5V;输入00h ,输出电压-5V ;输入ffh ,输出电压+5V。

D/A单元原理框图 数模转换单元接口说明:

J4:DA 输出端子 J2:地

9、A/D转换单元

模数转换芯片选用AD7822,单极性输入,采样分辨率8BIT ,并行输出;內含取样保持电路,以及可选择使用內部或外部参考电压源,具有转换后自动Power-Down 的模式,电流消耗可降低至

5μA 以下。转换时间最大为420ns , SNR可达48dB ,INL 及DNL 都在±0.75 LSB以內。可应用在数据采样、DSP 系统及移动通信等场合。在本实验系统中,参考电压源+2.5V,偏置电压输入引脚Vmid=+2.5V。模拟输入信号经过运放处理后输入AD7822。

AD7822编码图

模数单元原理框图

模数转换单元拨码开关说明:

J12: AD输入端子 J23:地 拨码开关其它设置状态为非法状态

10、信号源单元

频率、幅值可调双路三角波、方波和正弦波产生电路采用两片8038信号发生器,输出频率范围20~100KHz ,幅值范围-10V~+10V。输出波形、频率范围可通过波段开关来选择。频率、幅值可独立调节。两路输出信号可以经过加法器进行信号模拟处理和混叠,作为信号滤波处理的混叠信号源。混叠后的信号从信号源1输出。

ICL8038原理框图 信号源单元原理框图 信号源单元波段开关说明:

波形选择波段开关拨到底板丝印的相应位置选择对应的波形(正弦、三角、方波),频率选择波段开关拨到底板丝印的相应位置选择对应的频率范围(0~2K、2K~10K、10K~120K)。

信号源单元电位器说明:

J8:信号源1输出 J7:信号源2输出 J5:地

11、温度控制单元

由温度信号采集单元、加热信号驱动单元、模拟温箱加热控制电路组成。温度信号采集单元电路的热敏电阻的阻值随温度的变化而变化,经运放处理,输出一个

电压变化(逐渐减小 的温度信号给系统板的A/D采集输入端;加热信号驱动单元将系统板送来的加热信号分两路处理:一路放大后驱动加热指示二极管发光;另一路经隔离后驱动可控硅导通。模拟温箱加热控制电路由加热信号隔离电路、AC220V 控制电路(可控硅)输出电路组成。

温度控制单元拨码开关说明:

J10:温度控制单元反馈电压输出 J11:地 LED18:+12V电源指示灯。

12、步进电机单元

步进电机多为永磁感应式,有两相、四相、六相等多种,实验所用的电机为两相四拍式,通过对每相线圈中的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。脉冲信号是有DSP 的IO 端口(地址8001H 的低四位提供。位0对应“D ”,位1对应“C ”,位2对应“B ”,位3对应“A ”;

如下图所示,电机每相电流为0.2A ,相电压为5V ,两相四拍的通电顺序如下表所示:

注:顺时针方向旋转通电顺序为0-1-2-3;

逆时针方向旋转通电顺序为3-2-1-0; 步进电机单元拨码开关说明:

LED16:+12V电源指示灯; LED17:+5V电源指示灯;

13、直流电机单元

该单元由电压调整、驱动电路、速度检测反馈电路组成。由系统板送来的电压信号与可调节的基准电压经加法运算后,输出驱动直流电机运行;速度检测、反馈电路由于电机同轴转的转盘上的强力磁钢、霍尔磁感应放大器、单周期速度信号采集器组成,当与电机同轴运行的转盘上的磁钢与霍尔片正对时,霍尔片输出负电压,经整形、放大,供系统采集。

J9:直流电机控制脉冲输入端 J13:地 LED15:中断反馈指示灯;

14、键盘接口

键盘接口是由芯片HD7279按制的,HD7279是一片具有串行接口的,可同时驱动8位共阴式数码管或(64只独立LED )的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵, 单片即可完成LED 显示, 键盘接口的全部功能。HD7279A 内部含有译码器,可直接接受BCD 码或16进制码,并同时具有2种译码方式。此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A 具有片选信号,可方便地实现多于8 C D 位的显示或多于64键的键盘接口。在该实验系统中,仅提供了16个键。

15、其它接口说明

电源单元:为系统提供+5V、+12V、-12V 、+3.3V电源

JTAG 接口:

K1:非自锁按键,每按一下产生一个负的脉冲。

综上所述,本章介绍了该系统的硬件资源,看完本章内容,应该对实验系统有一个基本的了解,在余下的几章中将会结合实验详细介绍,每个单元在实验中的具体应用。

第二章 调试软件安装说明

一、CCS 的安装

利用CCS 集成开发环境,用户可以在一个开发环境下完成工程定义、程序编辑、编译链接、调试和数据分析等工作环节。下图为典型CCS 集成开发环境窗口示例。整个窗口由主菜单、工具条、工程窗口、编辑窗口、图形显示窗口、内存单元显示窗口和寄存器显示窗口等构成。

以安装CCS5000(2.0)为例:

1、 CCS 软件安装系统要求

要使用Code Composer Studio操作平台必须满足以下的要求: ● IBM PC(或兼容机

● Microsoft Window95/98/ NT 4.0/2000/XP

● 32M 内存,100M 硬盘空间, 奔腾处理器,SVGA(800*600

2、 Code Composer Studio的安装

(1 安装CCS 到系统中。将CCS 安装光盘放入到光盘驱动器中,运行CCS 安装程

序setup.exe 。出现以下画面。如果在WindowsNT 下安装,用户必须要具有系

统管理员的权限。

选择NEXT ,按系统提示安装,默认安装路径是“C : i”。 (2 安装完成后,在桌面上会有“CCS 2(‘C5000 )”和“Setup CCS 2(‘C5000 )”两个快捷方式图标。分别对应CCS 应用程序和CCS 配置程序。

(3如果用户的操作系统为Windows 95,则可能需要增加环境变量空间。方法是将语句“shell=c:windows command .com /e :4096/p" 添加到C

盘根目录下的

CONFIG .SYS 文件中,然后重新启动计算机。这条语句将环境变量空间设置为4096字节。

二、CCS 的设置

安装CCS 软件与普通的程序安装类似,没有特殊要求。下面介绍安装完成后如何设 置CCS 软件。如果CCS 是在硬件目标板上运行,则先要安装目标板驱动程序,然后运行“CCS Setup ”配置驱动程序,最后才能执行CCS 。除非用户改变CCS 应用平台类型,否则只需运行一次CCS 配置程序。运行Code Composer Studio Setup软件(即桌面上的Setup CCS2(C5000)图标。

点击Install a Device Driver,选择相应驱动程序. 例如:

5X 系列: PCI开发器为xdspci54x.dvr; ISA 开发器为wtxds54xisa.dvr EPP 开发器为sdgo5xx32.dll 2X 系列: PCI开发器为xdspci2xx.dvr ISA 开发器为wtxds2xxisa.dvr EPP 开发器为sdgo2xx32.dll 3X 系列: PCI开发器为xds3xPCI.dvr ISA 开发器为wtxds3xisa.dvr EPP 开发器为Sdgo3x32.dll

此时,Available Board/Simulator Type一栏中会出现相应的驱动图标;

把该图标拖动到最左边的System Configuration一栏中. 出现Board Properties对话框

.

点击NEXT, 进入下一页,会显示板卡的I/O口值,修改为0x378(ISA、PCI 、USB 仿真器不用修改 ,再点击NEXT ,

在Processor Configuration窗中, 在Available Processor中选择TMS320C54XX 然后, 点击Add Single;对话框右边出现CPU_1图标.

点击NEXT, 进入下一页,提示选择一个初始化的.GEL 文件,对于5000系列的DSP 芯片,可选择540

2、540

9、5410等。

最后, 点击finish. 关闭CCS 程序, 选择保存。至此CCS 安装设置完成。 第三章 硬件安装说明

硬件仿真器是进行系统开发的必备工具,它是采用边界扫描技术和CPU 芯片通过JTAG 口相连接。实现了主机对CPU 芯片的完全检测和控制。可以通过JTAG 和相应的软件调试环境实现系统的硬件调试和软件的再现调试开发工作。

一、DSP 硬件仿真器的安装

第一步、取出开发系统,检查是否齐全 ● EPP 开发系统

A . 关闭PC 机电源,将专用电缆插入并口中,注意插接要稳固。 B . 用+5V稳压电源通过电源插口给仿真器供电。 C .启动PC 机,安装新硬件,驱动程序eppdrive.zip

● USB 开发系统

A .关闭PC 机电源,将专用电缆插入USB 口中,注意插接要稳固。 B .启动PC 机,安装新硬件,驱动程序usbdrive.zip ● PCI 开发系统

A .关闭PC 机电源,取下机箱盒,将PCI 卡插入PCI 插槽中,注意插接要稳固。

B .启动PC 机,安装新硬件,驱动程序为pcitfsetup.zip C .安装好PCI 卡后,用37针专用连线,连接PCI 卡与连接仿真盒,再将仿真

盒另一端,连好JTAG 接线。

第二步、将以安装好的仿真器JTAG 线,插入CPU 板上的JTAG 接口。 至此,硬件仿真器安装完成。

二、DSP 硬件仿真器的使用

硬件仿真器的用法比较简单,只要将JTAG 口连接正确,DSP 芯片能够正常工作并且软件调试环境配置正确即可以应用。下面给出JTAG 的定义:

注意第六脚是空脚。

接通电源,把实验箱后方的电源开关打到“1”位置,实验箱通电,实验箱电源单元 的指示灯LED

1、

2、

3、4指示灯点亮。

双击桌面上的CCS2(‘C5000)图标,进入CCS 软件界面,可以开始。进行程序的开发和调试。

第四章 常规实验指导 实验一 常用指令实验

一、 实验目的

1、 了解DSP 开发系统的组成和结构;

2、 熟悉DSP 开发系统的连接;

3、 熟悉DSP 的开发界面;

4、 熟悉C54X 系列的寻址系统;

5、 熟悉常用C54X 系列指令的用法。

二、 实验设备

计算机,CCS 2.0版软件,DSP 仿真器,实验箱。

三、 实验步骤与内容

1、 系统连接

进行DSP 实验之前,先必须连接好仿真器、实验箱及计算机,连接方法如下所示:

2、 上电复位

在硬件安装完成后,确认安装正确、各实验部件及电源连接正常后,接通仿真器电源或启动计算机,此时,仿真盒上的“红色小灯”应点亮,否则DSP 开发系统与计算机连接有问题。

3、 运行CCS 程序

待计算机启动成功后,实验箱220V 电源置“ON ”,实验箱上电,启动CCS ,此时仿真器上的“绿色小灯”应点亮,并且CCS 正常启动,表明系统连接正常;否则仿真器的连接、JTAG 接口或CCS 相关设置存在问题,掉电,检查仿真器的连接、JTAG 接口连接,或检查CCS 相关设置是否正确。

注:如在此出现问题,可能是系统没有正常复位或连接错误,应重新检查系统硬件并复

位;也可能是软件安装或设置有问题,应尝试调整软件系统设置,具体仿真器和仿真 软件CCS 的应用方法参见第三章。

●成功运行程序后,首先应熟悉CCS 的用户界面

●学会CCS 环境下程序编写、调试、编译、装载,学习如何使用观察窗口等。

4、 修改样例程序,尝试DSP 其他的指令。

注: 实验系统连接及CCS 相关设置是以后所有实验的基础,在以下实验中这部分内容将不再复述。

5、 填写实验报告。

6、样例程序实验操作说明

启动CCS 2.0,并加载“exp01.out ”;

加载完毕,单击“Run ”运行程序;

实验结果:可见指示灯LED5以一定频率闪烁;单击“Halt ”暂停程序运行,则指示灯LED5停止闪烁,如再单击“Run ”,则指示灯LED5又开始闪烁;

关闭所有窗口,本实验完毕。

源程序查看:用下拉菜单中Project/Open,打开“Exp01.pjt ”,双击“Source ”,可查看源程序。

实验二 数据存储实验

一、 实验目的

1、 掌握TMS320C54的程序空间的分配;

2、 掌握TMS320C54的数据空间的分配;

3、 熟悉操作TMS320C54数据空间的指令。

二、 实验设备

计算机,CCS 2.0版软件,DSP 仿真器,实验箱。

三、 实验系统相关资源介绍

本实验指导书是以TMS32OVC5402为例,介绍相关的内部和外部存储器资源。对于其他类型的CPU 请参考查阅相关的数据手册。

下面给出TMS32OVC5402的存储器分配表:

对于数据存储空间而言,映射表相对固定。值得注意的是内部寄存器都映射到数据存储空间内。因此在编程应用是这些特定的空间不能作其他用途。对于程序存储空间而言,其映射表和CPU 的工作模式有关。当MP/MC引脚为高电平时,CPU 工作在微处理

器模式;当MP/MC引脚低电平时,CPU 工作在为计算机模式。具体的存储器映射关系如上如所示。

存储器试验主要帮助用户了解存储器的操作和DSP 的内部双总线结构。并熟悉相关的指令代码和操作等。

四、 实验步骤与内容

1、 连接好DSP 开发系统,运行CCS 软件;

2、 在CCS 的Memory 窗口中查找C5402各个区段的数据存储器地址,在可以改变

的数据地址随意改变其中内容;

3、 在CCS 中装载实验示范程序,单步执行程序,观察程序中写入和读出的数据存

储地址的变化;

4、 联系其他寻址方式的使用。

5、 样例程序实验操作说明

启动CCS 2.0,并加载“exp02.out ”;

用“View ”下拉菜单中的“Memory ”查看内存单元;

输入要查看的内存单元地址,本实验要查看0x1000H~0x100FH单元的数值变化,输入地址0x1000H ;

查看0x1000H~0x100FH单元的初始值,单击“Run ”运行程序,也可以“单步”运行程序;

单击“Halt ”暂停程序运行;

查看0x1000H~0x100FH单元内数值的变化;

关闭各窗口,本实验完毕。

源程序查看:用下拉菜单中Project/Open,打开“Exp02.pjt ”,双击“Source ”,可查看源程序。

本实验说明:

本实验程序将对0x1000开始的8个地址空间,填写入0xAAAA 的数值,然后读出,并存储到0X1008开始的8个地址空间。在CCS 中可以观察DATA 存储器空间地址0X1000~0X100F值的变化。

实验三 I/O实验

一、 实验目的

1、 了解I/O口的扩展;掌握I/O口的操作方法;

2、 熟悉PORTR ,PORTW 指令的用途;

3、 了解数字量与模拟量的区别和联系。

二、 实验设备

计算机,CCS 2.0版软件,DSP 仿真器,实验箱。

三、 实验步骤与内容

1、 运行CCS 软件,装载示范程序,分别调整数字输入单元的开关K2~K9,观察

LED7~LED14亮灭的变化,以及输入和输出状态是否一致。

2、 样例程序实验操作说明

启动CCS 2.0,并加载“exp03.out ”;

单击“Run ”运行程序;

任意调整K2~K9开关,可以观察到对应LED7~LED14 灯“亮”或“灭”;单击“Halt ”,暂停持续运行,开关将对灯失去控制;

关闭所有窗口,本实验完毕。

源程序查看:用下拉菜单中Project/Open,打开“Exp03.pjt ”,双击“Source ”,可查看源程序。

四、 实验说明

实验中采用简单的一一映射关系来对I/O口进行验证,目的是使实验者能够对I/O 有一目了然的认识。在本实验中,提供的IO 空间分配如下:

CPU: 0x8000 按键 input (X 8 0x8001 灯 output(X 8

实验四 定时器实验

一、 实验目的

1、 熟悉C54的定时器;

2、 掌握C54定时器的控制方法;

3、 学会使用定时器中断方式控制程序流程。

二、 实验设备

计算机,CCS 2.0版软件,DSP 硬件仿真器,实验箱。

三、 实验步骤和内容

1、 运行CCS 软件,调入样例程序,装载并运行;

2、 定时器试验通过数字量输入输出单元的LED7~LED14来显示;

3、 例程序实验操作说明

启动CCS 2.0,并加载“exp04.out ”;

单击“Run ”运行,可观察到LED 灯(LED7~LED14)以一定的间隔时间不停摆动;

单击“Halt ”,暂停程序运行,LED 灯停止闪烁;单击“Run ”,运行程序,LED 灯又开始闪烁;

关闭所有窗口,本实验完毕。

源程序查看:用下拉菜单中Project/Open,打开“Exp04.pjt ”,双击“Source ”,可查看各源程序。

四、实验说明

C54的定时器是一个20位的减法计数器,可以被特定的状态位实现停止、重新启动、重设置或禁止,可以使用该定时器产生周期性的CPU 中断,控制定时器中断频率的两个寄存器是定时周期寄存器PRD 和定时减法寄存器TDDR 。

在本系统中,如果设置时钟频率为20MHZ ,令PRD = 0x4e1f ,这样得到每1/1000秒中断一次,通过累计1000次,就能定时1秒钟。

实验五 INT2中断实验

一、 实验目的

1. 掌握中断技术,学会对外部中断的处理方法;

2. 掌握中断对程序流程的控制,理解DSP 对中断的响应时序。

二、 实验设备

计算机,CCS 2.0版软件,DSP 仿真器,实验箱

三、 实验步骤和内容

1、 低电平单脉冲触发DSP 中断INT2;该中断由“单脉冲单元”产生。 按一次非自锁开关K1,产生一个中断。

2、运行CCS 软件,调入样例程序,装载并运行;

3、每按一次开关K

1、LED7~LED14灯亮灭变化一次;

4、填写实验报告。

5、样例程序实验操作说明

启动CCS 2.0,并加载“exp05.out ”;

单击“Run ”运行程序,反复按开关K1,观察LED7~LED14灯亮灭变化;

单击“Halt ”暂停程序运行,反复按开关K1,LED7~LED14灯亮灭不变化;

上一篇:浙社险199873号下一篇:谢谢你350400字