DSP课设——正弦波发生器_第1页
DSP课设——正弦波发生器_第2页
DSP课设——正弦波发生器_第3页
DSP课设——正弦波发生器_第4页
DSP课设——正弦波发生器_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。数字信号处理器(DSP)是在模拟信号变成数字信号以后进行高速实时处理的专用处理器。DSP 芯片以其独特的结构和快速实现各种数字信号处理算法的突出优点,发展十分迅速。本文中提出的基于DSP技术设计的正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系

2、统中。在本文中简要的概括了一种基于TMS320C5402实现正弦信号发生器的设计原理与方法,介绍了所设计的正弦信号发生器硬件电路结构和软件程序流程图。结合DSP硬件特性,通过使用泰勒级数展开法得到设定参数的正弦波形输出,达到设计目的。该信号发生器弥补了通常信号发生器模式固定,波形不可编程的缺点,其具有实时性强,波形精度高,可方便调节频率和幅度、稳定性好等优点。关键字:DSP;TMS320C5402;信号发生器;正弦信号; 目 录1 设计目的及要求11.1 设计目的11.2 设计内容及要求12设计方案及原理22.1总体方案22.2设计原理23系统硬件设计33.1系统硬件框图33.2 TMS320

3、C5402简介43.3 D/A转换部分设计54系统软件设计及调试64.1变频调幅的方法64.2程序设计64.3程序编写84.4 CCS简介144.5运行步骤及结果155 设计心得19参考文献20附录 设计程序211 设计目的及要求1.1 设计目的DSP课程设计是对数字信号处理、DSP原理及应用等课程的较全面练习和训练,是实践教学中的一个重要环节。通过本次课程设计,综合运用数字信号处理、DSP技术课程以及其他有关先修课程的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。初步培养学生对工程设计的独立工作能力,掌握电子系统设计的一般方法。通过课程设计完成基本技能的训练

4、,如查阅设计资料和手册、程序的设计、调试等,提高学生分析问题、解决问题的能力。主要是:1. 掌握DSP程序设计的方法以及软件的调试等; 2. 掌握CCS软件的使用;3. 学会用CCS仿真模拟DSP芯片,通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置;4. 掌握控制TLC320AIC23的输出信号,使该信号通过滤波放大后输出,并在点阵液晶中大致显示出幅频图的基本方法和步骤。1.2 设计内容及要求本题目DSP通过计算法或者查表的方法,得到正弦信号,然后将数据传递给TLC320AIC23,控制TLC320AIC23的输出信号,该信号通过滤波放大后输出,并在点阵液晶中大致显示出幅频图。

5、1. DSP与TLC320AIC23接口电路的原理图绘制;2. DSP控制TLC320AIC23的程序编写与调试;3. TLC320AIC23进行D/A的转换,实现信号的输出;4. 控制点阵液晶,实现绘图功能,将幅频图显示出来;5. 按要求编写课程设计报告书,正确、完整的阐述设计和实验结果。6. 在报告中绘制程序的流程图,并文字说明。2设计方案及原理2.1总体方案总体思想是:(1)基于DSP的特点,本设计采用TMS320C5402这款DSP芯片作为正弦信号发生器的核心控制芯片。(2)用泰勒级数展开法实现正弦波信号。(3)利用点阵的绘图功能将正弦波的波形显示出来。2.2设计原理泰勒级数展开法是一

6、种有效的方法,与查表法和查表结合插值法相比,该方法需要的存储单元很少,而且精度更高。我们知道一个角度为x的正弦和余弦函数,都可以展开为泰勒级数,且其前五项可以看为: (1) (2)程序的设计思想是这样的,正弦波的波形可以看为由无数点组成,这些点与轴的每一个角度值相对应,那么我们可以利用DSP处理器处理大量重复计算的优势来计算,轴每一点对应的y轴的值(在x轴取360个点来进行逼近),由于程序的编制采用小数形式,其弧度大于1的正弦值得不到,这就对正弦波的产生造成了障碍。可由于正弦波的特殊的对称形式给程序的编制找到了出口。的弧度为0.7854 EPROM PAGE 0 .data : EPROM P

