第8章应用VHDL语言方法设计简易正弦波信号发生器Word文档格式.docx

上传人:b****1 文档编号:15397028 上传时间:2022-10-30 格式:DOCX 页数:16 大小:120.45KB
下载 相关 举报
第8章应用VHDL语言方法设计简易正弦波信号发生器Word文档格式.docx_第1页
第1页 / 共16页
第8章应用VHDL语言方法设计简易正弦波信号发生器Word文档格式.docx_第2页
第2页 / 共16页
第8章应用VHDL语言方法设计简易正弦波信号发生器Word文档格式.docx_第3页
第3页 / 共16页
第8章应用VHDL语言方法设计简易正弦波信号发生器Word文档格式.docx_第4页
第4页 / 共16页
第8章应用VHDL语言方法设计简易正弦波信号发生器Word文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

第8章应用VHDL语言方法设计简易正弦波信号发生器Word文档格式.docx

《第8章应用VHDL语言方法设计简易正弦波信号发生器Word文档格式.docx》由会员分享,可在线阅读,更多相关《第8章应用VHDL语言方法设计简易正弦波信号发生器Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

第8章应用VHDL语言方法设计简易正弦波信号发生器Word文档格式.docx

自20世纪60年代以来信号发生器有了迅速的发展,出现了函数发生器。

作为电子系统的重要组成部分,它广泛地应用在电子技术实验、自动控制系统和其他科研领域。

早期的信号发生器多采用模拟电子技术,电路形式有采用运放及分离元件构成,也有采用单片集成函数发生器专用芯片。

但采用模拟电路组成的函数信号发生器,一般可靠性较差,频率输出精度、稳定度低,调节不够精确,设计过程复杂、困难,功能不易扩展,尤其对任意波信号产生较为困难,难以满足科研和高精度实验的需要。

现代高精度函数发生器设计采用了EDA技术,不但大大缩短了开发研制周期,提高了设计效率,输出信号频率精度和稳定度有很大提升,而目使系统具有结构紧读、设计灵活、实现简单、性能稳定的特点。

本章着重介绍采用EDA技术,应用VHDL语言,在ALTERA公司的QuartusⅡ软件环境下,完成频率可调的正弦波发生器的程序设计过程,并进行逻辑综合、仿真和硬件下载,产生正弦波信号。

8.2完成工作任务的引导

一、资讯

要完成本任务,需要了解以下方面的知识。

1.函数(波形)信号发生器的定义和作用

函数(波形)信号发生器能产生某些特定的周期性时间函数波形(Cn1,弦波、方波、二角波、锯齿波和脉冲波等)信号,频率范围可从几个微赫到几十兆赫。

函数信号发生器在电路实验、设备检测、通信、宙达、导航、宇航等领域中具有十分广泛的用途。

本次设计只是简单完成正弦波输出的功能。

2.直接数字合成器DDS(DirectDigtalSynthesizer)知识

DDS中变要包括频率控制寄存器、高速相位累加器和正弦计算器二个部分,本次设计参考DDS设计电路结构。

•①频率变化知识。

用户通过输入频率控制码来改变输出信号频率。

•②相位变化知识。

通过相位累加器根据频率控制码在每个时钟周期内进行相位累加来改变相位值。

•③波形信号产生知识。

正弦计算器计算数字化正弦波幅度值,再把幅度值保在芯片的ROM中。

通过查表方式扫描数据输出。

3.DAC控制器的知识

DDS芯片输出的一般是数字化的正弦波,因此还需经过高速D/A转换器和低通滤波器才能得到一个可用的模拟频率信号。

使用DAC时要考虑DAC的位数和转换时间。

常用的低速八位DAC为DAC0832。

二、计划

采用DDS方式设计波形信号发生器,首先要了解DDS的结构和每个部分的功能,如图8-1所示,本次设计在CPLD/FPGA芯片内部由频率控制字、相位累加器、波形数据ROM二个部分构成,在外部把波形数据循环扫描后输出给DAC转换成模拟信号,通过低通滤波器平滑波形最后输出所需波形。

