0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

多波形信号发生器设计原理分析

要长高 来源:单片机精讲吴鉴鹰 作者:单片机精讲吴鉴鹰 2022-06-20 17:35 次阅读

在教学实验和教学研究中,信号发生器作为提供测试用电信号的仪器必不可少。目前通用的信号发生器一般只能输出常用的波形信号,不能满足某些特殊的需要,例如在电子测量教学中,通过用示波器测量晶体管的输出特性曲线实验,让学生理解晶体管测试仪的测量原理,就需要阶梯波信号。又如研究计数法测周期时,噪声信号引起的触发误差所需的某种噪声信号。鉴于教学实验和教学研究的需要,笔者设计了一种基于可编程逻辑器件CPLD的多波形信号发生器,此设计采用Max Plus II开发平台,VHDL编程实现,整个系统除晶体振荡器和A/D转换外,全部集成在一片美国Altera公司生产的EPM7256SR208-15的芯片上。他除了输出常用的正弦波、三角波、方波以外,专门设计了一个任意波形模块(在本设计中为阶梯波波形数据),以及两种波形线性组合共10种波形。任意波形模块可由用户自行编辑所需波形数据,经下载在不改变整个系统硬件连接的情况下,输出用户所需的特殊波形。该信号发生器输出波形的频率可数控选择,其范围为100 Hz~30 kHz。幅度调节范围为0~5 V。

1 设计原理

根据设计要求,多波形信号发生器由3部分组成,即时钟信号发生器、波形数据产生器和数/模转换电路。晶体振荡器产生稳定度很高的时钟信号,在时钟信号的作用下,波形数据产生器生成频率可变的波形数据数字信号,经数/模转换电路最终输出所需波形信号。幅度的调节可通过改变A/D转换芯片电阻网络的基准电压实现。基于CPLD的波形数据产生器顶层电路如图1所示。

pYYBAGKwPwWAMOc0AAHmnJLXLvQ172.png

图1 波形数据产生器顶层电路图

图中DFR为数控分频器,根据仪器面板8位数字量开关产生的预置数据D输出不同频率的时钟,以改变输出信号的频率。在时钟的作用下,DELTA,SIA,SQUARE,AT_WILL模块分别产生三角波、正弦波、方波和任意波形的波形数据。SELECTOR(数据选择器)在面板上的波形选择开关CORTROL的控制下,选择输出不同的波形数据,送至A/D转换电路。A/D转换采用8位的DAC0832芯片。

2 各模块电路设计

2.1 数控分频器设计

数控分频器的功能是在输入端输入不同数据时,对输入时钟产生不同的分频比,输出不同频率的时钟,以改变输出信号的频率。本设计中利用并行预置数的减法计数器实现,他的工作原理是:减法计数器在并行预置数的基础上,在时钟的作用下进行减计数,当计数值为零时产生溢出信号,加载预置数据,并且将溢出信号作为分频器的输出信号,实现N分频信号输出。其分频系数N为N = D 1。D为预置数的值。为了得到占空比为50%的矩形时钟信号,将输出再进行二分频。由此,该分频器的总分频系数为2N。本设计中一个波形周期由64个时钟信号组成,则输出信号频率为:

pYYBAGKwPwuAUCp0AAAe1mN1lDo362.png

时钟频率为4 MHz。数控分频器如程序1。

[程序1]

--略去申明部分

entity dfr is

port(clk:in std_logic;d:in integer range 0 to 255;fout:out std_logic);

end dfr;

architecture one of dfr is

signal full:std_logic; //定义内部溢出标志信号

begin

process(clk)

variable cnt9:integer range 0 to 312;

//内部变量,位宽同预置数据端

begin

if clk‘event and clk=’1‘ then

if cnt9= 0 then cnt9:=d; //计数值为0时,产生溢出信号

full《=’1‘; //同时,同步加载预置数据d

else cnt9:=cnt9=1;full《=’0‘;//否则,进行减1计数

end if;

end if;

end process;

--略去二分频进程

end one;

