EDA步进电机控制

合集下载

步进电机eda课程设计

步进电机eda课程设计

步进电机eda课程设计一、教学目标本课程的目标是让学生了解和掌握步进电机的基本原理和应用,通过学习,学生应该能够:1.描述步进电机的工作原理和结构特点。

2.解释步进电机的运行原理和控制方法。

3.分析步进电机在不同应用场景下的性能表现。

4.设计简单的步进电机控制系统。

在技能目标方面,学生应具备:1.运用实验仪器和工具进行步进电机的调试和测试。

2.编写简单的步进电机控制程序。

3.分析和解决步进电机运行中的常见问题。

在情感态度价值观目标方面,学生应:1.培养对步进电机技术和应用的兴趣和好奇心。

2.培养团队协作和沟通交流的能力。

3.增强创新意识和实践能力,能够将理论知识应用到实际问题中。

二、教学内容本课程的教学内容主要包括以下几个部分:1.步进电机的基本原理:介绍步进电机的工作原理、结构特点和运行方式。

2.步进电机的控制方法:讲解步进电机的控制原理和控制电路。

3.步进电机的应用:分析步进电机在不同领域的应用实例,如机器人、数控机床等。

4.步进电机的调试和测试:介绍步进电机的调试和测试方法,以及如何解决运行中的问题。

教学大纲安排如下:第1-2课时:步进电机的基本原理第3-4课时:步进电机的控制方法第5-6课时:步进电机的应用第7-8课时:步进电机的调试和测试三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括:1.讲授法:讲解步进电机的基本原理、控制方法和应用。

2.案例分析法:分析具体的步进电机应用案例,让学生更好地理解步进电机的实际应用。

3.实验法:让学生亲自动手进行步进电机的调试和测试,增强实践能力。

4.讨论法:鼓励学生积极参与课堂讨论,培养团队协作和沟通交流的能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《步进电机原理与应用》2.参考书:提供相关的学术论文和资料,供学生深入研究。

3.多媒体资料:制作课件和教学视频,帮助学生更好地理解步进电机的相关知识。

EDA技术在步进电动机驱动中的应用

EDA技术在步进电动机驱动中的应用
Ab t a t A s lt n i u d vd d d vn fse p n — s r c : ou i n s b i i e r i g o tp i g mo o i t rb a s o DA tc n l g rv dn W M o t lwa e o y me n f E e h oo y p o i i g P c nr v — o f r w s i t d c d Us g e e e AB i P o c mp s o m a n r u e . i mb d d E n F GA t o o e o n
(inx Id s yE g er gV ct nl e h i l o ee Pn x n 3 0 5, hn ) J gi n ut ni ei oa o a T c nc l g ,igi g3 7 5 C ia a r n n i aC l a
摘 要: 介绍一种 采用 E A技 术输 出 P D WM 控制 信号 ,
L PM ROM , PW M o to v fr d t r tr d whih se c n rlwa eo m a awe eso e c tp-

产 生多路 P WM 电 流 波 形 , 多相 步进 电动 机 进 行 对 灵 活 的控 制 。若 改 变 R M 控 制 波 形 表 的 数 据 , O 增
E A技 术 在 步 进 电 动机 驱 动 中 的应 用 D
章小印 , 欧阳慧平
( 江西工业工程职业技术学院 , 江西萍 乡 3 75 3 05)
The App i a i n o lc to f EDA c o o y i ub vi e rv n f S e pi o o Te hn l g n S di d d D i i g o t p ng M t r ZHANG a — Y n, Xi o i OUY ANG i—pig Hu n

基于EDA的直流电机控制系统设计【范本模板】

基于EDA的直流电机控制系统设计【范本模板】

吉林大学远程教育本科生毕业论文(设计)中文题目基于EDA的直流电机控制系统设计学生姓名张智专业机械电子层次年级13级本科学号21332107070001指导教师王昕职称副教授学习中心弘成宿迁成绩2015年10月9日摘要论文以直流电机为研究对象,应用了FPGA技术,设计出了一种全数字的步进电机控制系统。

本论文分析了直流电机工作原理及其具体的控制过程,并阐述了FPGA的设计原理以及所涉及的相关芯片,然后对所用的硬件语言VHDL 的知识进行简要地介绍,这些为论文的具体设计提供了理论基础。

本系统针对实现直流电机的调速,设计了一种符合要求的并连续可调的脉冲信号发生器,对整个系统进行模块化设计,并且每个子模块都通过了仿真测试。

系统采用模块化的设计思路,使系统的设计和维护更加方便,也提高了系统性能的可扩展性。

FPGA、VHDL以及EDA工具构成的数字系统集成技术,是本设计的核心部分,该技术具有操作灵活、利用广泛及价廉等特点.系统设计采用全数字化的控制方案,使系统更紧凑、更合理及经济节约。

由于系统的数字化,使整个系统运行得十分可靠,调试也极为方便。

关键词:直流电机,可编程门阵列,硬件描述语言目录一、绪论 (1)1.1课题背景 (1)1。

2研究的目的及其意义 (2)二、电机的基本知识 (4)2.1直流电机的特点 (4)2.2直流电机基本结构 (4)2。

2.1定子部分 (4)2.2.2转子部分 (5)2。

3直流电机工作原理 (6)2.4直流电机PWM调速原理 (6)三、FPGA与硬件描述语言 (8)3.1现场可编程逻辑器件 (8)3。

2硬件描述语言设计方法 (8)3。

2.1硬件描述语言发展概况 (8)3。

2.2 EDA简要介绍 (9)3。

2。

3采用硬件描述语言的设计流程 (10)四、设计原理及其实现过程 (11)4。

1直流电机PWM调速方案设计 (11)4.2FPGA内部逻辑组成 (12)4.3模块设计和相应模块程序 (13)4。

