1 引言
波形发生器已经广泛的应用在通信、控制、测量等各个领域,如锯齿波、正弦波、方波等波形常用于电路的设计与调试。随着电子技术的迅猛发展,数字化正逐渐地成为电子产业的发展趋势,各公司都将自己的产品向数字化、集成化、小型化等方向进行拓展。众所周知,数字化的电子产品有其不可替代的优势,譬如体积小、集成程度高、抗干扰能力强等特点。但是,数字电路只能够较好地处理脉冲波形,即只对l和0形成的方波处理得很好.对于连续渐变的信号不能够很好地处理,而这恰恰正是模拟电路的优势所在。本文将数字电路与模拟电路相结合,即通过FPGA来产生所需各种模拟波形的控制信号,然后通过模拟电路来处理渐变信号,这样町以得到各种清晰的波形。
2 示波器显示原理
首先,对示波器的显示原理进行简要地说明,以便更好地了解硬件电路的工作过程。在整个显示期间,示波器需要始终处于“X-Y”档,即尔波器的波形是 X轴和Y轴输入信号的叠加合成显示。可知,一般情况下,x轴输入的变量为信号频率,Y轴输入的变量为信号幅度。因此,当在x轴上输入5KHz的信号频率值,在Y轴上输入0V的直流电压幅度时,在示波器位于(5KHz,0V)的位置处就会显示出一个亮点;同理,若在Y轴上输入5V的直流电压幅度,而在x轴上输入0Hz的信号频率值时,在示波器位于(0Hz,5V)的位置处也会显示出一个亮点;而如果在x轴和Y轴上的输入分别为5KHz、5V时,则亮点就会出现在示波器上的(5KHz,5V)处。这样,如果通过程序不间断地对两个坐标轴进行赋值,就可以在示波器上显示出一条清晰.连续的信号波形。
3 硬件设计
本文主要详细地介绍了常用信号中阶梯波和锯齿波的模拟波形设计,它们的模拟电路实现简单,并且实际的输出波形清晰。方案中的硬件电路主要是南DSP、 FPGA以及外围芯片构成,DSP用于控制模拟波形的输出位置和幅度;外围芯片用来进行模拟波形的产生,如利用两个DAC0832来产生两路电压信号,一个用于控制锯齿波的高度,另一个用于控制阶梯波的高度。而FPGA则进行所需的各种控制信号的逻辑编程。
这里,FPGA采用的是ALTERA公司的10K10系列的可编程逻辑器件。ALTERA公司的FLEX 10K系列器件是业界第一块嵌入式可编程逻辑器件,为柔性逻辑元素阵列架构,利用通用的门海架构来实现一般性的逻辑功能,还采用专用的硅片来实现规模较大的专用功能。和标准的门阵列比较,由于嵌入式功能在硅片上实现,所需的硅片面积更小、系统速度更高。FLEX 10K系列不仅能提供高密度、高速度和系统集成功能,并且在单个器件内部包含多重32比特总线、*4比特的RAM空间,还支持串行与并行两种配置方式及JTAG模式的在线仿真,这些特点都使得FLEX IOK系列器件成为目前应用最为广泛的可编程逻辑器件之一。与之对应,采用的开发工具是MaxplusⅡ可编程逻辑开发软件,利用MaxplusⅡ作为 EDA的软件工具,可实现强大的逻辑功能,还具有周期短、集成度高、价格合适等优点。并且,由于电路的逻辑模块都是在FPGA中实现的,因此,它们具有良好的可移植性和易维护性等特点,并方便以后系统的改进。同时,这也进一步地减少了电路板面积,使电路的集成度大大地提高。在本设计方案中,主要是使用 FPGA来进行各种模拟波形的控制编程,产生各种逻辑用以作为其控制信号。其中,FPGA中逻辑控制的结构框图如图1所示,可分为三个部分,而粗扫、精扫信号是作为锯齿波的控制信号。
图1 FPGA中控制信号模块功能框图
FPGA的工作过程为:首先,对输入的32KHz时钟信号以计数器进行分频,产生一个1600Hz的窄脉冲信号,它一方面作为外部模拟波形产生电路的扫描触发信号,另一方面作为锯齿波控制信号的工作起始信号,即该信号每到来一次,就启动其它功能模块,按照需要的时序产生所需的控制信号。由图1可知,1600Hz频率到来,会打开精扫计数器与粗扫计数器的输入时钟(2MHz),并启动二者的初始装载过程,然后以这个初始值对输入脉冲进行减法计数,当减法溢出时,输出端就会产生所需的扫描信号。同时,还要利用该信号关闭各自的输入时钟信号,直到下一个1600Hz的到来。当经过逻辑运算改变减法计数器的8位初始值时,输出信号的时刻相对于1600Hz信号来讲,就会有相应的变化。通过这种逻辑方式,就可以控制各种模拟波形的出现时间,从而能够控制示波器上各种波形的显示位置。其中,减法计数器初值的改变是通过一个8位锁存器来实现,即将DSP的地址线、读/写信号线及I/O空间的访问控制线进行逻辑运算,作为8位锁存器的选通信号,然后利用程序将8位数据写入减法计数器。
而阶梯波控制信号则是完全由软件程序来实现,即根据其各种时序,在不同的时刻将不同的数据写入FPGA中进行锁存,然后经由D触发器输出用以控制信号的产生。为了满足系统的需要,还设计了一个控制波形宽度变化的逻辑用以产生显示所需的不同宽度的脉冲序列,其T.作方式是将两个不同频率的方波信号和一个D触发器的输出端D与,D分别作逻辑与操作,然后再进行逻辑或运算,再通过程序来改变D触发器的输出状态,从而得列具有两种宽度的输出脉冲。