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

    文章

    1243

    浏览量

    168269
  • 脉冲发生器
    +关注

    关注

    5

    文章

    162

    浏览量

    33793
  • DDS
    DDS
    +关注

    关注

    21

    文章

    614

    浏览量

    151714
收藏 人收藏

    评论

    相关推荐

    详细讲解高压脉冲发生器

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

    脉冲发生器电路原理图

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

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

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

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

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

    请问超声波发生器脉冲怎么调节?

    超声波发生器脉冲怎么调节?
    发表于 10-17 06:20

    Agilent81130A脉冲数据发生器介绍

    Agilent81130A脉冲数据发生器 Keysight 81130A (Agilent) 脉冲数据发生器主机与一个或两个 Keysight 81131A (Agilent) 输出模
    发表于 09-06 17:14 6次下载

    如何用jk触发器组成单脉冲发生器

    强、可控性强的触发器。因此,在这篇文章中,我们将详细介绍如何使用JK触发器组成单脉冲发生器。 1. JK触发器 在开始编写单脉冲发生器之前,
    的头像 发表于 08-24 15:50 1960次阅读

    序列脉冲发生器需要多少个触发器?

    序列脉冲发生器需要多少个触发器? 序列脉冲发生器(Sequence Pulse Generator)通常用于产生周期性的数字脉冲序列,可以被
    的头像 发表于 08-24 15:50 1752次阅读

    脉冲发生器工作原理 脉冲信号怎么产生?产生脉冲信号的方法

    脉冲发生器工作原理 脉冲信号怎么产生?产生脉冲信号的方法  脉冲发生器是一种能够产生高频
    的头像 发表于 08-24 15:49 4951次阅读

    脉冲发生器是什么意思?脉冲发生器怎么使用?

    脉冲发生器是什么意思?脉冲发生器怎么使用? 脉冲发生器是一种电子设备,可以生成不同类型的
    的头像 发表于 08-24 15:18 2407次阅读

    脉冲发生器输出是1吗?信号发生器怎么只发一个脉冲

    脉冲发生器输出是1吗?信号发生器怎么只发一个脉冲脉冲发生器和信号
    的头像 发表于 08-24 15:18 1000次阅读

    脉冲发生器电路图和工作原理讲解

    脉冲发生器可在其输出端提供多达 12 个脉冲,具体取决于十六进制开关 S 2 – S 3的设置。
    的头像 发表于 08-03 17:36 3465次阅读
    <b class='flag-5'>脉冲</b><b class='flag-5'>发生器</b>电路图和工作原理讲解

    关于脉冲发生器,你知道多少?

    关于脉冲发生器,你知道多少?01引言脉冲发生器(PulseGenerator,PG)是产生脉冲
    的头像 发表于 07-31 22:24 2502次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>脉冲</b><b class='flag-5'>发生器</b>,你知道多少?

    安泰测试:DG535脉冲信号发生器好不好?

    DG535脉冲信号发生器是一款功能丰富、稳定可靠的仪器,被广泛应用于科研、教学、通信等领域。它具有多种信号发生和调制功能,能够产生高质量的脉冲信号。本文将详细介绍DG535
    的头像 发表于 07-18 17:49 630次阅读
    安泰测试:DG535<b class='flag-5'>脉冲</b>信号<b class='flag-5'>发生器</b>好不好?

    脉冲发生器开源硬件

    电子发烧友网站提供《脉冲发生器开源硬件.zip》资料免费下载
    发表于 06-08 10:17 3次下载
    <b class='flag-5'>脉冲</b><b class='flag-5'>发生器</b>开源硬件