EDA步进电机控制设计.

EDA步进电机控制设计.

河南科技大学课程设计说明书课程名称EDA技术题目步进电机控制学院车辆与动力工程学院班级学生姓名指导教师日期EDA技术课程设计任务书班级:姓名:学号:设计题目:步进电机控制一、设计目的进一步巩固理论知识,培养所学理论知识在实际中的应用能力;掌握EDA设计的一般方法;熟悉一种EDA软件,掌握一般EDA系统的调试方法;利用EDA软件设计一个电子技术综合问题,培养VHDL编程、书写技术报告的能力。

为以后进行工程实际问题的研究打下设计基础。

二、设计任务(1)控制步进电机的启动和停止;(2)控制步进电机的正转和反转;(3)电机速度可调并显示转速;三、设计要求(1)通过对相应文献的收集、分析以及总结,给出相应课题的背景、意义及现状研究分析。

(2)通过课题设计,掌握计算机组成原理的分析方法和设计方法。

(3)学习按要求编写课程设计报告书,能正确阐述设计和实验结果。

(4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以及实现,给出个人分析、设计以及实现。

四、设计时间安排查找相关资料(1天)、设计并绘制系统原理图(2天)、编写VHDL程序(2天)、调试(2天)、编写设计报告(2天)和答辩(1天)。

1.江国强编著. EDA技术与实用(第三版). 北京:电子工业出版社,2011.2 .曹昕燕,周凤臣.EDA技术实验与课程设计.北京:清华大学出版社,2006.53.阎石主编.数字电子技术基础.北京:高等教育出版社,2003.4.Mark Zwolinski. Digital System Design with VHDL.北京:电子工业出版社,20085.Alan B. Marcovitz Introduction to logic Design.北京:电子工业出版社,2003指导教师签字:年月日步进电机控制摘要随着电子技术的发展,现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD 的出现,使得电子系统的设计者利用与器件相应的电子设计软件,在实验室里就可以设计自己的专用集成电路ASIC器件。

EDA实验十 步进电机驱动设计

EDA实验十 步进电机驱动设计

实验十步进电机驱动设计一、实验目的:1、了解步进电机的工作原理和控制实现的方法。

2、实现步进电机转动控制。

3、学会用于Verilog语言进行程序设计。

二、实验仪器设备1、PC机一台2、FPGA实验开发系统一套。

三、实验原理本实验采用的步进电机为一四相步进电机,采用单极性直流电源供电。

只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。

图1是该四相反应式步进电机工作原理示意图。

图1 步进电机工作示意图开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。

当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。

而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。

依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。

四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。

单四拍与双四拍的步距角相等,但单四拍的转动力矩小。

八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。

实验箱的电路原理图如下所示图2 步进电机驱动器图3锁存器四、实验内容及步骤设计一段程序,通过两个独立按键实现电机的正转、反转、转动模式。

(1)启动Quartus II 建立一个空白工程,选择的器件为Altera 公司的Cyclone 系列的EP2C8Q240C8芯片,命名为step_moto.qpf;(2)新建一个Schematic File 文件,命名为step_moto.bdf;(3)新建一个Verilog HDL File 文件,分别命名为stepmoto.v,输入程序代码并保存(对应源程序12),然后进行综合编译。

EDA技术实现三相双三拍异步电机控制。绝对有用!

EDA技术实现三相双三拍异步电机控制。绝对有用!

《电子设计EDA技术》课程设计课题:三相双三拍步进电机环分电路设计院系:自动化班级:数控卓越111学号: 203110814姓名:刘陈砖目录一、摘要.................................2二、任务要求.............................2三、步进电机原理........................2四、方案设计.............................3五、操作过程..........................4六、仿真波形分析.........................5七、总结.................................6八、附件..................................7一、摘要:利用EDA技术进行对电子系统设计表达,VHDL则是目前通用硬件描述语言。

本次设计提出了一种利用VHDL语言设计电机控制器的思路,实现三相双三拍步进电机驱动电路的设计。

二、任务要求:三相双三拍步进电机环分电路设计:首先设定相序初值,而后每来一次脉冲降沿,相序按照AB BC CA AB的顺序变化,相应控制位置高电平。

三、步进电机原理步进电机是一种将电脉冲转化为角位移的执行机构。

三相反应式步进电机,其定子的每相都有一对磁极,每个磁极都只有一个齿,即磁极本身,故三相步进电机有三对磁极共六个齿;其转子有四个齿,分别称为0、1、2、3齿。

步进电机以的双三拍工作时各相的通电顺序为:AB→BC→CA →AB四、方案设计4.1设计思路1、脉冲分配器设计-------控制步进电机的通电顺序鉴于双三拍的通电顺序为:AB→BC→CA→AB ,设计一个3进制的计数器:正转为“011→ 110→ 101”循环,反转为“101→ 110→ 011”循环。

2、频率发生器----------控制步进电机的调速通过脉冲频率即可控电机的转动速度3、方向锁存器----------控制步进电机的工作方式步进电机的状态分为停止、正转、反转。

EDA技术与电机控制

EDA技术与电机控制

中南大学——EDA应用综述学院: 地球科学与信息物理学院专业班级: 生医 0901 班姓名:学号:指导老师:李凌云EDA技术与电机控制一、引言随着微电子技术和半导体工业的不断创新和发展,集成电路的集成度和生产工艺技术水平得到不断提高,从而使得在一个半导体芯片上完成系统级的集成已成为可能。

现代数字技术已进入电子设计自动化EDA(Electronic Design Automation)时代,这大大改变了现代电子系统设计的理念,极大地提高了大规模系统电子设计的自动化程度。

EDA设计方法学在各种电子系统设计中有着极大的影响和广阔的应用前景,当然在电机控制领域也不例外。

二、1 现代EDA设计方法可编程逻辑器件是从20世纪80年代开始迅速发展起来的,现在已经成ASIC(App lication Specific Integrated Circuit)的一个重要分支,在计算机应用、通信、智能仪表、医用设备、军事、民用电器等各个领域都得到了广泛的应用,并受到越来越多的关注。

它允许用户按照自己的设计思想对其进行重新编程或重构,因此属于可编程ASIC一类,并可进一步转化为掩模(mask)ASIC。

现代可编程逻辑器件主要指CPLD ( Comp lexProgrammable Logic Device,复杂可编程逻辑器件) 和FPGA ( Field Programmable Gate Array,现场可编程门阵列)两种大容量的可编程逻辑器件,采用深亚微米工艺,能应用在不同的高科技研、发领域,如数字电路设计、微处理器系统、DSP、电信、可重构计算机及ASIC 设计等。

由于以EEPROM、SRAM 或FLASH为基础,用户可以通过计算机对芯片进行在系统编程( ISP)或在线重配置( ICR) ,不需要做掩模版图设计, 因而大大降低了成本, 缩短了开发时间。

现代EDA设计方法是伴随着大规模可编程逻辑器件CPLD /FPGA 的出现而诞生的,它改变了以卡诺图化简、小规模的TTL芯片的堆砌技术等为代表的传统数字电路设计模式,而是利用软件来设计硬件,软件的改变相应地改变了硬件电路结构,甚至在系统运行时改变系统的硬件结构,而不必重新布置器件管脚和设计系统电路,这用传统设计方法是无法实现的,它的出现打破了硬件电路和软件设计的传统界限。

步进电机控制器原理

步进电机控制器原理

步进电机控制器原理
步进电机控制器原理及工作方式
步进电机控制器是一种用于控制步进电机运动的装置,它通常由电源、控制电路和驱动电路组成。

步进电机控制器的主要功能是接收外部指令并将其转化为步进电机可识别的脉冲信号,以控制步进电机的转动角度和速度。

步进电机控制器工作的基本原理是通过不同频率和脉冲信号来驱动步进电机。

控制电路会接收到外部输入的指令信号,例如转动方向、转动角度和转动速度等,然后将这些指令信号转化为相应的脉冲信号。

这些脉冲信号会被传送到驱动电路中,驱动电路会根据脉冲信号的数量和频率来控制步进电机的转动。

在驱动电路中,通常会采用电子开关或者集成电路来控制电流和电压的变化,以实现对步进电机转动的精确控制。

通过改变脉冲信号的频率和数量,控制器可以改变步进电机的转速和转动角度,并且能够实现单步、微步或全步驱动。

步进电机控制器还可以通过编程的方式实现更复杂的控制功能。

通过编写程序,可以实现步进电机的速度曲线控制、加减速控制、位置控制等特定的运动控制要求。

综上所述,步进电机控制器通过接收外部指令并将其转化为脉冲信号,通过驱动电路对步进电机的电流和电压进行控制,从而精确地控制步进电机的转动角度和速度。

它是实现步进电机运动控制的重要组成部分。

基于EDA技术的步进电机控制电路设计

基于EDA技术的步进电机控制电路设计

基于EDA技术的步进电机控制电路设计杨显富;丁中樑【摘要】步进电机使用中常需要增减速控制,为此,针对驱动步进电机的脉冲,设计了一款脉冲频率控制电路,设计借鉴了直接数字频率合成(DDS)中相位累加的变频思想,使输出脉冲频率做到了线性递增和递减,且增频斜率可控,该设计为步进电机的实际应用提供了方便.电路逻辑功能采用VHDL语言描述,充分发挥了EDA技术优势.波形仿真结果表明,功能完全达到设计期望.%Speed control is often required for stepping motor usage,therefore,a pulse frequency control circuit was designed on account of pulse which drives stepping motor.This design was based on the idea of frequency conversion by phase accumulation from DDS(Direct Digital Synthesizer),which realized that the output pulse frequency increase and decrease linearly,and the slope of increasing/decreasing frequency is controllable.This design brought convenience to the practical usage of stepping motors.The circuit logic function used VHDL language,which has EDA technology advantage.The wave simulation result shows the function had met design expectation.【期刊名称】《成都大学学报(自然科学版)》【年(卷),期】2011(030)003【总页数】3页(P268-270)【关键词】步进电机;控制电路;频率递增;EDA技术【作者】杨显富;丁中樑【作者单位】成都大学电子信息工程学院,四川成都610106;成都大学实验技术中心,四川成都610106【正文语种】中文【中图分类】TM383.60 引言步进电机是一种把脉冲信号转换为相应的角位移,并用脉冲信号进行控制的特殊运行方式的同步电动机.在额定负载范围内,它的角位移量和转速不因供电电压、负载、环境条件的波动而变化,因而很适合工作在简单的开环控制系统中,这些优点使步进电机得到了广泛的应用[1].步进电机运行通常要经历起动、恒速、停止3个过程,由于启动过程是一个增速过程,和恒速运行相比电机还要多增加克服加速产生的惯性转矩的负担,且增速越快,惯性转矩越大,如果负载转矩加惯性转矩超过了步进电机能提供的电磁转矩就会出现“失步”;反之,停止过程是一个减速过程,减速过快容易出现“越步”现象.为了实现精确控制,必须对步进电机的增速和减速过程加以控制,使其满足应用所希望的增、减速规律.由于步进电机的转速与加给它的电脉冲频率成线性正比关系,要控制转速的递增与递减,只要控制脉冲频率的递增与递减就能达到目的.为此,本文采用VHDL硬件描述语言设计了一款用于步进电机的脉冲频率控制电路,和普通的数字电路设计相比,这种基于EDA技术的设计更具优势,其方便的仿真功能,使设计过程更轻松快捷.1 步进电机的加减速控制策略目前,对步进电机的加减速控制有很多方法,如梯形图法、指数法、抛物线法等[2],本设计采用梯形图法.如图1所示,t0~t1时段是步进电机的起动过程,驱动步进电机的脉冲频率按一定斜率线性递增;t1~t2时段是恒速运行阶段,脉冲频率不变;t2~t3是停止过程,频率按一定斜率线性递减.梯形图法的特点是频率变化呈线性规律,这里采用频率线性递增与递减是考虑到可使起动与停止为一个匀加速与匀减速过程,而匀加速匀减速所产生的惯性转矩是一个恒值,只要选择好频率上升(下降)斜率,做到负载转矩加惯性转矩不超过所选步进电机能提供的最大电磁转矩,就可避免电机出现“失步”和“越步”现象.图1 驱动步进电机的脉冲频率变化规律示意图按图1所示的脉冲频率变化规律完成电路设计的关键在频率上升和下降这两段,在数字电路中要实现脉冲信号频率变化最简单的方法就是分频[3,4],但分频所得到的一系列脉冲信号之间只能做到周期呈线性变化,而频率呈线性变化却难以做到.为此,本文引入DDS的变频思想来实现图1提出的技术要求.2 DDS变频与变频电路设计2.1 DDS变频原理DDS是一种全数字化的频率合成技术[5,6],由它合成的信号,其频率和相位都能线性可控.DDS的频率可变是基于相位增量累加的思想(见图2):在时钟信号clk作用下对相位增量寄存器输出的相位增量作累加后寄存,相位累加寄存器取二进制 n位,当累加值大等于2n时产生溢出,累加仍然在进行,相位累加寄存器的值又一轮从小到大变化,直到再次溢出.显而易见,溢出速率高低和相位增量有关,增量值越大,累加到溢出的速度越快,即溢出率和相位增量成线性正比关系.如果相位累加寄存器每溢出一次,让溢出信号 Co求反一次,则可输出脉冲,这个脉冲信号的频率代表了溢出率.只要给相位增量寄存器不同的频率控制字(相位增量),就可以在 Co获得对应的不同频率的脉冲信号.图2 DDS变频原理示意图2.2 可控自动变频电路设计图3 可控自动变频原理示意图从图2可以看出,要从Co获得某个恒频脉冲,只需输入一个固定的频率控制字就行了,而要获得频率的递增与递减则需要让频率控制字的值按线性规律递增与递减.为了实现上述功能,可将图2稍加改进,把相位增量寄存器改为相位增量计数器(见图3).设相位增量计数器为二进制 m位,通过起/停控制输入起动指令后,在时钟脉冲clk作用下,相位累加器对相位增量△a进行累加,溢出后,用 Co脉冲一个周期中的上升沿或下降沿作为相位增量计数器的时钟触发信号,对输入的初始相位增量做一次累加计数,使△a增大为初始值的2倍.之后,相位累加器完成第二轮累加溢出,输出Co第二个周期的脉冲.这个脉冲的频率将是第一次输出的2倍,而第二个周期脉冲的跳沿再次触发相位增量计数器对初始相位增量作第二次累加,使△a为初值的3倍.依此类推,不难看出,Co脉冲信号每个周期频率等值递增一次,递增幅度受控于初始相位增量,给定初始相位增量越大,频率增幅越大,频率上升越快,初始相位增量可以控制图1中 t0~t1时段脉冲频率的上升斜率.当相位增量计数器在 Co脉冲作用下对初始相位增量作累加计数直到相位增量△a大于或等于输入给定的最大相位增量后停止累加计数.此后Co输出恒频脉冲,恒定频率的高低由最大相位增量控制,给定最大相位增量越大,恒频频率越高,这就实现了图1中 t1~t2时段对脉冲频率的要求.同时,图3中的相位增量计数器为可逆计数器,在 Co恒频输出期间,通过起/停控制发出停止指令后,相位增量计数器在 Co脉冲作用下对初始相位增量作递减计数,相位增量△a由最大相位增量开始递减(递减幅度和递增幅度相同由初始相位增量决定), Co脉冲频率也随之递减,这一过程满足了图1中 t2~t3时段对脉冲频率的要求.3 控制电路的VHDL描述与仿真图4 脉冲频率控制器原理示意图对图3中的相位累加器和相位增量计数器分别用VHDL语言进行描述后,就可在图形编辑界面做原理图连接设计.图4为设计完成的脉冲频率控制器原理图.图4中,模块为相位累加器, fout为脉冲输出信号,模块为相位增量计数器,lean为初始相位增量,用于控制输出脉冲频率的变化斜率,max为最大相位增量,用于控制恒频工作的频率.与图3相比,图4增加了指令寄存器INSTRUCTION模块,这是为方便控制而设置的,clk为电路的工作时钟信号,rst为复位信号,up为起动信号,down为停止信号. 图5是电路的仿真波形.图5中的fout输出是在给定最大相位增量为60,初始相位增量为3的情况下仿真出的脉冲波形.可见,在输入 up、down的控制下,fout波形前段是频率递增过程,中间是恒频过程,后段是频率递减过程.图5 控制电路仿真波形图4 结语本文从分析步进电机工作过程入手,结合步进电机运行特点,针对其起动和停止过程可能出现的“失步”和“越步”现象,采取频率线性递增和递减的方案来控制步进电机.用DDS中相位累加实现变频,较之采用分频变频的思路,能圆满获得频率线性变化结果.采用VHDL语言描述电路逻辑功能使设计更为轻松快捷,所设计的电路功能完备,尤其是增频斜率可控,最高脉冲频率可控,为步进电机应用在不同场合提供了方便.同时,对设计电路经过EDA技术的编译、综合后再进行波形仿真.结果表明,电路输出的脉冲频率变化规律完全满足设计期望.参考文献:[1]任志锦.电机与电器控制[M].北京:机械工业出版社, 2002.[2]秦兴,周川东,王文.基于FPG A的步进电机控制器设计[J].组合机床与自动化加工技术,2002,20(7):56-58.[3]庞淑娟,倪受东.基于FPG A的步进电机速度控制器的设计[J].新技术新工艺,2008,20(4):32-33.[4]温凯,马跃,郝斌.基于FPG A的步进电机控制器设计[J].电脑知识与技术,2010,6(4):978-980.[5]丁卫东,郭前岗,周西峰.一种基于FPG A的SPWM波的实时生成方法[J].计算机技术与发展,2011,21(2):211-214.[6]潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2006.。

步进电机定位控制器EDA设计

步进电机定位控制器EDA设计


LOGO
源程序
cntini<=0; cntinc<=2; angledncntdec<=2; when "10"=> cntini<=-1; cntinc<=2; angledncntdec<=2; when "11"=> cntini<=0; cntinc<=1; angledncntdec<=1; when others=>--manner="00" if (angle rem 2)=1 then cntini<=-1; cntinc<=2; angledncntdec<=2; else cntini<=0; cntinc<=-2; angledncntdec<=2;

LOGO
模块三分析
编码输出模块是将count与angledncount产生的数值经过编码,并通过 与 产生的数值经过编码, 编码输出模块是将 产生的数值经过编码 并通过babap[3..0] 输出到步进电机,将旋转角度输出到数码管显示。 输出到步进电机,将旋转角度输出到数码管显示。

LOGO
模块二分析
1.假如reset=1条件成立,则将count与angledncount设置成0. 假如reset=1条件成立,则将count angledncount设置成 reset=1条件成立 count与 设置成0.
2.假如reset=0,clk为上升触发且ini=1时 则将设定的初始值( 2.假如reset=0,clk为上升触发且ini=1时,则将设定的初始值(cntini 假如reset=0 为上升触发且ini=1 angle)赋予给count anglencount两个信号端 count与 两个信号端。 与angle)赋予给count与anglencount两个信号端。 3.假如reset=0,clk为上升触发且ini=0时 则将count cntini相加 假如reset=0 为上升触发且ini=0 count与 相加, 3.假如reset=0,clk为上升触发且ini=0时,则将count与cntini相加, 再 将结果存为count 然后判断anglencount的值是否大于anglencntdec count。 anglencount的值是否大于anglencntdec。 将结果存为count。然后判断anglencount的值是否大于anglencntdec。 如果大于,则用angledncount angledncntdec, angledncount减 如果大于,则用angledncount减angledncntdec,将结果存为 anglencount,否则将angledcount设为0. angledcount设为 anglencount,否则将angledcount设为0.

eda步进电机课设报告

eda步进电机课设报告

步进电机控制器摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目地。

FPGA技术正处于高速发展时期,由于其速度快,成本也越来越低,受到广大开发者得青睐。

本设计采用高速集成硬件描述语言(VHDL)在SOPC-NIOSIII-EP3C80开发板实现对步进电机控制器的设计,实现步进电机转动速度、固定角度等基本控制。

关键词:步进电机;FPGA;VHDL语言目录1 绪论 (1)2 系统设计 (2)2.1 总体设计 (2)2.2 步进电机角度和方向控制模块 (3)2.3 4×4键盘扫描模块 (4)2.4 16*16点阵显示模块 (6)2.6 计数器模块 (8)2.7 锁存器模块 (8)2.8 八位七段数码管显示模块 (9)3 程序流程设计 (11)3.1 主体流程图 (11)3.2键盘扫描流程图 (12)3.3 16*16点阵显示流程图 (12)3.4 利用八位七段数码管显示流程图 (13)4 总结 (14)参考文献 (15)附录A 步进电机控制器设计程序 (16)A.1 角度和转向控制程序模块 (16)A.2 4×4键盘扫描模块 (21)A.3 16*16点阵显示模块 (24)A.4 测速控制信号产生模块 (37)A.5 计数器模块 (40)A.6 锁存器模块 (41)A.7 八位七段数码管显示模块 (41)附录B 步进电机原理图 (44)附录C FPGA管脚分配表 (45)1 绪论EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA步进电机控制

EDA步进电机控制

EDA技术设计报告《直流电机的PWM控制》电子信息工程学院通信2班顾问 2012214485一、EDA技术概述EDA(Electronic Design Automation)技术作为现代电子设计技术的核心,它依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试等项功能,直至实现既定性能的电子综合系统功能。

EDA技术使得设计者的工作几乎仅限于利用软件的方式,即利用硬件描述语言HDL和EDA软件来完成对系统硬件功能的实现。

二、硬件描述语言与所用软件简介2.1、Verilog HDL硬件描述语言功能介绍Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。

被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。

数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。

Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。

所有这些都使用同一种建模语言。

此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。

Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。

因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。

语言从C编程语言中继承了多种操作符和结构。

Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。

但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。

当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。

EDA步进电机控制应用

EDA步进电机控制应用

湖南涉外经济学院课程设计报告课程名称:EDA技术及实例开发教材报告题目:步进电机控制学生姓名:王海缘所在学院:信息科学与工程学院专业班级:自动化1101学生学号:11430523150831指导教师:高金定2014年6月16日目录一、设计任务1二、步进电机简介1三、硬件设计2四、软件设计5五、实验结果5六、开发工具6七、参考文献6一、设计任务实验目的学习使用FPGA实现步进电机的驱动和细分控制,了解步进电机细分控制的原理。

实验内容使用PWM方法来控制步进电机细分旋转,实现1/4细分(4.5°/步)控制和不细分(18°/步)。

并在实验箱上设计一个步进电动机的控制器,用KEY1控制步进电机正/反转(由LED1指示状态);KEY2控制电机正常运行/细分运行(由LED2指示状态);用KEY3控制步进电机的启停。

利用Quartus II完成设计、仿真等工作,最后在Smart SOPC 实验箱上进行硬件测试。

二、步进电机简介步进电机的概念步进电机是一种将电脉冲转化为角位移的执行机构。

通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角),可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

