数字频率合成器的FPGA设计实现.docx
《数字频率合成器的FPGA设计实现.docx》由会员分享,可在线阅读,更多相关《数字频率合成器的FPGA设计实现.docx(52页珍藏版)》请在冰豆网上搜索。
数字频率合成器的FPGA设计实现
数字频率合成器的FPGA设计实现
1绪论
1.1频率合成技术的背景
1)直接频率合成
直接频率合成理论大约在20世纪30年代中期开始形成,当时是利用单个或多个不同频率的晶体振荡器作为基准信号源,经过倍频、分频、混频等途径直接产生许多离散频率的输出信号,这就是最早应用的频率合成器,称之为直接式频率合成器.采用单一个或多个不同频率的晶体振荡器作为基准信号源,经过具有加减乘除四则运算功能的混频器、倍频器、分频器和具有选频功能的滤波器的不同组合来实现频率合成。
利用不同组合的四则运算,即可产生大量的、频率间隔较小的离散频率系列。
根据参考频率源的数目和四则运算电路组合的不同,直接式频率合成器有着许多不同的形式.如可由较多晶体振荡器或频率源同时提供基准频率,或仅由一个或少数几个晶体振荡器提供基准频率。
尽管合成器仅输入一个参考频率,但只需改变各倍频次数和分频器的分频数,即可获得一系列的离散频率。
2)锁相频率合成
相位反馈理论和锁相技术应用于频率合成领域,产生了间接式频率合成器。
所谓间接式是指合成器的输出信号不是直接从参考源经过变换而得,而是由锁相环的压控振荡器间接产生所需要的频率输出,所以,间接式频率合成器又称为锁相频率合成器.它是基于锁相环路的同步原理,从一个高准确度、高稳定度的参考晶体振荡器综合出大量离散频率的一种技术。
锁相频率合成器由基准频率产生器和锁相环路两部分构成。
基准频率产生器为合成电路提供一个或几个高稳准的参考频率,锁相环路则利用其良好的窄带跟踪特性,使频率准确地锁定在参考频率或其某次谐波上,并使被锁定的频率具有与参考频率一致的频率稳定度和较高的频谱纯度[21。
由于锁相环路具有良好的窄带滤波特性,故其输出信号质量较直接式频率合成器得到明显的改善。
锁相技术在频率合成中的成功应用,使频率合成技术获得突破性进展。
锁相频率合成器的结构简单、输出频率成分的频谱纯度高,而且易于得到大量的离散频率等优点引起了人们的极大关注,为频率合成器的广泛应用打下了基础。
在锁相频率合成器中,输出频率系列是由压控振荡器(NCO)产生的。
该频率在环路的鉴相器中,不断地与来自石英晶体振荡器的基准频率进行相位比较,并通过比较后产生的误差信号对振荡频率进行校准,使输出频率系列中的任一频率均具有与基准频率相同的频率稳定度[41。
由于鉴相器要求进行相位比较的两输入频率在数值上相等,由此形成了多种锁相频率合成的方法,其中主要有:
脉冲控制锁相法和数字锁相合成法。
3)直接数字频率合成
数字技术的飞速发展,使频率合成技术也跃上了一个新的台阶。
1971年,美国学者J·Tiemey,C·M·Radcr和B·Gold提出了以全数字技术从相位概念出发,直接合成所需波形的~种新的频率合成原理,形成了第三代频率合成方案——DDs。
限于当时的技术和器件水平,它的性能指标尚不能与已有的技术相比,故未受到重视。
1.2频率合成器的发展情况
随着现代电子技术的发展,在通讯、雷达、宇航、电视广播、遥控遥测和电子测量等使用领域,对信号源的频率稳定度、频谱纯度、范围和输出频率提出了越来越高的要求。
为了提高频率稳定度,经常采用晶体振荡器等方法来解决,但已不能满足众多应用场合的要求,许多应用领域对信号频率的稳定性要求起来越高,而且不仅需要单一的固定频率,还需要多点频率。
为了解决这个问题,于是产生了频率合成技术。
频率合成就是将具有低相位噪声、高精度和高稳定度等综合指标的参考频率源经过电路上的混频,倍频或分频等信号处理以便对其进行数学意义上的加
、减、乘、除等四则运行,从而产生大量具有同样精度的频率源,实现频率合成的电路叫频率合成器。
频率合成技术起源于二十世纪30年代,至今已有七十多年的历史。
早期的频率合成器是由一组晶体振荡器组成的,要输出多少个频率点,就需要多少个晶体。
频率的切换由人工来完成,频率的准确度和稳定度主要由晶体来决定,很少与电路有关。
后来这种合成方式被非相干合成的方法所代替。
非相干合成虽然也使用了晶体,但它的工作方式是以少量的晶体产生许多频率。
与早期的合成方式相比,成本降低了,而稳定性提高了。
但是研制由多块开关晶体所组成的晶体振荡器是一个非常复杂的任务,而且成本高,不经济。
所以后来科学家又提出了相干合成法。
最早的相干合成法是直接频率合成(DirectFrequencysynthesis)。
直接频率合成是利用混频、倍频、分频的方法由参考源频率经过加、减、乘、除运算直接组合出所要需频率的方法。
不过,直接合成也可以用多个基准源通过上述方式得到所需的频率。
这种方法由于频率切变速度快,相噪低使之在频率合成领域占有重要地位,但因直接式频率合成器杂散多,体积大,研究复杂,成本也令人不可接受,故该方案已基本被淘汰。
在直接频率合成之后出现了间接频率合成(IndirectFrequencySynthesis)。
间接频率合成包括模拟间接频率合成(注入锁相、模拟环锁相、取样锁相),锁相环频率合成,数字锁相频率合成。
这种方法主要是将相位反馈理论和锁相技术运用于频率合成领域,它的主要代表是锁相环Pu,(Ph蹴-LockodLoop)频率合成,被称为第二代频率合成技术。
现在最常用的结构是数模混合的锁相环,即数字鉴相器、分频器、模拟环路滤波和压控振荡器的组成方式,因具有相噪低,杂散抑制好,输出频率高,价格便宜等优点至今仍在频率合成领域占有重要地位。
目前已有许多性能优良的单片PLL频率合成器面市,典型的有Motorola公司的MCl45191、Oualcomm公司的Q3236、NationalSemiconductor公司的LMX2325、LMX2326,LMX2330。
这极大地推动了PLL频率合成方式的应用f2。
众所周知,传统的锁相环频率合成器,每当编程分频器分频比改变1时,所得到的输出频率的改变量即为参考频率f。
为提高频率分辨率,就必须减小参考频率f,结果就使频率切换时间变长。
因此,频谱纯度、换频速度以及频率间隔是相互矛盾的。
为了解决这对矛盾,1969年DANA实验室有限公司发明了一种利用单环频率合成器来减小频率间隔的新方法一“小数分频”。
这种新颖、独特的单环小数分频频率合成器一经问世就受到各方面的关注和青睐,大有取代传统的多环结构合成器的趋势,是一种有效的新颖频率合成器。
随着数字信号理论和超大规模集成电路VLSI的发展,在频率合成领域诞生了一种革命性的技术,那就是上世纪七十年代出现的直接数字频率合成DDS(DirectDi西talfrequencySynthesis),它的出现标志着频率合成技术迈进了第三代。
1.3本课题研究的内容和意义
本次设计是利用可编程器FPGA完成一个DDS系统,虽然但是用用FPGA实现DDS技术在某些方向存在着DDS芯片不能取代的优势,用FPGA实现DDS技术比较灵活,可以产生多种调制方式,多种组合方式,并且可以实现多个DDS芯片的功能,更加集成。
专用的DDS芯片在控制方式、置频速率等方面与系统的要求差距很大,这时如果用高性能的FPGA器件设计符合自己需要的DDS电路就是一个很好的解决方法,而且还可以降低外国对高性能DDS芯片禁运的风险。
本论文主要是用FPGA实现直接频率合成器DDS的目的。
DDS即直接频率合成器,主要是由相位累加器,相位调制器,正弦波数据表(ROM)和D/A转换器构成。
每来一个时钟CLOCK,加法器就将频率控制字与累加寄存器输出的累加相位数据相加,相加的结果又反馈至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。
这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。
由此可以看出,在每一个时钟脉冲输入时,相位累加器便把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。
在这当中,使用了PLL提高和稳定输出频率,同时数据存储表中存储不同的波形数据,有三角波,正弦波,方波三种波形。
可以调频,调相,调幅,也易于实现ASK,FSK,PSK的调制方式,在通信领域有一定的用途。
2用FPGA实现DDS的关键技术
2.1DDS的主要知识
2.1.1DDS的基本原理
1)下图为DDS的基本原理图,频率控制字M和相位控制字分别控制DDS输出正弦波的频率和相位。
DDS系统的核心是相位累加器,它是由一个累加器和一个N位相位寄存器组成。
每来一个时钟脉冲,香味寄存器以步长M增加。
相位寄存器的输出与相位控制字相加,其结果作为正弦查找表的地址。
正弦查找表由ROM构成,内部存有一个完整周期正弦波的数字幅度信息,每个查找表的地址对应正弦波中0°-360°范围的一个相位点。
查找表把输入的地址信息映射成正弦波的幅度信号,同时输出到数模转换器(DAC)的输入端,DAC输出的模拟信号经过低通滤波器(LPF),可得到一个频谱纯净的正弦波。
图2-1
一个正弦波,虽然它的幅度不是线性的,但是它的相位却是线性增加的。
DDS正是利用了这一特点来产生正弦信号。
如图2,根据DDS的频率控制字的位数N,把360°平均分成了2的N次等份。
图2-2
2)可行性理论论证
以产生正弦信号为例,它的输出可以用下式来描述
Sout=Asinwt=Asin(2*pi*fout*t)(2-1)
其中Sout是指该信号发生器的输出信号波形,fout是指输出信号对应的频率,式得表述对于时间t是连续的,为了用数字逻辑实现该表达式,必须进行离散化处理。
用基准时钟clk进行抽样,
图2-3
令正弦信号的相位:
θ=2*pi*fout*t。
在一个clk周期Tclk内,相位θ的变化量为
Δθ=2*pi*fout*Tclk=2*pi*fout/fclk(2-2)
为了对Δθ进行数字量化,把2*pi切割成2^N份,因此,每个clk周期的相位增量可用量化值BΔθ来表述为:
BΔθ≈2^N*Δθ/(2*pi),且BΔθ为整数。
与Δθ=2*pi*fout/fclk联立得:
BΔθ≈2^N*fout/fclk。
这样就可将正弦信号Sout=Asinwt=Asin(2*pi*fout*t)的表达式变为:
Sout=Asin(2*pi*fout*t)=Asin(θk-1+Δθ)=Asin[2*pi*(Bθk-1+BΔθ)/2^N](2-3)
由上面的推导可以看出,只要对行为的量化值进行简单的累加运算,就可以得到正弦信号的当前相位值,而用于累加的相位增量量化值决定了信号的输出频率,并呈现出简单的线性关系。
输出频率fout=fclk*BΔθ/2^N
频率分辨率△f=fclk/2^N
频率控制字BΔθ≈2^N*fout/fclk
其中BΔθ要取整。
3)形成方案
根据上述原理,为合成所需的频率,需解决下列技术问题:
Ø需控制每次采样的相位增量,并输出模2的累积相位。
Ø将模2的累积相位变换成相应的正弦函数值的幅度,可用ROM存储一个正弦函数表的幅值代码。
Ø将幅度代码变换成模拟电压。
可用数模转换器DAC完成。
ØDAC输出的电压是经保持的阶梯波,需经低通滤波器之后才能得到模拟信号。
2.1.2DDS的结构
DDS的基本结构包括相位累加器(PD)、正弦查询表(ROM)、数模转换器DAC和低通滤波器(LPF),其中DDS从频率寄存器开始到波形存储表的数字部分通常也可称作数控振荡器(Nc0一NumericalControlOscillator)。
模块NCO实现由数字频率值输入生成相应频率的数字波形,其工作过程为:
频率控制字K;
●在时钟脉冲的控制下,该频率控制字累加至相位累加器生成实时数字相位值;
●将相位值寻址ROM转换成正弦表中相应的数字幅码。
模块DAC实现将NCO产生的数字幅度值高速且线性地转变为模拟幅度值,DDS产生的混叠干扰由DAC之后的低通滤波器滤除。
✧相位累加器(PD)
相位累加器是DDS最基本的组成部分,用于实现相位的累加并存储其累加结果。
若当前相位累加值为Pi,经过一个时钟周期后变成Pi+1,则满足:
Pi+1=Pi+X
式中,X为相位步进量,相位累加器的传统基本结构由一个L位累加器和一个L位寄存器构成寄存器常采用D触发器来构成这个相位累加器。
为降低最小频率,采用下图所示的做法。
图2-4
✧ROM表
DDS查询表所存储的数据是每一个相位所对应的二进制数字正弦幅值,在每一个时钟周期内,相位累加器输出序列的高m位对其进行寻址,最后的输出为该相位相对应的二进制正弦幅值序列。
若要频率分辨率高,则存储器的深度要深,要使输出波形好,则幅度的量化值得为数要多。
由于正弦波的对称性,可以采取压缩法只取其中的四分之一,从来提高系统性能。
✧DAC转换模块
数模转换器的作用是将数字信号转变成模拟信号,而实际上由于DAC分辨率有限,其输出信号并不能真正地连续可变,所以只能输出阶梯模拟信号,为系统正确地选择DAC是一个十分关键的问题。
因为DAC直接决定了系统的性能,他对DDS输出频谱质量有很大的影响。
一般分析主要有三个:
即DAC的分辨率、DAC的非线性以及DAC转换过程中会出现尖峰脉冲等。
DAC的分辨率由所选器件决定的。
它还受ROM输出的二进制代码长度的限制。
选择DAC时还应考虑分辨率和价格之间的关系,它对输出频率的影响可归结到ROM舍位中去。
DAC的非线性相当复杂,并且每个DAC的非线性特性也不尽相同,其数学模型难以建立而且DAC工作时转换过程中存在的尖锋脉冲,对DAC输出信号的频谱特性有着比较大的影响。
2.1.3DDS的主要性能指标
频率合成器技术指标有很多,在不同的场合有不同的适用描述,但其中最主要和最普遍的技术指标如下:
◆工作频率范围
合成器最高与最低输出频率所确定的频率范围,称为合成器的工作频率范围。
在此范围内,合成器能输出间隔一定的众多离散频率中的某一振荡频率(称为信道)或某几个振荡频率。
各振荡频率的稳定度及其它性能均应满足系统的性能要求.
◆频率间隔
每个离散频率之间的最小间隔称为频率间隔,又称分辨力,频率间隔的大小,随合成器的用途而不同。
例如,短波单边低通信的频率间隔一般为100Hz,有时为10Hz,1Hz甚至O.1Hz。
超短波通信则多取50kHz,有时也取为25kHz,12.5Hz等等。
◆频率转换时间
由一个工作频率转换到另一个工作频率并达到稳定所需的时间。
其数值与合成器的电路形式有关。
◆频率稳定度与准确度
频率稳定度是指在规定观测时间内,合成器输出频率偏离标称值的程度,一般用该偏离值与输出频率的相对值来表示。
准确度则表示实际工作频率与其标称值之问的偏差,又称频率误差。
稳定度与准确度有着密切的关系,因为只有频率稳定度高,频率准确度才有意义.
◆频谱纯度
频谱纯度是指输出信号频谱的纯净程度。
可以用输出端的有用信号电平与各寄生频率总电平之比的分贝数表示。
图2.1示出在一般情况下,合成器在某~选定输出频率附近的频谱分布。
由图可见,除有用频率外,其附近尚存在各种周期性干扰与随机干扰以及有用信号的各次谐波成分.这里,周期性干扰多数来源于混频器的高次组合频率,它们以某些频差的形式,成对地分布于有用信号的两边。
而随机干扰则是由设备内部各种不规则的电扰动所产生,并以相位噪声的形式分布于有用频谱的两侧。
有时也把各种周期性干扰视为另一种相位噪声。
2.1.4DDS的应用
基于DDS波形产生的应用现阶段主要在两个方面:
设计通讯系统需要灵活的和极好的相噪,极低的失真性能的频率源,它通常选用DDS结合它的光谱性能和频率调谐方案,这种应用包括用DDS于调制方面,作为PLL参考去加强整个频率的可调制度,作为本机振荡器(LO),或者射频率的直接传送。
许多工业和医学应用DDS作为可编程波形发生器。
因为DDS是数字可编程,它的相位和频率在不改变外围成分的情况下能很容易地改变,而传统的基于模拟编程产生波形的情况下要改变外围成分。
DDS允许频率的实时调整去定位参考频率或者补偿温度漂移。
这种应用包括应用DDS在可调整频率源去测量阻抗(比如:
基于阻抗的传感器),去产生脉冲波形已调制信号用于微型刺激,或者去检查LAN中的稀薄化和电缆。
2.2FPGA的主要知识
2.2.1FPGA的基本原理
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
2.2.2FPGA的设计流程
FPGA的详细设计流程如下图所示:
图2-5
2.2.3FPGA在DDS中的应用
在DDS系统中FPGA的主要作用是:
⏹保存频率字构成相位累加器,产生ROM地址
⏹产生ROM存储表结构
⏹产生接口电路
2.2.4Cyclone系列介绍
Cyclone是Altera中等规模FPGA,2002年12月份推出。
从那以后,己向全球数千位
不同的客户交付了数百万片,成为Altera历史上采用最快的产品。
它采用O.13um工艺、全铜SRAM工艺、1.5V内核供电,容量从2910个逻辑单元到20060个逻辑单元,并嵌入了4级最多为64个RAM块(128x36bit)。
Cyclone器件支持大量的自外数据传输的单端I,O标准,包括LVTTL、LVCMOS、PCL、SSTL-2和SSTL-3。
为满足设计者更快数据速率和信号传
输能力的需要,Cyclone器件还设有高达311Mbps的低压差信令(LVDS)兼容通道。
由于采用了特殊的三级布线结构,其裸片尺寸大大降低。
Cyclone器件的性能可与业界最快的FPGA芯片相抗衡,是一种低成本FPGA系列,目前的主流产品,它具有以下特点:
✓可编程逻辑器件,具有实现宏功能的增强嵌入式阵列(例如实现高效存储和特殊的逻辑功能)和实现一般功能的逻辑阵列,每个EAB的双口能力达到36比特宽,可提供低价的可编程片上系统(system-on-a-programmable-chip,SOPC)集成。
✓高密度:
2万到20万个典型门,高达294912位内部RAM(每个EAB有4096位,这些都可在不降低逻辑能力的情况下使用)。
✓系统级特点:
多电压接口支持1.5V、1.8V、2.5V、3.3V和5V设备;低功耗;双向I/O性能达到640MHz:
完全支持33MHz或66MHz,3.3V的PCI局部总线标准;内置JTAG边界扫描测试电路;可在1.5V内部电源电压下工作;通过外部的配置器件、智能控制器或JTAG端口可实现在线重配置(ICR,In-Circuitreconfigurability)。
✓灵活的内部连线:
快速、可预测连线延时的快速通道;实现算术功能(诸如快速加法器、计数器和比较器)的专用进位链;实现高速、多扇入功能的专用级联链;实现内部总线的三态模拟;多达六个全局时钟信号和四个全局清除信号。
✓强大的I/O引脚:
每个引脚都有一个独立的三态输出使能控制和漏极配置选项;可编程输出电压的功率控制,可减小开关噪声。
✓具有锁相环(PLL)和全局时钟网络,提供完整的时钟管理方案。
其PLL具有时钟倍频和分频、相位偏移、可编程占空比和外部时钟输出,进行系统级的时钟管理和偏移控制。
PLL常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟更高,时钟延迟和时钟偏移最小,减小或调整时钟到输出(TC0)和建立(TSU)时间。
本设计采用的是ALtera公司的EP1C6Q240的芯片。
2.3本章小结
这一章主要是介绍了DDS和FPGA的相关知识,其中有DDS的基本原理,为下章DDS的设计打下基础,FPGA主要介绍了基于FPGA的设计流程。
3基于FPGA的DDS的设计实现
3.1MAX+PLUSII
3.1.1MAX+PLUSII软件的使用
1)所用的器件是EP1K30QC208-2;
2)常用的设计输入方法
a.通过图形编辑器,创建图形设计文件(.gdf);
b.通过文本编辑器,使用AHDL语言,创建文本编辑文件(.tdf);
c.使用VHDL语言,创建文本设计文件(.vhd);
d.使用VerilogHDL语言,创建文本设计文件(.v);
e.通过波形编辑器,创建波形设计文件(.wdf);
3)文本输入后保存,名字要与实体名字一致,编译,若没错,建立一个新的波形计文件,填入节点,设初值,进行功能仿真,仿真没错后,可以下到板里进行时序仿真。
3.1.2使用MAX+PLUSII实现DDS
图3-1
该图所示DDS的工作原理图,运用FPGA对个模块进行设计。
说明:
整个DDS模块采用一个时钟同步各个模块的运算速度。
其中相位累加器SUM32是一个带有累加功能的32位加法器,它以设定的32位频率控制字K作为步长来进行加法运算,当其和满时计数器清零,并且高十二位作为输出,作为ROM表的地址。
相位寄存器REGA时一个一般的十二位寄存器,它对输入端输入的数据进行寄存,当下一个时钟到来时,输出寄存的数据。
正弦波查找表ROM是DDS最关键的部分,也是最复杂的部分。
设计时首先对正弦函数进行采样,接着将采样的结果放到ROM模块的对应存储单元里,每一个地址对应一个数值,输出为10位,为了保证输出数据的稳定性,将ROM的输出数据先寄存在REGOUT中,待下一个时钟来到时,再将其输出。
整个系统各模块是在同步时钟信号CLK的控制下协调工作的。
这里的正弦波是采用查找表的方法实现的。
同时可以输出正弦,三角,方波。
●ROM的生成方法:
✧首先产生.mif的文件,然后使用Altera的MegaWizardPlug-InManager定制一个LPM_ROM即可。
.mif可以用QuartusII软件生成。
✧用C语言编写的正弦函数数据采样程序如下:
#include“stdio.h”
#include“math.h”
Main()
{inti;
floats;
for(i=0;i<1024;i++)
{s=sin(actan
(1)*8*i/1024);
Printf(“%d:
%d;\n”,(int))(s+1)*1023/2));
}}
把上述程序编译成程序后,形成sin_rom.exe文件,在DOS命令下执行:
Sin_rom>sinmif.mif;
可生成mif文件中的ROM表数据,然后再加上头部说明
width=10;
depth=1024;
address_radix=dec;
data_radix=dec;
contentbegin
✧可用Matlab来实现ROM表的数据
利用MATLAB计算出正弦波形的浮点值,并量化10位的定点波形数值。
x=linspace(0,6.28,4096);
y=sin(x);
y=y*1023;(存在C盘的文本中)
fid=fopen(’C:
/sin_coe.txt’,’wt’);
fprintf(fid,’%16.0f\n’,y1);
fclose(fid);
可生成一个正弦波的数据表。
✧用振荡器产生正弦波
图3-2
仿真结果如下所示:
1)直接用MAX+PLUSII来仿真
图3-3
2)可以借助Matlab来仿真
由于输出的数据与ROM表的值完全符合,因此将输出数据绘制矩阵在MATLAB仿真。
在MATLAB中的SIMULINK的DSPBuilder中可以用下面的模型来