北邮DSP硬件实验报告.docx

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

北邮DSP硬件实验报告.docx

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

北邮DSP硬件实验报告.docx

北邮DSP硬件实验报告

实验成绩:

 

DSP硬件实验报告

 

学号:

10210993

罗润文

班序号:

       13           

报告提交日期:

2012年12月13日

邮电大学

实验一:

常用指令实验

一、实验目的

1.熟悉DSP开发系统的连接

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

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

二、实验设备

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

三、实验操作方法

1、系统连接

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

 

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

2、运行CCS程序

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

四、实验步骤与容

(一)简单指令程序运行实验

1、实验使用资源

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

2、实验过程

启动CCS2.0,并加载“exp01.out”;加载完毕后,单击“Run”运行程序;

实验结果:

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

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

源程序查看:

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

 

源程序注释如下:

源程序:

注释:

;FileName:

exp01.asm

;theprogramiscompiledatnoautoinitializationmode

.mmregs

.global_main

_main:

stm#3000h,sp

ssbxxf

calldelay

rsbxxf

calldelay

b_main

nop

nop

;delay.5second

delay:

stm270fh,ar3

loop1:

stm0f9h,ar4

loop2:

banzloop2,*ar4-

banzloop1,*ar3-

ret

nop

nop

;stm2cycles

;banzwhenTRUE4cycles

;FALSE2cycles

;0f9h=>249d

;270fh=>9999d

.end

 

定义存储器映像寄存器 

全局符号,可在外部定义

;设置堆栈指针寄存器的值为3000h

;置位状态寄存器xf

;调用delay函数

;复位状态寄存器xf

;调用delay函数

;无条件转移至_main

;空指令

;空指令

 

;设置辅助寄存器ar3值为9999

;设置辅助寄存器ar4值为249

;寄存器ar4值减一,当其值不为0时跳转到loop2

;寄存器ar3值减一,当其值不为0时跳转到loop1

;返回

;空指令

;空指令

 

(二)资料存储实验

1、实验使用资源

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

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

下面给出TMS32OVC5410的存分配表:

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

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

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

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

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

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

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

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

2、实验过程

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

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

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

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

本实验说明:

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

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

样例程序实验操作说明:

启动CCS2.0,并加载“exp02.out”,用“View”下拉菜单中的“Memory”查看存单元,输入要查看的存单元地址,本实验要查看0x1000H~0x100FH单元的数值变化,输入地址0x1000H,查看0x1000H~0x100FH单元的初始值,单击“Run”运行程序,也可以“单步”运行程序,单击“Halt”暂停程序运行,查看0x1000H~0x100FH单元数值的变化

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

源程序注释:

源程序:

注释:

*FileName:

exp02.asm

;getsomeknowledgeofthecmdfile

;theprogramiscompiledatnoautoinitializationmode

.mmregs

.global_main

_main:

;storedata

stm1000h,ar1

rpt#07h

st0aaaah,*ar1+

;readdatathenre-store

stm7h,ar3

stm1000h,ar1

stm1008h,ar2

loop:

ld*ar1+,t

stt,*ar2+

banzloop,*ar3-

here:

 bhere

.end

 

;将外部存地址1000h赋给ar1

;循环执行下一条指令8次

;将0aaaah的值存储在ar1所对应存中,且ar1值加1

;将7h赋给辅助寄存器ar3

;将地址1000h赋给辅助寄存器ar1

;将地址1008h赋给辅助寄存器ar2

;将辅助寄存器ar1的值赋给t,且ar1存地址加1

;将t的值存储在ar2所对应存中,且ar2存地址加1

;寄存器ar3值减1,当其值不为0时跳转到loop

;无条件转移至here

(三)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口的输入输出功能,如数字量采集实验。

实验说明:

实验中采用简单的一一映像关系来对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.3V的中央处理器时,系统的电平兼容问题,用来保护CPU不受损坏。

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

2、实验过程

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

(注意:

输出为0时点亮灯)

例程序实验操作说明

启动CCS2.0,并加载“exp03.out”,单击“Run”运行程序,任意调整K0~K7开关,可以观察到对应LP0~LP7灯“亮”或“灭”;单击“Halt”,暂停持续运行,开关将对灯失去控制。

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

