基于FPGA的模拟信号波形的设计
扫描二维码
随时随地手机看文章
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触发器的输出状态,从而得列具有两种宽度的输出脉冲。[!--empirenews.page--]
4 实验结果
4.1阶梯波波形
这里,简要地介绍一下阶梯波波形的具体产生过程。首先,需要设计一个可产生4种不同直流电压的模拟电路,使其能够在不同的控制信号组合状态下,会输出不同幅度的直流电压。该模拟电路总共有4个控制信号输入端,通过DSP的软件程序控制组合的输入。当组合状态为“0001”时,电路会输出幅度为4V的直流电压,而当组合状态为“0010”时,电路将输出幅度为5v的直流电压。同时,还要给出其埘应的输出位置。这样.当程序循环改变输入的组合状态时,在双踪显示模式下,就可以得到如图2所示的阶梯波波形,将这一波形输入到示波器的x轴上,就会在示波器的相应位置上出现四个亮点。
图2阶梯波波形
在实际工程中,通过DSP程序在FPGA中进行两种不间脉冲宽度之间的转换,将所需脉冲宽度的信号经过外部的单稳态触发器设置适当的宽度,再经过微分、积分电路中,就会形成如图3所示的波形,把这一波形输入到示波器的Y轴上,并将其设置为“X-Y”档,最后就会显示出四条亮线。当图(a)中的较窄脉冲输入到Y轴时,通过程序使其在不同的幅值点的停留时间基本保持一致,这样,它所对应的显示亮线会比较均匀;而当图 (b)中的较宽脉冲输入到Y轴时,通过程序使其在最高幅值点处停留的时间比在其它幅值点停留的时间长,这使得它所对应的亮线顶部比亮线的其它部分较亮,最后就会在示波器上显示出形状类似火柴头的亮线图形。
图3两种宽度在脉冲信号
4.2锯齿波波形
同样地,按照相间的构想就可以产生锯齿波波形。由上可知,FPGA会输出1600Hz的脉冲作为外部模拟电路的触发信号,在它的作用下,模拟电路会产生一个长为100us的扫描信号,将其作为示波器上X轴的输入信号,而将0V的直流电压输入Y轴。那么,根据示波器的显示原理,由于Y轴的输人为0V,则亮点只能出现在x轴上,而x轴的输入信号又是一个频率值固定的连续信号,这样在示波器上就会显示出一个在x轴上连续的扣描基线的波形。然后,通过DSP 的软件程序控制模拟电路,产生连续变化的直流电压值,再输出到示波器的Y轴上时,就可以在示波器上得到锯齿波波形,如图4所示。
图4锯齿波波形
5 结论
这里,利用FPGA构成核心控制电路用以产生模拟波形的控制信号,再辅以外围的电路生成锯齿波和阶梯波。通过实验观察,产生的波形清晰,无杂波干扰.表明该模拟电路能够很好地处理渐变信号,充分地体现了模拟电路的优点。并且,在实际工程中,合理地运用锯齿波和阶梯波来生成项目所需的各种模拟波形。只要将部分电路稍加改造,就可以应用于其他应用系统中。