反应式步进电机又称:感应式、磁滞式、磁阻式步进电动机;定子和转子均为软磁材料;通电后利用磁导的变化产生转矩;可实现大转矩输出、步距角小(最小可做到10度);断电时无定位转矩;电机内阻尼较小;单步运行(指脉冲频率很低时)震荡时间较长;启动和运行频率较高。

步进电机细分驱动控制

步进电机细分驱动控制

“EDA技术应用”专用周报告(步进电机细分驱动控制)系部:电气信息工程系班级:通信技术11—1指导老师:龚老师姓名:齐棋201112020148姓名:付晓会201112020121摘要本次课题(步进电机细分驱动控制)要求使用PWM方法来控制步进电机的驱动和细分旋转,实现1/4细分(4.5°/步)控制盒不细分控制(18°/ 步)。

用KEY1控制步进电机正/反(由LED1和数码管指示状态);KEY2控制步进电机正常运行/细分运行(由LED2和数码管指示状态)。

利用QuartusⅡ完成设计、仿真等工作,最后在SmartEDA实验箱上进行硬件测试达到课题要求。

关键词:步进电机 PWM 驱动细分目录第一章课题介绍 (1)1.1 课题目的 (1)1.2 课题内容 (1)1.3 课题原理 (1)1.3.1 4相反应式步进电机的工作方式 (2)第二章硬件电路 (3)2.1 步进电机及驱动电路图 (3)2.1.1 步进电机细分驱动的工作原理 (4)2.2 系统电源电路 (6)2.3 按键及LED电路 (7)2.4 七段数码管显示电路 (7)第三章设计步骤 (9)3.1 设计步骤 (9)3.2 引脚定义 (9)第四章程序清单 (10)第五章总结 (17)附录 (19)参考文献 (22)第一章课题介绍1.1 课题目的学习使用FPGA实现步进电机和细分控制,了解步进电机细分控制的原理。

