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

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

3天内不再提示

浅谈关于CPLD的多路可控脉冲发生器设计

电子工程师 来源:《微型机与应用》 作者:骆国庆,俞建定, 2021-04-07 11:18 次阅读

摘 要: 针对伺服电机控制系统中的脉冲发送需求问题,提出了一种利用DDS技术,以单片机和CPLD硬件基础的脉冲输出频率、个数可控的脉冲发生器设计方案。利用Quartus II软件进行了波形仿真并分析了结果。研究结果表明,采用该方案实现的脉冲发生器具有体积小、成本低和可靠性高等特点,而且该脉冲发生器控制简单,输出脉冲频率控制精度高,满足了伺服电机控制系统中的脉冲发送需求。

随着工业自动化的发展,伺服电机的应用越来越广泛。伺服电机主要靠脉冲来定位,其基本的工作原理是伺服电机接收到1个脉冲,旋转1个脉冲对应的角度来实现位移,而脉冲的频率会影响电机旋转速度[1]。同时,自动化过程中,常常需要多个伺服电机的联合运动。因此,研究能够输出多路频率、脉冲数可控的脉冲发生器就很有必要。由于复杂可编程逻辑器件(CPLD)具有I/O口多、设计灵活、集成度高和稳定性好的优点[2],因此,本设计以CPLD为硬件平台,实现了一种脉冲频率、脉冲个数都可控的脉冲发生器。

1 脉冲发生器整体系统框图

001.jpg

根据要求所需,设计了图1所示的脉冲发生器系统。上位机发送脉冲频率、个数等命令,通过RS485通信单片机,单片机再将命令通过数据总线传递给CPLD,CPLD的I/O输出多路可控脉冲信号。本设计中,CPLD为整个脉冲发生器系统的核心所在。

2 脉冲发生器的设计原理

002.jpg

CPLD部分的硬件结构如图2所示。设计所用的CPLD芯片Altera公司的EPM1270T144,采用VHDL语言,外部晶振时钟频率为25 MHz。CPLD内部有预分频、地址译码模块、输入缓冲、DDS分频模块及计数器模块,数据、地址复用总线位宽8位。

2.1 地址译码模块

CPLD中设计了三路脉冲输出,这就使得计数模块、分频模块需要多组寄存器来存储相应的数据。因此,设计了地址译码模块方便单片机与之数据通信。14、24、34(十六进制)分别对应计数器模块内三个脉冲个数寄存器的地址,可读写寄存器的值;10、20、30(十六进制)分别是DDS分频模块内三个频率控制字M的寄存器地址,可写入寄存器的值;地址96(十六进制)对应的寄存器低三位控制三路脉冲输出使能。

2.2 输入输出缓冲

为构成芯片内部的总线系统,使数据的写入读出都能正确,输入输出缓冲采用双向端口的总线电路。设计程序如下:

entity bustri is

port

datain:in std_logic_vector(7 downto 0);

rd_en:in std_logic;

wr_en:in std_logic;

tridata:inout std_logic_vector(7 downto 0);

dataout:out std_logic_vector(7 downto 0));

end bustri;

architecture one of bustri is

begin

process(wr_en,tridata)

begin

if wr_en=′0′ then

dataout《=tridata;

else dataout《=“ZZZZZZZZ”;

end if;

end process;

process(rd_en,datain)

begin

if(rd_en=′0′)then

tridata《=datain;

else tridata《=“ZZZZZZZZ”;

end if;

end process;

单片机先通过数据、地址复用总线给CPLD输入地址,地址译码模块将地址译码,使对应的寄存器输入使能;再通过输入输出缓冲写频率、脉冲个数数据给对应的寄存器;然后将脉冲输出使能,即可使脉冲输出。

2.3 DDS分频模块

DDS分频模块用来控制输出脉冲的频率。DDS技术是一种从相位概念出发直接合成所需波形的频率合成技术[3]。DDS分频模块由相位累加器、正余弦波形查找表ROM存储器、D/A转换器和低通滤波器构成,其基本原理框图如图3所示。相位累加器在系统时钟控制下产生正余弦波形查找表ROM的地址,相位溢出频率即正余弦波输出频率。

