DSP硬件实验报告.docx

上传人:b****4 文档编号:5879142 上传时间:2023-05-09 格式:DOCX 页数:24 大小:384.45KB
下载 相关 举报
DSP硬件实验报告.docx_第1页
第1页 / 共24页
DSP硬件实验报告.docx_第2页
第2页 / 共24页
DSP硬件实验报告.docx_第3页
第3页 / 共24页
DSP硬件实验报告.docx_第4页
第4页 / 共24页
DSP硬件实验报告.docx_第5页
第5页 / 共24页
DSP硬件实验报告.docx_第6页
第6页 / 共24页
DSP硬件实验报告.docx_第7页
第7页 / 共24页
DSP硬件实验报告.docx_第8页
第8页 / 共24页
DSP硬件实验报告.docx_第9页
第9页 / 共24页
DSP硬件实验报告.docx_第10页
第10页 / 共24页
DSP硬件实验报告.docx_第11页
第11页 / 共24页
DSP硬件实验报告.docx_第12页
第12页 / 共24页
DSP硬件实验报告.docx_第13页
第13页 / 共24页
DSP硬件实验报告.docx_第14页
第14页 / 共24页
DSP硬件实验报告.docx_第15页
第15页 / 共24页
DSP硬件实验报告.docx_第16页
第16页 / 共24页
DSP硬件实验报告.docx_第17页
第17页 / 共24页
DSP硬件实验报告.docx_第18页
第18页 / 共24页
DSP硬件实验报告.docx_第19页
第19页 / 共24页
DSP硬件实验报告.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

DSP硬件实验报告.docx

《DSP硬件实验报告.docx》由会员分享,可在线阅读,更多相关《DSP硬件实验报告.docx(24页珍藏版)》请在冰点文库上搜索。

DSP硬件实验报告.docx

DSP硬件实验报告

北京邮电大学

DSP硬件课程实验报告

姓名:

学号:

班级:

序号:

院系:

电子工程学院

报告提交日期:

2011年12月2日

目录

一、实验环境——————————————————3

二、实验一:

常用指令实验

(1)简单指令程序运行实验———————————————3

(2)资料存储实验———————————————————5

(3)I/O实验—————————————————————7

(4)定时器实验————————————————————9

(5)INT2中断实验——————————————————11

三、实验二:

A/D采样实验———————————————13

四、实验三:

D/A转换实验———————————————14

五、实验四:

有限冲击响应滤波器(FIR)算法实验————15

六、实验总结—————————————————————17

七、参考文献—————————————————————17

一、实验环境

实验采用的是理工达盛开发的EL-DSP-II实验教学系统。

在实验室电脑上首先进行DSP实验环境的设置。

环境设置的步骤:

1、在计算机BIOS中将驱动方式设为EPP模式;

2、安装开发器epp驱动;

3、安装CCS软件;

具体的环境设置步骤参照实验教材。

二、实验一:

常用指令实验

(一)实验目的

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

2、了解DSP开发系统的组成和结构和应用系统构成;

3、熟悉常用C54X系列指令的用法(程序寻址,寄存器,I/O口,定时器,中断控制)。

(二)实验设备

计算机,CCS2.0版软件,DSP仿真器,实验箱。

(三)实验操作方法

1、系统连接;

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

 

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

2、运行CCS程序;

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

成功运行程序后,首先应熟悉CCS的用户接口。

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

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

4、填写实验报告;

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

(四)实验步骤与内容

1、简单指令程序运行实验

(1)实验使用资源

实验通过实验箱上的XF指示灯观察程序运行结果。

(2)实验过程

启动CCS2.0,并加载“exp01.out”;

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

(3)实验结果:

可见XF灯以一定频率闪烁;单击“Halt”暂停程序运行,则XF灯停止闪烁,如再单击“Run”,则“XF”灯又开始闪烁;

(4)源程序查看:

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

(5)实验源程序代码注释

;FileName:

exp01.asm

;theprogramiscompiledatnoautoinitializationmode

.mmregs

.global_main

_main:

stm#3000h,sp//将3000H放到sp中

ssbxxf//给状态寄存器置位,令XF=1,此时灯XF亮

calldelay//调用子程序DELAY,使XF灯亮0.25秒

rsbxxf//状态寄存器复位,令XF=0,灯灭

calldelay//调用子程序DELAY,使XF灯灭0.25秒

b_main//循环执行_main

nop

nop

;delay.5second

delay:

stm270fh,ar3//将9999放到AR3中