1.2 课题内容使用PWM方法来控制步进电机的驱动和细分旋转,实现1/4细分(4.5°/步)控制盒不细分控制(18°/ 步)。

用KEY1控制步进电机正/反(由LED1和数码管指示状态);KEY2控制步进电机正常运行/细分运行(由LED2和数码管指示状态)。

利用QuartusⅡ完成设计、仿真等工作,最后在SmartEDA实验箱上进行硬件测试。

1.3 课题原理步进电机是一种应用非常广泛的几点产品,与普通电机相比它可以实现精确的位置控制,在驱动脉冲的控制下可以按规定的速度和角度旋转。

EDA电机

EDA电机

实验十八步进电机驱动控制一、实验目的1.了解步进电机的工作原理。

2.掌握用FPGA产生驱动步进电机的时序。

3.掌握用FPGA来控制步进电机转动的整个过程。

二、实验原理步进电机是工业过程控制及仪表中常用的控制元件之一,例如在机械装置中可以用丝杆把角度变为直线位移,也可以用步进电机带动螺旋电位器,调节电压或电源,从而实现对执行机械的控制。

步进电机可以直接用数字信号驱动,使用非常方便。

步进电机还具有快速启停、精确步进和定位等特点,因而在数控机床、绘图仪、打印机以及光学仪器中得到广泛的应用。