通过改变频率控制字的大小就可以改变输出信号的频率。记频率控制字为M,正余弦波相位寄存器为N位,系统时钟为fc,则输出信号的频率fout可表示为fout=M·fc/2N。它的频率精度是由相位累加器或者是调整字的比特数决定的,即输入的参考频率除以2N,就决定了DDS所能够实现的频率精度[4],因此其频率分辨率为fmin=fc/2N。同时,通过给相位累加器额外加一个相位控制字K,可以控制输出信号的初始相位。

图3中,外部晶振fc为25 MHz,通过预分频模块进行四分频,变为6.25 MHz,作为DDS分频模块的输入时钟fc。频率控制字M为15位,相位寄存器21位。查找表内存放方波数据。因此,可根据上述公式计算得出输出脉冲频率的精度为3 Hz,变化范围约为3 Hz~100 kHz。DDS模块内有三个相同的频率控制模块,每个模块设计框图如图4所示。

004.jpg

图4中,设计的频率控制字查找表是256×15的ROM存储器,存放了在3 Hz~100 kHz范围内均匀采样256个离散点的频率,所对应的频率控制字M的值。其地址范围为00~FF(十六进制),低地址对应小的M值,M值随地址的增大而增大。M字的位宽为15位,数据总线8位,如正常写数据需要写两次,利用频率控制字查找表可以更加方便地设置频率控制字,写一次数据就可以改变M字的值。方波查找表内存放的是256×1的方波数据。单片机写入地址10、20、30(十六进制)后,通过8位的数据线写00~FF(十六进制)值给频率控制字查找表,查找表将对应的M字传给频率控制字M的寄存器。经过相位累加器累加,累加器的高8位作为地址送入方波查找表,查找表就可以输出频率不同的脉冲信号给计数器模块。

2.4 计数器模块

计数器模块用来控制输出脉冲的个数。计数器模块内有三组8位的脉冲个数寄存器。脉冲个数寄存器需要被赋予目标脉冲个数;待其他寄存器设置好后,单片机发送使能脉冲输出;DDS分频模块发送频率不同的脉冲送入计数器模块;计数器模块内部计数变量会根据输出的脉冲个数进行累加,当计数变量累加到目标脉冲数后,计数变量停止累加,并且脉冲输出也会被停止。

3 脉冲发生器总体仿真结果分析

本设计利用Quartus II软件进行波形仿真,仿真结果如图5所示。

005.jpg

图5中,XOSC为外部晶振时钟25 MHz;ale为地址使能,下降沿有效;rd为读使能,低电平有效;wr为写使能信号,低电平有效;AD为数据总线,显示方式为十六进制;MYA为三路脉冲输出;地址14对应的脉冲个数寄存器及地址10对应的频率控制字M的寄存器,控制MYA(0)的脉冲输出,地址24、20对应的寄存器控制MYA(1)输出,地址34、30对应的寄存器控制MYA(2)的脉冲输出。

由图5可以看出,地址14对应的脉冲个数寄存器写入的值是10,转换成十进制为16,MYA(0)输出脉冲个数即为16;地址24对应的脉冲个数寄存器写入的值是05,转换成十进制为5,MYA(1)输出脉冲个数即为5;地址10对应的频率控制字M的寄存器写入的值是FF,对应的M值最大,即输出频率应为100 kHz,而图5中,时间长度从230 ?滋s~270 ?滋s间,MYA(0)输出完整脉冲4个,计算出MYA(0)输出脉冲的周期约为10 ?滋s,对应频率即为100 kHz;地址20对应的频率控制字M的寄存器写入的值是7F,对应的M值为最大的一半,即输出频率应为50 kHz,由图5可以看出,MYA(1)输出的脉冲波形频率为MYA(0)的一半,对应即为50 kHz。使能脉冲输出后,通过写地址30改写MYA(2)的频率控制字M的值由47变为21,MYA(2)的脉冲输出频率正确改变。由上述分析可得,脉冲发生器产生的脉冲个数、频率均能随着指令的改变而正确改变。仿真结果验证了该方案的可行性。

