TMSC4xDSP的函数发生器的设计_第1页
TMSC4xDSP的函数发生器的设计_第2页
TMSC4xDSP的函数发生器的设计_第3页
TMSC4xDSP的函数发生器的设计_第4页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

1、封面1/16作者: Pan Hongliang仅供个人学习广东石油化工学院DSP综合实验报告课程名称:DSP系统开发与设计实验题目:函数信号发生器学号:姓名:班级:指导老师:实验日期:2012-6-11至 2012-6-15基于 TMS320C54x DSP的函数发生器的设计一、设计目的:1、 了解数字波形产生的原理;2、 学习用 DSP产生各种波形的基本方法和步骤;2/163、 掌握 DSP与 D/A 转换器接口的使用。二、设计设备计算机、 DSP仿真器、 ZYE1801B实验箱、 20M示波器三、设计原理波形产生是 DSP的重要应用之一。而正弦信号发生器的设计则是波形产生应用的一个重要方面

2、,它在通信领域有着广泛的应用。通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。本次主要用泰勒级数展开法来实现正弦波信号。产生正弦波的算法正弦函数和余弦函数可以展开成泰勒级数,其表达式:取泰勒级数的前5 项,得近似计算式:递推公式:sin(nxx)sin(nx-sin(nx) = 2cos(-1)-2)cos(nxx)sin(nx-cos(nx) = 2cos(-1)-2)由递推公式可以看出, 在计算

3、正弦和余弦值时 , 需要已知 cos( x) 、sin( n-1) x、sin( n-2) x和 cos( n-2) x。为了减少使用的存储器,可以采用正弦信号的对称性,复制90180 度的正弦值和 180360 度的正弦值。余弦信号的产生同样可以采用多种方法产生。一是采用公式计算得到,二是采用正弦信号变换得到。方波信号产生可以通过轮流输出两个不同大小的数值通过A/D 转换得到。四、设计内容本设计题目以 TMS320C54xDSP为目标器件,设计并实现基于迭代法的“正弦序列生成”算法及其DSP程序。设计步骤:1、熟悉正弦信号发生器的算法以及在DSP系统的实现3/162、熟悉 A/D 转换的原理

4、及实验箱的链接3、掌握 A/D 转换的程序的编写4、编写 DSP的正弦信号发生器的程序5、编写定时程序产生100HZ、 1KHZ、 10KHZ的正弦、余弦以及100K、1M 的方波信号,每种类型的波形单周期360 个点。6、编写按键程序, 控制输出。用三个拨码开关对DSP进行输入,输入的 07 对应的 8种不同的波形。7、用示波器观察各个波形8、分析波形失真的原因。五、实验步骤1. 熟悉本实验原理。2. 阅读本实验样例程序。3. 依次连接主板上的 PC10、PC11、 TP32 到 PC15、 PC16、 GND;依次连接主板上的PC13、PC14、M58到插板上的 DJ0、DJ1、 S12。

5、4. 将计算机与 ZYE1801C实验箱通过并口 P1 相连。5. 运行 CCS软件客户软件 DSP程序 test19 ,通过插板上的 JP1,JP2,JP3 来选择不同的波形。6. 用示波器观察 DA0的输出波形。六、设计的硬件结构框图七、实验代码DSP芯片D/A 转换器先计算 045(间隔为 0.5 )的 sin 和 cos 值,在利用 sin2a=2sina*cosa求出3 位数字量输入12位数字量输出模拟量输出sin 值(间隔为 1)。然后,通过复制, 获得 0 359的正弦值。 重复向 PA口输出,便可得到正弦波。4/16个人收集整理勿做商业用途.titlebxfsq.asm.mmr

6、egs.global main.def start.ref d_xs,d_sinx,d_xc,d_cosx,sinx,cosxsin_x:.usectsin_x,360cos_x:.usectcos_x,360fangbo:.usectfangbo,360STACK:.usectSTACK,10Hk_theta:.set 286TIM0 .set 0024HPRD0 .set 0025HTCR0 .set 0026HPA.set0100H.textstart:;产生正弦波数据STMk_theta,AR0STM#0,AR1STM#sin_x,AR6STM#90,BRCRPTBloop1-1LDM

