波形发生器设计

时间:2022-03-12 02:22:00

波形发生器设计

1系统设计

本系统采用TI公司生产的TMS320VC54X系列DSP作为核心控制器件,并采用Cypress工司生产的CY7C1021V(64K×16位RAM)来扩充DSP的外部数据存储空间。在DSP与ADC及RAM之间的数据接口加入74LVC16245(16位总线变换器)以增加DSP的驱动能力,并用来隔断器件间的干扰。DSP与DAC之间的逻辑控制采用CPLD实现,这样可以方便系统的设计与调试,本文中采用的CPLD为Altera公司的EPM7064SLC84-10。

整个系统的方框图如图1所示。

2器件简介

本系统所采用的数模转换器为AD7846,它是美国AD(AnalogDevice)公司基于LC2MOS工艺生产的16位数模转换器。它有VREF+和VREF-两个参考电平输入端以及一个片内放大器。标准情况下可以将其配置为单极性输出(0~+5V,0~+10V)或双极性输出(±5V,±10V)。当然,改变VREF+VREF-两个参考电平输入端的电平,也可以改变其输出的动态范围。如本文中的采用高精度电压参考芯片AD434提供参考电平,使D/A的动态范围设置为±4.096V。

AD7846采用分段式结构。DAC锁存器的高4位选通16个电阻串中的一段,段的两端接有运放作为缓冲,运放的输出反馈至12位的模数变换电路,并由该电路提供后12位分辨率。这种结构可以确保16位单调性,两个缓冲运放间输入失调电压的高度匹配还确保了优良的积分非线性。

除了优良的精度指标外,AD7846与微处理器的连接也非常方便。它有16位数据I/O以及4根控制线(CS,R/W,LDAC以及CLR)。R/W与CS用来控制对I/O锁存器的读写,LDAC信号用于多DAC系统中同步更新多片DAC数据,CLR用于将DAC的输出复位至0V。

3AD7846参考电压的设计

为了使系统的输出波形在幅度上能够精确到1mV,本文采用AD434为AD7846提供参考电压。ADR434为AD公司生产的低噪声、高精度、低温漂的电压参考芯片。它采用了AD公司的温漂曲率修正专利技术,可以使其电压对温度的非线性达到最小。二者的具体连接如图2所示。

图2所示的连接方式使AD7846工作在双极性输出状态下。AD434为D/A提供+4.096V的参考电平,D/A根据此电平经过双极十六位线性分解,所得的最低可调电压为4.096V/215=125μV。具体的编码表如表1所列。

表1AD7846编码表

DAC锁存器中的二进制数

模拟输出VOUT/V

1111111111111111+4.096C(32767/32768)=+4.0958751000000000001000+1.096V(8/32768)=+0.0011000000000000001+4.096V(1/32768)=+0.0001251000000000000000+4.096V(0/32768)=00111111111111111-4.096V(1/32768)=-0.0001250000000000000000-4.096V(32768/32768)=-4.096

4逻辑控制及软件实现

本文使用CPLD作为DSP控制D/A映射在DSP的I/O口,地址为4000H~7FFFH。AD7846一共有4根控制线,它们组成的控制逻辑如表2所列。

表2AD7846控制逻辑真值表

CSR/WLDACCLR

功能

1XXX使DAC的I/O锁存器呈高阻态00XX数据(DB1~5DB0)装入I/O锁存器01XXI/O锁存器中的数据输出到数据线上XX01I/O锁存器中的数据装入DAC锁存器X0X0DAC锁存器装入数据000...000X1X0DAC锁存器装入数据100...000

CPLD中烧入的逻辑图如图3所示。

对于波形的产生,通常有两种方法。一种方法为使用算法计算输出波形某点的幅度编码值(如正弦波可通过泰勒级数展开得到),这种方法可直接精确地计算出每个角度的波形值,所占用的存储空间小,但对于任意波形的输出,所需的算法较为复杂,系统实时性也会受到影响。另一种方法为查表法,该方法可能需要占用较大的存储空间,但软件控制却非常方便,实时性也更高。采用查表法的软件控制可由如下代码实现。

egs

.globalmain

main:nop

ori:stm#SINtable,ar2;将数据表头地址送入ar2

ld#13H,a;循环输出20个样点值

JUMP:portw*ar2+,4000h;AD4846被配置在I/O口的4000H~7FFFFH处

Rpt#1fffh;改变rpt的值可以改变正弦波的频率

Nop

Sub#1d,a

BcJUMP,aneq

bori

SINtable;正弦波幅度编码表

.word7FFFH.word0A78DH.word0CB3CH.word0EF8DH

.word0F9BCH.word0FFFFH.word0F9BCH.word0E78DH

.word0cB3CH.word0A78DH.word8000H.word5872H

.word34C3H.word1872H.word0643H.word0000H

.word0643H.word1872H.word34C3H.word5872H

.end

该段程序可使AD7846输出标准正弦波,幅度范围为±4.096V,频率可通过改变rpt的值加以调节。若提供大量采样点,可使其实时输出高精度的任意波形。当然,利用DSP强大的运算处理能力,也可用软件计算出所需波形的各点采样值,这样可以节省存储空间,降低系统硬件成本。

结语

本系统已经过实际测量,系统各部分工作正常,AD7846可精确稳定地输出所需波形。该方案不仅达到了很高的精度与系统实时性,还具有控制灵活方便等特点,是一种很好的波形发生器。