版主
主题
回帖0
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
在直流伺服控制系统中,通过专用集成芯片或中小规模的数字集成电路构成的传统PWM控制电路往往存在电路设计复杂,体积大,抗干扰能力差以及设计困难、设计周期长等缺点?因此PWM控制电路的模块化、集成化已成为发展趋势.它不仅可以使系统体积减小、重量减轻且功耗降低,同时可使系统的可靠性大大提高.随着电子技术的发展,特别是专用集成电路(ASIC)设计技术的日趋完善,数字化的电子自动化设计(EDA)工具给电子设计带来了巨大变革,尤其是硬件描述语言的出现,解决了传统电路原理图设计系统工程的诸多不便.针对以上情况,本文给出一种基于复杂可编程逻辑器件(CPLD)的PWM控制电路设计和它的仿真波形.
8 v- T0 n; g) P0 B( _' t8 e' f1 a0 P( N$ G
1 PWM控制电路基本原理
" |( r- K9 f! T% t# N E' c, z# v: B4 v8 @
为了实现直流伺服系统的H型单极模式同频PWM可逆控制,一般需要产生四路驱动信号来实现电机的正反转切换控制.当PWM控制电路工作时,其中H桥一侧的两路驱动信号的占空比相同但相位相反,同时随控制信号改变并具有互锁功能;而另一侧上臂为低电平,下臂为高电平.另外,为防止桥路同侧对管的导通,还应当配有延时电路.设计的整体模块见图1所示.其中,d[7:0]矢量用于为微机提供调节占空比的控制信号,cs为微机提供控制电机正反转的控制信号,clk为本地晶振频率,qout[3:0]矢量为四路信号输出.其内部原理图如图2所示.
1 d G( E0 ]2 W" H 该设计可得到脉冲周期固定(用软件设置分频器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模块的控制信号,用于控制电机的正反转. 8 A+ e& X) `: j; ?6 C
1 p0 |- n9 M8 Z8 E8 d1 U! \ 2 电路设计
0 H3 O' z% i j+ _( p% ~8 K( E3 {& r$ I U N! C, r1 Y
本设计采用的是Lattice半导体公司推出的is-plever开发平台,该开发平台定位于复杂设计的简单工具.它采用简明的设计流程并完整地集成了Leonardo Spectrum的VHDL综合工具和ispVMTM系统,因此,无须第三方设计工具便可完成整个设计流程.在原理设计方面,本设计采用自顶向下、层次化、模块化的设计思想,这种设计思想的优点是符合人们先抽象后具体,先整体后局部的思维习惯.其设计出的模块修改方便,不影响其它模块,且可重复使用,利用率高.本文仅就原理图中的I12计数器模块和I11延迟模块进行讨论.
" ?+ F& ^ ?1 t1 O# n, S! d G/ e. V: C, e0 ^/ l" m9 O
计数器模块的VHDL程序设计如下: 1 B& B8 U6 J4 R0 |
& C$ T( N, V- W v
entity counter is - C) ~* C: x7 j, E
9 X$ ^ c7 N: F: G2 @+ g port(clk: in std logic; 8 g q' @+ ?2 t4 w8 L& |6 o# |- |
0 C) g; D) d+ V2 x3 X+ X$ ]+ `5 H Q : out std logic vector(7 downto 0); 0 R* s+ a6 f' D5 ^0 G, M
" D' f9 s0 N4 l6 c. l
cao: out std_logic); % V% q$ N6 n# O- M
8 j2 @% V7 c0 _8 a
end counter; 4 [6 _' |: I O8 h( x( V. W
. H8 Y0 a/ M8 F# o" \ k3 E- \3 c
architecture a_counter of counter is
G5 {! i/ |0 S( g/ A) r c( X$ U% r0 Y/ T
signal Qs: std_logic_vector(7 downto 0);
1 ?) @& R' N9 ?5 E2 ~ N
B9 u# d4 o* S0 a1 g signal reset: std_logic;
# k# G6 @7 u1 x0 L: ~- R4 u C7 y4 d# _% _, y8 V0 D/ n' p
signal caolock: std_logic; 7 T2 m+ c' S+ y
1 A* }$ ^+ |+ \ begin
2 J/ K3 _1 D5 O" b; ^5 Z1 O+ W/ v. I' y# d$ h. o. u! g
process(clk,reset) / U* _ ]& c6 g3 h
6 M: S: y4 k$ k! \! S; e% a! x9 a9 q
begin
" K& H8 C, B$ l3 H5 G. m! N5 G) n
; g$ Q9 |6 ?( H! W6 b# y- l if(reset=‘1')then
, A. E3 S& A+ j/ C# g; O+ y
" ?) _0 Q% ?! R$ x8 N# m0 n Qs<=“00000000”; " W* N8 d0 U+ K( G4 U
2 p+ @) j% i' ]9 @! p
elsif clk'event and clk=‘1' then
9 z* o1 C0 [: C6 R- K8 V7 D) S1 x: z1 S; j2 c
Qs<=Qs+‘1';
. S5 s; b& w; t8 U& A3 ^8 C5 B
. f* Q5 l) Z" ]- J+ h; u0 T end if; + f7 @* s5 H6 C( ?2 j6 d
8 O0 k2 W1 R+ p7 L
end process;
2 ^ g' W. L; X# a- d4 e
% |+ C$ I# }$ z+ ] reset<=‘1' when Qs="255" else
4 m9 S S- [+ L: e- H; p
! L% c0 t% N% s5 Z3 W ‘0'; ; A1 }3 J, S$ i7 r6 G2 N
# g3 r% N2 m# s+ j% S: w caolock<=‘1' when Qs="0" else
9 M( a8 G9 Z7 W9 ]1 s0 i0 X7 a$ Z- n7 a4 ^' z+ _
‘0';
0 w+ t0 ?/ y1 `( W( E2 d9 P: N7 G5 `" {5 n4 k* c/ P: n! u
Q<=Qs;
/ y) j% z, v/ {) y" x* f3 A" \# a3 d! x; ?: a' G% `, V( m3 w
cao<=reset or caolock;
" C8 m- O3 ^0 A+ c! r: H9 Z' r* v( G# H; R* U6 g( N( y( U3 O
end a_counter;
- }9 E m/ [9 I) V2 d! t8 Q+ {
, I: H! E5 w& }在原理图中,延迟模块必不可少,其功能是对PWM波形的上升沿进行延时,而不影响下降沿,从而确保桥路同侧不会发生短路.其模块的VHDL程序如下: # d7 V9 Y0 a- n" w4 e
+ w4 H4 f' T L entity delay is
: g- q: N- T- i9 d. Z3 k0 K1 [+ w% W" \! [8 \5 T2 E
port(clk: in std_logic;
" a3 G5 {/ L Z: Q7 r
5 O/ V6 R- n# c' Q input: in std_logic_vector(1 downto 0);
$ m; v6 `) h; {5 U' s, j J3 l6 E% S& U; e, o8 F. ?& s8 i7 A
output:out std_logic_vector(1 downto 0) . H& n- l3 C+ e. `6 S8 v [+ ~6 R% e% z
" T: N* \/ ~8 y end delay; : R# ~* c# i) f
' R7 G. g, ~$ j P# x/ ~ architecture a_delay of delay is
5 K* S7 _; M: n* l" k. C, z% f; `- N
signal Q1,Q2,Q3,Q4: std_logic; : L# r7 `; g% d
1 j8 D7 U8 a$ J+ P$ Y; v, ` begin . w' _5 X5 n: ] F* {. p
9 e- V3 @# T" [, i/ o. m: G
process(clk)
* V% g2 c! J3 f- H
) a3 J+ N) v) M7 e begin ) j2 n# [* e4 W
4 O% _3 {' l$ {7 c! p
if clk'event and clk=‘1' then
9 p8 G# r* G# S; [4 `, z, e* H* @: {$ B. B7 S1 @) ^2 C% o
Q3<=Q2; & |! @$ Z4 [; O/ F% [4 F; e4 G
9 c6 G% \- {9 ?. A. y- ? Q2<=Q1; 5 k5 D7 ]- @, |' u
% g/ O0 F. O: u& ]
Q1<=input(1); ; O' @) Y1 E( Y4 V* P h: M
I$ d1 k# j9 T# a end if;
4 U4 H# F3 x, R$ q& z- {7 P# `$ l) ^" k7 D0 n$ N
end process;
2 M n d+ Y4 u! z& ~* }4 g9 b% k/ q* U# C1 t/ ]- V
Q4<=not Q3; . ~8 L" x/ E& o, e
( ?" c5 v' A/ W. `% n
output(1)<=input(1)and Q3; ' f- Q4 n# e, i+ N: `
1 S! f! p4 _8 g. W output(0)<=input(0)and Q4;
% ^5 R$ U" v+ G; d( _
- I7 {7 w. I u8 S end a_delay; # q* A b5 ?' Z" V5 D8 l. {. F! K0 b
. ^% V: ~! W: S
7 W3 ~! K$ a+ m$ Y! e% j% w6 h1 \) j8 M
3 结束语
( ^8 O. r5 p M4 a g; q/ d: S. x5 a
采用可编程逻辑器件和硬件描述语言,同时利用其供应商提供的开发工具可大大缩短数字系统的设计时间,节约新产品的开发成本,另外,还具有设计灵活,集成度高,可靠性好,抗干能力强等特点.本文设计的PWM控制电路用于某光测设备的传动装置时,取得了良好的效果. |
|