7、AGE 0 STACK : SPRAM PAGE 1 sin_vars : DARAM1 PAGE 1 coef_s : DARAM1 PAGE 1 cos_vars : DARAM2 PAGE 1 coef_c : DARAM2 PAGE 1 sin_x : align(512) DARAM3 PAGE 1 .vectors : VECS PAGE 0在实际应用中,正弦波是通过D/A口输出的。选择每个正弦周期中的样点数、改变每个样点之间的延迟,就能够产生不同频率的波形,也可以利用软件改变波形的幅度以及起始相位。4.4 CCS简介本实验是基于CCS开发环境的。CCS是TI公司推出的为开发TMS

8、320系列DSP软件的集成开发环境,是目前使用最为广泛的DSP开发软件之一。它提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。CCS有两种工作模式:(1)硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序;(2)软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。本次设计采取硬件在线编程模式。如图4.3所示图4.3 DSP试验箱4.5运行步骤及结果1 运行步骤本次课程

9、设计采用CCS中的C5000。第一步,软件中芯片的选择,如图所示,选择C5416 XDS510 Emulator。图4.4 set up CCS界面 第二步,仿真器C5416 XDS510 Emulator的设置图4.5 仿真器XDS510的设置第三步,设置完成后,退出set up C5000后可自动打开CCS5000,选择Project下的new,新建工程,如图4.5所示;将DspregDefine.h文件添加到工程sinlcd_54下的Include文件中,rts.lib文件添加到Libraries文件中,将程序的命令链接文件(.CMD),中断向量表(VECTORS.ASM)添加到Sour

10、ce文件下,如图4.6所示。 图4.6 新建工程图4.7 添加文件到工程第四步 对编写完成的程序进行编译,结果如图4.8所示图4.8 编译成功第五步 汇编无误后就可将程序下载到实验箱中,点击如图所示命令运.out文件,再点击run即可在实验箱中得到结果。图4.9下载程序到实验箱2仿真结果及分析图4.10仿真结果在CCS集成环境中实现正弦波能够起到防止干扰的作用,同时也大大地减小了波形的线性失真。同时我们也能从中看出CCS能够精确地对各个角度进行计算得出相应的正弦值,幅度和频率易于调节,波形也较为稳定,抗干扰能力较强。最重要的是这种设计方案简单可行,新颖实用,具有很高的实践和推广价值。分析:通过

11、不断的发现错误、改正错误和调试,最终得到了所希望的图象,即正弦波信号。5 设计心得为期两周的DSP课程设计已进入尾声了,在这两周的时间里,我认认真真地复习了DSP的相关理论知识。由于基础知识学得不是很扎实,正好利用课程设计这个机会,对没有掌握好的知识进行一个补习。在刚开始的时候,我首先从最简单的程序开始着手,首先看懂程序是什么意思,在尝试在这个基础上对程序进行修改 ,看程序是否出错,或者说实验的结果会有什么样的改变。用这种方法是自己尽快的熟悉这个系统的编程的方式。本次课程设计中遇到一些课堂中从未有过的问题,通过网络查找和同学交流,大大促进了设计进程。并在过程中进一步提高自身的创作、创新水平,扎

12、实基础,扩展所学。并且此次课程设计,基于课程理论知识和网上资料,使我对数字信号处理课程有了更深一步的了解和掌握,对利用CCS软件编程的数字信号处理方法有了进一步的了解。在理论课的基础上进行实验实习,是对本门课程的深入学习和掌握,在以后的工作学习中,数字信号的处理都是采用计算机仿真的方法进行测试,因此,掌握基于计算机的数字信号处理方法对以后的工作和学习有很大的帮助。这样一个课程设计对我们的发展有着极大的帮助!由于基础知识不够扎实,在本次课程设计的过程中,我经常遇到各种难题,比如说程序看不懂,调试时显示结果与预期不一致等等。而每当我遇到困难的时候,老师总会给予我耐心的教导,帮助我发现问题,纠正错误

