找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 数字频率合成器的FPGA实现

[复制链接]
admin 发表于 2013-3-25 02:10:49 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
1 概述

1971年,美国学者J.Tierncy,C.M.Rader和B.Gold提出了以全数字技术,从相位概念出发直接合成所需波形的一种新的频率合成方法。限于当时的技术和器件水平,它的性能指标尚不能与已有技术相比,故未受到重视。近30年间,随着集成电路技术和器件水平的提高,一种新的频率合成技术--直接数字频率合成(DDFS)得到了飞速的发展,它以有别于其它频率合成方法的优越性能和特点成为现代频率合成技术中的佼佼者。

随着微电子技术的发展?现场可编程门阵列?FPGA?器件得到了飞速发展。由于该器件具有工作速度快,集成度高和现场可编程等优点,因而在数字信号处理中得到了广泛应用,越来越受到硬件电路设计工程师们的青睐。直接数字频率合成(DDFS)技术以其具有频率分辨率高,频率变换速度快,相位可连续线性变化等特点,而在数字通信系统中被广泛采用。本文基于DDFS的基本原理,给出了利用AL-TERA公司的FPGA芯片(ACEX 1K系列EP1K10TC144-1器件)完成DDFS系统设计的具体方法。
20121107050441414483125.jpg




ACEX 1K系列器件是Altera公司着眼于通信(如Xdsl?路由器等)、音频处理及类似场合的应用而推出的新型芯片系列。ACEX 1K系列器件具有以下特性:

(1)采用查找表(LUT)和EAB相结合的结构模式,可提供高效低功耗的优良性能。因为LUT结构适用于实现高效的数据通道、增强型寄存器、数学运算及数字信号处理设计,而EAB结构可实现复杂的逻辑功能和存储器功能。

(2) 密度高,典型门数为1万到10万门,有多达49152位的RAM(每个EAB有4096个RAM)。

(3)系统内核采用2.5V电压,I/O脚可支持2.5V/3.5V/5.0V多电压标准;器件功耗低;具有高达250MHz的双向I/O功能;完全支持33MHz的PCI总线标准;内置JTAG边界扫描电路;不需测试矢量和扫描链即可对所有器件进行100%的功能测试。

?4?具有快速连续式延时可预测的快速通道互连(FAST TRACK);能实现快速加法器、计数器和比较器等算术运算功能;具有专用链和实现高速多扇入逻辑功能的专用级链;具有能实现内部三态总线的三态仿真;具有多达6个全局时钟信号和4个全局清除信号。

(5)每个引脚都有独特的三态输出使能控制;可编程输出的压摆率控制可以减少电平转换产生的噪声;引脚与引脚间具有用户可选的钳位电路;支持热插拔操作。

2 DDFS基本原理

DDFS技术是一种可把一系列数字量形式信号通过DAC转换成模拟量形式信号的合成技术。目前使用最广泛的一种DDFS方式是利用高速存储器作查寻表,然后通过高速DAC产生已用数字形式存入的正弦波。图1是DDFS的基本原理图。

2.1 相位累加器

相位累加器由N位加法器与N位累加寄存器级联构成。时钟脉冲每触发一次,加法器便将频率控制数据与累加寄存器输出的累加相位数据相加,然后把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟的作用下继续与频率控制数据相加。
20121107050441461353126.jpg


这样,相位累加器在参考时钟的作用下将进行线性相位累加,相位累加器累加满量时,就会产生一次溢出,以完成一个周期性的动作,这个周期就是DDFS合成信号的一个频率周期,累加器的溢出频率就是DDFS输出的信号频率。

2.2 相位-幅值转换

用相位累加器输出的数据作为取样地址来对正弦波波形存储器进行相位-幅值转换,即可在给定的时间上确定输出的波形幅值。

2.3 数模转换

通过DAC可将数字量形式的波形幅值转换成所要求的合成频率模拟量形式信号,低通滤波器用于衰减和滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。

对于计数容量为2N的相位累加器和具有M个相位取样的正弦波波形存储器,若频率控制字为K,则DDS系统输出信号的频率为:fo=fc×K/2N,而频率分辨率则为:Δf=fomin=fc/2N。3 基于FPGA的DDFS结构设计

