您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

一种高精度波形发生器的设计

时间:2007-1-20栏目:电子通信论文

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

上一页  [1] [2] [3] 下一页

下页更精彩:1 2 3 4 下一页