毕业论文

打赏
当前位置: 毕业论文 > 电子通信 >

基于EDA开发平台的红外遥控电机转速电路设计(8)

时间:2017-06-23 20:43来源:毕业论文
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL; USE IEEE.STD_LOGIC_Unsigned.ALL; ENTITY pwm_logic IS PORT( clock_48M: IN STD_LOGIC; --系统输入时钟 duty_cycle: IN STD_LOGIC_VECTOR(3 DO


USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_Arith.ALL;
USE IEEE.STD_LOGIC_Unsigned.ALL;
ENTITY pwm_logic IS
PORT(
clock_48M:        IN    STD_LOGIC;    --系统输入时钟
duty_cycle:    IN  STD_LOGIC_VECTOR(3 DOWNTO 0);
pwm_en:        IN  STD_LOGIC;    --PWM使能.
pwm_out:    OUT STD_LOGIC    --PWM输出
);
END;
ARCHITECTURE one OF pwm_logic     IS
SIGNAL pwm_out_io:    STD_LOGIC;            --PWM输出
SIGNAL count:        STD_LOGIC_VECTOR(7 DOWNTO 0);--PWM内部计数器(仿真)
BEGIN
pwm_out<=pwm_out_io;
PROCESS(clock_48M)
BEGIN
    IF RISING_EDGE(clock_48M) THEN
        IF    pwm_en ='1' THEN
            count<=count+1;
        END IF;
    END IF;
END PROCESS;
PROCESS(clock_48M)
BEGIN
    IF RISING_EDGE(clock_48M) THEN
      IF    pwm_en ='1' AND count(7 DOWNTO 4)<=duty_cycle THEN--(仿真)
            pwm_out_io<='1';
        ELSE
            pwm_out_io<='0';
        END IF;
    END IF;
END PROCESS;
END ;
(3)VHDL程序分析
该程序中有三个输入端,分别是clock_48M、duty_cycle[3..0]、pwm_en,其中clock_48M是接系统时钟端;duty_cycle[3..0]是输入的固定四位二进制数,由电机控制模块产生;pwm_en是该模块的使能控制端,也是由电机控制模块产生。该程序还有一个输出端,即pwm_out,该端口输出PWM控制的输出波形,可以根据不同的输入的四位二进制数duty_cycle[3..0],来产生具有不同占空比的PWM波形。
(4)仿真波形及分析
仿真时选择duty_cycle[3..0]=0110(即十进制的6),由程序中的这段代码:
IF     pwm_en =’1’ AND count(7 DOWNTO 4)<=duty_cycle THEN
            pwm_out_io<=’1’;
ELSE
            pwm_out_io<=’0’;
可以看出,当输入的duty_cycle[3..0]=0110且pwm_en=1时,如果满足count[7..4]<=0110,就把pwm_out_io赋值为高电平,也就是说count正常计数从00000000到01101111都满足这个条件,此时输出pwm_out为高电平,其余时刻(即count从01110000到11111111)都输出低电平。此时的占空比的计算如下:
count总共是8位二进制数,总数为28=256,而高电平占据了从00000000到01101111,共112个数据,占空比为112/256=0.4375
duty_cycle[3..0]=0110且pwm_en=1时的仿真波形如下:
 
图4.3  脉宽调制仿真波形
Fig.4.3 Pulse width modulation simulation waveform
由仿真波形可以看出,一个PWM波形周期中,周期为2.56ns,其中高电平占据时间为1.12ns,占空比为1.12/2.56=0.4375,跟理论分析值一致。
4.4.2  电机控制模块
(1)生成的功能模块图
 
图4.4  电机控制功能模块图
Fig.4.4 Motor control function module chart
(2)电机控制的VHDL编程
LIBRARY IEEE;                      
USE IEEE.STD_LOGIC_1164.ALL; 基于EDA开发平台的红外遥控电机转速电路设计(8):http://www.751com.cn/tongxin/lunwen_9829.html
------分隔线----------------------------
推荐内容