图2是利用DDFS原理设计的一个信号源发生器的结构框图。图中,FPGA用来控制输出波形的频率、相位和波形的选择。波形数据的存放有两种形式,一种是将固定波形数据存放在EEPROM里,主要有正弦波,三角波,锯齿波?包括半正弦波,半三角波,半锯齿波?数据。而对于特殊的波形,则通过上位机下载到RAM里,然后从RAM里读取数据。

该系统在工作时,首先由上位机把控制命令和数据参数通过USB接口用AT96总线传给FPGA。如果是固定波形,就从EEPROM中读取数据,否则就从RAM中读取数据。数据传送给FPGA后即可等待触发信号,触发信号由时基卡或软件给出。触发信号到来之后,就开始读取数据并输出波形。同时由FPGA给上位机一个状态位,该状态位可用于表示发送波形是正在发送,还是已经发送结束了。

信号源的输出频率范围分为如下几档:0.001Hz~1Hz? 1Hz~10Hz? 10Hz~100Hz;100Hz~200Hz,步进为1/1000。之所以分档控制,是为了保证输出波形频率具有更高的精度,在输出波形频率较低时可对数据不抽点,频率较高时应进行抽点。要达到较高的频率精度,必须利用数字频率合成器(DDFS)来实现对输出波形频率的控制?并按频率要求对相位增量进行累加,然后以累加相位值作为地址码来读取存放在存储器中的波形数据。通过改变相位增量寄存器的增量值(即步长),使相位累加器能够输出依据相位增量寄存器所给出的步长来改变波形存储器的地址,从而改变波形每周期的点数,从而达到改变输出波形频率的目的。该电路的设计关键在于用硬件构造一个多位累加器来实现相位的累加。

根据DDFS的原理,输出信号频率fo与累加器时钟fclk、累加器位数M、相位增量N的关系如下:

fo=(fclk×N)/2M

根据以上原理,结合实际情况可得到的各项参数(这里采用32.768MHz=1000×215的晶振频率)。为了保证所需的精度以及输出波形频率的步进。这里选M=27。由于D/A的最大转换速度为1MHz,波形每个周期的样点数是128k,因此当输出波形的频率大于8Hz时,一般就需要进行抽样。
20121107050441508233127.jpg
图3

对于RAM和EEPROM的寻址可通过以下两种方式来实现:

(1)基于EEPROM的寻址方式

这种方式首先用累加器实现地址的寻址,然后通过改变累加器的第24位和第25位(A15和A16)的所赋初值来改变发送波形的初始相位。

由于发送波形的结束时刻可通过一个减法计数器来实现,而且波形周期寄存器里寄存的是T/4的个数。因此,可根据所需发送的波形周期的个数来给计数器赋初值,并在减到0时使累加器复位,从而停止寻址。此时时钟应接A14。

EEPROM里面可以存放4种波形,每一种波形的数据是64kB。波形的选择可通过给A17和A18赋初值来实现。

(2)对RAM的寻址方式

RAM共有1MB的容量,因此,可寻址20位的地址。对于RAM里面的波形,只需要控制样点频率和发送波形的结束时刻即可。

结束时刻的实现主要是将结束时刻值存放到寄存器中,然后把计数器的输出和寄存器的值进行比较,若两者相等就给计数器发送复位信号以停止计数,以结束发送波形。

这里的计数器是加1计数,因而可通过改变分频器的值来改变计数器的时钟,从而引起读取样点频率的改变。
20121107050441539483128.jpg
图4

4 电路仿真

通过上述结构设计可得到顶层电路结构。整个电路设计可采用Verilog语言和原理图输入相结合的方法来设计。图3和图4分别给出了对RAM和EEPROM进行寻址的仿真结果。5 结论

DDFS是现今一种重要的频率合成手段,高速集成电路的发展进一步改善了DDFS的性能,它与传统技术相结合组成的各种混合设计方案将频率源的性能提高到了一个新的水平,因此,未来的DDFS不仅可应用于需要使用信号源的传统领域,而且也必将开拓出许多新的应用领域。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-26 23:23 , Processed in 0.059074 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表