2.2 三角波波形数据产生模块设计

该模块可设计一个可逆计数器实现。设计时设置一变量作为工作状态标志,在此变量为全0时,当检测到时钟的上升沿时进行加同一个数操作,为全1时,进行减同一个数操作。由于A/D转换采用8位的DAC0832芯片,且设64个时钟为一个三角波周期,则输出Q每次加/减8。

2.3 正弦波波形数据产生模块设计

用加法计数器和译码电路完成。首先对幅度为1的正弦波的一个周期分为64个采样点,根据正弦波的函数关系计算得到每一点对应的幅度值,然后量化为8位二进制数据,最大值为255,最小值为0,以此得到正弦波波表。加法计数器生成译码电路的64个输入值,译码电路查波表输出。如程序2。

[程序2]

--略去申明和实体部分

architecture one of sia is

begin

process(clk,clr)

variable tmp:integer range 0 to 63;

begin

if clr=’0‘ then q《=0;

elsif clk’event and clk=‘1’ then

if tmp=63 then tmp:=0;

else tmp:=tmp 1;

end if;

case tmp is

--查表输出部分程序

when 00=》 q《=0;when 01=》 q《=1;when 02=》 q《=4;

……

when 29=》 q《=252;when 30=》 q《= 254;when 31=》 q《=255;

……

when 61=》 q《=4;when 62=》 q《=1 when 63=》 q《=0;when others=》 null;

end case;

end if;

end process;

end one;

2.4 方波波形数据产生模块设计

通过交替送出全0和全1,并给以32个时钟延时实现,64个时钟为一个周期。

2.5 任意波波形数据产生模块设计

设计原理同正弦波。译码器查表输出设计方法可以使用户编辑任意波形时,依据所需波表数据,修改CASE语句中条件赋值语句的赋值源数据即可。

2.6 数据选择器设计

用CASE语句设计完成。在CORTROL的控制下选择输出一种波形数据输出,同时完成两种波形的线性组合。波形组合是将波形每一时刻的数值相加,为了不超出DAC0832的输出范围,做相应的除2操作 。如程序3。

[程序3]

--略去申明和实体部分

architecture one of selector is begin

process(delta,sia,square,at_will,cortrol)

variable a:std_logic_vector(9 downto 0);

begin

case cortrol is

when “1000”=》 q《= delta;when “0100”=》 q《= sia;

when “0010”=》 q《= square;when “0001”=》 q《=at_will;

when “1100”=》 a:=“00”& delta sia;q《=a(8 downto 1);

when “1010”=》 a:=“00”& delta square;q《=a(8 downto 1);

when “1001”=》 a:=“00”& delta at_will;q《= a (8 downto 1);

when “0110”=》 a:=“00”& sia square;q《=a(8 downto 1);

when “0101”=》 a:=“00”& sia at_will;q《=a(8 downto 1);

when “0011”=》 a:=“00”& square at_will;q《=a(8 downto 1);

when others= 》 null:

end case;

end process;

end one;

以上各模块电路在Max Plus II开发平台上经编译、仿真符合设计要求后,用原理图输入法完成顶层电路的设计、综合,最后下载至型号为EPM7256SR208-15的CPLD芯片中,最终完成硬件电路连接。经测试符合设计要求。用Multisim仿真器仿真波形如图2所示。

poYBAGKwPxOAZvOzAACWqkOnHyw918.png

图2中左图为正弦波 方波的输出波形,右图为三角波波形。从对输出10种波形的测试结果看:在整个频率范围内,频率误差最大为设计值的0.8%,最小为0.2%,低于传统的函数信号发生器的频率误差。

3 结语

实验表明,基于CPLD的多波形信号发生器实现了各种波形的产生,尤其是实现了传统的函数信号发生器不具有的一些波形的产生。输出波形频率按设计要求可调,并达到一定的精度。满足了教学实验和开发新的实验项目对特殊波形的要求。整个设计采用VHDL编程实现,其