步进电机是工业控制及仪表中常用的控制元件之一,例如在机械装置中可以精确控制机械装置的旋转角度、移动距离等。

步进电机可以直接用数字信号来驱动,使用非常方便。

另外步进电机还具有快速起停、精确步进和定位的特点。

步进电机实际上是一个数据/角度转换器,三相步进电机的结构原理如下图18-1所示:图18-1 三相步进电机的结构示意图从图中可以看出,电机的定子有六个等分的磁极,A、A’、B、B’、C、C’,相邻的两个磁极之间夹角为60°,相对的两个磁极组成一组(A—A’,B—B’,C—C’),当某一绕组有电流通过时,该绕组相应的两个磁极形成N极和S极,每个磁极上各有五个均分布的矩形小齿,电机的转子上有40个矩形小齿均匀地分布在圆周上,相邻两个齿之间夹角为9°。

⑴当某一相绕组通电时,对应的磁极就产生磁场,并与转子转动一定的角度,使转子和定子的齿相互对齐。

由此可见,错齿是促使步进电机旋转的原因。

例如在三相三拍控制方式中,若A相通电,B、C相都不通电,在磁场作用下使转子齿和A相的定子齿对齐,我们以此作为初始状态。

设与A相磁极中心线对齐的转子的齿为0号齿,由于B相磁极与A相磁极相差120°不是9°的整数倍(120÷9=13 2/3) ,所以此时转子齿没有与B相定子的齿对应,只是第13号小齿靠近B相磁极的中心线,与中心线相差3°,如果此时突然变为B相通电,A、C相不通电,则B相磁极迫使13号转子齿与之对齐,转子就转动3°,这样使电机转子一步。