7、AR1,ALD#d_xs,DPSTLA,d_xsSTLA,d_xcCALLsinxCALLcosxLD#d_sinx,DPLDd_sinx,16,AMPYAd_cosxSTHB,1,*AR6+MAR*AR1+0loop1: STM#sin_x+89,AR7STM#88,BRC5/16个人收集整理勿做商业用途RPTBloop2-1LD*AR7-,ASTLA,*AR6+loop2: STM#179,BRCSTM#sin_x,AR7RPTBloop3-1LD*AR7+,ANEGASTLA,*AR6+loop3: STM#sin_x+89,AR6STM#cos_x,AR7STM#269,BRCRPTB

8、lcos-1LD*AR6+,ASTLA,*AR7+lcos:STM#sin_x,AR6STM#89,BRCRPTBloop4-1LD*AR6+,ASTLA,*AR7+; 产生方波数据loop4: STM#fangbo,AR6STM#179,BRCRPTBlfangbo-1LD#7FFFH,ASTLA,*AR6+lfangbo:STM#179,BRCRPTBmain-1LD#0H,ASTLA,*AR6+main:STM#0,SWWSRSTM#STACK+10H,SP6/16个人收集整理勿做商业用途STM#3FA0H,PMSTSTM#0010H,TCR0STM#0260H,TCR0STM#0008

9、H,IFRSTM#0008H,IMRRSBXINTMPORTRPA,*AR2LD*AR2,AAND#01B,ABCfangbo_1m,ANEQLD*AR2,AAND#010B,ABCfangbo_100k,ANEQLD*AR2,AAND#0100B,ABCsin_10k,ANEQLD*AR2,AAND#01000B,ABCsin_1k,ANEQLD*AR2,AAND#010000B,ABCsin_100,ANEQLD*AR2,AAND#0100000B,ABCcos_10k,ANEQLD*AR2,AAND#01000000B,ABCcos_1k,ANEQLD*AR2,AAND#10000000

10、B,ABCcos_100,ANEQend: B endfangbo_1m:STM#10,TIM07/16个人收集整理勿做商业用途STM#10,PRD0STM#fangbo,AR3B mainfangbo_100k:STM #110,TIM0 STM #110,PRD0 STM #fangbo,AR3Bmainsin_10k:STM #2,TIM0 STM #2,PRD0 STM #sin_x,AR3B main sin_1k:STM #30,TIM0 STM #30,PRD0 STM #sin_x,AR3B main sin_100:STM #306,TIM0 STM #306,PRD0 ST

11、M #sin_x,AR3B main cos_10k:STM #2,TIM0 STM #2,PRD0 STM #sin_x,AR3Bmaincos_1k:STM #30,TIM0 STM #30,PRD0 STM #sin_x,AR3B main cos_100:8/16个人收集整理勿做商业用途STM#306,TIM0STM#306,PRD0STM#sin_x,AR3Bmain; 定时器中断输出TINT_T0:STM#1,AR0STM#360,BKloop:PORTW*AR3+0%,PAB loopRETEsinx: .defd_xs,d_sinx.datatable_s: .word 01c

12、7h;c1=1/(8*9).word030bh;c2=1/(6*7).word0666h;c3=1/(4*5).word1556h;c4=1/(2*3)coef_s: .usectcoef_s,4d_xs:.usectsin_vars,1squr_xs: .usectsin_vars,1temp_s: .usectsin_vars,1d_sinx: .usectsin_vars,1l_s:.usect sin_vars,1.textSSBXFRCTSTM#coef_s,AR5RPT#3MVPD#table_s,*AR5+STM#coef_s,AR3STM#d_xs,AR2STM#l_s,AR4

13、ST#7FFFH,l_sSQUR*AR2+,A9/16个人收集整理勿做商业用途STA,*AR2|LD*AR4,BMASR*AR2+,*AR3+,B,AMPYAASTHA,*AR2MASR*AR2-,*AR3+,B,AMPYA*AR2+STB,*AR2|LD*AR4,BMASR*AR2-,*AR3+,B,AMPYA*AR2+STB,*AR2|LD*AR4,BMASR*AR2-,*AR3+,B,AMPYAd_xsSTHB,d_sinxRETcosx: .defd_xc,d_cosx.datatable_c .word 0249h ;c1=1/(8*7).word0444h;c2=1/(6*5).w