13、;同学也会很热情的帮助我修改和完善设计方案。在这样一个良好的环境下,我顺利地完成了本次DSP课程设计,让我发现了自己所学知识的盲点和漏洞,提升了我的动手能力,通过实验我基本了解了DSP应用系统开发方法和设计过程,掌握了汇编源程序的编辑、汇编和链接过程,熟悉了CCS集成开发环境,CCS的安装及设置,CCS集成开发环境,CCS的基本使用,调试应用程序。我成功通过CCS软件应用C54X汇编语言实现了正弦信号发生装置,这次实验使我能够更真实地体会到DSP的功能和用途。特在此对给予我帮助的老师和同学们表示衷心的感谢!参考文献 1 邹彦. DSP原理及应用M. 北京:电子工业出版社,2005,1. 2 戴

14、明桢.TMS320C54xDSP结构.原理及应用M.北京航空航天大学出版 3 胡圣尧. DSP原理及应用M.东南大学出版社,2008.7. 4 清源科技.TMS320C54xDSP应用程序设计教程M.机械工业出版社,2004,1 5 清源科技.TMS320C54x硬件开发教程M.机械工业出版社,2003,1.附录 设计程序主程序清单:.title sin.asm ;为汇编文件取名为“sin.asm”.mmregs ;定义存储器映像寄存器.def _c_int00.ref sinx,d_xs,d_sinx,cosx,d_xc,d_cosx;定义标号sin_x: .usect sin_x,360

15、;为sin_x保留360个存储空间STACK: .usect STACK,10 ;为堆栈保留10个存储空间k_theta .set 286 ;theta=pi/360(0.5deg)PA0 .set 0_c_int00 .text ;定义文本程序代码段STM #STACK+10,SP ;设置堆栈指针STM k_theta,AR0 ;AR0-K_theta(increment)STM 0,AR1 ;(AR1)=X(rad)STM #sin_x,AR6 ;AR6- - sin(x)STM #90,BRC ;form sin0(deg.)sin90(deg);重复执行块语句(下条语句开始至loop1

16、-1 )91次RPTB loop1-1 LDM AR1,ALD #d_xs,DP ;DPd_xsSTL A,d_xs ;(A)低16位d_xsSTL A,d_xc ;(A)低16位d_xcCALL sinx ;调用sinx程序CALL cosx ;调用conx程序LD #d_sinx,DP ;DP d_sinxLD d_sinx,16,A ;A=sin(x)MPYA d_cosx ;B= sin(x)*cos(x)STH B,1,*AR6+ ;AR6- - 2*sin(x)*cos(x) MAR *AR1+0 ;修改辅助寄存器AR1loop1: STM #sin_x+89,AR7 ;sin91

17、(deg.)- -sin179(deg.) STM #88,BRC ;重复执行下条指令至loop2-1 RPTB loop2-1 ;处90次 LD *AR7-,A ;(AR7) A,然后AR7减去1 STL A,*AR6+ ;(A) 低16位AR6loop2: STM #179,BRC ;sin180(deg.)- -sin359(deg.);(BRC)=179,重复执行180次 STM #sin_x,AR7 ;AR7指向sin_x首地址 RPTB loop3-1 ; LD *AR7+,A ;(AR7) A,然后AR7加1 NEG A ;累加器变负 STL A,*AR6+ ;A低16位AR6l

18、oop3: STM #sin_x,AR6 ;generate sin wave AR6指向sin_x STM #1,AR0 ;AR 01 STM #360,BK ;BK360loop4: PORTW *AR6+0%,PA0 ;PA0=*AR6+0%,向PA0输出数据 B loop4 ;sinx: .def d_xs,d_sinx ;定义标号d_xs,d_sinx .data ;定义数据代码段table_s .word 01c7h ;c1=1/(8*9) .word 030bh ;c1=1/(6*7) .word 0666h ;c1=1/(4*5) .word 1556h ;c1=1/(2*3)

