基于fpga的直流电机的pwm控制系统_设计毕业设计内容摘要:

等于占空比寄存器中的值时, pwm out 输出低电平,否则输出高电平。 PWM 的周期设定寄存器来设置pwm_out 的信号周期.当前计数器的值等于周期设定寄存器中设定的值时产生一个复位信号来清除计数器中的值。 使能控制寄存器能使时钟信号有效或无效,从而控兰州工业学院毕业(论文) 慕龊 慕龊 慕龊 15 慕龊 制计数器是否工作,进而控制 pwm_out是否保持当前状态不变。 PWM生成 原理图和框图 如图 所示: 慕龊 慕龊 图 PWM 生成框图 慕龊 ABP W M 波慕龊 图 PWM 生成原理图 慕龊 转速控制模块 慕龊 通过按键将直流电机的转速分为 4 档,即 0 档为不运转, 1~3 档转速依次增加,并用数码管显示当前的转速档位。 模块 DECD的 VHDL程序如下: LIBRARY IEEE。 慕龊 LIBRARY IEEE。 慕龊 USE IEEE. STD LOGIC1164. ALL。 慕龊 USE IEEE. STD LOGIC UNSIGNED. ALL。 慕龊 ENTITY decd IS 慕龊 兰州工业学院毕业(论文) 慕龊 慕龊 慕龊 16 慕龊 PORT( clk: IN STD LOGIC。 慕龊 Dspy: OUT SYD_LOGIC VECTOR( 1 DOWNTO 0)。 慕龊 D: OUT SYD_LOGICVECTOR(3 DOWNTO 0)。 慕龊 END。 慕龊 ARCHITECTURE one OF decd IS 慕龊 Signal cq:SYD_LOGIC VECTOR( 1 DOWNTO 0)。 慕龊 BEGIN 慕龊 PROCESS(cq ) 慕龊 BEGIN 慕龊 Case cq is 慕龊 When”00”=d=”0100”。 慕龊 When”01”=d=”0111”。 慕龊 When”10”=d=”1011”。 慕龊 When”11”=d=”1111”。 慕龊 When others =null 慕龊 END case。 慕龊 END PROCESS。 慕龊 PROCESS(clk)慕龊 Begin 慕龊 If clk event and clk =’1’ then cq=cq+1。 慕龊 end if。 慕龊 End process。 慕龊 Dspy=cq。 慕龊 兰州工业学院毕业(论文) 慕龊 慕龊 慕龊 17 慕龊 END 慕龊 在上述程序中,按键信号由 CLK 送入, DSPY 为两位标准逻辑矢量,可用来表示 4 种档位,每一种档位都表示一种速度等级,如档位 0 的速度等级为 DSPY[1..0]接至数码管可及时获知档位信息。 慕龊 锯齿波产生模块 CNT 五位计数器的设计 慕龊 锯齿波产生模块可用计数器产生,本设计用 5位二进制计数器 CNT5 在时钟信号CLK 激励下输出计数脉冲,为了输出增大的锯齿波,程序控制在每一个时钟上升沿来时输出计数值的高四位,计数值记 25=32 反 0,继续下一轮计数,以此形成逐渐上升的锯齿波信号。 慕龊 慕龊 慕龊 图 为计数器模块图和锯齿波仿真图 慕龊 慕龊 计数器模块 VHDL 语言编程如下: 慕龊 LIBRARY IEEE。 慕龊 USE。 慕龊 USE。 慕龊 兰州工业学院毕业(论文) 慕龊 慕龊 慕龊 18 慕龊 ENTITY COUNTER32B IS 慕龊 PORT(FIN:IN STD_LOGIC。 慕龊 CLR:IN STD_LOGIC。 慕龊 ENABL:IN STD_LOGIC。 慕龊 DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0))。 慕龊 END COUNTER32B。 慕龊 ARCHITECTURE behav OF COUNTER32B IS 慕龊 SIGNAL CQI:STD_LOGIC_VECTOR(31 DOWNTO 0)。 慕龊 BEGIN 慕龊 PROCESS(FIN,CLR,ENABL)慕龊 BEGIN 慕龊 IF CLR=39。 139。 THEN CQI=(OTHERS=39。 039。 )。 慕龊 ELSIF FIN39。 EVENT AND FIN=39。 139。 THEN 慕龊 IF ENABL=39。 139。 THEN CQI=CQI+1。 END IF。 慕龊 END IF。 慕龊 END PROCESS。 慕龊 DOUT=CQI。 慕龊 END behav。 慕龊 比较器模块 cmp 的设计 慕龊 数字比较器是产生 PWM 波形的核心组成部件 ,锯齿波 CNT5 输出信号 AA[3:0] 和直流电机转速控制模块 DECD 速率等级输出信号 B[3:0]同时加至数字比较器的两个输入端,进行比较,如 A[3:0]的值大于 B[3:0]输出值,则比较器输出低电平,反之输出高电平,由此产生周期性的 PWM 波形,若改变速率等级设定值,就可改变 PWM 输兰州工业学院毕业(论文) 慕龊 慕龊 慕龊 19 慕龊 出信号的占空比。 改变 DECD 的输出值就等于改变 PWM 的输出信号的占空比,也等于改变了周期,这样就实现了速度调控。 慕龊 图 比较器模块图 慕龊 比较器可用 LPM函数 LPM_COMPARE 进行定制。 慕龊 比较器 VHDL 语言编程如下 : 慕龊 LIBRARY IEEE。 慕龊 USE。 慕龊 USE LOGIC。 慕龊 ENTITY COMPARATOR C IS 慕龊 PORT( AA, D:IN STD LOGIC VECTOR( 7 DOWNTO 0)。 慕龊 agb: OUT SYD_LOGIC )。 慕龊 END ENTITY COMPARATOR_C。 慕龊 ARCHITECTURE agb OF COMPARATOR_C IS 慕龊 BEGIN 慕龊 EQUALITY: PROCESS(AA, D) 慕龊 BEGIN 慕龊 IF(AA= DTHEN 慕龊 agb =’ 1’。 ELSE 慕龊 agb =’ 0’。 慕龊 兰州工业学院毕业(论文) 慕龊 慕龊 慕龊 20 慕龊 END IF。 慕龊 IF(AAD )THEN 慕龊 agb =’ 1’。 ELSE 慕龊 agb=’ 0’。 慕龊 END IF。 慕龊 IF(AAD )THEN 慕龊 agb =’ 1’。 ELSE 慕龊 agb=’ 0’。 慕龊 END IF。 慕龊 END PROCESS EQUALI TY。 慕龊 END ARCHITECTURE agb。 慕龊 比较器的两路输入信号分别为速率等级设定值 a[3..0]和锯齿波信号 b[3..0],比较器 cmp3 输出为高低电平,当锯齿波输出值大于速率等级输出的规定值时,即比较关系为 a[3..0]b[3..0],比较器输出低电平,否则输出高电平,比较器输出的高低电平即作为控制直流电机正反转的启动信号。 比较器定制完成后,利用 QuartusⅡ原理图设计方法,将转速模块 DECD、锯齿波产生器 CNT5 和比较器 cmp3 连接起来。 则完成 PWM信号产生器的电路设计。 慕龊 慕龊 兰州工业学院毕业(论文) 慕龊 慕龊 慕龊 21 慕龊 图 PWM 信号产生器 慕龊 正反转模块设计 慕龊 直流电机旋转方向控制电路用于控制直流电动机正反转和启 /停状态,该电路由两个二选一的多路选择器组成, key_rot 键控制电机的正反转,当 key_rot=1 时,PWM 输出波形从正端 foreware 进入 H 桥,电机正转;当 key_rot=0 时, PWM 输出波形从负端 reverse 进入 H桥,电机反转。 key_start 键通过锁存器 LATCH 控制 PWM 的输出,实现对电机的工作 /停止控制:当 key_start=1 时, LATCH 的门打开,允许PWM 波输出,电机启动;当 key_start=0 时, LATCH 门关闭, PWM 波无法输出,则电机不转动。 慕龊 慕龊 图 直流电动启 /停、正反转控制电路 慕龊 转速测量模块设计 慕龊 根据直流电机的转速测量原理,可以利用频率计的设计方法,设计电机转速测量电路,并通过数码管显示转速测量结果。 直流电机转速测量电路包括时序控制器、计数器和锁存器。 其中时序控制器产生控制测量转速信号时的工作时序,计数兰州工业学院毕业(论文) 慕龊 慕龊 慕龊 22 慕龊 器用于统计直流电机的转数(光电码盘产生的脉冲个数),锁存器用来所存计数器输出的计数值。 时序控制器要完成测频任务,需产生 3个重要的控制信号,即计数使能信号、计数所存信号和计数清零信号,其中计数使能信号有效的时段必须为1s,这样锁存器的输出值就为直流电机的频率(频率为单位时间内的次数)。 计数使能信号有效时 ,允许计数器计数,紧接着将计数值锁入锁存器;为了得到每一次的计数值,则须把前一次的计数值锁存后,对计数器清零,所以紧随锁存信号之后须清除锁存器记录。 因此计数使能信号( 1HZ 的二分频信号)、计数锁存信号和计数器清零信号的控制时序如图 所示。 慕龊 1 s锁 存 清 零1 H Z 信 号清 零锁 存 信 号1 H Z 的 二 分 频计 数慕龊 图 控制时序图 慕龊 时序控制器的 VHDL 程序如下: 慕龊 LIBRARY IEEE。 慕龊 USE。 慕龊 USE。 慕龊 ENTITY FTCTRL IS 慕龊 PORT (CLKK:IN STD_LOGIC。 慕龊 CNT_EN:OUT STD_LOGIC。 慕龊 RST_CNT:OUT STD_LOGIC。 慕龊 LOAD:OUT STD_LOGIC)。 慕龊 END FTCTRL。 慕龊 兰州工业学院毕业(论文) 慕龊 慕龊 慕龊 23 慕龊 ARCHITECTURE BEHAV OF FTCTRL IS 慕龊 SIGNAL div2CLK :STD_LOGIC。 慕龊 BEGIN 慕龊 PROCESS(CLKK)慕龊 BEGIN 慕龊 IF CLKK39。 EVENT AND CLKK=39。 139。 THEN 慕龊 div2clk=NOT div2clk。 慕龊 END IF。 慕龊 END PROCESS。 慕龊 PROCESS(CLKK,div2CLK)慕龊 BEGIN 慕龊 IF CLKK=39。 039。 AND div2clk=39。 039。 THEN RST_CNT=39。 139。 慕龊 ELSE RST_CNT=39。 039。 慕龊 END IF。 慕龊 END PROCESS。 慕龊 LOAD=NOT div2clk。 慕龊 CNT_EN=div2clk。 慕龊 END BEHAV 慕龊 直流电机转速测频电路中的 CNT、 REG 可由 LPM 函数定制,根据原理图设计方法完成了测频电路,如图 所示,图中 ce_in 将直流电机转速脉冲信号送入 CNT进行统计计数, clk_1HZ 为 1HZ 的时钟信号,送入 TESTCTL 中用来产生测频时所需的三路时序控制,信号 TSTEN、 CLR_CNT 和 Load,锁存器的工作时钟为 Load 信号,即在 Load=1 和 clk_1HZ=1 时,将 REG 中锁存的转速脉冲个数进行输出,此即直流电机的频率。 慕龊 兰州工业学院毕业(论文) 慕龊 慕龊 慕龊 24 慕龊 将如图所示的电路进行仿真,可得 图,图中 CLK 的频率为 1HZ,因此 可以这样考虑,计数使能信号 TSTEN 在 CLK 为 1 秒的时段,刚好为高电平,则允许计数器 CNT 计数,根据频率的定义,该计数值刚好是 CNT 输入端送入的电机转速的频率。 而在 CLK 信号接下来的 1 秒的时段内,在 CLK=1 和 Load=1 时将计数值锁入 REG中,而在 CLK=0 和 Load=1 时,计数器清零信号 CLRCNT=1 有效,将计数器 CNT 中已经锁存的计数值清除,以便 CNT 在下一个计数使能信号 TSTEN=1 为高电平期间继续统计脉冲数。 由此可见,时序关系图符合测频控制器的工作时序。 另外,直流电机的频率测量值可通过图 中 Dout[15..0]之后接带译码器的数码显示电路,可显示电机的频率,也可根据式( 4)求得电机的转速。 慕龊 C N TT E S T C T LR E QC e _ i nC l k _ 1 H ZCD o u t [ 1 5 . . 0 ]O U T P U TO U T P U TI N P U TI N P U T慕龊 图 直流电机测频电路图慕龊 图 测频时 序控制器波形仿真图 慕龊。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。