EDA课设(步进电机)

EDA课设(步进电机)

《EDA技术及应用》课程设计报告题目:简单步进电机控制系统设计院(系):机电与自动化学院专业班级:自动化1104学生姓名:张凯学号:20111184144指导教师:段丽娜2016年6月 15日至2014年 6 月 20日华中科技大学武昌分校制《EDA技术及应用》课程设计任务书目录1 课程设计要求及目的 (1)1.1 课程设计任务 (1)1.2 课程设计要求 (1)1.3 课程设计目的 (1)2 课程设计主要内容 (1)2.1 系统硬件原理图 (1)2.2系统硬件接线图 (8)2.3三相四线制异步电机 (8)2.4 驱动电路 (9)2.5 软件设计 (9)2.5.1 源程序 (9)2.5.2 功能仿真图 (10)2.5.3 电路仿真图 (10)3 调试结果及分析 (23)4 课程设计总结 (24)5参考文献 (25)1 课程设计要求及目的1.1课程设计任务用EDA技术对三相四线制步进电机进行控制。

1.2 课程设计要求①本课程设计要求对三相四线制的步进电机进行控制,要求编写程序完成步进电机的转速及专向的控制,能够实现正转的三档转速控制及反转的三档速度控制;②在电机运转过程中,能够实现简单的速度控制,速度控制分三档:慢,快;转速在程序中设定,由按键控制;此外还要求由一个按键实现转向控制;③主控芯片由于功耗要求,其输出电流较小,驱动能力不够,因此必须设计驱动电路驱动步进电机的旋转。