设计中着重完成以下部分内容。

•①完成频率控制器的设计。

此设计可以通过计数器、分频器设计原理完成。

•②相位控制设计。

对所查表中每个地址进行数据累加,即可改变信号输出相位。

•③计算正弦波各点的幅度离散值。

在此设计中我们把一个正弦波分离成128个点坐标。

由于VHDL只适合整数运算,此各离散值由计算器或公式求出,并存储在ROM中。

三、决策

根据图8-1所示的正弦波信号发生器组成框图,分步完成正弦波信号发生器的设计。

其设计步骤可参考如下步骤进行。

•①设计一个分频器,要求能进行频率调整。

•②设计一个相位累加器,相位可以前后移位。

•③通过计算求出正弦波128个离散幅值,并进行储存。

•④将程序下载至FPGA/CPLD芯片,并和DAC0832连接。

•四、实施

•如图8-1所示,完整的正弦波形发生器由3部分组成。

•1.频率控制字设计

•由于一个完整的波形由128个离散坐标点构成,所以要完整生成一个波形,则输入时钟需要128个脉冲。

从而可得知要输出1Hz的正弦波,需要128Hz的时钟,也就是输入输出分频比128/1。

若对输出信号频率进行控制,可通过对输入时钟分频来改变频率,分频系数可以改变。

•在下面实例中,“clk”为芯片时钟输入端,可由品振提供高稳定度、高精度脉冲信号。

“d”和“f”为分频系数控制脚,当f=“0”时,d脚每来一次脉冲,则分频系数自动加1;

相反,若f="

1”时,根据d脚的脉冲数自动减。

•图8-2为频率控制的仿真图。

clk_o为输出脚进过分频后的时钟信号,该信号可以接入到下一级相位控制部分,然后进行相位调节。

•如果仿真结果正确,可以将设计的项目生成一个元件符号备用。

其步骤是:

选择原理图文件为当前文件后,选择菜单命File→Create/LTpdate→CreateSymbolFilesforCurrentFile即可。

本电路生成的元件符号如图8-3所示。

频率控制程序参考:

process(clk)一基准时钟分频

begin

ifclk'

eventandclk='

1'

then

t0<

=t0+tl;

endif;

endprocess;

--------------------------------------

process(d,f)---频率控制字

ifd'

eventandd='

iff='

0'

tl<

=t1+1;

else

t1<

=tl-1;

endprocess;

Clk_o<

=t0(3);

2.相位累加器设计

对于正弦信号发生器,它的输出可以用下式来描述:

(8-1)

其中,是该信号发生器的输出波形;

指输出信号对应的频率。

上式的表述对于时间t是连续的,为了用逻辑实现该表达式,必须进行离散化处理,用基准时钟进行抽样,令正弦信号的相位为

(8-2)

在一个clk周期内,相位的变化为

(8-3)

其中,foot指clk的频率,2π可以理解为“满”相位。

为了对其进行数字量化,把2π切割成份,由此每个clk周期的相位增量用量化值来表示:

(8-4)

且为整数。

与式(8-3)联立,可得

(8-5)

显然,信号发生器的输出可描述为

(8-6)

其中,指前一个clk周期相位值,同样得出

(8-7)

由上面的推导可以看出,只要对相位的量化值进行简单的祟加运算,就可以得到正弦信号的当前相位值,而用于叠加的相位量量化

值决定了信号的输出频率,并呈现简单的线性关系:

(8-8)

相位累加器的输入又可称为频率输入字,事实上当系统基准时钟为时,就等于。

图8-4为生成元件图,clk为系统基准时钟分频后的时钟输入;

p为相位控制字端,每输入一个脉冲,波形前后移一个相位;

d为相位方向控制,当d="

0”时,相位后移,相反,当d="

