DDS信号发生器电路设计方案
DDS信号发生器电路设计方案
1、了解电子电路设计的一般方法、根据题目要求选择设计方案。
2、根据理论计算分析,查阅相关资料和手册,选择电子元器件。
3、学会使用电子设计自动化软件对电路进行设计、分析、验证。利用可编程逻
辑器件实现电路的设计、仿真、下载。
4、熟练使用常用电子仪器(示波器、万用表、信号发生器等)对电路进行测试。
5、写出符合要求的课程设计报告。
一、实验设备
1、Altera DE2开发板 (CycloneⅡ EP2C35F672C6)
2、QuartusⅡ9.1开发软件
3、数字电路实验面包板
4、示波器、万用表等
二、实验任务要求
利用DE2实验开发装置,在给定电源条件下,完成正弦波信号发生器电路设计。
1、技术指标
①信号频率输出围50Hz~10kHz,频率可调。步进调整,步长0.5Hz或50Hz;
②频率稳定度10-3。
2、发挥部分
①增加脉冲信号的输出,信号频率输出围50Hz~10kHz;
②脉冲信号占空比可调,调整围2%~98%;
③正弦或脉冲频率步长调整分别为1Hz、10Hz、100Hz、1kHz、10kHz;
④完成在数码管上数字频率显示功能;
三、实验原理介绍
1、DDS
直接数字合成(Direct Digital Synthesis、DDS)是一种新的频率合成技术和信号产生的方法。直接数字频率合成器(DDS)具有超高速的频率转换时间,极高的频率分辨率和较低的相位噪声,在频率改变与调频时,DDS 能够保持相位的连续,因此很容易实现频率、相位和幅度调制。此外,DDS 技术大部分是基于数字电路技术的,具有可编程控制的突出优点。因此这种信号产生技术得到了越来越广泛的应用,很多厂家已经生产出了DDS专用芯片,这种器件成为当今电子系统及设备中频率源的首选器件。
2、相位累加器
一个正弦波,虽然它的幅度不是线性的,但是它的相位却是线性增加的。
DDS利用了这一特点来产生正弦信号。
根据DDS的频率控制字M的位数N,把360°平均分成了2的N次等
份。系统时钟为f
clk 输出频率为f
out
。根据公式f
out
= f
clk
可知,只要选择恰当的
频率控制字,就可以得到所需要的输出频率f
out
。
3、ROM
ROM的作用是构成正弦查找表,其部存储一个完整的正弦波的数字幅度信息,每个查找表的地址对应正弦波中的0~360°围的一个相位点。ROM用相位累加器输出的高M位数据进行相位—幅值转换,在给定的时间上确定输出的波形幅值。
4、D/A
从ROM输出的八位数据是数字量,D/A的作用就是将其转换为模拟量。
将输入的每一位二进制代码按其权值大小转换成相应的模拟量,然后将代表个位的模拟量相加,则所得的总模拟量与数字量成正比,这样便实现了从数字量到模拟量的转换。
5、低通滤波器(LPF)
D/A出来之后的波形是梯形状的,将它通过低通滤波器后就可以看到平滑的、不带毛刺的波形。二阶低通滤波器由一级RC、二级RC和同相比例放
大器组成。当f超过f
0后,其幅频特性以40dB/dec的速率下降,但在f
和
通带截止频率f
p
之间还不够快。
四、实现方案简述
1、设计流程
将系统时钟50MHz送入预分频模块,输出为220Hz。后将其送入DDS累加器作为它的时钟信号。DDS累加器的步长由累加步长控制模块控制,设计频率显示模块显示输出频率。将DDS累加器数据前8位送入ROM进行相位到幅值的转换,ROM 输出经过DAC和低通滤波器,最后用示波器显示波形。
2、功能模块连接图
3、功能模块设计分析
①预分频模块
预分频模块由32位加法器和32位锁存器构成。根据公式f out = f clk 可知,N 为32,f clk =50MHz ,要使f out =220
Hz ,只需求出M 的值,然后对其进行累加。M 的值存储在置数端,cout 端输出的频率便是220Hz ,clk 是系统时钟,clr 为系统清零信号。
② DDS 累加器模块
根据公式f out = f clk 可知,要使输出频率可控,则DDS 累加器的位数要与预分频输出频率相对应。已知预分频输出频率为220Hz ,那么DDS 累加器的加法器和锁存器都对应为20位。化简公式得f out =M ,可通过控制M 的值来控制DDS 累加器的输出频率。dataa[19..0]输入为累加步长(由累加步长控制模块输出),fclk 输入为预分频输出时钟,clr 为系统清零信号。
③ 累加步长控制模块
累加步长控制模块包含步长选择和累加控制两个模块。步长选择模块置题目要求的1Hz、10Hz、50Hz、100Hz、1kHz(由于题目要求DDS累加器的频率输出围为50Hz~10kHz,所以设置步长10kHz意义不大,将之改为50Hz),通过步长选择脉冲循环切换步长频率。累加控制模块将选好的步长进行累加,每当key输入一个脉冲信号,就将选好的步长累加一次,当超过10kHz返回50Hz,这就将DDS累加器的输出频率控制在了50~10kHz之间。clr用于对累加步长的清零,接清零信号,key接单次脉冲信号。
④频率显示模块
频率显示模块用于显示DDS累加器频率,由于题目要求的最大输出频率为10000Hz,所以设计的频率显示模块只输出5位数。该模块输入为累加步
=M,所以DDS的输出频率就是累加后长控制模块输出的累加步长,由于f
out
的步长。输入信号为20为2进制数,将它转换为10进制数,再依次将个十百千万位提取出来做判断。将判断后的值对应的七段数码显示器值输出到5位7段数码显示管显示。num1对应地位,num5对应高位。clk接时钟信号,用于驱动显示模块工作。
⑤波形存储器模块
波形存储模块由高位提取模块和ROM构成。高位提取模块作用是将DDS 累加器中锁存器数据的高8位提取出来送入ROM,之所以取高位弃低位,是因为如果包含低位,则一个周期中将会出现的多于28(256)个值,就不能与ROM表中的256个幅度值形成一一对应。ROM中存储了256个波形幅度值,用高8位的数据进行相位—幅值转换,在给定的时间上确定输出的波形幅值。clk接预分频输出时钟,clr接系统清零信号。
其它波形同理,只需修改ROM查找表中的幅值信息。产生多种波形之后将多个波形输出接到波形选通器上进行选通控制。四个输入分别接正弦波、三角波、方波和锯齿波,output[7..0]接DAC。
ROM正弦查找表:
⑥D/A转换器
DAC用到的芯片为:DAC0832、LF356
DAC0832管脚:
* D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
* ILE:数据锁存允许控制信号输入线,高电平有效;
* CS:片选信号输入线(选通数据锁存器),低电平有效;
* WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
* XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;
* WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的容打入DAC 寄存器并开始D/A转换。
* IOUT1:电流输出端1,其值随DAC寄存器的容线性变化;
* IOUT2:电流输出端2,其值与IOUT1值之和为一常数;
* Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
* Vcc:电源输入端,Vcc的围为+5V~+15V;
* VREF:基准电压输入线,VREF的围为-10V~+10V;
* AGND:模拟信号地
* DGND:数字信号地
LF356芯片管脚:
1&5、偏置平衡(调零端)
2、反向输入端
3、正向输入端
4、接电源负
6、输出
7、接电源正
8、空脚
由于不需要用到DAC0832芯片中的输入寄存器和DAC寄存器,所以将1、2、17、18号脚接地,19号脚接+5V。20号脚接+5V。3、10号脚接地,基准电压U
REF 的8号脚接+5V。12号脚接LF356的3号脚并接地,11号脚接LF356的2号脚。9号脚接LF356的6号脚。DI0~DI7接ROM输出。
LF356的1号脚和5号脚接一个电位器RV1用于调零,电位器的滑动端接+15V。4号脚接-15V,7号脚接+15V。由于DAC0832芯片输出为电流信号,而实际操作中需要用电压信号,所以将DAC0832的输出接LF356,将之转换成电压信号。LF356的作用就是讲电流信号转换成电压信号。
ROM输出围为00000000~11111111。已知基准电压U
=+5V,由公式
REF
可得,当输入为00000000时,;
当输入为11111111时,。
将输入全置0,然后用万用表对LF356芯片的输出进行调零。LF356的输出电压均为负值,产生的波形在x轴以下,要想将它反向到x轴以上,可以接一个反向比例放大器。在其基础上加求和运算电路就可上下平移波形。
芯片OP07管脚:
1&8、偏置平衡(调零端)
2、反向输入端
3、正向输入端
4、接电源负
5、空脚
6、输出
7、接电源正
信号从LF356的6号脚输出后通过定值电阻R1和电位器器RV2后进入OP07的2号脚。3号脚接地,4号脚接-15V,7号脚接+15V。1号脚和8号脚接一个电位器RV4用于调零,电位器滑动端接+15V。6号脚接电阻R2反馈到2号脚。在2号脚接一个电位器RV3构成求和运算电路,电位器另一端接+15V。
使输入端(即2号脚)开路,用万用表对OP07芯片输出进行调零,由反向求和运算电路输出电压表达式,可求出输出电压u
。其中RV2可调节放大器增益,
o
调节RV3可上下平移波形。
⑦低通滤波器(LPF)
经过反向、放大后的信号,通过一级RC,二级RC,进入OP07芯片的正向输入端3号脚。1号脚和8号脚接一个电位器RV6用于调零,滑动端接+15V。
4号脚接-15V,7号脚接+15V。6号脚接一个电阻R6反馈到2号脚。2号脚出来接一个电阻R5后接地。
使输入端(即3号脚)开路,用万用表对OP07芯片进行调零。二阶低通滤波器,通带截止频率。已知R=51kΩ,C=100pF,由此可解得,高于输出频率上限10kHz,满足设计要求。
DAC和LPF完整电路:
五、实验仿真结果
1、预分频模块仿真图
编译好电路后新建一个波形向量文件(Vector Waveform File),然后将要进行仿真的节点(Nodes)添加到仿真文件中,保存后打开仿真工具(Simulator Tool),选择功能仿真(Functional),生成网表(Generate Functional Simulation Netlist),之后开始仿真,仿真结束后打开仿真报
告文件(Report)。通过公式f
out = f
clk
求出的M的值为“1000”来一个时钟
信号累加一次。由于最低三位为0,无论怎么累加都不会出现进位,所以,最低三位一直为低电平。
2、DDS累加器模块仿真图
由于f
out
=M,又因为输出频率围为50Hz~10kHz,所以进位高位的进位较
慢,符合设计要求。
3、波形存储模块仿真图
从ROM出来的数据就是输入相位对应的幅值数据了,符合要求。
4、动态仿真正弦波
打开QuartusⅡ SignalTap Ⅱ Logic Analyzer工具,将编译好的sof文件下载到开发板中。然后单击Autorun Analysis,右击output,选择Bus Display Format,然后选择Signed Line Chart就可出现以上动态仿真波形。上面的仿真都是基于QuartusⅡ软件的静态功能仿真。动态仿真是用SignalTapⅡ这一工具捕获FPGA芯片中实时信号的状态,达到硬件和软件的交互。方波、三角波、锯齿波的动态仿真方法与上面一致。
5、动态仿真方波
6、动态仿真三角波
7、动态仿真锯齿波
动态仿真结束后,将输出信号附上管脚,用示波器测量输出最高位信号的频率,而后与理论值作比较。
8、5000Hz测量波形
示波器测量值:
绝对误差:
Δ= |5000-5000| = 0 相对误差:
δ= = 0
9、5001Hz测量波形
示波器测量值:
绝对误差:
Δ= |5001-5001| = 0 相对误差:
δ= = 0
10、5011Hz测量波形
示波器测量值:
绝对误差:
Δ= |5011-5011| = 0 相对误差:
δ= = 0
11、5061Hz测量波形
示波器测量值:
绝对误差:
Δ= |5061.01-5061| = 0.01 相对误差:
δ= = 0.0001976%
12、5161Hz测量波形