《DSP课设——正弦波发生器.doc》由会员分享,可在线阅读,更多相关《DSP课设——正弦波发生器.doc(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateDSP课设正弦波发生器目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能
2、仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。摘要数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。数字信号处理器(DSP)是在模拟信号变成数字信号以后进行高速实时处理的专用处理器。DSP 芯片以其独特的结构和快速实现各种数字信号处理算法的突出优点,发展十
3、分迅速。本文中提出的基于DSP技术设计的正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。在本文中简要的概括了一种基于TMS320C5402实现正弦信号发生器的设计原理与方法,介绍了所设计的正弦信号发生器硬件电路结构和软件程序流程图。结合DSP硬件特性,通过使用泰勒级数展开法得到设定参数的正弦波形输出,达到设计目的。该信号发生器弥补了通常信号发生器模式固定,波形不可编程的缺点,其具有实时性强,波形精度高,可方便调节频率和幅度、稳定性好等优点。关键字:DSP;TMS320C5402;信号发生器;正弦信号; 目 录1 设计目的及要求11.1 设计目的11.2 设计内容
4、及要求12设计方案及原理22.1总体方案22.2设计原理23系统硬件设计33.1系统硬件框图33.2 TMS320C5402简介43.3 D/A转换部分设计54系统软件设计及调试64.1变频调幅的方法64.2程序设计64.3程序编写84.4 CCS简介144.5运行步骤及结果155 设计心得19参考文献20附录 设计程序21-1 设计目的及要求1.1 设计目的DSP课程设计是对数字信号处理、DSP原理及应用等课程的较全面练习和训练,是实践教学中的一个重要环节。通过本次课程设计,综合运用数字信号处理、DSP技术课程以及其他有关先修课程的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一
5、步巩固、深化和发展。初步培养学生对工程设计的独立工作能力,掌握电子系统设计的一般方法。通过课程设计完成基本技能的训练,如查阅设计资料和手册、程序的设计、调试等,提高学生分析问题、解决问题的能力。主要是:1. 掌握DSP程序设计的方法以及软件的调试等; 2. 掌握CCS软件的使用;3. 学会用CCS仿真模拟DSP芯片,通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置;4. 掌握控制TLC320AIC23的输出信号,使该信号通过滤波放大后输出,并在点阵液晶中大致显示出幅频图的基本方法和步骤。1.2 设计内容及要求本题目DSP通过计算法或者查表的方法,得到正弦信号,然后将数据传递给TL
6、C320AIC23,控制TLC320AIC23的输出信号,该信号通过滤波放大后输出,并在点阵液晶中大致显示出幅频图。1. DSP与TLC320AIC23接口电路的原理图绘制;2. DSP控制TLC320AIC23的程序编写与调试;3. TLC320AIC23进行D/A的转换,实现信号的输出;4. 控制点阵液晶,实现绘图功能,将幅频图显示出来;5. 按要求编写课程设计报告书,正确、完整的阐述设计和实验结果。6. 在报告中绘制程序的流程图,并文字说明。2设计方案及原理2.1总体方案总体思想是:(1)基于DSP的特点,本设计采用TMS320C5402这款DSP芯片作为正弦信号发生器的核心控制芯片。(
7、2)用泰勒级数展开法实现正弦波信号。(3)利用点阵的绘图功能将正弦波的波形显示出来。2.2设计原理泰勒级数展开法是一种有效的方法,与查表法和查表结合插值法相比,该方法需要的存储单元很少,而且精度更高。我们知道一个角度为x的正弦和余弦函数,都可以展开为泰勒级数,且其前五项可以看为: (1) (2)程序的设计思想是这样的,正弦波的波形可以看为由无数点组成,这些点与轴的每一个角度值相对应,那么我们可以利用DSP处理器处理大量重复计算的优势来计算,轴每一点对应的y轴的值(在x轴取360个点来进行逼近),由于程序的编制采用小数形式,其弧度大于1的正弦值得不到,这就对正弦波的产生造成了障碍。可由于正弦波的
8、特殊的对称形式给程序的编制找到了出口。的弧度为0.7854 EPROM PAGE 0 .data : EPROM PAGE 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口输出的。选择每个正弦周期中的样点数、改变每个样点之间的延迟,就能够产生不同频率的波形,也可以利
9、用软件改变波形的幅度以及起始相位。4.4 CCS简介本实验是基于CCS开发环境的。CCS是TI公司推出的为开发TMS320系列DSP软件的集成开发环境,是目前使用最为广泛的DSP开发软件之一。它提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。CCS有两种工作模式:(1)硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序;(2)软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实
10、现和调试。本次设计采取硬件在线编程模式。如图4.3所示图4.3 DSP试验箱4.5运行步骤及结果1 运行步骤本次课程设计采用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文件
11、添加到Libraries文件中,将程序的命令链接文件(.CMD),中断向量表(VECTORS.ASM)添加到Source文件下,如图4.6所示。 图4.6 新建工程图4.7 添加文件到工程第四步 对编写完成的程序进行编译,结果如图4.8所示图4.8 编译成功第五步 汇编无误后就可将程序下载到实验箱中,点击如图所示命令运.out文件,再点击run即可在实验箱中得到结果。图4.9下载程序到实验箱2仿真结果及分析图4.10仿真结果在CCS集成环境中实现正弦波能够起到防止干扰的作用,同时也大大地减小了波形的线性失真。同时我们也能从中看出CCS能够精确地对各个角度进行计算得出相应的正弦值,幅度和频率易于
12、调节,波形也较为稳定,抗干扰能力较强。最重要的是这种设计方案简单可行,新颖实用,具有很高的实践和推广价值。分析:通过不断的发现错误、改正错误和调试,最终得到了所希望的图象,即正弦波信号。5 设计心得为期两周的DSP课程设计已进入尾声了,在这两周的时间里,我认认真真地复习了DSP的相关理论知识。由于基础知识学得不是很扎实,正好利用课程设计这个机会,对没有掌握好的知识进行一个补习。在刚开始的时候,我首先从最简单的程序开始着手,首先看懂程序是什么意思,在尝试在这个基础上对程序进行修改 ,看程序是否出错,或者说实验的结果会有什么样的改变。用这种方法是自己尽快的熟悉这个系统的编程的方式。本次课程设计中遇
13、到一些课堂中从未有过的问题,通过网络查找和同学交流,大大促进了设计进程。并在过程中进一步提高自身的创作、创新水平,扎实基础,扩展所学。并且此次课程设计,基于课程理论知识和网上资料,使我对数字信号处理课程有了更深一步的了解和掌握,对利用CCS软件编程的数字信号处理方法有了进一步的了解。在理论课的基础上进行实验实习,是对本门课程的深入学习和掌握,在以后的工作学习中,数字信号的处理都是采用计算机仿真的方法进行测试,因此,掌握基于计算机的数字信号处理方法对以后的工作和学习有很大的帮助。这样一个课程设计对我们的发展有着极大的帮助!由于基础知识不够扎实,在本次课程设计的过程中,我经常遇到各种难题,比如说程
14、序看不懂,调试时显示结果与预期不一致等等。而每当我遇到困难的时候,老师总会给予我耐心的教导,帮助我发现问题,纠正错误;同学也会很热情的帮助我修改和完善设计方案。在这样一个良好的环境下,我顺利地完成了本次DSP课程设计,让我发现了自己所学知识的盲点和漏洞,提升了我的动手能力,通过实验我基本了解了DSP应用系统开发方法和设计过程,掌握了汇编源程序的编辑、汇编和链接过程,熟悉了CCS集成开发环境,CCS的安装及设置,CCS集成开发环境,CCS的基本使用,调试应用程序。我成功通过CCS软件应用C54X汇编语言实现了正弦信号发生装置,这次实验使我能够更真实地体会到DSP的功能和用途。特在此对给予我帮助的
15、老师和同学们表示衷心的感谢!参考文献 1 邹彦. DSP原理及应用M. 北京:电子工业出版社,2005,1. 2 戴明桢.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
16、,d_xs,d_sinx,cosx,d_xc,d_cosx;定义标号sin_x: .usect sin_x,360 ;为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)S
17、TM #90,BRC ;form sin0(deg.)sin90(deg);重复执行块语句(下条语句开始至loop1-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(deg.)- -sin179(deg.) STM #88,BRC ;重复执行下条指令至loop2-1 RPTB loop2-1 ;处90次