研究生DSP硬件实验报告文档格式.docx
《研究生DSP硬件实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《研究生DSP硬件实验报告文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
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//270h为16进制的9999,将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秒
stm2cycles
banzwhenTRUE4cycles
FALSE2cycles
0f9h=>
249d
270fh=>
9999d
.end
2、资料存储实验
本实验指导书是以TMS32OVC5410为例,介绍相关的内部和外部内存资源。
对于其它类型的CPU请参考查阅相关的资料手册。
下面给出TMS32OVC5410的内存分配表:
对于存储空间而言,映像表相对固定。
值得注意的是内部寄存器与存储空间的映像关系。
因此在编程应用时这些特定的空间不能作其它用途。
对于程序存储空间而言,其映像表和CPU的工作模式有关。
当MP/MC引脚为高电平时,CPU工作在微处理器模式;
当MP/MC引脚低电平时,CPU工作在为计算机模式。
具体的内存映像关系如上图所示。
内存实验主要了解内存的操作和DSP的内部双总线结构。
并熟悉相关的指令代码和执行过程等。
连接好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
.mmregs
.global_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//ld将地址为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实验
数字量输入信号全部拓展出来,数字量输入接口主要由两个,D_Exp与扳东开关连接,PX4和PX5与电平转换芯片(74LVC245)连接,其功能分别为:
D_Exp—数字量输入扩展接口
1
2
3
4
5
6
7
8
9
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,打