- 25
- 0
- 约2.92千字
- 约 9页
- 2017-06-08 发布于陕西
- 举报
1 引言
信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。它能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波等,在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的信号发生器[4]。
此次设计的应实现功能;;的设计方案多种多样,本设计中采用基于VHDL的方案来设计,Quartus II来进行设计与仿真,用它来实现代码输入,编译仿真,以及引脚锁定,并将代码下载到实验箱上调试。
2 波形发生器的设计
2.1 总体设计思路
波形发生器利用DAC0832实现数模转换,所以对于DAC0832要有8引脚输入,对应于EDA模块要有8引脚输出;输出波形有3中选择,要有2输入引脚来选择波形;另外对输出波形要能调频或调幅,又要有2输入引脚来选择频率或幅值;最后要有一输入脉冲来实现顺序代码的运行,要有1输入引脚来输入脉冲。综上,要有5输入,8输出。输出的信号输入到DAC0832来实现数模转换。将DAC0832的输出用示波器显示出来观察波形。
原理图如图1所示。
图1 原理图
三种波的选择发生可以利用case语句实现,代码框架如下所示。
process(clk)
begin
if clkevent and clk=1 then
case sel is
when 0 =频率可调正弦波的设计;
when 1 =频率可调三角波的设计;
when 2 =幅值可调方波的设计;
when 3 =占空比可调方波的设计;
end case;
end if;
end process;
2.2 波形模块设计
2.2.1正弦波设计
正弦波可以看成是由一些离散的点构成的,可以来一个脉冲输出一个离散的数也可以来in_counter个脉冲输出一个离散的数,由于人眼的视觉暂留人在示波器上看到的是连续的点,如果这些离散的数是正弦规律变化的将看到正弦波。代码如下所示。
when 0 =
counter:=counter+1;
if counter=in_counter then
counter:=0;
adder := adder+1;
dataout = memory(adder);
end if;
其中memory是定义的数组,代码如下所示。
type vector_array is array(0 to 63) of integer range 0 to 255;
constant memory: vector_array := (255,254,252,249,245,239,233,225,
217,207,197,186,174,162,150,137,
124,112, 99,87,75,64,53,43,
34,26, 19,13,8,4,1,0,
0,1,4,8,13,19,26,34,
43,53,64,75,87,99,112,124,137,
150, 162,174,186,197,207,217,225,
233, 239,245,249,252,254,255);
2.2.2 三角波设计
三角波的输出设置上限和下限并按一定规律递增或递减。当标志flag为1时,输出递增,到达上限时,标志flag变为0;当标志flag为0时,输出递减,到达下限时,标志flag变为1;频率调试用counter来记录脉冲个数,当counter等于in_counter时,执行递增或递减操作并将counter重置0。代码如下所示。
when 1 =
counter:=counter+1;
if counter=in_counter then
counter:=0;
if flag=1 then
sanjiao:=sanjiao+1;
if sanjiao=100 then
flag:=0;
end if;
end if;
if flag=0 then
sanjiao:=sanjiao-1;
if sanjiao=0 then
flag:=1;
end if;
end if;
dataout = sanjiao;
end if;
2.2.3 方波设计
方波设计有两种,一种为可调幅值的设计,一
原创力文档

文档评论(0)