1”时,相位前移。

相位控制仿真图如图8-5所示,当d=“0”时,P输入每个脉冲后,相位地址Y输出量发生改变,地址向后增加2。

相位控制程序参考:

process(clk)---相位地址累加进程

then

tt<

=tt+1;

else

=tt-1;

3.波形数据存储

正弦ROM的查找表完成的查表转换,在这里可以理解成相位到幅度的转换,它的相位输入是相位调制器的输出,事实上就是ROM的数据值输出送往D/A,转化成模拟信号。

ROM中的数据为正弦波信号一个周期的离散值,可以通过相关计算求出。

若需把正弦波改为锯齿波、方波信号输出,只需改变ROM中的数据值即可达到产生任意波的功能。

求正弦波离散点的公式见式(8-5)

因输出数据值范围为0~255,相位离散点为128,则求出每个相位对应的数据:

(8-9)

波形分割的离散点越大,相隔相位差别越示,输出的波形失真也越示。

但离散点过多,输出信号的频率与输入信号频率分频比过大,难以提高输出信号频率。

图8-6中a[6..0]为相位地址输入,数据宽度为7位,寻址范围为0~127;

D[7..0]为波形数据输出,接DAC数据脚,即可把数字量变化为模拟量输出。

ROM中数据与相位地址关系描述:

process(a)

CASEaIS

WHEN00=>

D<

=255;

WHENO1=>

=251;

WHEN02=>

=247;

WHEN03=>

=243;

WHEN04=>

=239;

WHENOS=>

=235;

WHEN06=>

=231;

…………Endprocess;

4.连接DAC0832设计

DAC0832是八位D/A转换器,转换周期为1μs,其参考电压与+5V工作电压相接(实用电路应接精密基准电压)。

DAC0832的引脚功能简述如下。

•ILE:

数据锁存允许信号,高电平有效,系统上己经连接+5V上

•:

写信号1,2,低电平有效。

数据传送控制信号,低电平有效。

基准电压,可正,可负,-10~+10V。

•Rfb:

反馈电阻端。

•IoutI/Iout2CPIN11,PIN12)电流输出1和2。

D/A转换量是以电流形式输出的,所以必须将电流信号变为电压信号。

•AGND/DGNDCPIN3,PIN10):

模拟地与数字地。

在高速情况下,此一地的连接线必须尽可能短,目系统的单点接地点必须在此连接线的某一点上。

在本次设计中,FPGA芯片的波形数据输出脚D[7..0]分别接到图8-7中的DA7-DAO脚上,DAC0832可以采用直接控制方式与FPGA同步工作,也可使、信号受控于FPGA工作;

若直接工作,则将、直接接地即可;

若受控于FPGA,则把该竹脚接在FPGA某个控制脚上,当该竹脚输出低电平时,DAC0832输出模拟波形。

1.单独增加频率控制字对输出频率的影响(图8-9、图8-10)

从图中看出,当fre_d的脉冲个数增加时,输出D的频率与clk的频率差距越来越示,也就是输出信号的频率增大。

当fre_f为“1”时,随着fre_d的脉冲输入,信号输出脚的频率降低,从而达到频率可调的功能。

2.相位控制仿真(图8-11、图8-12)

部分波形数据对照表如图8-13:

从仿真图和波形数据可以看出,通过相位控制,使输出波形的数据提前或延迟输出。

五、检查

以上对一个正弦信号波发生器的各组成部分进行了说明并给出了参考电路,读者可自行按照本设计方案的组成原理框图(如图8-1所示)将各部分连接起来,组成一个完整的正弦波信号发生器。

频率控制字由fre_d和fre_f同时控制,fre_f控制频率的增减,fre_d控制频率增量大示。

clk是系统基准时钟,由晶振提供。

若要提高输出信号最高频率,则品振频率必须提高。

Pha_p和pha_f共同负责相位移动。

控制方法和频率控制相同。

以下给出采用本

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1