一种基于CPLD的PWM控制电路设计

2007-03-09 19:03:27来源: 互联网
摘要:介绍了利用硬件描述语言VHDL设计的一种基于CPLD的PWM控制电路,该PWM控制电路具有PWM开关频率可调,同侧2路信号互锁、延时时间可调、接口简单等特点,可应用于现代直流伺服系统。 关键词:PWM控制电路 CPLD VHDL 在直流伺服控制系统中,通过专用集成芯片或中小规模的数字集成电路构成的传统PWM控制电路往往存在电路设计复杂,体积大,抗干扰能力差以及设计困难、设计周期长等缺点因此PWM控制电路的模块化、集成化已成为发展趋势。它不仅可以使系统体积减小、重量减轻且功耗降低,同时可使系统的可靠性大大提高。随着电子技术的发展,特别是专用集成电路(ASIC)设计技术的日趋完善,数字化的电子自动化设计(EDA)工具给电子设计带来了巨大变革,尤其是硬件描述语言的出现,解决了传统电路原理图设计系统工程的诸多不便。针对以上情况,本文给出一种基于复杂可编程逻辑器件(CPLD)的PWM控制电路设计和它的仿真波形。 1 PWM控制电路基本原理 为了实现直流伺服系统的H型单极模式同频PWM可逆控制, 一般需要产生四路驱动信号来实现电机的正反转切换控制。当PWM控制电路工作时,其中H桥一侧的两路驱动信号的占空比相同但相位相反,同时随控制信号改变并具有互锁功能;而另一侧上臂为低电平,下臂为高电平。另外,为防止桥路同侧对管的导通,还应当配有延时电路。设计的整体模块见图1所示。其中,d[7:0]矢量用于为微机提供调节占空比的控制信号,cs为微机提供控制电机正反转的控制信号,clk为本地晶振频率,qout[3:0]矢量为四路信号输出。其内部原理图如图2所示。 该设计可得到脉冲周期固定(用软件设置分频器I9可改变PWM开关频率,但一旦设置完毕,则其脉冲周期将固定)、占空比决定于控制信号、分辨力为1/256的PWM信号。I8模块为脉宽锁存器,可实现对来自微机的控制信号d[7:0]的锁存,d[7:0]的向量值用于决定PWM信号的占空比。clk本地晶振在经I9分频模块分频后可为PWM控制电路中I12计数器模块和I11延时模块提供内部时钟。I12计数器在每个脉冲的上升沿到来时加1,当计数器的数值为00H或由0FFH溢出时,它将跳到00H时,cao输出高电平至I7触发器模块的置位端,I7模块输出一直保持高电平。当I8锁存器的值与I12计数器中的计数值相同时,信号将通过I13比较器模块比较并输出高电平至I7模块的复位端,以使I7模块输出低电平。当计数器再次溢出时,又重复上述过程。I7为RS触发器,经过它可得到两路相位相反的脉宽调制波,并可实现互锁。I11为延时模块,可防止桥路同侧对管的导通,I10模块为脉冲分配电路,用于输出四路满足设计要求的信号。CS为I10模块的控制信号,用于控制电机的正反转。 2 电路设计 本设计采用的是Lattice半导体公司推出的is-plever开发平台,该开发平台定位于复杂设计的简单工具。它采用简明的设计流程并完整地集成了Leonardo Spectrum的VHDL综合工具和ispVMTM系统,因此,无须第三方设计工具便可完成整个设计流程。在原理设计方面,本设计采用自顶向下、层次化、模块化的设计思想,这种设计思想的优点是符合人们先抽象后具体,先整体后局部的思维习惯。其设计出的模块修改方便,不影响其它模块,且可重复使用,利用率高。本文仅就原理图中的I12计数器模块和I11延迟模块进行讨论。 计数器模块的VHDL程序设计如下: entity counter is port(clk: in std logic; Q : out std logic vector(7 downto 0); cao: out std_logic); end counter; architecture a_counter of counter is signal Qs: std_logic_vector(7 downto 0); signal reset: std_logic; signal caolock: std_logic; begin process(clk,reset) begin if(reset=‘1')then Qs<=“00000000”; elsif clk'event and clk=‘1' then Qs<=Qs+‘1'; end if; end process; reset<=‘1' when Qs=255 else ‘0'; caolock<=‘1' when Qs=0 else ‘0'; Q<=Qs; cao<=reset or caolock; end a_counter; 图2 PWM可逆控制电路原理图 在原理图中,延迟模块必不可少,其功能是对PWM波形的上升沿进行延时,而不影响下降沿,从而确保桥路同侧不会发生短路。其模块的VHDL程序如下: entity delay is port(clk: in std_logic; input: in std_logic_vector(1 downto 0); output:out std_logic_vector(1 downto 0) end delay; architecture a_delay of delay is signal Q1,Q2,Q3,Q4: std_logic; begin process(clk) begin if clk'event and clk=‘1' then Q3<=Q2; Q2<=Q1; Q1<=input(1); end if; end process; Q4<=not Q3; output(1)<=input(1)and Q3; output(0)<=input(0)and Q4; end a_delay; 图3为原理图中的若干信号的波形仿真图。 3 结束语 采用可编程逻辑器件和硬件描述语言,同时利用其供应商提供的开发工具可大大缩短数字系统的设计时间,节约新产品的开发成本,另外,还具有设计灵活,集成度高,可靠性好,抗干能力强等特点。本文设计的PWM控制电路用于某光测设备的传动装置时,取得了良好的效果。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/power/200703/12583.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved