版主
  
主题
帖子
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
在直流伺服控制系统中,通过专用集成芯片或中小规模的数字集成电路构成的传统PWM控制电路往往存在电路设计复杂,体积大,抗干扰能力差以及设计困难、设计周期长等缺点?因此PWM控制电路的模块化、集成化已成为发展趋势.它不仅可以使系统体积减小、重量减轻且功耗降低,同时可使系统的可靠性大大提高.随着电子技术的发展,特别是专用集成电路(ASIC)设计技术的日趋完善,数字化的电子自动化设计(EDA)工具给电子设计带来了巨大变革,尤其是硬件描述语言的出现,解决了传统电路原理图设计系统工程的诸多不便.针对以上情况,本文给出一种基于复杂可编程逻辑器件(CPLD)的PWM控制电路设计和它的仿真波形.
2 c9 w x+ T% Z1 Y
) i/ m) h Z: s% A3 _1 ^9 ]8 d 1 PWM控制电路基本原理
' w" y: x: t$ K: u7 H+ o1 _2 Y4 d1 b/ h* i- P. l3 \
为了实现直流伺服系统的H型单极模式同频PWM可逆控制,一般需要产生四路驱动信号来实现电机的正反转切换控制.当PWM控制电路工作时,其中H桥一侧的两路驱动信号的占空比相同但相位相反,同时随控制信号改变并具有互锁功能;而另一侧上臂为低电平,下臂为高电平.另外,为防止桥路同侧对管的导通,还应当配有延时电路.设计的整体模块见图1所示.其中,d[7:0]矢量用于为微机提供调节占空比的控制信号,cs为微机提供控制电机正反转的控制信号,clk为本地晶振频率,qout[3:0]矢量为四路信号输出.其内部原理图如图2所示. : z7 I8 ^1 Q2 P5 q
该设计可得到脉冲周期固定(用软件设置分频器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模块的控制信号,用于控制电机的正反转.
% |6 Y8 Q1 Y' T: T/ a
& _7 A9 _. U: t7 U" G2 C# N2 h 2 电路设计 . [! ^! p# j: G* s# d; z
4 Q2 ?8 D5 B3 {: G
本设计采用的是Lattice半导体公司推出的is-plever开发平台,该开发平台定位于复杂设计的简单工具.它采用简明的设计流程并完整地集成了Leonardo Spectrum的VHDL综合工具和ispVMTM系统,因此,无须第三方设计工具便可完成整个设计流程.在原理设计方面,本设计采用自顶向下、层次化、模块化的设计思想,这种设计思想的优点是符合人们先抽象后具体,先整体后局部的思维习惯.其设计出的模块修改方便,不影响其它模块,且可重复使用,利用率高.本文仅就原理图中的I12计数器模块和I11延迟模块进行讨论.
& U+ z3 c$ D7 t4 S; _, X
% b# v* q* I) M1 Z" }1 |2 T" l$ x 计数器模块的VHDL程序设计如下: 6 q' J" a6 h- A2 S' ~$ t
3 g3 F0 m2 f% V% H entity counter is
8 l& L) \" s) A) c
( c. {" d& j6 j9 n! m$ F- U port(clk: in std logic;
7 W- T) [( w+ o. {
. s9 a" d" g3 ` Q : out std logic vector(7 downto 0);
/ I2 H W$ W# v8 l. z9 ^: A+ t; g5 W6 W; {6 H% m4 N0 X1 [ C
cao: out std_logic); 6 g5 A3 t- h& x" e3 l4 Q
) }. ?7 o7 Y; N+ o! z end counter; 3 s5 Z: F1 Q% x
$ u3 l0 d! n# u3 I architecture a_counter of counter is
7 ?' V. |3 D$ j/ G6 q4 g
! r( r* p% u0 F" M( g% T6 a signal Qs: std_logic_vector(7 downto 0); : [6 H1 W! S$ s
/ l5 I0 Q8 g2 o) h
signal reset: std_logic;
3 e9 [# {5 [2 F2 B7 F5 ]8 }7 Z. g4 b7 ?3 v" M
signal caolock: std_logic; - @* L5 M+ h7 ]1 Y4 K: t1 L
& l' k1 w; S2 N# r b
begin
, t6 F& H9 k) o
' G8 }5 e) e: ?3 |( a process(clk,reset) 9 k; Y! q; Z7 z, W
+ o7 E! N: k& Z
begin # _2 F E: D0 V, u4 T" w
[& q' w" V8 g/ L$ i' L/ m
if(reset=‘1')then , K1 I0 I& \4 E' B
/ v4 U& Y& C* C9 Q+ [9 X4 @ Qs<=“00000000”; 7 _% n5 `; S/ w0 U
" S' ~; c7 w% _( t4 K9 Z elsif clk'event and clk=‘1' then ! ]# m" y+ ]4 ^
. A3 {4 I; ]- Y' i" K
Qs<=Qs+‘1'; . ^: i: ?- j, b! z
) i* c$ a7 r! E7 @/ S
end if; + G' ~7 @/ }6 c! w% ]
. v2 ~0 H) N$ {/ m3 G! k
end process; ; ?) Z* g$ V: V) [5 u
, H& @- H3 Y4 \
reset<=‘1' when Qs="255" else 8 g: |; h! \2 f+ u
4 n1 G/ g0 _5 A* ]
‘0'; ( s: b. ]. c: c8 u8 w. A( I3 z8 i& B! |
: }' u5 w* Z6 p( G
caolock<=‘1' when Qs="0" else # m& Q# k" s8 g c$ v" Z
5 l, H9 r- L# y( a ‘0'; " s( V c5 ~+ Q+ G
; Y: d" q8 \( _4 n
Q<=Qs;
% Y! b- W0 [) Z. b. [$ r! J7 {
cao<=reset or caolock;
7 @( x0 p1 O1 X$ E, @" j
M1 I+ \: b" b5 i: d& |9 K1 e5 o end a_counter; ( R2 L' Q3 F) T! x0 W, V* ~# b
9 K9 r0 z7 u& v$ G/ b0 t在原理图中,延迟模块必不可少,其功能是对PWM波形的上升沿进行延时,而不影响下降沿,从而确保桥路同侧不会发生短路.其模块的VHDL程序如下:
+ P& h) z0 F& d
; }6 d4 r* b' S9 \! k5 H entity delay is
' S; ?- Y% a. X, `) Y) |8 ?" @/ n) S! V$ c
port(clk: in std_logic;
3 u0 f6 V4 U, O0 v
3 }. ^! W. V% j2 \" Z# Z input: in std_logic_vector(1 downto 0); * P1 Q8 K4 b& U c& O
% D& L i; {1 J' s output:out std_logic_vector(1 downto 0)
0 v( V, p8 D& B/ H3 M6 i
. Z) _/ k% \3 @+ h' O$ F' M' d end delay; ( N: `8 I( }) E3 e( f [' V
6 G) k8 A, L! e' w1 a2 o' H
architecture a_delay of delay is 8 F; \5 {6 B# w [* ~( A c7 ?
" \7 T. c$ E$ S9 k signal Q1,Q2,Q3,Q4: std_logic; / Q) q9 [9 _# K, {5 a) w/ Y7 G
, M! j# ?) Q/ y: g( x. `- d8 p begin
E8 T: X6 G3 {6 Y" U1 G* y+ u' J3 G' C0 k, }& |9 J1 s$ N
process(clk)
) k: [) @" Y, G: F" }$ y
7 z% c6 T7 Z; O" \2 P begin . }+ w4 @/ i6 O+ C% v: ~7 y0 e
?$ Q/ ? f# E* H
if clk'event and clk=‘1' then
- m4 h- X% G) O$ t$ y: p. @& d5 y. S7 b7 X7 S( Q
Q3<=Q2;
: H5 s6 [: c; z2 K+ ]- V# m. n; B) \* S
Q2<=Q1; 6 D J+ s# T0 N) {3 M9 j0 _- h6 U
$ T& @* y; a2 O3 B7 ]$ R, I& P7 Z( g1 ]
Q1<=input(1); ; \/ f, r8 ?& U# h, l
# K6 ]! m( ~3 k+ b- U1 R3 D/ A& \5 }
end if; 5 {( y( L" b5 m+ D5 a; M
0 g' P3 B1 }5 v- C end process; 3 O( D K: d/ v" V
: K2 g, O6 p5 A
Q4<=not Q3; $ V0 e; L v% Z t
% Y+ @: K) {- k" F
output(1)<=input(1)and Q3;
, r9 P+ r3 A: D$ x9 X7 D" P+ I& k) r" w3 v
output(0)<=input(0)and Q4;
2 `8 I+ J" r& d9 M. t) C2 A; q
) {( _# ]8 C6 ^3 `% Q end a_delay;
4 f5 k! X+ [' y- M/ i D1 M5 q+ |' s _1 ~; A6 k" `3 S
' W3 O* I- t1 u8 ^% E& e9 ]: k0 P 3 结束语
' a* O6 z/ ~; a; W- ^2 G1 X9 {2 |. Q- {: ~0 Y5 P* U1 y" W2 F
采用可编程逻辑器件和硬件描述语言,同时利用其供应商提供的开发工具可大大缩短数字系统的设计时间,节约新产品的开发成本,另外,还具有设计灵活,集成度高,可靠性好,抗干能力强等特点.本文设计的PWM控制电路用于某光测设备的传动装置时,取得了良好的效果. |
|