本文介绍了一种利用DDS技术,通过单片机和CPLD来实现的脉冲输出频率、个数可控的脉冲发生器设计方案,且通过软件仿真验证了该方案的可行性。该方案在伺服电机的控制中也得到了实际应用,效果良好。采用该方案实现的脉冲发生器不仅具有CPLD的体积小、成本低、功耗低、集成度高、系统稳定性和可靠性高等特点,而且结合了DDS技术的特点及优势,控制简单,输出脉冲频率控制精度高,满足了伺服电机控制系统中的脉冲发送需求。

参考文献

[1] 刘树聃,王琳。基于MCU和CPLD的脉冲发生器[J]。微计算机信息,2012,28(9):121-122.

[2] 宋万杰,罗丰,吴顺君.CPLD技术及其应用[M]。西安:电子科技大学出版社,1999.

[3] 张楠,张根栋。基于DDS技术的全数字QPSK调制器的设计[J]。工矿自动化,2009(7):105-107.

[4] 李涛,高德远.DDS直接数字合成研究及其CPLD实现[J]。计算机工程与应用,2000,36(12):72-73

[5] 王强,陈阳。可调多脉冲时序发生电路的数字化设计[J]。电子测量技术,2009,32(8):28-31.

[6] 耶晓东。基于单片机的简易机械手的设计[J]。微计算机信息,2009,25(5-2):230-231.

[7] Altera Corpration. MAX 7000 Programmable Logic Device Family[Z]。 USA:Altera Corpration,2003.

[8] 金西.VHDL与复杂数字系统设计[M].西安:西安电子科技大学出版社,2003.

[9] 游志宇,董秀成,杜杨,等.单片机与FPGA/CPLD总线接口逻辑设计[J].微计算机信息,2008(29):121-123.

[10] 梁中华,肖丹,杨霞。一种基于CPLD的SPWM控制波形生成方法[J]。沈阳工业大学学报,2005,27(2):187-191.

[11] 秦继荣,沈安俊。现代直流伺服控制技术及其系统设计[M]。北京:机械工业出版社,1993.

[12] 赵正新,高超。脉冲信号源的CPLD实现方法[J]。电子科技,2009,22(2):47-50.

编辑:jq

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

    关注

    32

    文章

    1247

    浏览量

    169176
  • 脉冲发生器
    +关注

    关注

    5

    文章

    173

    浏览量

    34126
  • DDS
    DDS
    +关注

    关注

    21

    文章

    630

    浏览量

    152510
