您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > DSP实现任意波形发生器
上饶师范学院优秀本科毕业论文1DSPDSPDSPDSP实现任意波形发生器官仕伟指导教师:付金仙(上饶师范学院物理与电子信息系03物(2)班)摘要阐述了基于TMS320VC5402DSP芯片的任意波形发生器的设计原理和实现方法,该波形发生器可以产生任意波形,且由DSP程序控制,易于修改,弥补了通常波形发生器模式固定、波形不可编程以及精确度低的不足。关键词DSP;波形发生器;DSP程序1引言在通信、仪器仪表和控制等现代工程中应用非常广泛的波形发生器在实际中常需要产生任意的波形,尤其一些特殊的波形,以检测和调试测量装置。然而,通常实验室的信号发生器模式固定,波形不可编程,难以实现上述要求,而在现代社会里,对这些工程仪器的要求越来越高,本文介绍的这种基于TMS320VC5402DSP芯片的波形发生器精度高、稳定性好、调整波形及频率方便,可以满足实验的需要。一般实现任意波形发生有两种常用的方法,一是地址计数器,还有一种是相位累加器,在本篇论文中,是采用地址计数器这种抽样方法实现任意波形,并通过VC5402DSP芯片实现程序化。2任意波形发生器工作原理任意波形发生器的基础是直接数字合成,原理框图如图2-1所示。其波形形成过程为:存储器(ROM)存储波形数据,通过地址计数器的每一个计数值对应于波形存储器的一个存储单元的地址,依次循环读出存储器各存储单元的内容(数据),然后送给D/A转换器,转换成相应的模拟量输出电压,最后经过低通滤波器得到较光滑的波形。图2-1任意波形发生器工作原理框图采用直接地址计数器产生任意波形的工作过程:设计计数器的位数为N位(模值=2N),则把波形的一个周期分为2N个等间隔数据点(抽样点)存入数据存储器,地址计数器不断地循环计数,就产生出每一周期为2N个固定点的波形。该方法的特点是每一个波形周期的点数是固定的,每一周期内点与点之间的相位间隔相同。但是,两个相邻周期波形之间的相邻两个点的相位间隔与其它点之间的相位相隔可能不同,当计数器的位数N增加时,这种相位间隔的误差就可以忽略。上饶师范学院优秀本科毕业论文23基于TMS320VC5402DSP的任意波形发生器的系统工作原理基于TMS320VC5402DSP芯片的任意波形发生器的系统工作原理是基于数模转换技术,在DSP板上对任意波形进行编程,通过DSP执行相应的程序,从DSP的多通道缓冲口Mcbsp0向DAC0832发送波形数据,产生波形输出。DSP芯片对波形的采样率由片内可编程定时器控制,每次当定时器寄存器TM减少到0时,会产生一个定时器中断(TNT),定时器中断周期由式(3-1)计算得出:T=CLKOUT×(TDDR+1)×(PRD+1)(3-1)VC5402的时钟发生器包括一个内部振荡器和一个锁相环(PLL)。DSP复位后可以对DSP的时钟模式寄存器(CLKMD)编程加载PLL,以配置所要求的时钟方式。由CLKMD的PLLNDIV,PLLDIV和PLLMUL位确定的乘法系数如表3-1所示表3-1PLLNDIVPLLDIV和PLLMUL位确定PLL乘法系数时钟周期CLKOUT由式(3-2)计算得出:CLKOUT=(输入时钟CLKIN)×(PLL乘法系数表)(3-2)根据式(3-1),式(3-2)可计算出定时器中断的频率如式(3-3)所示f==(3-3)T1)1()1()()(1PRDTDDRPLLCLKIN乘法系数输入时钟其中CLKOUT为时钟周期,TDDR和PRD分别为定时器控制寄存器(TCR)的分频系数位的值和定时器周期值。[1]输入时钟CLKIN由N位二进制计数器的时钟频率决定,如果产生的波形是循环读出的周期波形,则波形的频率由两方面来决定:一方面,波形的频率由地址计数器的计数时钟决定,当波形存储的点数一定时,计数器的计数时钟频率越快,读出一周期波形数据的时间就越短,输出波形的频率就越高,反之,则波形频率越低;另一方面,波形的频率也由组成一周波形的点数来确定,当计数时钟频率一定时,一周波形的点数越多,读完一周波形所需的时间就越长,波形频率就低,反之则高。假设地址计数器的时钟频率为,计数器的位数为N位,一周期波形的点数有M=2N个,输出f波形的频率为,则输出波形的频率与、M的关系为:0f0ff==(3-4)0fMf2Nf我们可以设置N位二进制计数器的时钟频率即为CLKIN。方波、三角波、锯齿波、正弦波等波形都是函数型信号,因此在程序设计时,应对信号波形PLLNDIVPLLDIVPLLMUL乘法系数0×0~140.50×150.25100~14PLLMUL+110151(复位后默认值)110或偶数(PLLMUL+1)////211奇数PLLMUL////4上饶师范学院优秀本科毕业论文3的有关参数(如幅度大小、频率大小)进行设置。地址计数器对波形信号一个周期内抽取M个量化值,如果将这M个量化值循环不断地从存储器送到DAC转换为模拟信号,则一个循环周期后,输出端将得到一个完整周期的信号波形。每发生一次定时器中断,就通过Mcbsp0向DAC输出M个量化值。因此可以在DSP存储器中开辟一个缓冲区用来存放这M个量化值,当一个周期输出结束后,再从缓冲区起始处重新开始读取一周期波形量化值送到DAC输出,如此往复,就可以得到连续的信号波形,用示波器或与DSP芯片相配套用来观察输出波形的软件来观察。若要产生较复杂的波形,只要修改源程序,改变DSP中缓冲区中的M个量化值,而不用重新改装电路。通过改变波形的采样率,就可以改变输出波形的频率,因此系统灵活性较好。4基于DSP的波形发生器的系统硬件组成所设计的基于DSP的波形发生器的系统硬件框图如图4-1所示,系统主要由DSP、计数存储输出和数模转换三部分组成。图4-1系统硬件框图4.1DSP部分TMS320VC5402DSP芯片(简称VC5402)既支持软件中断,也支持硬件中断。硬件中断有两种形式:一种是受外部中断口信号触发的外部硬件中断;另一种是受到片内外设信号触发的内部硬件中断,其中包括定时器中断。VC5402片内定时器是一个可编程的定时器,它由三个寄存器组成:定时器寄存器(TM)、定时器周期寄存器(PRD)和定时器控制寄存器(TCR)。这三个寄存器都是存储器映射寄存器。定时器周期寄存器(PRD)中存放时间常数,定时器寄存器(TM)加载定时器周期寄存器(PRD)的值并随计数而减少,定时器控制寄存器(TCR)包含定时器的控制和状态位。VC5402DSP的时钟发生器为其提供时钟信号。时钟发生器可以通过将晶体振荡器连接到VC5402的X1和X2/CLKIN引脚,内部振荡器也可以将一个外部时钟信号直接连接到X2/CLKIN引脚,并且X1引脚空置不接,使内部振荡器无效。VC5402DSP提供了两个高速、双向、多通道带缓冲的串行接口(Mcbsp0和Mcbsp1),它们可以与C54XDSP器件、编码器或其它串行接口器件通信。本DSP任意波形发生器功能板上DSP芯片的Mcbsp0和DAC08相连接,Mcbsp1用于功能扩展。Mcbsp包括数据通路和控制通路两部分,并通过7个引脚与外部器件相连。在时钟信号和帧同步信号控制下,接收和发送通过BDR和BDX引脚与外部器件直接通信。DSP内部CPU对Mcbsp操作,利用16位控制寄存器,通过片内外设总线进行访问控制。CPU或DMA控制器能够读取数据接收寄存器DRR1和DRR2中的内容并向数据发送寄存器DXR1和DXR2中写入数据,DXR中的内容会通过发送移位寄存器XSR输出到BDX引脚。同样,BDR引脚上接收的数据总是先移位进入接收移位寄存器RSR,然后复制到DRR中,这种多级缓冲的方法使得片内数据搬移和片外上饶师范学院优秀本科毕业论文4数据通信能够同时进行。[2]4.2计数存储及译码部分我们采用N位二进制计数器,把它的计数值作为地址码送到存储器的地址输入端,存储器ROM的基本结构是地址译码矩阵和数据存储矩阵通过地址总线输入欲选单元的二进制地址码,通过数据总线输出被选单元的存储信息。ROM的输出端所输出的数据由通用阵列逻辑GAL16V8参与可编程控制,“V”表示输出方式可编程,即由GAL16V8芯片参与ROM的读写控制。ROM输出端的输出数据由DSP板编程,经过数/模转换,产生波形。DSP、GAL16V8与ROM存储器的连接如图4-2所示。[3]图4-2DSP、GAL16V8与ROM的硬件连接4.3数模转换部分数模转换的基本原理:数模转换器的任务是把输入的数字量ND转换成与之成正比的电压模拟量U0或电流模拟量I0,两者满足:U0=KNDVref(4-1)或I0=FNDIref(4-2)式中,Vref,Iref是模拟量的参考基准值,K、F为比例系数,数字量ND可以用自然二进制码或BCD码表示。所以,DAC可以认为是把输入数字码译成模拟输出信号的译码器。如果数字量ND用N位自然二进制码表示则可按权展开为十进制数值,即ND=Dn-1×2n-1+Dn-2×2n-2+……+D0×20=(4-3)iniD210i代入式(4-1)或(4-2)可得U0=KVref(Dn-1×2n-1+Dn-2×2n-2+……+D0×20)=KVref(4-4)iniD210i或I0=FIref(Dn-1×2n-1+Dn-2×2n-2+……+D0×20)=FIref(4-5)iniD210i若令Vref×=,Iref×=(=0,1,……,n-1),则得i2iUi2iIiU0=K=“0”或“1”(4-6)10iniDiUiD上饶师范学院优秀本科毕业论文5或I0=F=“0”或“1”(4-7)10iniDiIiD显然,如果视K、F为N个幅值以2为权的电压源或电流源,输出模拟量U0就是由输入iUiI数字码控制的权电压的串联和,而I0是权电流的并联和。当为“1”时,相应的权电压iDiDK、权电流F叠加到输出U0或I0;为“0”时,权电压、电流对输出无效,DAC一般以权电iUiIiD流构成译码网络。集成DAC是由基准电流Iref和参考电压源Vref形成权电流的译码网络、受输入数字码控制的电子模拟开关及其进行电流叠加的运算放大器组成的求和电路构成它的基本结构。其示意图如图4-3。[4]图4-3D/A转换一般框图基于上述原理,实验室里所用的数模转换器为DAC0832,其DSP串口Mcbsp与DAC0832的硬件如图4-4。图4-4DSP串口与DAC0832硬件连接5程序设计与流程图软件系统采用模块化结构设计,主要由主程序、DSP初始化程序和中断矢量表程序、DAC初始化子程序组成,主程序用C语言编写,主程序中信号波形量化值设置由地址计数器进行。主DSP初始化子程序流程图和程序流程图分别见图5-1和图5-2。[5]子程序开始设置时钟模式寄存器设置SWWSR、BSCR等存储器映射寄存器多通道缓冲串口McBSP初始化子程序结束上饶师范学院优秀本科毕业论文6图5-1DSP初始化子程序流程图图5-2主程序流程图6结语基于DSP的任意波形发生器充分利用了DSP高速而精确的运算能力以及内部操作极大的灵活性,使得产生的信号波形精度高、稳定性好、编程灵活以及大容量存储功能,实现灵活多变的信号输出,软硬件具有较强的移植性,同时可广泛应用于对信号频率、幅度以及相位的精度要求极高的场合,具有较强的推广应用价值,在实际应用中会取得较好的效果。参考文献:[1]张雄伟.DSP芯片原理与应用[M].北京:机械工业出版社.2005[2]乔瑞萍.TMS320C54XDSP原理及应用[M].西安:西安电子科技大学出版社.2005[3]付家才.DSP控制工程实践技术[M].北京:化学工业出版社.2005[4]王军宁.数字信号处理技术原理与开发应用[M].北京:高等教育出版社.2003[5]李英芳.DSP程序开发[M].西安:西安电子科技大学.2003DSPrealizesthefreeprofilegeneratorAbstractElaboratedbasedontheTMS320VC5402DSPchiprandompr
本文标题:DSP实现任意波形发生器
链接地址:https://www.777doc.com/doc-5747366 .html