基于FPGA的DDS设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.2
FPGA 硬件系统组成与外围电路设计
(1) 8 位拨码开关 S1,FPGA 与 8 位排阻以及+3.3V 电源组成外部电路 1,用于给 FPGA 输入频率控制字; (2) 8 位拨码开关 S4,FPGA 与 8 位排阻以及+3.3V 电源组成外部电路 2,用于给 FPGA 输入相位控制字; (3) 4 位拨码开关 S3,FPGA 与 4 位排阻以及+3.3V 电源组成外部电路 3,用于给 FPGA 输入控制信号;从而控制输出何种波形; (4) FPGA 与 DAC0832 组成外部电路 4,起到数模转换的作用,将数字信号转换为模 拟信号并且输出; (5) DAC0832 与运放 LM358 组成外部电路 5,起到电流转电压的作用,因为 DAC0832 输出的是电流信号,所以需要用运放将其输出成电压信号。
S o u t = A s in t A s in ( 2 f o u t t ) 。
用基准时钟 CLK 进行抽样,令正弦信号的相位: 2 f o u t t 。 在一个 周期 TCLK ,相位的变化量为: 2 f o u t T c lk
2 f out f c lk
(1)焊接完毕后,接线正确的情况下,并不能输出正确的正弦波波形,波形类似尖脉 冲,经检验发现 ADC0832 的 10 脚未接地; (2)通电后,输出的正弦波出现底部失真,此时运放为 5V 供电,将运放改为 12V 供电后,失真消失; (3)拨码开关可以进行 8 位任意数字量的输入; (4)ADC0832 可以将 FPGA 输出的数字信号转化为模拟信号并且输出。
1.4 外部电路设计 1.4.1 拨码开关电路设计
工作原理: 拨码开关的一端通过电阻与 3.3V 电源相接, 同时与 FPGA 的 I/O 口相接; 另一端与地相 接,当开关断开时 I/O 口输入为 1,当开关闭合时 I/O 输入为 0;通过控制开关的闭合与断 开,来控制 I/O 的数字量。 上拉电阻的计算:通过查数据手册可知 I/O 输入电流为 24mA,电压为 3.3V,通过计算可得
基于 DDS 技术的信号发生器设计
2.1 功能要求
• • • • • • • (1)具有产生正弦波、三角波、锯齿波 3 种周期性波形的功能。 (2)可以用开关进行三种波形之间的任意切换。 (3)具有波形存储功能。 (4)输出波形的频率范围为 200Hz~50kHz 。 (5)输出波形幅度范围 0~5V(峰-峰值) 。 (6)具有扫频功能。 (7)可显示调幅调制的波形。
U 7:此模块为
3 选 1 选择器,通过外部电路输入信号 ANJIAN1 和 ANJIAN 2,控制最终输出波形 的类型。其输入信号为通过 2 选 1ROM 选择器之后的信号,三角波信号,锯齿波信号,输出 为最终的波形。 U 8:此模块为定制的 波信号。
U 9:此模块为 ROM ,其中存有正弦波的数据。输入为累加后的地址信号,输出为正弦
B 2
N
f out f c lk
和 B 2
N
f out f c lk
( B
k 1
B )] A f s in ( B
k 1
B ) 。
2.4 程序设计 2.4.1 分频模块程序及仿真 程序见附录 1
分析:时钟信号变化 500 次,输出信号才变化 1 次,从而实现 500 分频的功能。
2.2 整体设计
U 1:此模块为分频模块,将原始的
50MHZ 的信号进行 500 分频后得到 100KHZ 的信号,并且
将此信号作为后面所有模块的时钟信号。 U 2:此模块为一个 8 位加法器 1,输入信号分别为经过选择器选择过后的频率控制字,以及 8 位寄存器的输出,输出为累加后的 8 位数据,代表着 ROM 中数据的地址。 U 3:此模块为一个 8 位的寄存器,输入为 U 2 的输出,输出为 8 位加法器 1,以及 8 位加法 器 2 的输入,为他们提供方累加信号,起到暂存缓冲的作用。 U 4:此模块为 8 为累加器 2 输入信号分别为相位控制字,以及 8 位寄存器的输出,输出为相 加后的 8 位数据,代表着 ROM 中数据的地址,将数据传输给存储正弦波数据的 ROM 以及存储 调幅波数据的 ROM 。 U 5:此模块为三角波信号产生模块,通过程序的控制产生三角波,输入信号为 500 分频后的 时钟信号与外部电路输入的频率控制字,输出直接传给 3 选 1 选择器。 U 6:此模块为锯齿波信号产生模块,通过程序的控制产生锯齿波,输入信号为 500 分频后的 时钟信号与外部电路输入的频率控制字,输出直接传给 4 选 1 选择器。
2.4.3 锯齿产生程序设计及仿真 程序见附录 3
分析:当频率控制字为 1 时,输出数据每次递增 1,且当输出数据为 255 时,下 一个输出数据为 0,然后再次进行递增,循环往复,从而输出锯齿波。
分析:当频率控制字为 2 时,输出数据每次递增 2,且当输出数据为 254 时,下 一个输出数据为 0,然后再次进行递增,循环往复,从而输出锯齿波。
2.4.5 扫频 程序见附录 5
分析:随着时间的变化,频率控制字会自动变化,从而实现扫频功能(仿真图中 CC 代表的为内部设置的频率控制字) 2.4.6 调幅调制产生程序设计及仿真 程序见附录 6
分析:频Biblioteka Baidu控制字为 0 时,从 ROM 中取值, 每次取值间隔 0,即总是在取第一个 值。
分析:频率控制字为 1 时,当相位控制字为 0,从 ROM 中取值所有数值均被取到。
(2) 顶层程序 程序见附录 7
2.4.2 正弦波产生程序设计及仿真 程序见附录 2
分析:当相位控制字为 0,频率控制字为 1 时,从 ROM 中取值所有数值均被取到。
分析:当相位控制字为 0,频率控制字为 3 时,从 ROM 中取值每次跳掉 2 个数值。
分析:当相位控制字为 1,频率控制字为 1 时,从 ROM 中取值所有数值均被取到, 但是第一次取值 ROM 中的第一个值不取,直接从第二个值开始取。
录
FPGA 硬件系统设计
1.4.1 拨码开关电路设计 1.4.2 DAC0832 电路设计 1.5 硬件电路调试及结果分析
§2
2.1 2.2 2.3 2.4 功能要求 整体设计
基于 DDS 技术的信号发生器设计
DDS 技术的基本原理 程序设计
2.4.1 分频模块程序及仿真 2.4.2 正弦波产生程序设计及仿真 2.4.3 锯齿产生程序设计及仿真 2.4.4 三角波产生程序设计及仿真 2.4.5 扫频 2.4.6 调幅调制产生程序设计及仿真 2.4.7 顶层程序设计及仿真
2 选 1 选择器,输入为扫频信号中自动变化的频率控制字,以及正弦波信号中 由外部电路输入的固定的频率控制字,通过这个选择器,由外部电路输入的信号 ANJIAN 3 选 择最后输出扫频信号还是正弦波信号。 U 10:此模块为扫频信号产生模块,输入仅有经过 500 分频后的时钟信号,有程序内部控制 频率控制字自动变化,输出信号为自动变化的频率控制字。 U 11:此模块为定制的 ROM ,其中存有调幅波的数据。输入为累加后的地址信号,输出为调幅 波信号。 U 12:此模块为 2 选 1 选择器,输入为正弦波 ROM 中的地址信号,以及调幅波 ROM 中的地址信 号,通过这个选择器,由外部电路输入信号 ANJIAN 4 选择输出时正弦波 ROM 中的地址信号还 是调幅波 ROM 中的地址信号,从而控制输出时正弦波,还是调幅波。
§3
3.1 故障分析 3.2 功能分析 3.3 设计总结及感想
设计分析与总结
§4
( 1 )硬件原理图 ( 2 )全部源程序
附录
FPGA 硬件系统设计
1.1 功能要求
• • • • (1)可以通过拨码开关进行输入信号和控制信号的任意给定。 (2)同意通过 D/A 进行数模转换 (3)可以通过运放进行电流—电压转换 (4)最终可以输入程序中设定的波形
1.3
FPGA 最小系统简介
FPGA 框架结构由三部分组成: 可编程输入/输出模块 I/OB (I/O Block) 可配置逻辑模块 CLB (Configurable Logic Block) 可编程内部连线 PI (Programmable Interconnect) I/OB :位于芯片内部四周,主要由逻辑门、触发器和控制单元组成。在内部逻辑阵列与外部 芯片封装引脚之间提供一个可编程接口。 CLB:是 FPGA 的核心阵列,用于构造用户指定的逻辑功能,不同生产厂商的 FPGA 器件其不 同之处主要在核心阵列。每个 CLB 主要由查找表 LUT(Look Up Table) 、触发器、数据选择 器和控制单元组成。 PI:位于 CLB 之间,用于传递信息。编程后形成连线网络,提供 CLB 之间、CLB 与 I/OB 之 间的连线。 FPGA 器件种类多,选择一款性价比合理的 FPGA 芯片,涉及多个方面。由于 FPGA 器件发展 日新月异,更多更新的器件应查阅各公司提供的器件数据手册。 以 Altear 公司常用 FPGA 器件性能为例:该公司提供的 FPGA 有适用于低成本、大批量设计 的 ACEX1K、Cyclone 等系列产品;也有适用于高端设计的 APEX20K、Stratix 等系列产品。 这些器件的逻辑结构、配置方式、资源等方面有所不同。
分析:频率控制字为 2 时,当相位控制字为 0,从 ROM 中取值时一个间隔一个取。
分析:当相位控制字为 1,频率控制字为 1 时,从 ROM 中取值所有数值均被取到, 但是第一次取值 ROM 中的第一个值不取,直接从第二个值开始取。 2.4.7 顶层程序设计及仿真 (1) 程序的功能
1.可以产生正弦波 2.可以产生三角波 3.可以产生锯齿波 4.可以产生扫频信号 5.可以产生调幅调制波 6.可以识别外部输入的频率控制字和相位控制字 7.可以由外部电路控制输出的波形
CLK
为了对进行数字量化,
2
把切割成 2N 份,由此每个 CLK 周期的相位增量用量化值来表述: B 整数。与 12-6 式联立,可得: 信号发生器的输出可描述为:
S o u t A s in ( k 1 ) A s in [ 2 2
N
2
N
。且 B 为
2.3 DDS 技术的基本原理
直接数字频率合成器(DIRECT DIGITAL FREQUENCY SYNTHESIZER )是一种基于全数字技术,从相位 概念出发直接合成所需波形的一种频率合成技术。 优点: 工作频率范围很宽;极高的频率分辨力;极短的频率转换时间;任意波形输出能力; 数字调制性能好。正弦信号发生器,它的输出可以用下式来描述:
JIANGSU
UNIVERSITY
OF
TECHNOLOGY
学 专 班 姓 学
院: 业: 级: 名: 号:
电气信息工程学院 电子信息工程 11 电子 1 华云鹏 11311108 朱雷、陈海忠
指导教师:
设计时间: 2014 年 2 月 17 日 ~28 日
目
§1
1.1 1.2 1.3 1.4 功能要求 FPGA 硬件系统组成与外围电路设计 FPGA 最小系统简介 外部电路设计
2.4.4 三角波产生程序设计及仿真 程序见附录 4
分析:当频率控制字为 1 时,先是输出数据每次递增 1,且当输出数据为 255 时, 以后输出数据每次递减 1, ,当输出数据为 0 时,输出数据再次每次递增 1,循环 往复,从而输出锯齿波。
分析:当频率控制字为 2 时,先是输出数据每次递增 4,且当输出数据为 254 时, 以后输出数据每次递减 4, ,当输出数据为 0 时,输出数据再次每次递增 4,循环 往复,从而输出锯齿波。
R
U I
3 .3V 24m A
1 3 7 .5 。即电阻大于 1 3 7 .5 即可。
1.4.2 DAC0832 电路设计
工作原理: 本电路采用直通型,DAC0832 不需要任何控制信号进行控制,输入数据即可 进行数模转换,并且通过运放 LM358 进行电压到电流的转化。
1.5 硬件电路调试及结果分析