收藏 人收藏

    评论

    相关推荐

    泰克信号发生器脉冲模式应用

    泰克信号发生器在工程和科学领域得到了广泛的应用,其高精度和灵活性使其成为实验室和生产环境中的重要工具之一。在各种应用中,泰克信号发生器脉冲模式应用尤其值得注意。本文将探讨泰克信号发生器
    的头像 发表于 10-22 17:00 123次阅读
    泰克信号<b class='flag-5'>发生器</b><b class='flag-5'>脉冲</b>模式应用

    可编程按钮、脉冲检测脉冲发生器解决方案

    电子发烧友网站提供《可编程按钮、脉冲检测脉冲发生器解决方案.pdf》资料免费下载
    发表于 09-18 11:22 0次下载
    可编程按钮、<b class='flag-5'>脉冲</b>检测<b class='flag-5'>器</b>和<b class='flag-5'>脉冲</b><b class='flag-5'>发生器</b>解决方案

    脉冲发生器的用途有哪些

    脉冲发生器作为一种重要的电子设备,在多个领域发挥着至关重要的作用。其用途广泛,涵盖了科学研究、工业检测、医学诊断、雷达信号处理、通信调制以及自动化控制等多个方面。
    的头像 发表于 08-12 17:25 696次阅读

    脉冲发生器的工作模式是什么

    脉冲发生器作为一种重要的电子设备,在科学研究、工业检测、医学诊断、雷达应用以及通信领域等多个方面发挥着关键作用。其工作模式复杂而精细,涉及多个组件的协同工作。
    的头像 发表于 08-12 17:17 353次阅读

    信号发生器如何输出单脉冲信号?

    信号发生器是一种电子设备,用于生成具有特定特性的电信号,如正弦波、方波、脉冲等。在测试和测量电子系统中,信号发生器用于提供已知的输入信号。
    的头像 发表于 05-30 17:45 1976次阅读

    脉冲信号发生器的主要功能和作用

    脉冲信号发生器,作为一种关键的电子测试设备,在现代科研、工业生产和军事领域中发挥着不可替代的作用。其独特之处在于能够产生各种频率、宽度和幅度的脉冲信号,为各种电子设备和系统的测试提供了强有力的支持。本文将对
    的头像 发表于 05-20 18:26 1873次阅读

    脉冲信号发生器的主要原理和组成结构

    脉冲信号发生器,作为一种重要的电子测试设备,在通信、雷达、电子测量等多个领域发挥着关键作用。它能够产生具有特定频率、幅度、占空比等参数的脉冲信号,为各种电子系统的测试、校准和验证提供了有效的手段。本文将详细探讨
    的头像 发表于 05-15 14:52 2019次阅读

    多路信号发生器的设计与优化

    模块在多路信号发生器中起到关键作用,它能够将振荡输出的信号进行频率分割,生成多路不同频率的信号。
    的头像 发表于 04-30 12:47 918次阅读

    脉冲发生器输出的是什么信号 脉冲信号发生器原理

    脉冲发生器的主要作用是产生一种特定参数的电脉冲信号,为实验、测试、计量和控制等方面提供稳定而精确的时序基准。它的输出信号可以是方波、矩形波、三角波和锯齿波等多种波形。
    的头像 发表于 04-27 10:40 2066次阅读
    <b class='flag-5'>脉冲</b><b class='flag-5'>发生器</b>输出的是什么信号 <b class='flag-5'>脉冲</b>信号<b class='flag-5'>发生器</b>原理

    脉冲发生器的分类 脉冲发生器的怎么设置参数

    脉冲发生器(Pulse Generator)是一种电子仪器,用于生成特定形状和特征的脉冲信号。它通常用于电子测试、实验室研究以及其他需要控制脉冲信号的应用中。
    的头像 发表于 04-27 10:39 2010次阅读

    详细讲解高压脉冲发生器

    电路脉冲发生器
    深圳崧皓电子
    发布于 :2024年03月18日 07:50:45

    浅谈任意波形发生器及通道合并功能

    浅谈任意波形发生器及通道合并功能  任意波形发生器(AWG)是一种能够产生各种复杂波形的信号发生器。它可以通过调节其输出信号的幅值、频率、相位等参数,生成任意形状的波形,包括正弦波、方
    的头像 发表于 01-19 15:54 580次阅读

    脉冲发生器电路原理图

    脉冲发生器最多可在输出端生成 12 个脉冲。数量由十六进制开关S2和S3的配置决定。矩形脉冲由 IC3c 产生,其电路值如所示,其脉冲重复
    的头像 发表于 12-21 17:20 2209次阅读
    <b class='flag-5'>脉冲</b><b class='flag-5'>发生器</b>电路原理图

    信号发生器如何发出双脉冲

    信号发生器如何发出双脉冲? 信号发生器是一种用于产生各种信号波形的仪器。双脉冲信号是一种特殊的信号波形,由两个脉冲组成,通常用于测试和测量系
    的头像 发表于 12-21 15:03 1964次阅读

    信号发生器如何设置双窄脉冲同步输出?

    信号发生器如何设置双窄脉冲同步输出? 信号发生器是一种使用电子设备产生以下类型信号的仪器:连续波形、脉冲波形、调幅波形、调频波形等。双窄脉冲
    的头像 发表于 12-21 14:13 1228次阅读