|
馬上注冊,結交更多好友,享用更多功能。
您需要 登錄 才可以下載或查看,沒(méi)有帳號?注冊
x
巨大變革,尤其是硬件描述語(yǔ)言的出現,解決了傳統電路原理圖設計系統工程的諸多不便。針對以上情況,本文給出一種基于復雜可編程邏輯器件(CPLD)的PWM控制電路設計和它的仿真波形。
1。校祝涂刂齐娐坊驹
為了實(shí)現直流伺服系統的H型單極模式同頻PWM可逆控制,一般需要產(chǎn)生四路驅動(dòng)信號來(lái)實(shí)現電機的正反轉切換控制。當PWM控制電路工作時(shí),其中H橋一側的兩路驅動(dòng)信號的占空比相同但相位相反,同時(shí)隨控制信號改變并具有互鎖功能;而另一側上臂為低電平,下臂為高電平。另外,為防止橋路同側對管的導通,還應當配有延時(shí)電路。設計的整體模塊見(jiàn)圖1所示。其中,d[7:0]矢量用于為微機提供調節占空比的控制信號,cs為微機提供控制電機正反轉的控制信號,clk為本地晶振頻率,qout[3:0]矢量為四路信號輸出。其內部原理圖如圖2所示。
該設計可得到脈沖周期固定(用軟件設置分頻器I9可改變PWM開(kāi)關(guān)頻率,但一旦設置完畢,則其脈沖周期將固定)、占空比決定于控制信號、分辨力為1/256的PWM信號。I8模塊為脈寬鎖存器,可實(shí)現對來(lái)自微機的控制信號d[7:0]的鎖存,d[7:0]的向量值用于決定PWM信號的占空比。clk本地晶振在經(jīng)I9分頻模塊分頻后可為PWM控制電路中I12計數器模塊和I11延時(shí)模塊提供內部時(shí)鐘。I12計數器在每個(gè)脈沖的上升沿到來(lái)時(shí)加1,當計數器的數值為00H或由0FFH溢出時(shí),它將跳到00H時(shí),cao輸出高電平至I7觸發(fā)器模塊的置位端,I7模塊輸出一直保持高電平。當I8鎖存器的值與I12計數器中的計數值相同時(shí),信號將通過(guò)I13比較器模塊比較并輸出高電平至I7模塊的復位端,以使I7模塊輸出低電平。當計數器再次溢出時(shí),又重復上述過(guò)程。I7為RS觸發(fā)器,經(jīng)過(guò)它可得到兩路相位相反的脈寬調制波,并可實(shí)現互鎖。I11為延時(shí)模塊,可防止橋路同側對管的導通,I10模塊為脈沖分配電路,用于輸出四路滿(mǎn)足設計要求的信號。CS為I10模塊的控制信號,用于控制電機的正反轉。
2 電路設計
本設計采用的是Lattice半導體公司推出的is-plever開(kāi)發(fā)平臺,該開(kāi)發(fā)平臺定位于復雜設計的簡(jiǎn)單工具。它采用簡(jiǎn)明的設計流程并完整地集成了Leonardo Spectrum的VHDL綜合工具和ispVMTM系統,因此,無(wú)須第三方設計工具便可完成整個(gè)設計流程。在原理設計方面,本設計采用自頂向下、層次化、模塊化的設計思想,這種設計思想的優(yōu)點(diǎn)是符合人們先抽象后具體,先整體后局部的思維習慣。其設計出的模塊修改方便,不影響其它模塊,且可重復使用,利用率高。本文僅就原理圖中的I12計數器模塊和I11延遲模塊進(jìn)行討論。
計數器模塊的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波形的上升沿進(jìn)行延時(shí),而不影響下降沿,從而確保橋路同側不會(huì )發(fā)生短路。其模塊的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 結束語(yǔ)
采用可編程邏輯器件和硬件描述語(yǔ)言,同時(shí)利用其供應商提供的開(kāi)發(fā)工具可大大縮短數字系統的設計時(shí)間,節約新產(chǎn)品的開(kāi)發(fā)成本,另外,還具有設計靈活,集成度高,可靠性好,抗干能力強等特點(diǎn)。本文設計的PWM控制電路用于某光測設備的傳動(dòng)裝置時(shí),取得了良好的效果。 |
|