DSP实现任意波形发生器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图2-1 任意波形发生器工作原理框图
采用直接地址计数器产生任意波形的工作过程:设计计数器的位数为N位(模值=2N),则把波
形的一个周期分为2N个等间隔数据点(抽样点)存入数据存储器,地址计数器不断地循环计数,就 产生出每一周期为2N个固定点的波形。
该方法的特点是每一个波形周期的点数是固定的,每一周期内点与点之间的相位间隔相同。 但是,两个相邻周期波形之间的相邻两个点的相位间隔与其它点之间的相位相隔可能不同,当计 数器的位数N增加时,这种相位间隔的误差就可以忽略。
wenku.baidu.com
图4-2 DSP、GAL16V8与ROM的硬件连接
4.3 数模转换部分
数模转换的基本原理:数模转换器的任务是把输入的数字量ND转换成与之成正比的电压模拟 量U0或电流模拟量I0,两者满足:
U0 = KNDVref
(4-1)

I0 = FNDIref
(4-2)
式中,Vref ,Iref是模拟量的参考基准值,K、F为比例系数,数字量ND可以用自然二进制码或BCD
Di 2i (4-4)
i0
n 1
或 I0 = FIref (Dn-1×2n-1+Dn-2×2n-2+……+D0×20) = FIref
Di 2i (4-5)
i0
若令 Vref × 2i = U i ,Iref × 2i = Ii ( i =0,1,……,n-1) ,则得
n 1
U0 = Di K U i i0
1
上饶师范学院 优秀本科毕业论文
3 基于 TMS320VC5402DSP 的任意波形发生器的系统工作原理
基于TMS320VC5402DSP芯片的任意波形发生器的系统工作原理是基于数模转换技术,在DSP 板上对任意波形进行编程,通过DSP执行相应的程序,从DSP的多通道缓冲口Mcbsp0向DAC0832发 送波形数据,产生波形输出。
2 任意波形发生器工作原理
任意波形发生器的基础是直接数字合成,原理框图如图2-1所示。其波形形成过程为:存储 器(ROM)存储波形数据,通过地址计数器的每一个计数值对应于波形存储器的一个存储单元的地 址,依次循环读出存储器各存储单元的内容(数据),然后送给D/A转换器,转换成相应的模拟量 输出电压,最后经过低通滤波器得到较光滑的波形。
3
上饶师范学院 优秀本科毕业论文
数据通信能够同时进行。[2]
4.2 计数存储及译码部分
我们采用N位二进制计数器,把它的计数值作为地址码送到存储器的地址输入端,存储器ROM 的基本结构是地址译码矩阵和数据存储矩阵通过地址总线输入欲选单元的二进制地址码,通过数 据总线输出被选单元的存储信息。
ROM的输出端所输出的数据由通用阵列逻辑GAL16V8参与可编程控制,“V”表示输出方式可 编程,即由GAL16V8芯片参与ROM的读写控制。ROM输出端的输出数据由DSP板编程,经过数/模转 换,产生波形。DSP、GAL16V8与ROM存储器的连接如图4-2所示。[3]
f0
=
f M
= f 2N
(3-4)
我们可以设置N位二进制计数器的时钟频率即为CLKIN。
方波、三角波、锯齿波、正弦波等波形都是函数型信号,因此在程序设计时,应对信号波形
2
上饶师范学院 优秀本科毕业论文
的有关参数(如幅度大小、频率大小)进行设置。地址计数器对波形信号一个周期内抽取M个量化 值,如果将这M个量化值循环不断地从存储器送到DAC转换为模拟信号,则一个循环周期后,输出 端将得到一个完整周期的信号波形。每发生一次定时器中断,就通过Mcbsp0向DAC输出M个量化值 。 因此可以在DSP存储器中开辟一个缓冲区用来存放这M个量化值,当一个周期输出结束后,再从缓 冲区起始处重新开始读取一周期波形量化值送到DAC输出,如此往复,就可以得到连续的信号波 形,用示波器或与DSP芯片相配套用来观察输出波形的软件来观察。若要产生较复杂的波形,只 要修改源程序,改变DSP中缓冲区中的M个量化值,而不用重新改装电路。通过改变波形的采样率 , 就可以改变输出波形的频率,因此系统灵活性较好。
Di =“0”或“1” (4-6)
4
上饶师范学院 优秀本科毕业论文
n 1