loop1:

stm0f9h,ar4//将249放到AR4中

loop2:

banzloop2,*ar4-//AR4执行减1操作,不为0则重复执行LOOP2,直到AR4为0

banzloop1,*ar3-//AR3执行减1操作,不为0则重复执行LOOP1,直到AR3为0

ret//总共执行了2500000次循环,用时0.25秒

nop

nop

;stm2cycles

;banzwhenTRUE4cycles

;FALSE2cycles

;0f9h=>249d

;270fh=>9999d

.end

2、资料存储实验

(1)实验使用资源

本实验指导书是以TMS32OVC5410为例,介绍相关的内部和外部内存资源。

对于其它类型的CPU请参考查阅相关的资料手册。

下面给出TMS32OVC5410的内存分配表:

对于存储空间而言,映像表相对固定。

值得注意的是内部寄存器与存储空间的映像关系。

因此在编程应用时这些特定的空间不能作其它用途。

对于程序存储空间而言,其映像表和CPU的工作模式有关。

当MP/MC引脚为高电平时,CPU工作在微处理器模式;当MP/MC引脚低电平时,CPU工作在为计算机模式。

具体的内存映像关系如上图所示。

内存实验主要了解内存的操作和DSP的内部双总线结构。

并熟悉相关的指令代码和执行过程等。

(2)实验过程

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

a)在CCS的Memory窗口中查找C5410各个区段的数据存储器地址,在可以改变的存储器内容的地方,选定地址随意改变其中内容并观察结果;

b)在CCS中装载实验示范程序,单步执行程序,程序中写入和读出的数据存储地址的变化;

c)改变其它寻址方式,进行观察数据存储器地址与写入和读出数据的的变化。

(3)实验说明:

本实验程序将对0x1000开始的8个地址空间,填写入0xAAAA的数值,然后读出,并存储到0X1008开始的8个地址空间。

在CCS中可以观察DATA内存空间地址0X1000~0X100F值的变化。

(4)样例程序实验操作说明

启动CCS2.0,并加载“exp02.out”;

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

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

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

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

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

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

(5)源程序查看:

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

(6)实验源程序代码注释:

*FileName:

exp02.asm

;getsomeknowledgeofthecmdfile

;theprogramiscompiledatnoautoinitializationmode

.mmregs

.global_main

_main:

;storedata//存储数据

stm1000h,ar1;addressofinternalmemory//将1000H赋给AR1

stm5000h,ar1//addressofexteriormemory

rpt#07h//循环执行下一条指令8次,即对从1000H开始到1007H的内存写入0AAAAH

st0aaaah,*ar1+//对1000H写入0AAAAH,然后将AR1加1,使AR1指向1001H,下一次循环将0AAAAH写入1001H,再将AR1加1,依此循环8次

;readdatathenre-store//读出数据再存储

stm7h,ar3//将7H赋给AR3

;stm5000h,ar1//addressofexteriormemory

;stm5008h,ar2//addressofexteriormemory

stm1000h,ar1//将1000H赋给AR1

stm1008h,ar2//将1008H赋给AR2

loop:

ld*ar1+,t//将地址为AR1中的数值给T,即第一次循环将1000H中的0AAAAH给T,然后将AR1加1,下一次循环将1001H中的0AAAAH给T,再将AR1加1,依此循环

stt,*ar2+//将T的值给地址为AR2的内存单元,即第一次将T的值给1008H,然后将AR2加1,下一次循环将T的值给1009H,再将AR2加1,依此循环

banzloop,*ar3-//当AR3不为0时循环执行LOOP,直到AR3为0,即循环进行8次赋值操作,循环的结果为从1000H到100FH的内存单元的值0AAAAH

here:

bhere

.end

3、I/O实验

(1)实验使用资源

数字量输入信号全部拓展出来,数字量输入接口主要由两个,D_Exp与扳东开关连接,PX4和PX5与电平转换芯片(74LVC245)连接,其功能分别为:

D_Exp—数字量输入扩展接口

I0

I1

I2

I3

I4

I5

I6

I7

VCC

电平转换扩展接口

PX4—5V

IN0

IN1

IN2

IN3

PX5—3.3V

OUT3

OUT2

OUT1

OUT0

通过PORTR,PORTW指令可以实现I/O口的输入输出功能,如数字量采集实验。

(2)实验说明:

实验中采用简单的一一映像关系来对I/O口进行验证,目的是使实验者能够对I/O有一目了然的认识。

在本实验系统中,提供的IO空间分配如下:

