《毕业设计(论文)基于FPGA的波形发生器、频率计和数字电压表设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于FPGA的波形发生器、频率计和数字电压表设计(65页珍藏版)》请在金锄头文库上搜索。
1、 波形发生器、频率计和数字电压表设计电气091 王亚运摘要: 本系统以FPGA为核心,将波形发生器、频率计和数字电压表有机结合在一起。FPGA具有丰富的资源,使用方便灵活,且易于进行功能扩展,完全可以满足设计的要求。主要模块有波形生成模块、频率设置模块、数模转换模块、显示模块和滤波网络。其中FPGA用来实现波形表生成和频率控制;正弦波的数模转换由DAC8032实现;整形采用三极管S9018来实现;并通过低通滤波器提高输出波形的质量。本设计采用双DA来控制波形的幅度,实现了幅度连续可调。 关键词:FPGA 双D/A调幅 数模转换 目 录第一章 系统设计.31.1总体设计方案.31.1.1 设计要
2、求.3 1.1.2 设计思路.3 1.1.3 方案论证与比较.3 1.1.4 系统组成.4第二章 单元电路设计.42.1 波形合成器的设计4 2.1.1 正弦波合成.4 2.1.2 三角波、锯齿波、矩形波的合成.52.2 频率与幅度调节的原理及实现52.2.1 频率等步进调节的实现.52.2.2 幅度调节模块的设计.62.3 波形选择模块与键盘控制模块设计62.4 自动换档模块设计62.5 模数转换电路设计62.6 整形电路设计.7第三章 软件设计.73.1 正弦波合成器设计.73.1.1 正弦波波形数据产生.73.1.2 波形存储器的设计.83.2 三角波、矩形波、锯齿波发生器及相位累加器.
3、83.3 频率测量.83.4 键盘控制模块.93.5 波形选择模块.93.6 数字电压处理模块.9第四章 系统测试.104.1 波形的测试.104.2 各种波形的测试数据.104.2.1 波形发生器.104.2.2 频率计.10 4.2.3数字电压表.11第五章 结 论.11参考文献.11附录.11第一章 系统设计1.1 总体方案设计1.1.1设计要求 利用现成的FPGA,在一块电路板上实现波形发生器、数字频率计和数字电压表三种功能。而且要求其指标越高越好,所产生的波形越清晰越好。频率、幅度不限。1.1.2 设计思路 由于要在一个电路里面实现三种功能,因而我们打算分模块来设计。即分别考虑实现波
4、形发生器、数字电压表和数字频率计。然后再将它们有机的结合起来,在一个电路里面实现。这样设计起来比较容易,也比较好考虑。同时增加了液晶显示,显示是什么波形、波形的频率和电压幅度,从而实现很好的人机界面。 1.1.3 方案论证与比较 1. 波形发生器设计方案方案一:采用模拟直接合成法,转换速度快,频率分辨力高,但电路复杂,难以集成,发展受到一定限制.方案二:采用锁相环合成法,输出信号频率可达到超高频甚至微波段,且输出信号频谱纯度较高,但转换要几毫秒的时间,速度慢.方案三:采用直接数字合成器(DDS),可用硬件或软件实现。即用累加器按频率要求对相应的相位增量进行累加,再以累加相位值作为地址码,取存放
5、于ROM中的波形数据,经D/A转换、滤波即得所需波形。方法简单,频率稳定度高,易于程控。 分析以上三种方案的优缺点,显然第三种方案具有更大的优越性、灵活性,所以采用第三种方案进行设计。 2. 波形数据的产生方案一:使用Visual C+计算正弦波及指定函数波的N点采样值,然后写入到ROM中待用。方案二:使用Matlab计算上述数据。两种方案都是利用软件计算波形参数的较佳方案。VC+对计算值的舍入是直接取整,因此方案一得到的数据有较大误差,而且该方案编程复杂。Matlab能对数据进行四舍五入,因此方案二得到的数据误差较小,且编程简单,修改容易,调用方便。因此采用方案二。3. 频率调节方案一:通过
6、预置FPGA的分频系数调节频率。方案二:通过预置FPGA的分频系数以及改变相位步进调节频率。方案一的调节步进只能以指数形式递增,对于较高的频率范围有较多空白,无法等步进调频;方案二采用粗调与细调相结合,可以实现等步进调频,因此选用方案二。4. 幅度调节方案一:采用可调电阻对电压分流。该方案简单,由于其可调电阻不可能太低,因此导致电压精度不高,且电压变化范围较大,安全性比较低。方案二:幅度控制部分采用双D/A技术,由控制模块对DAC0832置数,第一级D/A的输出作为第二级D/A转换的参考电压,以此来控制信号发生器的输出电压。该方案结构简单,易于调整。基于上述理论分析,拟订方案二。 5. 整形电
7、路 方案一:采用专门的整形网络整形。该方案得出的波形比较好,频率也比较高。但电路连接比较麻烦,在此处不适宜。 方案二:采用三极管来实现。利用三极管的导通特性,将输入的波形变为方波,以便进行频率的测量。此方法比较简单,而且经过实践证明在一定的频率范围内确实可得到很好的波形。 综上,拟订方案二采用三极管实现整形。 6. 显示方式选择方案一:采用LED数码管显示。该方案只能显示有限的符号和数码字,而且功耗大。而本设计中要求显示的内容丰富,不适应利用该方法。方案二:采用字符型LCD显示。可以显示英文及数字,质量轻,耗电小,显示内容多。综上,拟定方案二采用LCD实时显示载频频率。 7. 换档方式选择 方
8、案一:采用手工换档。在需要测某个电压时,选择适宜的档位进行测量。此方案使用起来比较麻烦。 方案二:采用自动换档。利用电阻所分得的电压与输入电压进行比较,产生控制信号实现自动换档。该方案不需要手动,较为智能化。 基于上述理论分析,显然方案二更好。因此采用方案二。 1.1.4 综上方案论证,得到系统框图如图1.1所示。 图1.1 系统组成框图 第二章 单元电路设计2.1 波形合成器的设计2.1.1 正弦波合成对一个幅度为1的正弦波的一个周期进行1024点采样,用Matlab计算得到每一点对应的幅度值,然后量化成8位二进制数据存放在ROM中,理论上,采样的点数及量化的位数越多,合成的波形精确度越高,
9、但是,D/AC0832的位数只有8位,量化等级最高为256,其量化误差已能达到要求,对于查正弦表的舍入误差也可忽略,故不再细分。这里采用1024个采样点,是为了调频时能得到较好的波形。依次取出ROM中的数据,即可得到幅度上是阶梯型的正弦波。再经过D/A转换,便可得到连续的正弦波。2.1.2 三角波、锯齿波、矩形波的合成由于三角波、锯齿波、矩形波波形变化是线性,因此不需要进行波形存储。三角波的产生是使幅度逐次增加一个相位进,一直到最大值后变为步逐次减少一个相位步进,如此便产生一个周期的波形,锯齿波与三角波类似,只是到达最大值后又从0开始。矩形波的产生更为简单,只需根据占空比,调节一个周期内输出高
10、、低电平的时间即可。2.2 频率与幅度调节的原理及实现2.2.1 频率等步进调节的实现由于采用DDFS,在ROM中存有波形一个周期的n个等间隔归一化采样数据,改变相位累加器的步进,从而改变对ROM中数据的读取速度,即可合成不同频率的波形,存储器中存入过量的采样值,使得采样点数较少时,依然能够得到较好的波形输出,从而得到较高的频率输出。否则,采样点数太少会使产生的波形严重失真。输出波形的频率可由式(2-1)计算: 式(2-1)其中,fosc为晶振频率,k为分频系数,N为相位累加器位数,S为相位累加器步长。若取fosc32.768MHz,k=50,N16,带入上式得到f010S(Hz)。因此,只要
11、控制S的值就可以准确地实现频率步进为10Hz的等步进调频。但是,现有的晶振为32MHz,通过实验测试、比较,可用下式计算频率: 式(2-2)也能得到10Hz精确的等步进调节,但牺牲了波形的质量,因为65306不是一个2N的数,这样波形会漏掉少量采样点。不过,即使这样,得到的波形依然很平滑,可以满足设计要求。若要使频率调节步进减小到1Hz,对晶振有特殊要求,它的振荡频率必须是2的N次幂。由式(2-1)举例说明累加器位数不同产生的差异: 式(2-3) 式(2-4)式(2-4)产生的波形将远远优于式(2-3),更优于我们现在所得到的波形,最高频率可提高几倍。另外,由于DAC0832的电流建立时间是1s,因此输出波形的最高频率由下式决定:因此,要得到更高频率的波形需使用更高速的D/A转换器。2.2.2 幅度调节模块的设计在幅度控制上,采用了双D/A转换来实现幅度调节,第一级的D/A的电压输出作为第图2.1 双DA调节二级D/A转换的参考电压,其中第一级的输出电压值可由键盘设置,以此来控制信号的输出电压。D/A转换器的电流建立时间将直接影响到输出的最高频率。本系统采用的是DAC0832,电流建立时间为1s,在最高频率点,一个周期输出6