一种基于FPGA的信号发生器设计实现
2011-01-13宋承志
郑 琴,鲁 琴,宋承志
(武汉纺织大学 数学与计算机学院,湖北 武汉 430073)
一种基于FPGA的信号发生器设计实现
郑 琴,鲁 琴,宋承志
(武汉纺织大学 数学与计算机学院,湖北 武汉 430073)
应用VHDL语言及QuartusII软件提供的原理图输入设计功能,结合电子线路的设计加以完成一个可应用于数字系统开发或实验时做输入脉冲信号或基准脉冲信号用的信号发生器,它具有结构紧凑,性能稳定,设计结构灵活,方便进行多功能组合的特点,经济实用,成本低廉。
信号发生器;FPGA;QuartusII;VHDL语言
1 引言
随着我国的经济日益增长,社会对电子产品的需求量也就越来越大,目前,我国的电子产品市场正在迅速的壮大,市场前景广阔。FPGA(Field Programmable Gate Array,现场可编程门阵列)在现代数字电路设计中发挥着越来越重要的作用。FPGA所具有的静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大地提高了电子系统设计的灵活性和通用性,缩短了产品的上市时间并降低可电子系统的开发成本。
信号发生器是数字设备运行工作中必不可少的一部分,在传统的信号发生器中,大都使用分立元件,而且体积庞大携带不便,且大部分只能输出一种脉冲信号波形,而使用专用的数字电路设计的信号发生器,设备成本高、使用复杂。基于以上考虑,在中小型数字电路的设计和测试中,迫切需要设计一种小型易用成本低廉的信号发生器。
2 设计方案
利用VHDL编程,依据基本数字电路模块原理进行整合。系统各部分所需工作时钟信号由输入系统时钟信号经分频得到,系统时钟输入端应满足输入脉冲信号的要求。组合波形信号经显示模块输出。具备幅度和频率可调功能,幅度可通过电位器调整,频率控制模块则是一个简易的计数器,控制步径为100HZ的可调频率,最终送至脉冲发生模块输出脉冲信号,达到设计课题所要求的输出波形频率可调及幅度可调功能。幅度可调功能由于比较简单,可以在FPGA外部利用硬件电路实现[2,3,8,9]。总体设计框图如下图1所示:
图1 总体设计框架图
采用VHDL语言来编程,然后下载文件到FPGA来实现。VHDL语言是电子设计领域的主流硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大降低了硬件设计任务,提高了设计效率和可靠性,要比模拟电路快得多。该方案是利用FPGA具有的静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,极大地提高了电子系统设计的灵活性和通用性,而且大大缩短了系统的开发周期。
3 软件设计
3.1 波形产生模块
本设计用VHDL语言根据傅立叶函数采集点进行扫描,分别产生正弦波、三角波和矩形波。以下介绍各种常用周期信号的傅立叶函数展开式[1,4,5,8,10,11]。
3.1.1 正弦波
正弦波发生分为两个步骤,即正弦波幅值采样存储和正弦波波形的还原输出。幅值采样是将一个周期正弦波进行64等分,如图2所示,将64个采样点进行量化处理,量化值=255*sin360/64(V),将64点量化值存入存储器。正弦波形的产生是通过循环反复将存储器中的64点采样值通过DAC0832进行还原输出,得到幅值正比于64点采样值的正弦波。
3.1.2 矩形波
矩形波的实现较之正弦波发生简单,由于矩形波是两个电平值间的交替变换,因此波形采样值的预存只要有两个不同的数值就行了,为了使矩形波发生的频率灵活可调,采用60个采样值扫描输出来实现,每半个矩形波周期采用三十个采样值,循环反复将存储器中的60点采样值通过DAC0832进行还原输出,得到幅值正比于点采样值的矩形波。采样图如图3所示。
3.1.3 三角波
由于三角波是线性的,比较简单就可以产生,如果最低电压设为15V,最高是255V,那么根据它的公式255/15=17,每个点的电压只要依次加17就可以得到,一个波形所以采用简单的加减算法就可实现,如图4所示三角波的采样图。
3.1.4 基波
通过VHDL编程产生的正弦波、方波、三角波三种周期性波形即为基波。
图5 频率控制模块流程图
图2 正弦波采样图
图3 方波采样图
图4 三角波采样图
图6 选择波形电路设计流程图
3.1.5 谐波的产生
采用与基波产生的同样原理,编程产生三种波形的谐波,所不同的是一个波形的周期采样的点数不同,如果基波采样点为63个,谐波采样点数则为21个,其每点的电压值为255*(sin360/60+sin360/20)(V),在对其进行循环扫描即可实现基波与谐波的线性叠加。
3.2 频率控制模块
系统要求频率控制是在100HZ-1KHZ,步进为100HZ。在本题设计中只需借助FPGA便可完成。根据用户需要的频率[5,6,9],通过编程把频率控制数值传送给各个模块,从而实现频率的控制。如图5所示。
3.3 选择波形模块
这一部分主要是通过一个按键对波形进行循环选择,按下确认按钮后进行波形的调用。设计流程图如图6所示。
4 硬件电路设计
此次系统设计硬件部分通过 FPGA/CPLD实验箱完成。为了避免干扰信号影响系统正常工作,未分配功能的FPGA引脚必须接地,在FPGA器件的电源端必须并连一0.01uF的退耦电容,在所有的输入引脚上串联100欧姆左右电阻减弱干扰信号影响,如有必要还应在输入端设置上拉或下拉电阻。
4.1 滤波电路设计
图7 滤波电路的设计
如图7所示,设计D/A输出后,通过滤波电路、输出缓冲电路,使信号平滑且具有负载能力。
为保证稳幅输出,选用 AD817,这是一种低功耗、高速、宽带运算放大器 , 具有很强的大电流驱动能力。实际电路测量结果表明:当负载100Ω、输出电压峰-峰值10V时,带宽大于500kHz,幅度变化小于土1%。
4.2 幅度控制电路设计
幅度控制电路采用一个电位器来控制波形的输出幅度,电位器的型号为10K 欧。
5 系统调试
图8 系统仿真波形
FPGA系统的软硬件设计是紧密相连的,将软件编译综合并且通过下载对FPGA进行适配,运行中的FPGA是由其内部的硬件结构控制读出数据,从而产生波形。
系统仿真波形如图8所示:
6 结论
系统以FPGA10K10器件为核心部件,可利用软件编程实现了对D/A转换信号的处理。努力做到了线路简单、高性价比的特点,充分利用了软件编程,弥补了硬件元器件的不足。
[1] 潘松,黄继业. EDA技术实用教程(第二版)[M]. 北京:北京科学出版社,2005.2.
[2] 李小波,等.基于CPLD和单片机的低频信号源设计[J]. 仪表技术与传感器,2005, (11):46-48.
[3] 包明,等.基于FPGA的高速高精度频率测量的研究[J]. 单片机与嵌入式系统应用,2003,(2):31-33.
[4] 王志鹏,付丽琴.可编程逻辑器件开发技术. Quartus II. 北京: 国防工业出版社,2005.3.
[5] 王道先. VHDL电路设计技术. 北京: 国防工业出版社,2004.1
[6] 候伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,2000.
[7] 曾繁泰.EDA工程的理论与实践[M]. 北京: 电子工业出版社,2004.5.
[8] 尹佳喜,尹仕.基于CPLD的三相多波形函数发生器设计[J]. 电子工程师, 2005,(8).
[9] 高淼.基于FPGA的自治型SPWM波形发生器的设计[J]. 世界电子元器件, 2003,(10).
[10] 李刚强.FPGA设计中关键问题的研究[EB/OL]. http://www.edacn.net/viewarticle.php?id=27146,2005-10-15.
[11] Ralf N.Hardware/Software Co_designed for Data Flow Dominated Embedded System[M]. Kluwer Academic Publishers,1998.
The Design and Implementation of A Signal Generator based on FPGA
ZHENG Qin, LU Qin, SONG Cheng-zhi
(College of Mathmatics and Computer Science, Wuhan Textile university, Wuhan Hubei 430073, China)
VHDL language and QuartusII software application of the principle diagram provided input, combined with electronic circuit design function of the design to complete a can be used in the digital system development or experiment do input pulse signal or benchmark pulse signal with the signal generator, it has compact structure, stable performance, the structure design is flexible, convenient for the characteristics of the multi-functional combination, economic and practical, low cost.
FPGA; QuartusII; VHDL
TP302
A
1009-5160(2011)06-0061-04
郑琴(1981-),女,讲师,硕士,研究方向:计算机科学与技术.