19、d_coef_s .usect coef_s,4 ;为coef_s保留4个存储空间d_xs .usect sin_vars,1 ;为d_xs中sin_vars保留1个存储空间d_squr_xs .usect sin_vars,1 ;为d_squr_xs中sin_vars保留1个存储空间d_temp_s .usect sin_vars,1 ;为d_temp_s中sin_vars保留1个存储空间d_sinx .usect sin_vars,1 ;为d_sinx中sin_vars保留1个存储空间c_l_s .usect sin_vars,1 ;为d_xs中sin_vars保留1个存储空间 .text

20、 ;定义代码开始段 SSBX FRCT ;设置FRCT=1以解决冗余符号位 STM #d_coef_s,AR5 ;AR5指向d_coef_s首地址 RPT #3 ;重复下条指令4次 MVPD #table_s,*AR5+ ;table_s中的数复制到AR5指向的单元 STM #d_coef_s,AR3 ;AR3指向d_coef_s首地址 STM #d_xs,AR2 ;AR2指向d_xs首地址 STM #c_l_s,AR4 ;AR4指向c_l_s首地址 ST #7FFFh,c_l_s ;7FFFh c_l_s SQUR *AR2+,A ;AR2指向累加器A中的数值求其平方 ST A,*AR2 ;

21、(A)左移16位AR2 |LD *AR4,B ;(AR4)左移16位B MASR *AR2+,*AR3+,B,A ;从累加器A中减去(AR2)*(AR3) MPYA A ;操作数与累加器A中高位相乘 STH A,*AR2 ;(A)高16位AR2 MASR *AR2-,*AR3+,B,A ;从累加器A中减去(AR2)*(AR3) MPYA *AR2+ ;AR2指向的数与累加器A的高16位相乘 ST B,*AR2 ;(B)左移16位AR2 |LD *AR4,B ;(AR4)左移16位B MASR *AR2-,*AR3+,B,A ;从累加器A中减去(AR2)*(AR3) MPYA *AR2+ ;与累

22、加器A中高16位相乘 ST B,*AR2 ;(B)左移16位AR2 |LD *AR4,B ;(AR4)左移16位B MASR *AR2-,*AR3+,B,A ;从累加器A中减去(AR2)*(AR3) MPYA d_xs ;d_xs指向的操作数与累加器A中高16位相乘 STH B,d_sinx ;(B)高16位d_sinx RET ;返回cosx: .def d_xc,d_cosx ;定义标号d_xc,d_cosxd_coef_c .usect coef_c,4 ;为coef_c保留4个存储空间 .data ;定义数据代码段table_c .word 0249h ;c1=1/(7*8) .wor

23、d 0444h ;c2=1/(6*5) .word 0aabh ;c3=1/(3*4) .word 4000h ;c4=1/2d_xc .usect cos_vars,1 ;为d_xc中cos_vars保存1个存储单元d_squr_xc .usect cos_vars,1 ;为d_squr_xc中cos_vars保存1个存储单元d_temp_c .usect cos_vars,1 ;为d_temp_c中cos_vars保存1个存储单元d_cosx .usect cos_vars,1 ;为d_cosx中cos_vars保存1个存储单元c_l_c .usect cos_vars,1 ;为c_l_c中cos_vars保存1个存储单元 .text ;定义文本代码段 SSBX FRCT ;FRCT=1以清除冗余符号位 STM #d_coef_c,AR5 ;AR5指向d_coef_c首地址 RPT #3 ;重复下条指令4次 MVPD #table_c,*AR5+ ;把table_c中的数复制到中AR5 STM #d_coef_c,AR3 ;AR3指向d_coef_c首地址 STM #d_xc,AR2 ;AR2 指向d_xc首地址 STM #c_l_c,AR4 ;AR4指向c_l_c首地址 ST #7FFFh,c_l_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论