源程序查看:

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

代码如下:

源程序:

注释:

;FileName:

exp03.asm

;learnhowtooperatetheI/Oports

;getsomeknowledgeoftherts.libfile

;intheI/Ospace0x0000=>8switches

;0x0001=>8LEDs

.mmregs

.global_main

.text

_main:

stm3100h,sp

stm1000h,ar1

portr00h,*ar1

nop

nop

portw*ar1,01h

nop

nop

b_main

nop

nop

.end

 

;设置堆栈指针寄存器的值为3000h

;设置辅助寄存器ar1值为1000h

;从00h端口读数据传入ar1所指向的存空间,读按键

;空指令

;空指令

;将ar1所指向的存空间的值赋给01h端口,控制led灯

;空指令

;空指令

;无条件转移至_main,实现按键控制

;空指令

;空指令

 

(四)定时器实验

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灯又开始闪烁。

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

源程序:

exp04.c

注释:

#include

interruptvoidtimer();

/*externvoidtime();*/

externvoidinitial();

externvoidporta();

externvoidportb();

intflag=0;

interruptvoidtimer()

{*(int*)0x300=*(int*)0x300+1

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

{

*(int*)0x300=0;

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

if(flag==0)

{flag=1;

porta();

}

else

{flag=0;

portb();}

}

return;}

main()

{initial();初始化

while

(1){;};无限循环}

 

;定时不断加1

;当定时器数值达到0x3e8,开始定时器中断

为定时器重新赋予初值

;如果flag为0,则将其变为1,执行porta()

 

;如果flag为1,则将其变为1,执行portb()

源程序:

initial.asm

.mmregs

.global_initial

_initial:

stm300h,ar1

st#00h,*ar1

stm302h,ar1

st#00h,*ar1

stm200h,ar1

st#5555h,*ar1

stm201h,ar1

st#0aaaah,*ar1

stm202h,ar1

st#400h,*ar1

ssbx1,11

stm0ffffh,ifr

stm00h,imr

stm410h,tcr

stm4e1fh,prd

stm420h,tcr

stm08h,imr

rsbx1,11

ret

 

;将300h赋值给ar1

;将00h赋值给存地址为300h的空间里

;将302h赋值给ar1

;将00h赋值给存地址为302h的空间里

;为存200h的容赋予5555h

;为存201h的容赋予aaaah

;为存202h的容赋予400h

;设置ST1.INTM=1,停止所有的中断

;清除所有中断的标志位,中断标志寄存器(IFR)用来指明各个中断的目前状态。

;停止所有的中断中断屏蔽寄存器(IMR)在需要的时候独立地屏蔽特定的中断

;停止定时器

;设置定时器,定时器周期计数器

;打开定时器定时器控制寄存器

;允许定时器中断

;设置ST1.INTM=0,打开所有中断

源程序:

port.asm

注释:

.mmregs

.global_porta

.global_portb

_porta:

stm304h,ar1

st5555h,*ar1

portw*ar1,01h

ret

_portb:

stm304h,ar1

st0aaaah,*ar1

portw*ar1,01h

ret

 

;将304h赋给辅助寄存器ar1

;将存304h的容赋予5555h

;将存304h的值写入01h端口

 

;将存304h的容赋予0aaaah

;将存304h的值写入01端口

源程序:

vectors.asm

注释:

.sect".vectors"

.ref_c_int00

.ref_timer

.align0x80

RESET:

BD_c_int00STM#200,SP

stacksizeof200

nmi:

RETE

NOP

NOP

NOP

sint17.space4*16

sint18.space4*16

sint19.space4*16

sint20.space4*16

sint21.space4*16

sint22.space4*16

sint23.space4*16

sint24.space4*16

sint25.space4*16

sint26.space4*16

sint27.space4*16

sint28.space4*16

sint29.space4*16

sint30.space4*16

int0:

RETE

NOP

NOP

NOP

int1:

RETE

NOP

NOP

NOP

int2:

RETE

NOP

NOP

NOP

tint:

