- 相關(guān)推薦
一種基于CPLD的PWM控制電路設(shè)計
摘要:介紹了利用硬件描述語言VHDL設(shè)計的一種基于CPLD的PWM控制電路,該PWM控制電路具有PWM開關(guān)頻率可調(diào),同側(cè)2路信號互鎖、延時時間可調(diào)、接口簡單等特點,可應(yīng)用于現(xiàn)代直流伺服系統(tǒng)。關(guān)鍵詞:PWM控制電路CPLDVHDL
在直流伺服控制系統(tǒng)中,通過專用集成芯片或中小規(guī)模的數(shù)字集成電路構(gòu)成的傳統(tǒng)PWM控制電路往往存在電路設(shè)計復(fù)雜,體積大,抗干擾能力差以及設(shè)計困難、設(shè)計周期長等缺點?因此PWM控制電路的模塊化、集成化已成為發(fā)展趨勢。它不僅可以使系統(tǒng)體積減小、重量減輕且功耗降低,同時可使系統(tǒng)的可靠性大大提高。隨著電子技術(shù)的發(fā)展,特別是專用集成電路(ASIC)設(shè)計技術(shù)的日趨完善,數(shù)字化的電子自動化設(shè)計(EDA)工具給電子設(shè)計帶來了巨大變革,尤其是硬件描述語言的出現(xiàn),解決了傳統(tǒng)電路原理圖設(shè)計系統(tǒng)工程的諸多不便。針對以上情況,本文給出一種基于復(fù)雜可編程邏輯器件(CPLD)的PWM控制電路設(shè)計和它的仿真波形。
。保校祝涂刂齐娐坊驹
為了實現(xiàn)直流伺服系統(tǒng)的H型單極模式同頻PWM可逆控制,一般需要產(chǎn)生四路驅(qū)動信號來實現(xiàn)電機的正反轉(zhuǎn)切換控制。當PWM控制電路工作時,其中H橋一側(cè)的兩路驅(qū)動信號的占空比相同但相位相反,同時隨控制信號改變并具有互鎖功能;而另一側(cè)上臂為低電平,下臂為高電平。另外,為防止橋路同側(cè)對管的導(dǎo)通,還應(yīng)當配有延時電路。設(shè)計的整體模塊見圖1所示。其中,d[7:0]矢量用于為微機提供調(diào)節(jié)占空比的控制信號,cs為微機提供控制電機正反轉(zhuǎn)的控制信號,clk為本地晶振頻率,qout[3:0]矢量為四路信號輸出。其內(nèi)部原理圖如圖2所示。
該設(shè)計可得到脈沖周期固定(用軟件設(shè)置分頻器I9可改變PWM開關(guān)頻率,但一旦設(shè)置完畢,則其脈沖周期將固定)、占空比決定于控制信號、分辨力為1/256的PWM信號。I8模塊為脈寬鎖存器,可實現(xiàn)對來自微機的控制信號d[7:0]的鎖存,d[7:0]的向量值用于決定PWM信號的占空比。clk本地晶振在經(jīng)I9分頻模塊分頻后可為PWM控制電路中I12計數(shù)器模塊和I11延時模塊提供內(nèi)部時鐘。I12計數(shù)器在每個脈沖的上升沿到來時加1,當計數(shù)器的數(shù)值為00H或由0FFH溢出時,它將跳到00H時,cao輸出高電平至I7觸發(fā)器模塊的置位端,I7模塊輸出一直保持高電平。當I8鎖存器的值與I12計數(shù)器中的計數(shù)值相同時,信號將通過I13比較器模塊比較并輸出高電平至I7模塊的復(fù)位端,以使I7模塊輸出低電平。當計數(shù)器再次溢出時,又重復(fù)上述過程。I7為RS觸發(fā)器,經(jīng)過它可得到兩路相位相反的脈寬調(diào)制波,并可實現(xiàn)互鎖。I11為延時模塊,可防止橋路同側(cè)對管的導(dǎo)通,I10模塊為脈沖分配電路,用于輸出四路滿足設(shè)計要求的信號。CS為I10模塊的控制信號,用于控制電機的正反轉(zhuǎn)。
。搽娐吩O(shè)計
本設(shè)計采用的是Lattice半導(dǎo)體公司推出的is-plever開發(fā)平臺,該開發(fā)平臺定位于復(fù)雜設(shè)計的簡單工具。它采用簡明的設(shè)計流程并完整地集成了LeonardoSpectrum的VHDL綜合工具和ispVMTM系統(tǒng),因此,無須第三方設(shè)計工具便可完成整個設(shè)計流程。在原理設(shè)計方面,本設(shè)計采用自頂向下、層次化、模塊化的設(shè)計思想,這種設(shè)計思想的優(yōu)點是符合人們先抽象后具體,先整體后局部的思維習慣。其設(shè)計出的模塊修改方便,不影響其它模塊,且可重復(fù)使用,利用率高。本文僅就原理圖中的I12計數(shù)器模塊和I11延遲模塊進行討論。
計數(shù)器模塊的VHDL程序設(shè)計如下:
entitycounteris
。穑铮颍(clk:instdlogic;
Q:outstdlogicvector(7downto0);
。悖幔:outstd_logic);
。澹睿洌悖铮酰睿簦澹;
architecturea_counterofcounteris
。螅椋纾睿幔欤眩:std_logic_vector(7downto0);
signalreset:std_logic;
。螅椋纾睿幔欤悖幔铮欤铮悖:std_logic;
。猓澹纾椋
。穑颍铮悖澹螅(clk,reset)
begin
。椋(reset=‘1')then
Qs<=“00000000”;
。澹欤螅椋妫悖欤耄В澹觯澹睿簦幔睿洌悖欤耄健保В簦瑁澹
。眩螅迹剑眩螅保;
。澹睿洌椋;
。澹睿洌穑颍铮悖澹螅;
reset<=‘1'whenQs=255else
‘0';
。悖幔铮欤铮悖耄迹健保В鳎瑁澹睿眩螅剑埃澹欤螅
‘0';
。眩迹剑眩;
。悖幔铮迹剑颍澹螅澹簦铮颍悖幔铮欤铮悖;
。澹睿洌醎counter;
圖2PWM可逆控制電路原理圖
在原理圖中,延遲模塊必不可少,其功能是對PWM波形的上升沿進行延時,而不影響下降沿,從而確保橋路同側(cè)不會發(fā)生短路。其模塊的VHDL程序如下:
。澹睿簦椋簦洌澹欤幔椋
。穑铮颍(clk:instd_logic;
。椋睿穑酰:instd_logic_vector(1downto0);
。铮酰簦穑酰:outstd_logic_vector(1downto0)
enddelay;
。幔颍悖瑁椋簦澹悖簦酰颍澹醎delayofdelayis
。螅椋纾睿幔欤眩,Q2,Q3,Q4:std_logic;
。猓澹纾椋
。穑颍铮悖澹螅(clk)
。猓澹纾椋
。椋妫悖欤耄В澹觯澹睿簦幔睿洌悖欤耄健保В簦瑁澹
Q3<=Q2;
。眩玻迹剑眩;
Q1<=input(1);
。澹睿洌椋;
。澹睿洌穑颍铮悖澹螅;
。眩矗迹剑睿铮簦眩;
output(1)<=input(1)andQ3;
。铮酰簦穑酰(0)<=input(0)andQ4;
。澹睿洌醎delay;
圖3為原理圖中的若干信號的波形仿真圖。
。辰Y(jié)束語
采用可編程邏輯器件和硬件描述語言,同時利用其供應(yīng)商提供的開發(fā)工具可大大縮短數(shù)字系統(tǒng)的設(shè)計時間,節(jié)約新產(chǎn)品的開發(fā)成本,另外,還具有設(shè)計靈活,集成度高,可靠性好,抗干能力強等特點。本文設(shè)計的PWM控制電路用于某光測設(shè)備的傳動裝置時,取得了良好的效果。
【一種基于CPLD的PWM控制電路設(shè)計】相關(guān)文章:
基于CPLD/FPGA的出租車計費器08-06
基于CPLD/FPGA的半整數(shù)分頻器的設(shè)計08-06
基于CPLD的系統(tǒng)中I2C總線的設(shè)計08-06
基于CPLD的高壓電力線FSK MODEM設(shè)計08-06
基于DSP與CPLD的I2C總線接口的設(shè)計與實現(xiàn)08-06