14、ord0aabh;c3=1/(4*3).word4000h;c4=1/(2*1)coef_c.usect coef_c,4d_xc.usect cos_vars,1squr_xc .usect cos_vars,1temp_c.usect cos_vars,1d_cosx.usect cos_vars,1l_c.usect cos_vars,1.textSSBXFRCTSTM#coef_c,AR5RPT#3MVPD#table_c,*AR5+10/16个人收集整理勿做商业用途STM#coef_c,ar3STM#d_xc,AR2STM#l_c,AR4ST#7FFFH,l_cSQUR*AR2+,A

15、STA,*AR2|LD*AR4,BMASR*AR2+,*AR3+,B,AMPYAASTHA,*AR2MASR*AR2-,*AR3+,B,AMPYA*AR2+STB,*AR2|LD*AR4,BMASR*AR2-,*AR3+,B,ASFTAA,-1,ANEGAMPYA*AR2+MAR*AR2+RETDADD*AR4,16,BSTHB,*AR2RET.sect .vectors.align 0x80RESET: BDmainSTM#200,SPnmi:RETENOPNOPNOPsint17 .space 4*16sint18 .space 4*16sint19 .space 4*1611/16个人收

16、集整理勿做商业用途sint20 .space 4*16sint21 .space 4*16sint22 .space 4*16sint23 .space 4*16sint24 .space 4*16sint25 .space 4*16sint26 .space 4*16sint27 .space 4*16sint28 .space 4*16sint29 .space 4*16sint30 .space 4*16int0:RETENOPNOPNOPint1:RETENOPNOPNOPint2:RETENOPNOPNOPtint:BTINT_T0NOPNOPNOPrint0: RETENOPNOP

17、NOPxint0: RETENOPNOP12/16个人收集整理勿做商业用途NOPrint1: RETENOPNOPNOPxint1: RETENOPNOPNOPint3:RETENOPNOPNOP.end2、cmd 文件代码如下:说明系统中有哪些可用存储器、程序段、堆栈及复位向量和中断向量等安排在什么地方。其中MEMORY段就是用来规定目标存储器的模型,通过这条指令, 可以定义系统中所包含的各种形式的存储器,以及它们占据的地址范围; SECTIONS段说明如何将输入段组合成输出段以及在可执行文件中定义输出段、规定输出段在存储器中的位置等。bxfsq.obj-o bxfsq.out-m bxfs

18、q.map-e startMEMORYPAGE 0: EPROM :origin=0E000h,length=1000hVECS:origin=0FF80h,length=0080hPAGE 1: SPRAM :origin=0060h,length=0020hDARAM1 :origin=0080h,length=0010hDARAM2 :origin=0090h,length=0010hDARAM3 :origin=0200h,length=0600hSECTIONS13/16个人收集整理勿做商业用途.text : EPROM PAGE 0.data : EPROM PAGE 0STACK

19、 : SPRAM PAGE 1sin_vars: DARAM1 PAGE 1coef_s : DARAM1 PAGE 1cos_vars: DARAM2 PAGE 1coef_c : DARAM2 PAGE 1sin_x : align(512) DARAM3 PAGE 1cos_x : align(512) DARAM3 PAGE 1fangbo : align(512) DARAM3 PAGE 1.vectors: VECSPAGE 0八、设计结果以及结果分析在装有 ccs 软件的计算机上进行调试仿真, 首先在仿真平台上配置好仿真平台,然后将以上代码输入代码编辑器,通过调试可得出实验所要求

20、的波形。正弦波形图如下:余弦波形图如下:方波图形如下:三种波形的图如下:九、实验总结本次课程设计中对课堂所学进行了实践, 中断 ,I/O口, 定时器 大大地加深了我对 DSP编程原理的理解。 我还在这过程中进一步提高自身的创作、创新水平,扎实基础,扩展所学。并且此次课程设计,基于课程理论知识和网上资料,使我对数字信号处理课程有了更深一步的了解和掌握,对利用CCS软件编程的数字信号处理方法有了进一步的了解。在理论课的基础上进行实验实习,是对本门课程的深入学习和掌握, 在以后的工作学习中, 数字信号的处理都是采用计算机仿真的方法进行测试, 因此,掌握基于计算机的数字信号处理方法对以后的工作和学习有

21、很大的帮助。14/16个人收集整理勿做商业用途版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人所有This articleincludessome parts,includingtext,pictures,and design. Copyright is Pan Hongliangs personal ownership.用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途, 但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the p

温馨提示

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

评论

0/150

提交评论