基于FPGA与单片机的波形发生器设计
2015-04-20夏晓玲
摘 要 现今波形发生器的品种繁多,本文通过对这些波形发生器的借鉴,在设计波形发生器的过程中借用FPGA与单片机,采用直接数字频率合成技术作为其核心。本文通过对直接数字频率合成技术与系统设计各部分进行介绍,从中发现三角波、正弦波与锯齿波等在该波形发生器都能产生,且在控制方面显得非常的灵活,拥有很好的输出波形能力,希望本人的设计方法能够对以后的波形发生器方面的设计起到一定的帮助。
【关键词】单片机 FPGA 波形发生器
现今设计电子系统的过程中将EDA技术与可编程逻辑器件大量应用于其中。相比于其他的可编辑逻辑器件,刚出现的FPGA有着密度更大、编程灵活性更高与工作速度更快的特点,这是它的优势所在。而且单片机以其特殊的优势在各领域得到普遍的应用,其齐全的功能、小体积与低价格等优势是其他器件无法替代的。在设计波形发生器的过程中运用可现场编辑与高速度高密度功能的FPGA和数据处理能力强的的单片机,通过对他们的运用将使得该波形发生器拥有很好的输出波形能力。
1 对直接数字频率合成技术的介绍
直接数字频率合成技术就是通过合成得来的,将全数字技术运用其中,DAC将所有的属于数字形式的信号转换成属于模拟形式的信号。其基于采样定理先要采样出现的波形,然后数字化采样值,再进行存储,用表格的形式制定出来,读出数据就可以通过对表进行查询来进行。再对这些读出的数据转化成模拟量,这个过程中的转换用D/A转换器来进行转换。进而重新合成先前存进存储器中的数据。频率控制字N与K比特在每一个时钟周期内通过相位累加器增加一次累加,在这个过程中通过取摸运算2N,从而使相位值得出,进而以二进制代码的形式使得相位值寻址存储器中相关的RAM,将对应于相位值的幅度值进行输出,随后离散信号转变为连续信号需要DAC数模进行转换帮助,最终信号输出还需要低通滤波器进行帮助才可以得出来。
2 系统设计
单片机与上位机部分、模拟电路与FPGA部分一起成为这个系统的总体。单片机作为波形发生器的中心控制单元,波形发生器界面通过上位机来控制,而ROM中存储所要求的波形数据需要借用直接数字频率合成技术,ROM需要在FPGA 中进行构造。通过上位机的命令,单片机将查表地址等信息输出给FPGA,相关的波形数据通过这些信息在FPGA中得出,当然,这些波形数据的输出还需要D/A转换器进行转换。
2.1 单片机部分
在对波形发生器进行设计的过程中处理器需用MCS8031,FPGA的复位信号选用P1.2,波形选择信号选用P1.0和P1.1,DAC0832的片选端选用P2.5,低8位地址与数据线选用P0。通过上位机的发出信息的获取,向FPGA输出相关波形方面的信息,同时对DAC0832的使能进行操控。
2.2 上位机部分
上位机部分与单片机通信运用MSComm来达到,也就是对Windows中的串行通信能力完整的ActiveX控件进行运用。编程容易实现与方便等作为MSComm控件的优势仅仅使用于对话框中可是很浪费的,其完全能够满足波形发生器的要求和特点。通信空间和其他的控件都是通过用户接口和各种属性来达到其功能的运用,很多属性由控件提供,而且与Modem相关的属性在其中占有很大的比例。而且因10到20K的整型数据出现在C界面之中,因而,在送给单片机以前要将这个频率数据转换为频率控制字,当然,这个频率控制字是16位的。
2.3 FPGA部分与模拟电路部分
各种质量高的波形的产生对运用直接数字频率合成技术的波形发生器来说是非常简单的。直接数字频率合成技术就是将全数字技术运用其中,通过DAC将全部信号的数字形式转换成模拟形式。就像正弦波在ROM表中存储的正弦波形信息需要以部分采样点数作为依据,这个时间段为一个周期。其数字幅度信息存在于这个表中,而且这个信息所需的时间段也是相同的。这种波的360范围内的相位点的幅度值都有与出现的地址相呼应的,其幅度的数字量信号通过输入进来的地址相位信息的映射从而得出来,这个过程可以通过对表进行查找得出,从而对D/A转换电路进行推动。直接数字频率合成方法通过对表中输出信号的频率查找的得到可以通过以下公式进行:
Fout=(x*[Felk])/Y Y为2的N次
其中输出信号频率的更改可以借助对寻址步长的更改来实现,这主要是输出信号的频率正比于制字,对寻址位宽M和累加器的位宽N等进行明确后,在每次累加器循环的周期中增多步长X使得减少地址个数,同时也就缩减了输出一个中期波形所需要的时间,于此同时也就增强了输出信号的频率。同时,缩减的输出信号采样点数以及提升的输出频率与步长会使得波形的平滑度与精度被压低,从而无法达到要求,输出信号的最高频率也就因此受到了限制,同时所产生的信号频率因采样定理不足半数的时钟频率。在现实中信号输出质量为了做到保障,输出的频率还达不到百分之三十三的时钟频率,这样是为了防止有用输出带内进入谐波和混叠。为了将所产生的波形频率进行提升,需要对频率很高的FPGA进行选取。后级电路中的D/A转换选用转换速度快的DAC0832。ROM表的量在FPGA中的出现不可能是无限的,这需要我们将这个因素考虑到,而且地址与数据位数的提升也会扩大ROM表,而在对采样信号功能进行满足的要求下对资源的使用量进行降低是我们需要面对的。所以,在对波形发生器进行设计的过程中要对资源的消耗量进行考虑,这可以通过对正弦波信号周期内的对称性与算数关系进行有效的利用来实现,毕竟整个波形周期的采样值仅仅只用到四分之一的正弦表就可以达到,资源方面也就会因此减少了四分之三的消耗量。同时,累加器、分频器与比较器相结合可以将PWM波展示出来,各个部位的实现可以通过模块化设计进行,而且连接最上层的文件,这样修改起来很是简便。
3 结语
在对设计的中运用直接数字频率合成技术作为其核心技术,测试过后可以发现设计的要求在输出波形上完全可以完全满足。相比于以前的发生器概念,运用了这种技术的波形发生器在对调整频率方面可以说是非常的简便,出现的波形在频率分辨率方面也可以得到很好的满足,其拥有很快的输出频率转换速度,同时输出波形在对频率进行转换的过程中也是连续的相位。希望本人在波形发生器方面的设计思路能够对以后的波形发生器方面的设计起到一定的帮助。
参考文献
[1]海泰电子.最新推出HTPXI3710 50MSPS任意波形发生器[J].国外电子测量技术,2013(08):93-94.
作者简介
夏晓玲(1967-),女, 湖北省鄂州市人。华中科技大学硕士学位。现为鄂州职业大学副教授。主要研究领域为单片机技术、电子技术应用。
作者单位
鄂州职业大学 湖北省鄂州市 436000