b_timer

NOP

NOP

rint0:

RETE

NOP

NOP

NOP

xint0:

RETE

NOP

NOP

NOP

rint1:

RETE

NOP

NOP

NOP

xint1:

RETE

NOP

NOP

NOP

int3:

RETE

NOP

NOP

NOP

.end

引用函数c_int00

引用了c中的函数

页边界排列

resetvector,复位中断响应

延迟分支到C主程序默认入口地址,c_int00是c程序的入口,这里即进入main函数中

开辟堆栈空间

栈的大小设置为200

中断屏蔽置为0,响应中断,不可屏蔽中断产生时,使中断屏蔽取消,后返回。

 

保留出中断向量的地址空间

 

中断寄存器设置RETE返回并允许中断外部中断产生时,直接返回。

 

定时器产生的时钟中断,返回到c中定义的timer程序,b即是跳转

同步串口0(McBSP0)接受的中断,直接返回

 

同步串口0(McBSP0)发送的中断,直接返回

 

同步串口1(McBSP1)接受的中断,直接返回

 

同步串口1(McBSP1)发送的中断,直接返回

 

(五)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灯亮灭不变化;

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

源程序查看:

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

源程序:

int2.c

注释:

interruptvoidint2c();

externvoidinitial();

externvoidporta();

externvoidportb();

intflag=0;

main()

{

initial();

while

(1){;}

}

interruptvoidint2c()

{asm("nop");

*(int*)0x300=*(int*)0x300+2if(flag==0)

{

flag=1;

porta();

}

else

{

flag=0;

portb();

}

}

 

;/*breakheretoshowifinterrupthappened*/这是一个记录外部中断的标志,通过记录0x300h中的值来记录

源程序:

initial.asm

注释:

.mmregs

.global_initial

.text

_initial:

stm300h,ar3

st#00h,*ar3

stm302h,ar4

st#00h,*ar4

ssbx1,11

stm00h,imr

stm0ffffh,ifr

stm04h,imr

rsbx1,11

ret

.end

 

;将00h存入地址为300h的存中

;将00h存入地址为302h的存中

;设置ST1.INTM=1,停止所有的中断

;停止所有的中断,中断屏蔽寄存器(IMR)在需要的时候独立地屏蔽特定的中断

;清除所有中断的标志位,中断标志寄存器(IFR)用来指明各个中断的目前状态。

;开启int2的外部中断

;打开所有中断总开关

源程序:

port.asm

注释:

.mmregs

.global_porta

.global_portb

_porta:

stm304h,ar1

st5555h,*ar1

portw*ar1,01h

ret

_portb:

stm304h,ar1

st0aaaah,*ar1

portw*ar1,01h

ret

 

;将304h赋给辅助寄存器ar1

;将存304h的容赋予5555h

;将存304h的值写入01h端口

 

;将存304h的容赋予0aaaah

;将存304h的值写入01端口

源程序:

vectors.asm

注释:

.sect".vectors"

.ref_c_int00

.ref_int2c

.align0x80

RESET:

BD_c_int00STM#200,SP

stacksizeof200

nmi:

RETE

NOP

NOP

NOP

sint17.space4*16

sint18.space4*16

sint19.space4*16

sint20.space4*16

sint21.space4*16

sint22.space4*16

sint23.space4*16

sint24.space4*16

sint25.space4*16

sint26.space4*16

sint27.space4*16

sint28.space4*16

sint29.space4*16

sint30.space4*16

int0:

RETE

NOP

NOP

NOP

int1:

RETE

NOP

NOP

NOP

int2:

RETE

NOP

NOP

NOP

tint:

b_timer

NOP

NOP

rint0:

RETE

NOP

NOP

NOP

xint0:

RETE

NOP

NOP

NOP

rint1:

RETE

NOP

NOP

NOP

xint1:

RETE

NOP

NOP

NOP

int3:

RETE

NOP

NOP

NOP

.end

引用函数c_int00

页边界排列

resetvector,复位中断响应

延迟分支到C主程序默认入口地址,c_int00是c程序的入口,这

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

当前位置:首页 > 表格模板 > 合同协议

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

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