基于FPGA的单片移相信号发生器的设计
2013-04-25王嘉成
王嘉成,于 鹏
(西安电子科技大学 电子工程学院,陕西 西安710126)
在工业控制、测试测量、数字信号处理等领域,移相信号均有着广泛的应用。随着电子技术的发展,信号的速度和精度都得到了大幅提高,因此对信号源的频率精度和稳定度等提出了更高的要求,传统的移相信号发生器需使用LC或RC等模拟振荡电路实现,该电路受环境如温度等因素的影响较大,性能不稳定,且参数不宜更改,给维护带来不便。而近年来,电子工艺的不断进步,使得直接数字频率合成器(Direct Digital Frequency Synthesis,DDS)得到了飞速发展,其具有以下特点:(1)全数字结构的开环系统,控制灵活,且无反馈环节,频率转换时间短,因此速度较快。(2)相对带宽宽、频率分辨率高。(3)可编程,可产生宽带正交信号及其他多种调制信号。(4)频率分辨率高。因此该种信号产生技术得到了广泛应用,众多厂商已经生产出DDS专用芯片。除此之外,由于FPGA芯片集成度的提高,在FPGA芯片内部实现DDS也成为提高性价比的实现方案[1-2]。
文中基于DDS原理,在FPGA上实现移相信号的产生,由于采用嵌入式存储器块来存储波形数据,因此只需简单的外围电路如D/A、放大器等的配合即可实现移相信号发生功能。该设计方案简单、成本低廉、易于实现。
1 基于DDS的移相信号发生原理
对于正弦信号,其输出可用下式表示
其中,fout为输出信号的频率;φ为相移。
因此,输出频率为
因此,输出的离散时间正弦信号可描述为
通过上述推导,只需同步于时钟fclk对相位增量进行累加运算,再加入一个相位偏移值φ,便可得到信号的当前相位值。且K的大小决定了当前信号的输出频率,并成正比关系,因此K被称为频率控制字。相位偏移量的大小由φ决定,当φ=0时,相位累加器的输出无需再与相位控制字相加,即无需再进入相位调制器,直接输出给查找表即可。
查找表完成相位到幅度的转换,即对于输入的相位φ,输出相应的Asin(φ)值。对于参考信号,其输入是相位累加器的输出;而对于同频率的移相信号,该输入为相位调制器的输出。实际上,均是ROM的地址值。
同时,为提高系统的稳定性,防止频率控制字和相位控制字改变时干扰相位累加器和相位调制器的正常工作,在输入处和加法器的输出部分添加了一组同步寄存器,以保证数据的变化与系统时钟同步。综上所述,移相系统的核心原理框图如1所示。
图1 移相信号发生原理
若将ROM的地址线宽度设置为32位,系统时钟fclk=200 MHz,则理论上可得到的最小输出频率也即频率分辨率为
2 总体设计
该系统硬件电路主要由FPGA核心系统、D/A转换器、低通滤波器构成,在FPGA内部实现DDS的移相功能,其是设计的核心,DAC和通过低通滤波器将FPGA输出的数字值转换为模拟信号,该系统的总体框图如图2所示。
图2 系统总体框图
3 电路设计与实现
3.1 系统的时钟源
由于该DDS基本结构的相位误差对系统的时钟特性有较大的依赖性,因此时钟信号的特性对设计起到重要作用,设计采用精度较高的有源晶振作为外部时钟源,并连接到FPGA的全局时钟引脚上,由于该管脚在FPGA中已预备了时钟树,因此使用其可确保获得最佳性能[3],电路原理图如图3所示。
图3 FPGA的外部时钟源
由于本设计需200 MHz的采样时钟fclk,因此需利用Altera FPGA中自带的嵌入式锁相环ALTPLL,其与直接来自外部的时钟相比,该种片内时钟可减少时钟的延时和变形,并减少片外干扰;同时还可改善时钟的建立时间及保持时间,是系统稳定高速工作的重要保证。通过对外部时钟信号进行10倍频,可得到200 MHz的片内时钟信号,所得PLL模块如图4所示。
图4 PLL模块
3.2 累加器的设计
累加器是整个系统的核心部分,其速度与性能影响着整个系统。为提高加法器的运行速度上限,采用流水线设计来进行优化,该系统的相位字累加器和相位调制器的宽度均选择为10 bit。由于10 bit加法器逻辑规模较大,此处仅给出4 bit的流水线加法器作为结构示范,如图5所示。
图5 流水线加法器(4 bit)
3.3 正弦查找表的设计
ROM用来存储波形数据,但考虑到所选FPGA器件的嵌入式存储器的容量有限,如CycloneII系列容量从119 kHz~1.1 MHz不等,且受到D/A转换器位宽的限制,单方面提高存储容量无法提高系统的精度,因此在设计时要综合考虑所选器件的容量和DAC位数的限制来选取ROM容量的大小,系统取地址线宽度为10 bit,一个周期存储210=1 024个点,ROM表的存储结构为线性存储,波形数据与地址的对应关系如图6所示。基于此种数据与地址的线性关系,可将累加器的输出值直接作为地址信号。
图6 ROM的存储结构
3.4 DAC转换电路设计
图7是信号输出部分电路设计,图中AD9117为14 bit精度的DAC,最大转换速率可达125 MSample·s-1,能够满足系统需求;AD8130是270 MHz差分到单端接收器,具有良好的交流共模抑制特性,10 MHz时可达70 dB,有效抑制在模拟地与数字地之间的噪声[4]。
图7 AD9117连接图
4 仿真与验证
设计采用芯片为Altera公司的CycloneII系列芯片EP2C5Q208C8,其具有两个锁相环,可提供多达8个的全局时钟,同时内嵌了120 kbit的存储器和26个嵌入式乘法器,完全满足系统需求。
在QuartusⅡ中,将以上设计的各模块相连接,得到顶层模块,调用Modelsim对其进行仿真,得到的结果如图8所示。
图8 Modelsim仿真结果
仿真时将时钟信号clk设置为500 kHz,频率控制字freq_in分时依次设置为30、50、10,得到的参考信号和移相信号的周期从图中可读出为Tout=68μs,即fout=1/68μs≈14.648 kHz,与理论结果相一致,且30、50、10相对应的频率成线性关系,当频率控制字改变时,波形连续,频率切换迅速,约为5个时钟周期即10μs。相位控制字为10 bit,当输入为512时,对应的波形与参考波形相比,具有180°的相移,通过改变相位控制字的大小,可方便地改变相移的大小,因此系统能输出具有相同频率不同相位的两路信号。
5 结束语
文中介绍了一种基于FPGA的移相信号的设计和实现方法,以DDS为基本原理,在单片FPGA内部实现各个功能,根据实际需要配合符合要求的DAC转换电路,即可实现高精度移相信号的发生功能。同时本设计的成本较低,外围电路简单,只需修改ROM中的波形数据,即可发生任意波形的移相信号,且便于维护和修改,实用性较强。
[1] 王旭东,潘明海.数字信号处理的FPGA实现[M].北京:清华大学出版社,2011.
[2] 潘松,黄继业,潘明.EDA技术实用教程[M].北京:科学出版社,2010.
[3] 华清远见嵌入式培训中心.FPGA应用开发入门与典型实例[M].北京:人民邮电出版社,2008.
[4]Analog Devices Inc.AD9117[M].MA USA:Norwood Analog Devices Inc,2008.