I0 = Di F Ii
Di =“0”或“1” (4-7)
i0
显然,如果视 KU i 、F Ii 为 N 个幅值以 2 为权的电压源或电流源,输出模拟量 U0 就是由输入 数字码 Di 控制的权电压的串联和,而 I0 是权电流的并联和。当 Di 为“1”时,相应的权电压 KU i 、权电流 F Ii 叠加到输出 U0 或 I0; Di 为“0”时,权电压、电流对输出无效,DAC 一般以权电 流构成译码网络。
图 4-4 DSP 串口与 DAC0832 硬件连接
5 程序设计与流程图
软件系统采用模块化结构设计,主要由主程序、DSP 初始化程序和中断矢量表程序、DAC 初 始化子程序组成,主程序用 C 语言编写,主程序中信号波形量化值设置由地址计数器进行。主 DSP 初始化子程序流程图和程序流程图分别见图 5-1 和图 5-2。[5]
集成 DAC 是由基准电流 Iref 和参考电压源 Vref 形成权电流的译码网络、受输入数字码控制的 电子模拟开关及其进行电流叠加的运算放大器组成的求和电路构成它的基本结构。其示意图如图
4-3。[4]
图 4-3 D/A 转换一般框图 基于上述原理,实验室里所用的数模转换器为 DAC0832,其 DSP 串口 Mcbsp 与 DAC0832 的硬 件如图 4-4。
表3-1 PLLNDIV PLLDIV和PLLMUL位确定PLL乘法系数
PLLNDIV
0 0 1 1 1 1
PLLDIV
× × 0 0 1 1
PLLMUL
0~14 15
0~14 15
0或偶数 奇数
乘法系数
0.5 0.25 PLLMUL+1 1(复位后默认值) (PLLMUL+1)/2 PLLMUL/4
关键词
DSP;波形发生器;DSP 程序
1 引言
在通信、仪器仪表和控制等现代工程中应用非常广泛的波形发生器在实际中常需要产生任意 的波形,尤其一些特殊的波形,以检测和调试测量装置。 然而,通常实验室的信号发生器模式 固定,波形不可编程,难以实现上述要求,而在现代社会里,对这些工程仪器的要求越来越高, 本文介绍的这种基于 TMS320VC5402DSP 芯片的波形发生器精度高、稳定性好、调整波形及频率方 便,可以满足实验的需要。一般实现任意波形发生有两种常用的方法,一是地址计数器,还有一 种是相位累加器,在本篇论文中,是采用地址计数器这种抽样方法实现任意波形,并通过 VC5402DSP 芯片实现程序化。
子程序开始 设置时钟模式寄存器 设置 SWWSR、BSCR 等存储器映射寄存器 多通道缓冲串口 McBSP 初始化
子程序结束
5
上饶师范学院 优秀本科毕业论文
图 5-1 DSP 初始化子程序流程图 主程序开始
信号波形参数初始化 调用 DSP 初始化子程序 调用 DAC 初始化子程序 地址计数器对波形的量化值设置
上饶师范学院 优秀本科毕业论文
DSP 实现任意波形发生器
官仕伟 指导教师:付金仙
(上饶师范学院物理与电子信息系 03 物(2)班)
摘要
阐述了基于 TMS320VC5402DSP 芯片的任意波形发生器的设计原理和实现方法,该波形发生器 可以产生任意波形,且由 DSP 程序控制,易于修改,弥补了通常波形发生器模式固定、波形不可 编程以及精确度低的不足。
(3-3)
其中CLKOUT为时钟周期,TDDR和PRD分别为定时器控制寄存器(TCR)的分频系数位的值和定时器周
期值。[1]
输入时钟CLKIN由N位二进制计数器的时钟频率决定,如果产生的波形是循环读出的周期波
形,则波形的频率由两方面来决定:一方面,波形的频率由地址计数器的计数时钟决定,当波形
存储的点数一定时,计数器的计数时钟频率越快,读出一周期波形数据的时间就越短,输出波形
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所示
时钟周期CLKOUT由式(3-2)计算得出: CLKOUT= (输入时钟CLKIN)×(PLL乘法系数表)
根据式(3-1),式(3-2)可计算出定时器中断的频率如式(3-3)所示
(3-2)
1
1
f= =
T (输入时钟CLKIN ) (PLL乘法系数) (TDDR 1) (PRD 1)
的频率就越高,反之,则波形频率越低;另一方面,波形的频率也由组成一周波形的点数来确定 ,
当计数时钟频率一定时,一周波形的点数越多,读完一周波形所需的时间就越长,波形频率就低,
反之则高。
假设地址计数器的时钟频率为 f ,计数器的位数为N位,一周期波形的点数有M=2N个,输出
波形的频率为 f0 ,则输出波形的频率 f0 与 f 、M的关系为:
波形选择标志设置 关闭所有可屏蔽中断
关定时器 设置周期寄存器(PRD)
启动定时器工作 开放定时器中断 开放所有可屏蔽中断 等待定时器中断
图 5-2 主程序流程图
6 结语
基于DSP的任意波形发生器充分利用了DSP高速而精确的运算能力以及内部操作极大的灵活 性,使得产生的信号波形精度高、稳定性好、编程灵活以及大容量存储功能,实现灵活多变的信 号输出,软硬件具有较强的移植性,同时可广泛应用于对信号频率、幅度以及相位的精度要求极 高的场合,具有较强的推广应用价值,在实际应用中会取得较好的效果。
4 基于DSP的波形发生器的系统硬件组成
所设计的基于DSP的波形发生器的系统硬件框图如图4-1所示,系统主要由DSP、计数存储输 出和数模转换三部分组成。
图4-1 系统硬件框图
4.1 DSP 部分
TMS320VC5402DSP芯片(简称VC5402)既支持软件中断,也支持硬件中断。硬件中断有两种形 式:一种是受外部中断口信号触发的外部硬件中断;另一种是受到片内外设信号触发的内部硬件 中断,其中包括定时器中断。VC5402片内定时器是一个可编程的定时器,它由三个寄存器组成: 定时器寄存器(TM)、定时器周期寄存器(PRD)和定时器控制寄存器(TCR)。这三个寄存器都是存储 器映射寄存器。定时器周期寄存器(PRD)中存放时间常数,定时器寄存器(TM)加载定时器周期寄 存器(PRD)的值并随计数而减少,定时器控制寄存器(TCR)包含定时器的控制和状态位。
DSP内部CPU对Mcbsp操作,利用16位控制寄存器,通过片内外设总线进行访问控制。CPU或DMA 控制器能够读取数据接收寄存器DRR1和DRR2中的内容并向数据发送寄存器DXR1和DXR2中写入数 据,DXR中的内容会通过发送移位寄存器XSR输出到BDX引脚。同样,BDR引脚上接收的数据总是先 移位进入接收移位寄存器RSR,然后复制到DRR中,这种多级缓冲的方法使得片内数据搬移和片外
码表示。所以,DAC可以认为是把输入数字码译成模拟输出信号的译码器。
如果数字量ND用N位自然二进制码表示则可按权展开为十进制数值,即
n 1
ND = Dn-1×2n-1+Dn-2×2n-2+……+D0×20= Di 2i i0
(4-3)
代入式(4-1)或(4-2)
n 1
可得 U0 = KVref (Dn-1×2n-1+Dn-2×2n-2+……+D0×20) = KVref
VC5402DSP的时钟发生器为其提供时钟信号。时钟发生器可以通过将晶体振荡器连接到 VC5402的X1和X2/CLKIN引脚,内部振荡器也可以将一个外部时钟信号直接连接到X2/CLKIN引脚, 并且X1引脚空置不接,使内部振荡器无效。
VC5402DSP提供了两个高速、双向、多通道带缓冲的串行接口(Mcbsp0和Mcbsp1),它们可以 与C54XDSP器件、编码器或其它串行接口器件通信。本DSP任意波形发生器功能板上DSP芯片的 Mcbsp0和DAC08相连接,Mcbsp1用于功能扩展。Mcbsp包括数据通路和控制通路两部分,并通过7 个引脚与外部器件相连。在时钟信号和帧同步信号控制下,接收和发送通过BDR和BDX引脚与外部 器件直接通信。
相关文档
最新文档