预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

6一种基于CPLD的PWM控制电路设计2008年08月04日社区交流-介绍了利用硬件描述语言VHDL设计的一种基于CPLD的PWM控制电路该PWM控制电路具有PWM开关频率可调同侧2路信号互锁、延时时间可调、接口简单等特点可应用于现代直流伺服系统。在直流伺服控制系统中通过专用集成芯片或中小规模的数字集成电路构成的传统PWM控制电路往往存在电路设计复杂体积大抗干扰能力差以及设计困难、设计周期长等缺点因此PWM控制电路的模块化、集成化已成为发展趋势.它不仅可以使系统体积减小、重量减轻且功耗降低同时可使系统的可靠性大大提高.随着电子技术的发展特别是专用集成电路(ASIC)设计技术的日趋完善数字化的电子自动化设计(EDA)工具给电子设计带来了巨大变革尤其是硬件描述语言的出现解决了传统电路原理图设计系统工程的诸多不便.针对以上情况本文给出一种基于复杂可编程逻辑器件(CPLD)的PWM控制电路设计和它的仿真波形.1PWM控制电路基本原理为了实现直流伺服系统的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开发平台该开发平台定位于复杂设计的简单工具.它采用简明的设计流程并完整地集成了LeonardoSpectrum的VHDL综合工具和ispVMTM系统因此无须第三方设计工具便可完成整个设计流程.在原理设计方面本设计采用自顶向下、层次化、模块化的设计思想这种设计思想的优点是符合人们先抽象后具体先整体后局部的思维习惯.其设计出的模块修改方便不影响其它模块且可重复使用利用率高.本文仅就原理图中的I12计数器模块和I11延迟模块进行讨论.计数器模块的VHDL程序设计如下:entitycounterisport(clk:instdlogic;Q:outstdlogicvector(7downto0);cao:outstd_logic);endcounter;architecturea_counterofcounterissignalQs:std_logic_vector(7downto0);signalreset:std_logic;signalcaolock:std_logic;beginprocess(clkreset)beginif(reset=‘1')thenQs<=“00000000”;elsifclk'eventandclk=‘1'thenQs<=Qs+‘1';endif;endprocess;reset<=‘1'whenQs=255else‘0';caolock<=‘1'whenQs=0else‘0';Q<=Qs;cao<=resetorcaolock;enda_counter;在原理图中延迟模块必不可少其功能是对PWM波形的上升沿进行延时而不影响下降沿从而确保桥路同侧不会发生短路.其模块的VHDL程序如下:entityde