DSP设计报告Word格式.docx
- 文档编号:17640234
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:18
- 大小:365.31KB
DSP设计报告Word格式.docx
《DSP设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《DSP设计报告Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
总体思想是:
正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。
整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。
五、设计内容
1、设置
在Family下选择C55xx,将看到所有C55xx的仿真驱动,包括软件仿真和硬件仿真;
在Platform下选择Simulator,在AvailableFactoryBoards中只显示软件仿真驱动,选中相应的驱动;
双击C55xxRev4.0CPUFunctionalSimulator,可以在MySystem下看到所加入的驱动;
点击Save&
Quit,将保存设置退出SetupCCStudiov3.1并启动运行CCStudio。
2、编写汇编源程序sin。
3.、建立汇编源程序
在CCS环境下,点击file/new/sourcefile菜单命令,打开一个空白文档,将汇编程序输入。
单击file/save菜单命令,在D:
\programfiles\ti\myprojects下保存文件名为sin,并选择保存类型为*.asm。
4、建立链接命令文件。
5、创建新的工程文件
启动CCS,在Project菜单中选择New项,在Project中输入denglin,CCS将创建一个名为denglin.pjt的工程。
6、将文件添加到工程中
在工程中添加源文件,执行菜单project/addfilestoproject,把sin文件添加到工程中。
7、生成和运行程序
(1)选择菜单命令Project→RebuildAll,对工程重新编译、汇编和链接,主窗口下方的信息窗口将显示build进行汇编、编译和链接的相关信息。
(2)选择菜单命令File→LoadProgram,在当前目录的Debug目录下选择sin并打开,将Build生成的程序加载到DSP中。
(3)选择菜单命令Debug→Run或在Debug工具栏上单击Run按钮,运行该程序。
8、观察运行结果
点击view/gragh菜单命令观看图像
9、主要参数
六、实验结果及分析
在ccs集成环境中实现正弦波能够起到防止干扰的作用,同时也大大地减小了波形的线性失真。
同时我们也能从中看出ccs能够精确地对各个角度进行计算得出相应的正弦值,幅度和频率易于调节,波形也较为稳定,抗干扰能力较强。
最重要的是这种设计方案简单可行,新颖实用,具有很高的实践和推广价值。
1、设计总结
这次实验把平时书本上生硬的文字变成了活生生的图像,使我对这门学科的基本知识、理论解起来更加方便直观和深刻。
通过实验我基本了解了DSP应用系统开发方法和设计过程,掌握了汇编源程序的编辑、汇编和链接过程,熟悉了CCS集成开发环境,CCS的安装及设置,CCS集成开发环境,CCS的基本使用,调试应用程序。
我成功通过CCS软件应用C54X汇编语言实现了正弦信号发生装置,这次实验使我能够更真实地体会到DSP的功能和用途。
在本次设计过程中我遇到一些课堂中从未有过的问题,通过网络查找和同学交流,大大促进了实训进程。
并在过程中进一步提高自身的创作、创新水平,扎实基础,扩展所学。
并且此次课程设计,基于课程理论知识和网上资料,使我对数字信号处理课程有了更深一步的了解和掌握,对利用CCS软件编程的数字信号处理方法有了进一步的了解。
在理论课的基础上进行实验实习,是对本门课程的深入学习和掌握,在以后的工作学习中,数字信号的处理都是采用计算机仿真的方很大的帮助。
这样一个课程设计对我们的发展有着极大的帮助!
2、源程序
汇编源程序sin
.mmregs
.defstart
.defd_xs,d_sinx,d_xc,d_cosx,sinx,cosx
sin_x:
.usect"
sin_x"
360
STACK:
STACK"
10H
k_theta.set286;
theta=pi/360(0.5deg)
start:
.text
STM#STACK+10H,SP
STMk_theta,AR0
STM0,AR1
STM#sin_x,AR6
STM#90,BRC
RPTBloop1-1
LDMAR1,A
LD#d_xs,DP
STLA,@d_xs
STLA,@d_xc
CALLsinx;
d_sinx=sin(x)
CALLcosx;
d_cosx=cos(x)
LD#d_sinx,DP
LD@d_sinx,16,A;
A=sin(x)
MPYA@d_cosx;
B=sin(x)*cos(x)
STHB,1,*AR6+;
AR6----2*sin(x)
MAR*AR1+0
loop1:
STM#sin_x+89,AR7;
sin91(deg.)-sin179(deg.)
STM#88,BRC
RPTBloop2-1
LD*AR7-,A
STLA,*AR6+
loop2:
STM#179,BRC;
sin180(deg.)-sin359(deg.)
STM#sin_x,AR7
RPTBloop3-1
LD*AR7+,A
NEGA
loop3:
STM#sin_x,AR6;
generatesinwave
STM#1,AR0
STM#360,BK
Bloop3
sinx:
.defd_xs,d_sinx
.data
table_s.word01C7H;
C1=1/(8*9)
.word030BH;
C2=1/(6*7)
.word0666H;
C3=1/(4*5)
.word1556H;
C4=1/(2*3)
d_coef_s.usect"
coef_s"
4
d_xs.usect"
sin_vars"
1
d_squr_xs.usect"
d_temp_s.usect"
d_sinx.usect"
d_l_s.usect"
SSBXFRCT
STM#d_coef_s,AR5;
movecoeffstable_s
RPT#3
MVPD#table_s,*AR5+
STM#d_coef_s,AR3
STM#d_xs,AR2
STM#d_l_s,AR4
ST#7FFFH,d_l_s
SQUR*AR2+,A;
A=x^2
STA,*AR2;
(AR2)=x^2
||LD*AR4,B;
B=1
MASR*AR2+,*AR3+,B,A;
A=1-x^2/72,T=x^2
MPYAA;
A=T*A=x^2(1-x^2/72)
STHA,*AR2;
(d_temp)=x^2(1-x^2/72)
MASR*AR2-,*AR3+,B,A;
A=1-x^2/42(1-x^2/72);
T=x^2(1-x^2/72)
MPYA*AR2+;
B=x^2(1-x^2/42(1-x^2/72))
STB,*AR2;
(d_temp)=x^2(1-x^2/42(1-x^2/72))
A=1-x^2/20(1-x^2/42(1-x^2/72))
B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))
(d_temp)=B
A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))
MPYAd_xs;
B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))
STHB,d_sinx;
sin(theta)
RET
cosx:
.defd_xc,d_cosx
d_coef_c.usect"
coef_c"
table_c.word0249H;
C1=1/(7*8)
.word0444H;
C2=1/(5*6)
.word0AABH;
C3=1/(3*4)
.word4000H;
C4=1/2
d_xc.usect"
cos_vars"
d_squr_xc.usect"
d_temp_c.usect"
d_cosx.usect"
c_l_c.usect"
STM#d_coef_c,AR5;
movecoeffstable_c
MVPD#table_c,*AR5+
STM#d_coef_c,AR3
STM#d_xc,AR2
STM#c_l_c,AR4
ST#7FFFH,c_l_c
A=1-x^2/56,T=x^2
A=T*A=x^2(1-x^2/56)
(d_temp)=x^2(1-x^2/56)
A=1-x^2/30(1-x^2/56);
T=x^2(1-x^2/56)
B=x^2(1-x^2/30(1-x^2/56))
(d_temp)=x^2(1-x^2/30(1-x^2/56))
A=1-x^2/12(1-x^2/30(1-x^2/56))
SFTAA,-1,A;
-1/2
B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))
MAR*AR2+
RETD
ADD*AR4,16,B;
STHB,*AR2;
cos(theta)
.end
链接命令文件
MEMORY
{
PAGE0:
EPROM:
org=0E000H,len=1000H
VECS:
org=0FF80H,len=0080H
PAGE1:
SPRAM:
org=0060H,len=0020H
DARAM1:
org=0080H,len=0010H
DARAM2:
org=0090H,len=0010H
DARAM3:
org=0200H,len=0200H
}
SECTIONS
.text:
>
EPROMPAGE0
.data:
STACK:
SPRAMPAGE1
sin_vars:
DARAM1PAGE1
coef_s:
cos_vars:
DARAM2PAGE1
coef_c:
sin_x:
align(512){}>
DARAM3PAGE1
.vectors:
VECSPAGE0
六、设计源程序代码
正弦波形的汇编程序
.title"
sinx.asm"
.def_c_int00
.refd_xs,d_sinx,d_xc,d_cosx
10
k_theta.set286
PA0.set0
_c_int00:
STM#STACK+10,SP
STM#0,AR1
CALLsin_start
CALLcos_start
LD@d_sinx,16,A
MPYA@d_cosx
STHB,1,*AR7+
STM#sin_x+89,AR6
LD*AR6-,A
STLA,*AR7+
STM#179,BRC
LD*AR6+,A
NOP
end:
Bend
sin_start:
.defsin_start
table_s:
.word01C7H
.word030BH
.word0666H
.word1556H
c_1_s.usect"
STM#d_coef_s,AR4
MVPD#table_s,*AR4+
STM#d_coef_s,AR2
STM#d_xs,AR3
STM#c_1_s,AR5
ST#7FFFH,c_1_s
SQUR*AR3+,A
STA,*AR3
||LD*AR5,B
MASR*AR3+,*AR2+,B,A
MPYAA
STHA,*AR3
MASR*AR3-,*AR2+,B,A
MPYA*AR3+
STB,*AR3
STB,*AR3+
MPYAd_xs
STHB,d_sinx
RET
cos_start:
.defcos_start
table_c:
.word0249H
.word0444H
.word0AABH
.word4000H
c_1_c.usect"
STM#d_coef_c,AR4
MVPD#table_c,*AR4+
STM#d_coef_c,AR2
STM#d_xc,AR3
STM#c_1_c,AR5
ST#7FFFH,c_1_c
SFTAA,-1,A
MAR*AR3+
ADD*AR5,16,B
STHB,*AR3
正弦波形的链接程序
MEMORY
org=0E000H,len=1000H
org=0FF80H,len=0080H
org=0060H,len=0020H
org=0080H,len=0010H
org=0090H,len=0010H
org=0200H,len=0200H
SECTIONS
{.text:
coef_s:
cos_vars:
coef_c:
sin_x:
align(512){}>
.vetors:
VECSPAGE0
复位向量文件vectors.asm
.title"
vectors.asm"
.ref_c_int00
.sect"
.vectors"
B_c_int00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 设计 报告