1.3 课程设计目的了解三相四线制步进电机工作原理;熟练使用VHDL语言编程。

2 课程设计主要内容2.1 系统硬件原理图系统原理图如图2-1所示:图2-1 系统原理图2.2 系统硬件接线图系统硬件接线图如图2.2所示:Step motor图2-2 系统硬件接线图2.3三相四线制步进电机三相四线制步进电机的驱动原理为当不同绕组一次轮流接通驱动电路时,会产生磁场从而带动步进电机旋转一个步次,当改变绕组接通次序则会改变其转向,当改变绕组接通频率则可改变其运行速度。

步进电机定位控制器EDA设计

步进电机定位控制器EDA设计

6.8 步进电机定位控制器EDA设计6.8.1设计要求设计一个基于FPGA的4相步进电机定位控制系统,在开路控制的情况下,为使步进电机产生运动,电动机中的磁性线圈或绕组以特定顺序通电或断电,要求采用数字信号来控制电动机每个线圈中的电流。

6.8.2原理描述步进电机是按步旋转的电动机,而不是连续运行的,典型情况下是每步旋转15º。

另外,步进电机是利用数字信号控制的电机装置,步进电机每次接收到一组脉冲数字信号,便旋转一个角度,称为步进角。

不同规格的步进电机的步进角不同,与电动机内部的线圈数量有关。

线圈中的供应电流决定线圈所产生的磁场方向。

如果将电动机中的转子置于线圈所产生的磁场中,便会受到磁场的作用而产生与磁场方向一致的力,转子便开始转动,直到转子的磁场方向与线圈的磁场方向一致为止。

4相步进电机有两组线圈A和B。

A、B两组垂直摆放线圈的电流方向的排列组合,最多可以产生8种磁场方向,分别是0º、45º、90º、135º、180º、225º、270º、315º,如图6-73所示,表6-8给出了4相步进电机的8个方向和电流以及电压信号的关系图6-73四相步进电机线圈磁场方向图由表6-8可知,假设电动机转子刻度在0º的位置,想让其转180º,可以使端口信号依次按0001→0011→0010→0110→0100变化。

但是否有更快的方法,是否一定要经过4个信号过程呢?其实有更快更省电的方式让电动机从0º到达180º的位置。

这就是所谓激磁方式的不同。

四相电动机可以分为以下3种激磁方式:(1)1-相激磁法:当目标角度是90º的整数倍时,采用这种方法。

例如要从0º转到270º,只要让端口信号的顺序为0000,0001,0010,0100,1000即可。

(2)2-相激磁法:当目标角度是45º,135º,225º,315º时,可采用这种方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA技术设计报告《直流电机的PWM控制》电子信息工程学院通信2班顾问 2012214485一、EDA技术概述EDA(Electronic Design Automation)技术作为现代电子设计技术的核心,它依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试等项功能,直至实现既定性能的电子综合系统功能。

EDA技术使得设计者的工作几乎仅限于利用软件的方式,即利用硬件描述语言HDL和EDA软件来完成对系统硬件功能的实现。

二、硬件描述语言与所用软件简介2.1、Verilog HDL硬件描述语言功能介绍Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。

被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。

数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。

Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。

所有这些都使用同一种建模语言。

此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。

Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。

因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。

语言从C编程语言中继承了多种操作符和结构。

Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。

但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。

当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。

2.2、Quartus II软件综述Quartus II是Altera公司在21世纪初推出的FPGA/CPLD开发环境,是Altera前一代FPGA/CPLD开发环境MAX+PLUSII的更新换代产品,其优点是功能强大、界面友好、使用便捷。

Quartus II软件集成了Altera的FPGA/CPLD开发流程中所涉及的所有工具和第三方软件接口。

通过此开发工具,设计者可以创建、组织和管理自己的设计。

2.3、第三方仿真工具ModelSimModelSim仿真工具是由Model技术开发公司开发的目前业界最通用的仿真器之一,它支持Verilog和VHDL混合仿真,仿真精度高,仿真速度快。

其仿真版本繁多,与Altera相关的主要有ModelSim-Altera(即AE版本)、ModelSim SE 和ModelSim PE版本等。

三、设计原理3.1、直流电机PWM调速原理脉冲宽度调制(PWM)是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。

PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。

PWM是一种对模拟信号电平进行数字编码的方法。

通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。

PWM信号任然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。