CPU1:

0x0000switchinput(X)8

0x0001LEDoutput(X)8

CPU2:

0x0001DAC

0x0004Read_Key

0x0006Write_Key

0x000FWrite_LCD

0x8000HPIC0

0x8001HPIC1

0x8002HPID0(AUTO)

0x8003HPID1(AUTO)

0x8004HPIA0

0x8005HPIA1

0x8006HPID0(NOAUTO)

0x8007HPID1(NOAUTO)

(3)实验程序框图

 

注意:

电平转换接口主要考虑应用3.3V的中央处理器时,系统的电平兼容问题,用来保护CPU不受损坏。

系统采用74LVC245电平兼容转换器件。

(4)实验过程

运行CCS程序,装载示范程序,调整K0~K7的开关,观察LP1~LP7LED亮灭的变化,以及输入和输出状态是否一致。

(注意:

输出为0时点亮灯)

(5)例程序实验操作说明

启动CCS2.0,并加载“exp03.out”;

单击“Run”运行程序;

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

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

(6)源程序查看:

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

(7)实验源程序代码注释

;FileName:

exp03.asm

;learnhowtooperatetheI/Oports

;getsomeknowledgeoftherts.libfile

;intheI/Ospace0x0000=>8switches

;0x0001=>8LEDs

.mmregs

.global_main

.text

_main:

stm3100h,sp//将3100H送到SP,即SP指向地址为3100H的内存单元

stm1000h,ar1//将1000H的赋给AR1,即AR1指向地址为1000H的内存单元

portr00h,*ar1//将端口00H的数据读到地址为1000H的内存单元中

nop//空操作,即不执行任何操作

nop

portw*ar1,01h//将1000H中的数据送到端口01H

nop//空操作

nop

b_main//循环执行_main

nop

nop

.end

4、定时器实验

(1)实验使用资源

定时器实验时要用到C54芯片的定时器控制寄存器,定时器时间常数寄存器,定时器中断响应,寄存器定义详见C54芯片资料。

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

定时器实验通过LED(LP1~LP7)来显示。

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

(2)实验过程

调入样例程序,装载并运行;

例程序实验操作说明

启动CCS2.0,并加载“exp04.out”;

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

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

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

(3)源程序查看:

用下拉菜单中Project/Open,打开“Exp04.pjt”,双击“Source”,双击“exp04.c”、“initial.asm”、“port.asm”以及“vectors.asm”可查看各源程序。

(4)实验源程序代码注释

;子程序initial.asm

.mmregs

.global_initial

_initial:

stm300h,ar1;initial300hdataaddress

st#00h,*ar1//将00H存储到地址为300H的内存中

stm302h,ar1//initial302hdataaddress

st#00h,*ar1//将00H存储到地址为300H的内存中

stm200h,ar1

st#5555h,*ar1//将5555H存储到地址为200H的内存中

stm201h,ar1

st#0aaaah,*ar1//将0AAAAH存储到地址为201H的内存中

stm202h,ar1

st#400h,*ar1//将400H存储到地址为202H的内存中

ssbx1,11;setST1.INTM=1,stopallinterrrupt

stm0ffffh,ifr;clearallinterruptindicate

stm00h,imr;setimr=0,stopallinterrrupt

stm410h,tcr;stoptimer//停止计时

stm4e1fh,prd;setprd=4e1fh=19999

stm420h,tcr;starttimer//开始计时

stm08h,imr;allowtimerinterrupt//将08H写入IMR,允许中断

rsbx1,11;setST1.INTM=0,startallinterrrupt

ret

;子程序potr.asm

.mmregs

.global_porta

.global_portb

_porta:

stm304h,ar1

st5555h,*ar1//将5555H存储到地址为304H的内存中

portw*ar1,01h//将304H中的值写到端口01H,即把5555H送到端口01H

ret

_portb:

stm304h,ar1

st0aaaah,*ar1//将0AAAAH存储到地址为304H的内存中

portw*ar1,01h//将304H中的值写到端口01H,即把0AAAAH送到端口01H

ret

主程序

#include

interruptvoidtimer();//声明函数

externvoidinitial();//声明外部函数initial

externvoidporta();//声明外部函数porta

externvoidportb();

intflag=0;

interruptvoidtimer()//该函数负责定时,每次中断调用该函数

