登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
单片机应用于方案
›
直接数字频率合成器的FPGA实现
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版
直接数字频率合成器的FPGA实现
[复制链接]
1291
0
ad***
管理员
发表在
嵌入式/ARM
2013-3-20 10:08:41
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
1 DDS结构原理
DDS是一种从相位概念出发直接合成所需波形的数字频率合成技术,主要通过查找波形表实现。由奈奎斯特抽样定理可知,当抽样频率大于被抽样频率的2倍时,通过抽样得到的数字信号可通过一个低通滤波器还原成原来的信号。
DDS的工作原理为:在参考时钟的驱动下,相位累加器对频率控制字进行线性累加,得到的相位码对波形存储器寻址,使之输出相应的幅度码,经过模/数转换器得到相应的阶梯波,最后再使用低通滤波器对其进行平滑,得到所需频率的平滑连续的波形,其结构如图1所示。
相位累加器由N位加法器和N位累加寄存器级联构成。每经过一个时钟脉冲fclk,加法器就将频率控制字与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS的输出信号频率。用相位累加器输出数据作为波形存储器(ROM)的相位取样地址,这样就可以把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅度的转换。
DDS模块的输出频率是系统工作频率、相位累加器比特数N以及频率控制字三者的一个函数,其数学关系由式(1)给出。
它的频率分辨率,即频率的变化间隔为K/2N。
2 系统功能单元实现
该系统设计是针对DDS的基本结构,以
FPGA
为核心,加上外围电路而实现的。
2.1 相位累加器
相位累加器由8位加法器与8位寄存器级联构成。累加器将加法器在上一个时钟作用后所产生的相位数据反馈到加法器的输入端:使加法器在下一个时钟作用下继续与频率控制字data相加,实现相位累加,当相位累加器累加结果等于或大于256(当N=8时),则产生1次溢出,完成1个周期波形输出。该相位累加器采用Verilog语言设计实现。
2.2 波形存储器
以相位累加器输出数据作为波形存储器的取样地址,进行波形的相位-幅码转换,即可在给定的时间上确定输出的波形的抽样幅码。N位的寻址ROM相当于把0~2π的正弦信号离散成具有2N个样值的序列。若波形存储器有D位数据位,则各样值的幅码以D位二进制数值保存在该模拟ROM中,按照不同地址输出相应相位的正弦信号的幅码数值。为了更加有效的表示波形,当然期望波形存储器输出的二进制值位数越多越好。但是查找表的设计和D/A转换器的选择是相关的,因此需要选择位数高的D/A转换器。本文设计的正弦表,具有16b输出,采样点为256。
2.3 D/A转换电路的实现
D/A转换单元是继波形数据产生单元之后,将数字量形式的波形幅值转换成所要求的合成频率的模拟量形式信号。DAC输出信号实际上是阶梯模拟信号,需在D/A转换后利用低通滤波器对波形进行平滑处理。在此,用Maxim公司生产的A/D换器MAX5885芯片。该芯片需要将输入时钟信号转换为差分输入,且由外部芯片MAX6161提供1.2 V的参考电压,D/A转换后的差分输出经变压器转换后即可得到所需的信号:
3 系统软件设计
3.1 累加控制模块的设计
相位累加器主要完成相位累加,实现输出波形频率可调的功能。该模块采用Verilog HDL语言来实现,若要求DDS系统精度高,相位累加器的位数N需较大。这里取N=8,它的Verilog HDL关键代码如下:
其中,data信号为8位的频率控制字,通过改变data的值可以实现不同频率波形的输出。
3.2 波形存储器的设计
针对不同的可编程器件,ROM查找表的设计采用的方法也不相同。主要是基于IP核Single Port BlockMemory和Verilog选择语句这两种方法。使用SinglePort Block Memory的波形存储表只需要产生数据文件*.mif或*.coe,然后直接在定制Single Port BlockMemory时,添加数据文件即可。不过这种方法在FPGA支持内部嵌入式阵列块(EAB)时才可以使用;使用Verilog选择语句比较直观,但当输入数据量大的
这种方法是比较繁琐的。此次设计采用第一种方法。
coe文件是在编译和仿真过程中作为存储器(ROM或RAM)初始化输入的文件,即memory initializationfile。创建coe文件的方式有很多种,在这次设计中,在Matlab中采用C语言来生成coe文件。coe文件编写格式如下:
将生成的cos.txt文件的后缀该为.coe,打开文件并将最后一行的逗号改为分号,并在文件的最开始添加下面两行:
最后保存文件退出,并加载到Single Port BlockMemory所生成的ROM中。加载时要特别注意数据基数和数据长度的参数设置。
4 系统的功能仿真和验证分析
累加控制器、ROM查找表组成一个整体,实现了一个基本的DDS系统。该设计以原子钟(33 MHz)为基准频率输入,取累加器为32位,实现输出频率为700 kHz的信号。
5 结语
直接数字频率合成(DDS)技术属第三代频率合成技术,与第二代基于锁相环频率合成技术相比,利用DDS技术合成的输出波形具有良好的性能指标本。设计采用Xilinx公司Spartan-3系列的XC3S200芯片和高速16位D/A转换器MAX5885。在DDS的工作原理的基础上,介绍基于FPGA实现DDS的设计方法。 通过设置参数可以灵活控制输出频率和分辨率。设计出具有精度高,选择参数控制输出信号,产生一个理想的波形。从测试结果可看出,该系统工作稳定、可靠,并具有较好的参考与实用价值。
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
模电数电论坛
外围器件论坛
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
产品品牌:永嘉微电/VINKA 产品型号:VKL44A 封装形式:TSSOP48 概述 VKL144是
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
产品品牌:永嘉微电/VINKA 产品型号:VKL128 封装形式:SSOP44 概述 VKL128是一
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
产品品牌:永嘉微电/VINKA 产品型号:VK2C23A/B 封装形式:LQFP64/48 概述 VK2C
高抗干扰液晶驱动/点阵式液晶显示IC/VK2C21
产品品牌:永嘉微电/VINKA 产品型号:VK2C21D 封装形式:SOP16 概述 VK2C21D是
I2C通信接口段码液晶驱动芯片VK2C21C SOP20
产品品牌:永嘉微电/VINKA 产品型号:VK2C21C 封装形式:SOP20 概述 VK2C21C是
更多
精华推荐
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
高抗干扰液晶驱动/点阵式液晶显示IC/VK2C21
I2C通信接口段码液晶驱动芯片VK2C21C SOP20
VK2C21B SOP24高抗干扰LCD液晶段码驱动芯片
低成本、高性能、带EEPROM了解一下
工控仪表/水电气表LCD驱动/抗干扰液晶段码
更多
社区学堂
VKL144A TSSOP48 点阵式液晶驱动芯片/
高抗干扰液晶显示驱动/省电液晶驱动IC/
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
产品品牌:永嘉微电/VINKA 产品型号:VKL44A 封装形式:TSSOP48 概述 VKL144是
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
产品品牌:永嘉微电/VINKA 产品型号:VKL128 封装形式:SSOP44 概述 VKL128是一
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
产品品牌:永嘉微电/VINKA 产品型号:VK2C23A/B 封装形式:LQFP64/48 概述 VK2C
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表