设计过程简单,极易修改,可移植性强。另外由于CPLD具有可编程重置特性,因而可以方便地更换波形数据,且简单易行,所以为教学带来极大的方便。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpld
    +关注

    关注

    32

    文章

    1243

    浏览量

    168284
  • 仿真器
    +关注

    关注

    14

    文章

    988

    浏览量

    82988
  • 信号发生器
    +关注

    关注

    28

    文章

    1275

    浏览量

    107768
收藏 人收藏

    评论

    相关推荐

    制作多波形发生器信号发生器,简单的 #硬声创作季

    DIY波形信号发生器波形发生器
    jf_49750429
    发布于 :2022年10月29日 17:27:02

    用555制作的波形信号发生器

    用555制作的波形信号发生器波形信号
    发表于 10-17 17:21

    浅谈任意波形信号发生器

    信号发生器是工程师们经常使用的电子测量仪器,但要选择一款性能突出的信号发生器,OWON AG系列任意波形
    发表于 09-19 11:18

    请问labview双通道虚拟信号发生器如何设计?

    设计虚拟信号发生器能在双通道产生正弦波、三角波、方波、锯齿波等基本波形。此外还能产生加高斯白噪声波、频波和任意公式信号波型。最终设计的虚拟
    发表于 04-11 11:14

    请问怎么设计一个波形信号发生器

    怎么设计一个波形信号发生器
    发表于 04-20 06:35

    函数信号发生器是否与任意波形信号发生器相同

    都是用的鼎阳的产品推荐Liquid Instruments的多功能一体式测试测量设备Moku:Lab,集成了信号发生器、任意波形发生器、锁相放大器、示波器、频谱
    发表于 03-18 17:38

    实用的多种波形信号发生器电路

    实用的多波形信号发生器电路 信号发生器在电子产品研发过程中使用广泛,但对于电子爱好者来说,个人购买一台
    发表于 06-13 10:28 195次下载

    波形信号发生器

    波形信号发生器:由555芯片组成,可产生正弦波,三角形波,方波。
    发表于 10-17 17:21 4076次阅读
    多<b class='flag-5'>波形</b><b class='flag-5'>信号</b><b class='flag-5'>发生器</b>

    简易多波形信号发生器电路设计

    信号发生器在电子实验中作为信号源,通常用得多的是正弦波、三角波、方波以及用作触发信号的脉冲波。本次制作的是能产生九种波形
    发表于 02-29 11:08 4975次阅读
    简易多<b class='flag-5'>波形</b><b class='flag-5'>信号</b><b class='flag-5'>发生器</b>电路设计

    基于DDS的可编程的波形发生器

    给予DDS可编程的波形发生器,对三个不同频段的波形信号进行分析
    发表于 11-02 17:22 3次下载

    脉冲信号发生器原理

    脉冲信号发生器信号发生器的一种。信号发生器信号
    发表于 10-26 17:09 2.1w次阅读
    脉冲<b class='flag-5'>信号</b><b class='flag-5'>发生器</b>原理

    信号发生器和任意波形发生器的区别是什么

    现在很多一起都把信号发生器和任意波形发生器做到了一起,差别不大。如果要把低频信号调制到高频射频信号
    发表于 03-28 16:55 2661次阅读

    是德信号发生器导入波形教程

    的导入波形是指将外部的模拟信号输入到发生器中,经过发生器的处理,将信号变换成指定的波形,从而实现
    的头像 发表于 02-24 14:16 949次阅读
    是德<b class='flag-5'>信号</b><b class='flag-5'>发生器</b>导入<b class='flag-5'>波形</b>教程

    关于波形发生器,你知道多少?

    信号发生器系列波形发生器你知道多少?虹科信号发生器系列波形
    的头像 发表于 08-05 08:07 1970次阅读
    关于<b class='flag-5'>波形</b><b class='flag-5'>发生器</b>,你知道多少?

    信号发生器的特点 信号发生器可以产生哪些波形

    信号发生器的特点 信号发生器可以产生哪些波形信号发生器
    的头像 发表于 12-21 15:05 710次阅读