{

*(int*)0x300=*(int*)0x300+1;//内存为0X300的值自加1

if(*(int*)0x300==0x3e8)

{

*(int*)0x300=0;//当加到0X3e8既十进制1000次时,让0x300的值为0

*(int*)0x302=*(int*)0x302+1;

if(flag==0)

{flag=1;

porta();//执行函数porta同时将flag=1,下次执行timer时执行portb

}

else

{flag=0;

portb();//执行函数portb同时将flag=0,下次执行timer时执行porta

}

}

return;

}

main()

{

initial();

while

(1){;}

}

5、INT2中断实验

(1)实验使用资源

本实验是进行C54芯片的INT2中断练习,C54芯片中断INT2是低电平单脉冲触发;实验采用导线一端连接D_Exp—数字量输入扩展接口I0,经PX4的IN3,到PX5的OUT0电平转换,再与另一端连接INT2插孔;拨动开关K0一次,就产生一个低电平单脉冲;运行示范程序,观察LP1~LP7LED灯的输出变化;可观察到每拨动开关K0一次LP1~LP7灯亮灭变化一次;

(2)实验过程

样例程序实验操作说明;

启动CCS2.0,并加载“exp05.out”;

单击“Run”运行程序,反复拨动开关K0,观察LP1~LP7LED灯亮灭变化;

单击“Halt”暂停程序运行,反复拨动开关K0,LP1~LP7LED灯亮灭不变化;

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

(3)源程序查看:

用下拉菜单中Project/Open,打开“Exp05.pjt”,双击“Source”,双击“int2.c”、“initial.asm”、“port.asm”以及“vectors.asm”可查看各源程序。

(4)实验源程序代码注释

主程序int2

interruptvoidint2c();

externvoidinitial();

externvoidporta();

externvoidportb();

intflag=0;

main()

{

initial();

while

(1){;}

}

interruptvoidint2c()

{

asm("nop");

*(int*)0x300=*(int*)0x300+2;//内存为0X300的值自加2

if(flag==0)

{

flag=1;

porta();//执行函数porta同时将flag=1

}

else

{

flag=0;

portb();//执行函数portb同时将flag=0

}}

子程序

initial()

.mmregs

.global_initial

.text

_initial:

stm300h,ar3;initialdata300h//将地址300h赋给ar3

st#00h,*ar3//将立即数00h赋予ar3

stm302h,ar4//将地址302h赋给ar4

st#00h,*ar4//将立即数00h赋予ar4

ssbx1,11;setst1.intm=1stopallinterrupt//置位,设置状态寄存器1为1

stm00h,imr;stopallinterrupt//重新赋值,设置中断屏蔽寄存器为0

stm0ffffh,ifr;clearallinterruptsign//将所有的中断的标志位清零

stm04h,imr;allowint2interrupt//允许int2中断

rsbx1,11//allowallinterrupt//允许所有的中断

ret

.end

子程序potr.asm

.mmregs

.global_porta

.global_portb

_porta:

stm304h,ar1

st5555h,*ar1//将5555H存储到地址为304H的内存中

portw*ar1,01h//将304H中的值写到端口01H,即把5555H送到端口01H

ret

_portb:

stm304h,ar1

st0aaaah,*ar1//将0AAAAH存储到地址为304H的内存中

portw*ar1,01h//将304H中的值写到端口01H,即把0AAAAH送到端口01H

ret

三、实验二A/D采样实验

(一)实验目的

1.掌握利用TLV320AD50实现A/D转换的技术基本原理和常用方法。

2.学会DSP的多信道缓冲串口的应用方法。

3.掌握并熟练使用DSP和AD50的接口及其操作。

4.通过实验加深对DSP系统频谱混叠认识。

(二)实验设备

计算机,CCS2.0软件,DSP仿真器,实验箱,示波器,连接导线。

(三)实验步骤和内容

1、实验连线

用短接块短接SS1的1,2脚,设置输出低频信号;短接S2的Sin脚,设置输出正弦波信号,这时模拟信号产生单元SP1输出为低频正弦波。

²JD跳线断开,设置语音处理单元输入信号为交流;并用导线连接SP1脚和JAD3的1脚,将模拟低频正弦波信号接入语音处理单元。

²用导线连接JAD1的INP和INPF,以及JAD2的INM和INMF,将语音处理单元输出的差动模拟信号接入AD50输入端。

2、运行CCS2.0软件,装入“exp06.pjt”工程文件,双击“exp06.pjt”及“Source”,打开各源程序;并阅读程序,明确多通道串口和AD50初始化程序,DSP串口采样程序使用。

3、加载“exp06.out”示范程序,在“exp06.c”中“REA

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2