电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。

通的时候即是直流供电被加到负载上的时候,短的时候即是供电被断开的时候。

只要带宽足够,任何模拟值都可以使用PWM进行编码。

3.2、直流电机的PWM控制PWM信号可以由CPU产生,也可以油FPGA产生。

由CPU产生PWM信号时,是通过模拟比较器产生的,比较器的一端接一个给定的参考电压,另一端接周期线性增加的锯齿波电压。

当锯齿波电压小于参考电压时输出低电平,当锯齿波电压大于参考电压时就输出高电平。

所以改变参考电压就可以改变PWM波形的高电平的宽度,也就是改变PWM波形的占空比。

CPU产生PWM信号,需要D/A转换器产生锯齿波电压和设置参考电压,通过外接模拟比较器输出PWM,因此外围电路很复杂。

而用FPGA的数字PWM控制产生PWM信号,只需要FPGA部资源就可以实现,运用可编程逻辑器件,采用VerilogHDL硬件描述语言编程。

数字比较器的一端接设定值计数器输出,另一端接线性递增计数器输出。

如果线性计数器的技术值小于设定值就输出低电平,如果线性计数器的技术值大于设定值时输出高电平。

FPGA的数字PWM控制与模拟PWM控制相比,省去了外接的D/A转换器和模拟比较器,FPGA外部连线很少、电路简单、便于控制。

四、基本功能介绍4.1、功能简介本次设计制作了一个PWM信号电机控制系统,共有两个按键,其中,一个按键可以控制产生的PWM的宽度(即数字‘1’的时间长度),按下该按键,PWM 的宽度增加4096个主时钟宽度,从而达到电机加速的目的,共有16个档速,PWM 的宽度从0-4096*15个主时钟的宽度。

另外一个按键控制PWM波的输出与否,按下,如果PWM在输出,则停止输出,如果不在输出,则开始运行,从而实现对电机的开关控制。

同时,本系统部自行设定了一个5s定时器,可以实现每5S钟电机转向的反转。

4.2、设计原理框图4.3、顶层图电机控制系统Key_in[1] Key_in[0]Pwm_en指示信号Motoa电机a端Motob电机b端按键消抖及检测5s定时实现反转转速控制电机开关4.4、引脚说明输入: Clock:系统总时钟输入Rst_n:系统复位按键Key[1:0]:系统功能按键。

Key[1]控制PWM波从输出与否Key[0]控制电机转速,可加速输出: motoa,motob:电机的两个输入引脚pwm_en:pwm波指示:1--输出(即电机开启)0--停止(即无PWM输出)五、代码各部分模块介绍5.1、系统模块RTL视图5.2、系统各模块简介:5.2.1、pwm_logic模块简介引脚说明:输入:clk:总时钟信号rst_n:复位信号pwm_en:pwm使能信号duty_cycle:控制PWM宽度输出:pwm_out:PWM输出PWM_logic模块顶层视图5.2.2、pwm_logic模块原理介绍程序通过一个计数器来实现PWM的输出,通过duty_cycle来控制输出的PWM 波的占空比,PWM_en来实现PWM的输出与否。

核心程序如下:always (posedge clk) //计数器计数,pwm_en为使能信号beginif(!rst_n)counter <= 0;else if(pwm_en)counter <= counter + 1'b1;endalways (posedge clk) //PWM_out输出,程序根据判断计数器begin //counter【15:12】跟duty_cycle比较来实现 if(!rst_n) //PWM的输出,<则输出‘1’大于则输//‘0’.pwm_out <= 1'b0;else if (pwm_en & (counter[15:12] <= duty_cycle))pwm_out <= 1'b1;elsepwm_out <= 1'b0;end5.2.3、moto模块简介引脚说明:输入:clk:总时钟信号rst_n:复位信号Key[1:0]:按键输入PWM_in:PWM输入信号输出:duty_cycle:转速控制pwm_en: pwm使能信号Motoa:电机a端口。

Motob:电机b端口。

moto模块顶层视图5.3、moto模块原理介绍模块部原理:5.3.1、按键消抖及检测部分核心程序如下://按键消抖部分always (posedge clock)beginif(!rst_n)begindout1 <= 0;dout2 <= 0;dout3 <= 0;endelse if(div_clk) //div_clk是主时钟分频之后的时钟, Begin // 用于使能按键检测dout1 <= key;dout2 <= dout1;dout3 <= dout2;endend//按键边沿检测部分always (posedge clock)beginif(!rst_n)buff <= 0;else //按键检测,通过assign 语句对key_edge buff <= dout1 | dout2 | dout3; //赋值,保证了按键的消抖endassign key_edge = ~(dout1 | dout2 | dout3) & buff;5.3.2、时钟分频部分核心程序如下:always (posedge clock)beginif(!rst_n)begincount <= 0;div_clk <= 0;end//else if (count < 17'd120000)//else if (count < 17'd4000)else if (count < 17'd4)Begin //counter 计数器计数,通过判断 count <= count + 1'b1; //counter的大小来决定输出的频率 div_clk <= 1'b0;endelsebegincount <= 17'd0;div_clk <= 1'b1;endend5.3.3、5s定时及反转部分通过对计数器进行计数,计到5s,大约计数器等于30'h2FAF080时执行下列语句,来实现输出motoa,motob的反转。

moto_dir <= ~moto_dir;assign motoa = moto_dir ? pwm_in : 1'b0;assign motob = moto_dir ? 1'b0 : pwm_in;5.3.4、按键控制部分本程序共有两个按键,按键一通过控制duty_cycle的长度来控制PWM波的占空比,从而实现电机转速的控制。

按键二通过控制PWM_EN来实现PWM输出与否,从而实现电机的开关。

相关文档
最新文档