新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 一種基于CPLD的PWM控制電路設計

        一種基于CPLD的PWM控制電路設計

        作者: 時間:2004-12-06 來源:網絡 收藏
        摘要:介紹了利用硬件描述語言VHDL設計的一種電路,該PWM電路具有開關頻率可調,同側2路信號互鎖、延時時間可調、接口簡單等特點,可應用于現代直流伺服系統。

        關鍵詞:電路 VHDL

        在直流伺服控制系統中,通過專用集成芯片或中小規模的數字集成電路構成的傳統PWM控制電路往往存在復雜,體積大,抗干擾能力差以及設計困難、設計周期長等缺點?因此PWM控制電路的模塊化、集成化已成為發展趨勢。它不僅可以使系統體積減小、重量減輕且功耗降低,同時可使系統的可靠性大大提高。隨著電子技術的發展,特別是專用集成電路(ASIC)設計技術的日趨完善,數字化的電子自動化設計(EDA)工具給電子設計帶來了巨大變革,尤其是硬件描述語言的出現,解決了傳統電路原理圖設計系統工程的諸多不便。針對以上情況,本文給出一種復雜可編程邏輯器件(CPLD)的PWM控制和它的仿真波形。

        1 PWM控制電路基本原理

        為了實現直流伺服系統的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開發平臺,該開發平臺定位于復雜設計的簡單工具。它采用簡明的設計流程并完整地集成了Leonardo Spectrum的VHDL綜合工具和ispVMTM系統,因此,無須第三方設計工具便可完成整個設計流程。在原理設計方面,本設計采用自頂向下、層次化、模塊化的設計思想,這種設計思想的優點是符合人們先抽象后具體,先整體后局部的思維習慣。其設計出的模塊修改方便,不影響其它模塊,且可重復使用,利用率高。本文僅就原理圖中的I12計數器模塊和I11延遲模塊進行討論。

        計數器模塊的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波形的上升沿進行延時,而不影響下降沿,從而確保橋路同側不會發生短路。其模塊的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 結束語

        采用可編程邏輯器件和硬件描述語言,同時利用其供應商提供的開發工具可大大縮短數字系統的設計時間,節約新產品的開發成本,另外,還具有設計靈活,集成度高,可靠性好,抗干能力強等特點。本文設計的PWM控制電路用于某光測設備的傳動裝置時,取得了良好的效果。

        pwm相關文章:pwm原理


        分頻器相關文章:分頻器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 依安县| 平度市| 灵川县| 彰武县| 南木林县| 宾阳县| 平泉县| 台州市| 尼木县| 民勤县| 闸北区| 孟津县| 获嘉县| 浦县| 光山县| 中牟县| 阜阳市| 江山市| 清流县| 宝坻区| 徐水县| 玉溪市| 吴川市| 凤台县| 台东市| 漯河市| 南宫市| 浏阳市| 卢龙县| 十堰市| 太保市| 监利县| 泽库县| 闽清县| 永仁县| 尼玛县| 石柱| 乌兰浩特市| 隆德县| 深水埗区| 临西县|