基于DSP芯片设计的一种波形发生器摘 要:介绍了一种利用DPS TMS320VC5402和DAC AD7846以及PGA205、PGA103产生任意高精度波形的设计。并提供了具体电路的硬件实现框图以及所需的DSP波形产生程序。 关键词:DSP ;AD7846;DSP源程序 在通信、仪器仪表和控制等领域的信号处理系统中,经常要使用到正弦波以及其他波形发生器。通常可以通过下述两种方法来产生所需波形。一种方法为使用算法直接产生(如正弦波通过泰勒级数展开得到),这种方法能直接精确地计算出每个角度的波形值,所占的存储空间较小。另一种为查表法,使用这种方法时,如果要有高的精度则要使用很大的表来记录,从而占有较多的存储空间,但是实时性较第一种方法好。我们来主要讨论第二种方法。 系统框架结构 该系统主要包括以下几个部分:DSP、DAC、DAC后端低通滤波电路以及两个数字可编程运放PGA205、PGA1039(图1)。系统中DSP采用了TI公司的TMS320VC5402,它有一组程序总线和三组数据总线,高度并行性的算术逻辑单元ALU、专用硬件逻辑片内存储器、增强型HPI口和高达100MHz的CPU频率,可以在一个周期里完成两个读和一个写操作。D/A采用了ADI公司的一种16位、低功耗数模转换器AD7846,实现了高速同步数模转换。可编程增益放大器采用的是美国BB公司的具有低增益误差的PGA205和PGA103,它们可采用 4.5V至18V的电源工作,通过与CMOS与TTL兼容的输入端来设定增益,并能提供快速的稳定时间。 硬件实现 TMS320VC5402和DAC AD7846是通过VC5402的并行I/O接口来实现数据交换,通过地址线来对AD7846的四个数字逻辑进行控制的。将cs和R/W均置为低电平时,开始向该DAC写数,经过一段延时,将LDAC置为高电平,CLR置为低电平,DAC进行数模转换,最后,将R/W和CLR均置为低电平,即将该DAC锁存器清零。当然,也可以通过CPLD来对其进行控制。具体时序图如图2所示。 后端运放电路由可编程增益运放PGA205和PGA103串联组成。该运放电路可提供从G=1到G=800的可编程增益放大。增益输入端具体输入值详见参考文献[5]真值表。数字输入端可直接与通用的CMOS和TTL逻辑元件直接接口。逻辑输入端以接地端为基准。如果数字输入端不带锁存器,逻辑输入的改变将立即选择新的增益。逻辑输入的开关时间大约是0.5微秒。增益改变的响应时间等于开关时间加上放大器稳定到与新选择的增益相对应的新输入电压所需要的时间,对于0.01%的精度,当G=10时,稳定时间为2.5微秒,当G=100时,稳定时间为8微秒。本系统中,使用外部逻辑锁存器锁存来自高速数据总线的增益控制信号。使用外部锁存器可以把高速的数字总线与敏感的模拟电路分开。应使锁存电路尽可能远离模拟电路以避免将数字噪声耦合到模拟电路中。 软件设计 DSP源程序 .mmregs .global main .sect "MAIN" main: stm #TAB,AR0 ;指向表头 tm #167H,AR3 ;设定循环次数 HI_PULSE: ssbx xf stm #20H,AR5 NOP LOOP1: NOP BANZ LOOP1,*AR5- ;delay1NOP portw *ar0+,8h ;a1--cs 60ns, a2--r/w 60ns, a0--clr 70ns NOP NOP NOP rsbx xf ;ldac(70ns) '0' transferedportw * ar5,3h ;a0--clr'1' transfere NOP |