找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14544|回复: 1
收起左侧

直流电机PWM控制的FPGA实现论文与仿真源码等全套资料

[复制链接]
ID:290266 发表于 2018-4-18 03:17 | 显示全部楼层 |阅读模式
课题名称直流电机PWM控制的FPGA实现         
摘 要
文章详细地介绍了直流电机的类型、结构、工作原理、PWM调速原理以及FPGA集成芯片。并对直流电机PWM调速系统方案的组成、硬件电路设计、程序设计及系统仿真分别进行了详细的叙述。拟开发的直流电机PWM调速装置具有调速范围宽、低功耗、可实现在线调试等特点。本系统是以FPGA为其控制核心,输入电路以键盘作为输入方式向FPGA控制系统发出控制命令,以有源晶振构成的时钟电路发出信号。控制系统接收命令后直接向H型桥式驱动电路发出PWM控制信号。输出电路主要实现正反转、起停控制、速度在线可调功能。本设计已通过了实验仿真。

Abstract
This paper introduces clearly the construction and the principle of DC Motor and the principle of the Speed Control based on PWM and integrated FPGA chip.And describes detailly and operately the program of DC Motor speed control based on PWM how to be formed and the design of the hardware circuit ,the design and the System Simulation .The device of DC Motor speed control based on PWM being invented has the follow characteristics : wide speed control range, low power idle, debugging on line and so on, at the same time , it can achieve the automation .The control center of the system is the FPGA, and the input circuit delivers the orders over the keyboard as its input method to the FPGA adopting the way of the Breach. While quartz crystal clock circuit and inverter which is consisted of harmonic oscillator clock signal sent to the system ,when the FPGA receives the orders,and later sends the PWM signal to the output circuit ,witch is the line-clectric ouhe circuit and the H board bridge drive circuit .The output circuit chiefly controls DC Motor to move in the clockwise or the other direction .The design has been tested through the experiment ,and the program is debugged successfully.

目录
摘 要
Abstract
1 前言
1.1 课题的来源
1.2 课题研究的目的和意义
1.3 课题国内外研究现状
1.4 课题研究的主要内容
2 直流电机PWM调速系统方案设计
2.1 直流电机
2.2 直流电机调速原理
2.4 基于单片机的直流电机PWM调速方案
2.5 基于FPGA的直流电机调速方案
2.6 方案论证
3 直流电机PWM调速控制电路设计
3.1 系统工作原理
3.2 键盘电路设计
3.3 系统时钟电路设计
3.4 H型桥式驱动电路设计
3.5 电源电路设计
3.6 主要元器件简介
4 控制逻辑VHDL描述
4.1 VHDL硬件描述语言
4.2 FPGA内部逻辑组成
4.3 PWM脉宽调制信号产生电路描述
4.4 运行控制逻辑电路描述
5 直流电机PWM调速系统仿真
5.1 FPGA开发环境的介绍
5.2 建立工程项目
5.3 正/反转控制仿真
5.4 启/停控制仿真
5.5 加/减速仿真
5.6 仿真结果分析
6 总结
参考文献
致谢
1





1 前言1.1 课题的来源
电机是一种能量转换的装置,在国民经济中起着重要作用,无论是在工农生产、交通运输、国防宇航、医疗卫生、商务与办公设备,还是日常生活中的家用电器,都大量的使用着各种各样的电机,如汽车、电视机、电风扇、空调等等也离不开电机。同时,在越来越多的应用场合,只能旋转的电机己无法满足要求,而是要求能够实现快速加速、减速或反转以及准确停止等功能。必须寻找新的电机控制器来适应时代的发展。
电机的控制器经历了从模拟控制器到数字控制器的发展。由于模拟器件的参数受外界影响大,而且精度也较差。数字控制器与模拟控制器相比较,具有可靠性高、参数调整方便、控制精度高、对环境因素不敏感等优点。随着工业电气化、自动控制和家电产品等领域对电机控制产品的需求,人们对电机控制技术的要求有所提高。由于传统的8位单片机其内部体系结构和计算功能等条件限制,在实现各种先进的电机控制理论和高效的控制算法时遇到了困难。因此,目前最为普遍的做法是使用高性能的数字信号处理器(DSP)来解决电机控制器不断增加的计算量和速度的需求。将一系列外围设备如模数转换器、脉宽调制发生器、和数字信号处理器集成在一起组成复杂的电机控制系统。随着EDA技术的发展,用基于现场可编程门阵列FPGA的数字电子系统对电机进行控制,为实现电动机数字控制提供了一种新的有效方法。现场可编程门阵列(FPGA)器件集成度高、体积小、速度快,以硬件电路实现算法程序,将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性。
电动机调速系统采用FPGA实现数字化控制,是电气传动发展的主要趋势。采用FPGA控制后,整个调速系统能够实现快速加速、减速或正/反转以及准确停止、在线调速等功能,操作维护方便,电动机稳态运转时转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。由于FPGA的 外部连线少,电路简单,便于控制,具有较佳的性能价格比,所以在工业过程及设备控制中得到日益广泛的应用[1]。
1.2 课题研究的目的和意义
直流电机大多数采用PWM(脉宽调制)的方法进行控制,它有两种模式:一种是采用模拟电路控制,另一种是采用数字的控制。模拟控制由于其调试复杂等固有原因,正逐渐被淘汰。而在数字控制技术中,FPGA的数字PWM控制具有精度高,反应快,外部连线少,电路简单,便于控制等优点广泛的被人们使用,应而研究FPGA具有十分重要的意义。对于本次设计目的在于:
(1)掌握基于FPGA的直流电机PWM控制原理,学会应用EDA技术进行编程
(2)通过对本课题的研究,掌握EDA开发技术的编程方法,培养创新意识和理论联系实际的学风。熟悉现代电子产品的设计流程。
FPGA用于控制领域特别是电机控制还是比较少的,本设计为电机控制系统提供一种的控制技术,在电机控制方面作了一些片内系统的初步研究。本设计利用ALTERA公司的FPGA芯片—FLEX10K10作为目标器件来控制直流电机,讲解了MAX+Plus II设计流程,分析了现代电子产品的设计方法,并初步研究了FPGA产生PWM信号的方法。
本设计将电机控制所使用的一些基本功能尽可能地集成在一片FPGA上,本设计论述了利用FPGA对直流电机进行控制时所起的各部分功能—PWM波的产生、在线调速、正反向控制逻辑,并利用硬件描述语言对PWM波在FPGA中进行组合逻辑变换,并进行仿真。
1.3 课题国内外研究现状
在国外,PWM源于上世纪九十年代,其思想源于通信技术,但随着现代电子技术的发展使得PWM理论越来越成熟,其发展的速度越来越快速。已经取代传统的可控硅电机调速系统。由原先的“电机控制”“电气传动”已发展到“运动控制”的新阶段。IGBT、电力MOSFET等为代表的全控型器件的不断完善给PWM控制技术提供了强大的物质基础。
在国内PWM有理论基础逐渐成熟,但在应用上,国内外差距也很大。PWM调速系统的应用是近年来才开始的,原因是我国的电子工业的基础比较差。PWM调速系统中所需的关键部件IGOT管靠进口。近年来,我国已开发出具有自主知识产权的IGOT大电流晶体管,从而为该技术推行奠定了物质基础。PWM电机调速方案是未来电机拖动系统的首选方案,是实现电机拖动数字控制的基础[2]。
1.4 课题研究的主要内容
本设计提出了两种控制方案:一种是基于单片机的直流电机控制,另一种是基于FPGA的直流电机控制,通过方案的论证与比较,采用后者调速方案。
本设计的主要内容是掌握基于FPGA的直流电机PWM控制原理,设计具有正/反转、起/停控制功能、速度在线可调的直流电机控制装置。通过对直流电机控制的研究,掌握EDA开发技术。
本设计详细的分析了直流的结构、主要技术参数、工作原理和调速原理,基于FPGA的PWM波形产生的过程,并用VHDL描述PWM波形。本设计的所有功能均在ALTERA公司的MAX+Plus II软件下通过仿真。本设计对PWM波形数据进行测试与详细的分析。

2 直流电机PWM调速系统方案设计电机可分为变压器、异步电机、同步电机和直流电机四个机种。其中变压器是静止的电气设备,其余均为旋转电机。异步电机和同步电机均为交流电机。在本次设计中用到的是直流电机,直流电机是实现直流电能与机械能转的装置[1]。以下详细介绍了直流电机的基本结构、工作原理、主要技术参数和调速原理。2.1 直流电机2.1.1 直流电机基本结构直流电机由定子(静止部分)和转子(转动部分)两大部分组成。
2.1 直流电机的结构
(1)定子部分定子部分包括机座、主磁极、换向极和电刷装置等。①机座机座有两个作用,一是作为电机磁路系统中的一部分,二是用来固定主磁极、换向极及端盖等,起机械支承的作用。因此要求机座有好的导磁性能及足够的机械强度和刚座,机座通常用铸钢或厚钢板焊成。②主磁极在大多数直流电机中,主磁极是电磁铁,如图2.1的NS就是主磁极,主磁极铁芯用1~1.5mm厚的低碳钢板叠加而成,整个磁级用螺钉固定在机座上。主磁极的作用是在定转子之间的气隙中建立磁场,使电枢绕组在此磁场的作用下感应电动势和产生电磁转矩。③换向极换向极又称附加极或间极,其作用是以改善换向。换向极装在相邻两主磁极NS之间,由铁心和绕组构成。铁芯一般用整块钢或钢板加工而成。换向极绕组与电枢绕组串联。④电刷装置在图2.1中,AB表示电刷。它的作用是把转动的电枢绕组与静止的外电路相连接,并与换向器相配合,起到整流或逆变器的作用。(2)转子部分直流电机的转子称为电枢,包括电枢铁芯、电枢绕组、换向器、风扇、轴和轴承等。①电枢铁芯电枢铁芯是电机主磁路的一部分,且用来嵌放电枢绕组。为了减少电枢旋转时电枢铁芯中因磁通变化而引起的磁滞及涡流损耗,电枢铁心通常用0.5mm厚的两面涂有绝缘漆的硅钢片叠加而成。②电枢绕组电枢绕组是由许多按一定规律连接的线圈组成,它是直流电机的主要电路部分,也是通过电流和感应电动势,从而实现机电能量转换的关键部件。线圈用包有绝缘的导线绕制而成,嵌放在电枢槽中。每个线圈(也称元件)有两个出线端,分别接到换向器的两个换向片上。所有线圈按一定规律连接成一闭合回路。③换向器换向器也是直流电机的重要部件。在直流电动机中,它将电刷上的直流电流转换成绕组内的交流电流;在直流发电机中,它将绕组内的交流电动势转换成电刷端上的直流电动势。换向器由许多换向片组成,每片之间相互绝缘。换向片数与线圈元件数相同。2.1.2 直流电机工作原理直流电机的工作原理建立在电磁力和电磁感应的基础上,从图2.1可以看出主磁极NS间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈abcdabcd是装在可以转动的铁磁圆柱上的一个线圈,把线圈的两端分别接到两个圆弧形的铜片上(简称换向片),两者相互绝缘,铁芯和线圈合称电枢。当线圈中通入直流电流时,线圈边上受到电磁力F=Bli根据左手定则确定力的方向,这一对电磁力形成了作用于电枢的一个电磁转矩,转矩的方向是逆时针方向。若电枢转动,线圈两边的位置互换,而线圈中通过的还是直流电流,则所产生的电磁转矩的方向则变为顺时针方向,因此电枢受到一种方向交变的电磁转矩。这种交变的电磁转矩只能使电枢来回摇摆,而不能使电枢连续转动。显然,要使电枢受到一个方向不变的电磁转矩,关键在于,当线圈边在不同极性的磁极下,如何将流过线圈中的电流方向及时地加以变换,即进行所谓“换向”。为此必须增添一个叫做换向器的装置,换向器由互相绝缘的铜质换向片构成,装在轴上,也和电枢绝缘,且和电枢一起旋转。换向器又与两个固定不动的由石墨制成的电刷AB相接触。装了这种换向器以后,若将直流电压加于电刷端,直流电流经电刷流过电枢上的线圈,则产生电磁转矩,电枢在电磁转矩的作用下就旋转起来。电枢一经转动,由于换向器配合电刷对电流的换向作用,直流电流交替地由线圈边ab和cd流入,使线圈边只要处于N极下,其中通过电流的方向总是由电刷A流入的方向,而在S极下时,总是从电刷B流出的方向。这就保证了每个极下线圈边中的电流始终是一个方向。这样的结构,就可使电动机能连续地旋转。这就是直流电机的基本工作原理[3]。2.1.3 直流电机主要技术参数为了使电机安全可靠地工作,且保持优良的运行性能,电机厂家根据国家标准及电机的设计数据,对每台电机在运行中的电压,电流,功率,转速等规定了保证值,这些保证值就是直流电机的主要技术参数,直流电机的主要技术参数有:直流电机的转速,是指电机实际转动的速度n  
n =Ua-IR/CeΦ                  (2.1)
Ua为电枢电动势,Ce为电动势常数,Φ是磁通量。
额定功率(容量)PN,是指电刷输出的电功率,单位为kW;
PN=UNIN                                 (2.2)
额定电压UN,指额定状态下电枢出线端的电压,单位为V;额定电流IN,指电机在额定电压、额定功率时的电枢电流值,单位为A;额定转速ηN,指额定状态下运行时转子的转速,单位为r/min;
ηN =PN/UNIN                            (2.3)
2.2 直流电机调速原理2.2.1 直流电机电压调速原理
图2.2为按电机惯例标定的直流电机稳定运行量各物理量的正方向。由图可见电机的电枢电动势Ea的正方向与电枢电流Ia的方向相反,为反电动势;电磁转矩T的正方向与转速n的方向相同,是拖动转矩;轴上的机械负载转矩T2及空载转矩T0均与n相反,是制动转矩。
根据基尔霍夫第二定律,对图2.2的电枢回路列回路电压方程可得直流电动的电动势平衡方程式:
         U=Ea-Ia(Ra+Rc)                (2.4)
式2.4中,Ra为电枢回路电阻,电枢回路串联保绕阻与电刷接触电阻的总和;Rc是外接在电枢回路中的调节电阻。   由此可得到直流电机的转速公式为:  
        n =Ua-IR/CeΦ                    (2.5)
式中,Ce为电动势常数,Φ是磁通量。    由1.1式和1.2式得        n =Ea/Ce                          2.6从由式子2.6中可以看出,对于一个已经制造好的电机,当励磁电压和负载转矩恒定时,它的转速由电枢电压Ea决定,电枢电压越高,电机转速就越快,电枢电压降低到0V时,电机就停止转动;改变电枢电压的极性,电机就反转。总之电机的调速可以通过控制电枢电压实现[3]。
图2.3 PWM调速原理
2.2.2 直流电机PWM调速原理所谓脉冲宽度调制是指用改变电机电枢电压接通与断开的时间的的占空比来控制电机转速的方法,称为脉冲宽度调制(PWM)对于直流电机调速系统,使用FPGA进行调速是极为方便的。其方法是通过改变电机电枢电压导通时间与通电时间的比值(即占空比)来控制电机速度。PWM调速原理如图2.3所示。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电时间,即可让电机转速得到控制。设电机永远接通电源时,其转速最大为Vmax,设占空比为D=t1/T,则电机的平均速度为                        Vd=Vmax·D                            2.7式中,Vd——电机的平均速度      Vmax——电机全通时的速度(最大)      D=t1/T——占空比              平均速度Vd与占空比D的函数曲线,如图2.4所示。
图2.4 平均速度和占空比的关系
由图2.4所示可以看出,Vd与占空比D并不是完全线性关系(图中实线),当系统允许时,可以将其近似地看成线性关系(图中虚线)。因此也就可以看成电机电枢电压Ua与占空比D成正比,改变占空比的大小即可控制电机的速度由以上叙述可知:电机的转速与电机电枢电压成比例,而电机电枢电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空比越大,电机转得越快,当占空比α1时,电机转速最大。2.4 基于单片机的直流电机PWM调速方案
图 2.5 基于单片机控制的PWM调速系统
如图2.5所示为基于单片机的直流电机PWM调速方案的系统方框图。D/A转换器接在单片机AT89C51的P0引脚上,由软件编程的产生的信号从P0脚输出经D/A转换器后输出周期性线性增加的锯齿波电压,同时在模拟比较器另一端接给定的参考电压。当锯齿波电压小于参考电压时输出低电平,当锯齿波电压大于参考电压时输出高电平。改变滑动电阻的值便可以改变参考电压的大小,从而改变PWM波形中高电平的宽度,改变直流电机的占空比,改变直流电机的速度。关于电机运动方向控制,本设计在单片机的P2口引出两个端口P2.1、P2.2控制直流的方向。其控制的原理是在PWM波形输出端加上两个与门,其分别与电机的方向控制端P2.1P2.2相与,其具体的连接如图2.5。当P2.1、P2.2输出02H控制模型P2.1=1P2.2=0时,三极管V1和V4导通,V2和V3截止,电机全速正转。当P2.1P2.2输出01H模型(P2.1=0P2.2=1)时,V1和V4截止,V2和V3导通,电机全速反转。在这里需要注意的问题的是,当输出全为1时,电机刹车,全为0时,电机滑行。工作状态表如下:
表1 电机工作状态真值表
P2.1
P2.2
状态
V1
V2
V3
V4
1
0
正转
1
0
0
1
0
1
反转
0
1
1
0
1
1
刹车
1
1
1
1
0
0
滑行
0
0
0
0

从以上的分析可知基于单片机的直流电机PWM调速方案要用到D/A转换器、模拟比较器,外围电路比较复杂。2.5 基于FPGA的直流电机调速方案
图 2.6 基于FPGA的直流电机调速系统
如图2.6所示为基于FPGA的直流电机调速方案的方框图,FPGA中的数字PWM控制基于单片机PWM控制不同,用FPGA产生PWM波形,只需要FPGA内部资源就可以实现,如数字比较器、锯齿波发生器等均为FPGA内部资源,我们只要直接调用就可以。外部端口U_DEN1Z/FSTART接在键盘电路上,CLK2和CLK0接在外部时钟电路上,所用到的时钟频率为100MHz和50MHz其具体的连接方式如图3.1
其工作原理是:设定值计数器的设置PWM的占空比。当U/D=1时,输入CLK2,使设定值计数器的输出值增加, PWM的占空比增加,电机转速加快;当U/D =0时,输入CLK2,使设定值计数器的输出值减小,PWM的占空比减小,电机转速变慢。
在CLK0的作用下,锯齿波计数器输出周期性线性增加的锯齿波。当计数值小于设定值时,数字比较器输出高电平;当计数值大于设定值时,数字比较器输出低电平,由此产生周期性的PWM波形。
旋转方向控制电路控制直流电动机转向和启/停,该电路由两个2选1的多路选择器组成,Z/F键控制选择PWM波形是从正端Z进入H桥,还是从负端F进入H桥,以控制电机的旋转方向。当Z/F=1时,PWM输出波形从正端Z进入H桥,电机正转。当 Z/F =0时,PWM输出波形从负端F进入H桥,电机反转。
Start键通过“与”门控制PWM输出,实现对电机的工作停止/控制。当START=1时,与门打开,允许电机工作。当START=0时,与门关闭,电机停止转动。
H桥电路由大功率晶体管组成,PWM输出波形通过方向控制电路送到 H 桥, 经功率放大以后对直流电机实现四象限运行。并由EN1信号控制是否允许变速[4]。
2.6 方案论证
与基于单片机的直流电机PWM调速方案相比,基于FPGA的直流电机PWM控制省去了外接的D/A转换器和模拟比较器,FPGA外部连线很少,电路更加简单,便于控制。兼于FPGA的直流电机PWM控制具有精度高,反应快,外部连线少,电路简单,便于控制等优点,因此本设计采用基于FPGA的直流电机PWM控制方案[2]。

3 直流电机PWM调速控制电路设计
如图3.1所示,基于FPGA的直流电机PWM控制电路主要由四部分组成:控制命令输入模块、控制命令处理模块、控制命令输出模块、电源模块。键盘电路、时钟电路是系统的控制命令输入模块,向FPGA芯片发送命令,FPGA芯片是系统控制命令的处理模块,负责接收、处理输入命令并向控制命令输出模块发出PWM信号,是系统的控制核心。控制命令输出模块由H型桥式直流电机驱动电路组成,它负责接收由FPGA芯片发出的PWM信号,从而控制直流电机的正反转、加速以及在线调速。电源模块负责给整个电路供电,保证电路能够正常的运行。
图3.1  FPGA直流电机PWM 控制电路
3.1 系统工作原理
在图3.1中所示的FPGA是根据设计要求设计好的一个芯片,其内部逻辑电路如图4.1。
START是电机的开启端,U_D控制电机加速与减速,EN1用于设定电机转速的初值,Z_F是电机的方向端口,选择电机运行的方向。CLK2和CLK0是外部时钟端,其主要作用是向FPGA控制系统提供时钟脉冲,控制电机进行运转。
通过键盘设置PWM信号的占空比。当U_D=1时, 表明键U_D按下,输入CLK2使电机转速加快;当U/D =0,表明键U_D松开,输入CLK2使电机转速变慢,这样就可以实现电机的加速与减速。
Z_F键是电机运转的方向按键,当把Z_F键按下时,Z_F=1,电机正转;反之Z/F =0时,电机反转。
START是电机的开启键,当START=1,允许电机工作;当START=0时,电机停止转动。
H桥电路由大功率晶体管组成,PWM输出波形通过由两个二选一电路组成的方向控制电路送到 H 桥, 经功率放大以后对直流电机实现四象限运行。并由EN1信号控制是否允许变速[5]。
3.2 键盘电路设计本设计系统的命令输入模块是键盘电路和时钟电路,通过以按键的方式向FPGA控制系统表达人的命令来实现直流电机的正转、反转、停止和加减速,实现人机互换。下面就对键盘电路和时钟电路的类型以及工作原理分别进行论述。键盘电路有两种类型,其中一种是独立式键盘电路。独立式键盘电路结构简单、操作方便,在目前这种结构的键盘应用还非常普遍。只是这种键盘电路的每个按键都要占用一根I/O口线,这样的话,随着按键的增加将使I/O口线不足。因此,这种键盘电路只有在按键比较少的情况下比较适用。另一种键盘电路是矩阵式键盘电路,这种键盘电路的按键设置在行线和列线的交叉点上,因此在有限的I/O口线上可以设置比较多的按键。只是这种键盘电路结构、编程都比较复杂。在键盘电路中,往往可以与一个与非门电路构成带中断的键盘电路。这种键盘电路上的每个按键可以单独工作,而且响应时间快。这种带中断式的键盘电路现在应用已经相当的普遍。如图3.2所示,所采用的键盘电路是独立式键盘电路。其4个功能键SB1-SB4连线分别接在FPGA控制系统的4个端口上,并分别往上各引一条接线串一个1KΩ的上拉电阻接在+5V电源上。当4个键都没有被按下去时,对应的各条列线全部为高电平,在CMOS非门的作用下每个端口的电平为低电平。其中一个按钮按下去时,其对应的输出端口在非门的作用下由低电平变为高电平,从而启动相应的功能。
图3.2 键盘电路
在键盘电路设计中,需要解决按键抖动的问题。多数键盘的按键均采用机械弹性开关,一个电信号通过机械触点的断开、闭合过程,完成高低电平的切换。由于机械触点的弹性作用,一个按键开关在闭合和断开的瞬间必然伴随一连串的抖动。为了排除抖动的影响,在按键和输出端并上一个电阻、一个电容。如图3.3所示。
图3.3 滤波防抖动电路
由图可知,当键SB1未按下时,电容C两端的电压均为1,非门输出为0。当键SB1按下时,由于C两端电压不可能产生突变。尽管接触过程中可能出现抖动,只要适当的选择R和C值,即可保证电容C两端的放电电压波动不会超过非门的开启电压(TTL为0.8V),非门的输出将维持低电平。同理,当触点K断开时,由于电容C经过R2充电,C两端的充电电压波动不会超过非门的关闭电压,因此,非门的输出也不会改变[9],从而达到防抖动的效果。
3.3 系统时钟电路设计
FPGA是在系统时钟脉冲作用下进行的,在FPGA应用系统中,要求采用石英晶振作为时钟脉冲,如图3.4所示,是采用有源石英晶振构成的系统时钟电路。在该电路中,1脚悬空,2脚接地,3脚接输出,4脚接电源。3脚时钟脉冲输出后接在FPGA的CLK0时钟端,另一路经二分频电路进行分频后接在CLK2时钟端。在CLK0和CLK2的共同作用下,系统进行工作。
时钟输入是系统电路中必不可少的一部分,它能为FPGA提供时钟脉冲信号,考虑到EDA开发系统时钟输入的重要性,一个是50MHz的有源晶振作为时钟信号源输入,主要用于输入大的时钟信号,为波形发生器提供基准的时钟脉冲输入。
图3.4 时钟电路图
有源晶振的驱动能力强,晶振频率比较大,能达到几百兆Hz,采用有源晶振作为时钟源可以使电路的时钟扩大。HO-12系列的有源晶振采用TTL/HCMOS技术,频率范围是1000Hz-1000MHz,这里我们采用的是100MHz的有源晶振。
把D触发器的输出反馈回输入端与D连接就形成一个二分频电路,如图3.5所示,从波形图可以看出Q输出的波形将是CP脉冲周期的两倍,即频率是为CP脉冲的一半[10]。
3.5  D触发器接成二分频电路
3.4 H型桥式驱动电路设计直流电机驱动电路使用最广泛的就是H型全桥式驱动电路,这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。它的基本原理图如图3.6所示。
图3.6 H型全桥式驱动电路
H型全桥式驱动电路的4只三极管都工作在斩波状态,V1、V4为一组,V2、V3为另一组,两组的状态互补,一组导通则另一组必须关断。当V1、V4导通时,V2、V3关断,电机两端加正向电压,可以实 现电机的正转或反转制动;当V2、V3导通时,V1、V4关断,电机两端为反向电压,电机反转或正转制动。在直流电机运转的过程中,我们要不断地使电机在四个象限之间切换,即在正转和反转之间切换,也就是在V1、V4导通且V2、V3关断,到V1、V4关断且V2、V3导通,这两种状态之间转换。在这种情况下,理论上要求两组控制信号完全互补,但是,由于实际的开关器件都存在开通和关断时间,绝对的互补控制逻辑 必然导致上下桥臂直通短路,比如在上桥臂关断的过程中,下桥臂导通了。这个过程可用图3.7说明。
图3.7
因此,为了避免直通短路且保证各个开关管动作之间的同步性,两组控制信号在理论上要求互为倒相的逻辑关系,而实际上却必须相差一个足够的死区时间,这个矫正过程既可以通过硬件实现,即在上下桥臂的两组控制信号之间增加延时。驱动电流不仅可以通过主开关管流通,而且还可以通过续流二极管流通。当电机处于制动状态时,电机便工作在发电状态,转子电流必须通过续流二极管流通,否则电机就会发热,严重时烧毁。开关管的选择对驱动电路的影响很大,开关管的选择宜遵循以下原则:
   1由于驱动电路是功率输出,要求开关管输出功率较大
    2开关管的开通和关断时间应尽可能小
    3直流电机使用的电源电压不高,因此开关管的饱和压降应该尽量低
在实际制作中,我们可选用大功率达林顿管TIP122或场效应管IRF530,效果都还不错。现在为了取材方便,我们选用三极管作为驱动电路的开关管。从前面的分析可知,H型全桥式驱动电路中,由于开关管有开通和关断时间,因此存在上下桥臂直通短路的问题。直通短路的存在,容易使开关管发热,严重时烧毁开关管,同时也增加了开关管的能量损耗。由于现在的许多集成驱动芯片内部已经内置了死区保护(如LMD18200),这里主要介绍的是利用开关管等分立元件以及没有死区保护的集成芯片制作驱动电路时增加死区的方法。死区时间的问题,只有在正转变为反转或者反转变为正转的时候才存在,而在正转启动或反转启动的时候并没有,因此不需要修正。如果开关管的开通和关断时间非常小,或者在硬件电路中增加延时环节,都可以降低开关管的损耗和发热。当然,通过软件避免直通短路是最好的办法,它的操作简单,控制灵活。通过软件实现死区时间,就是在突然换向的时候,插入一个延时的环节,待开关管关断之后,再开通应该开通的开关管。在开关管每次换向的时候,不立即进行方向的切换,而是先使开关管关断一段时间,使其完全关断后再换向打开另外的开关管。这个关断时间由软件延时实现。以上主要分析了电机的全桥式驱动电路,这是直流电机调速使用最多的调速方法。目前市场上有很多种电机驱动的集成电路,效率高,电路简单,使用也比较广泛,但是其驱动方法大多与全桥式驱动一样。PWM控制方法配合桥式驱动电路,是目前直流电机调速最普遍的方法。3.5 电源电路设计
由于电机在正常工作时对电源的干扰很大,如果只用一组电源时会影响系统的正常工作,所以我们选用双电源供电。一组5V给控制电路供电, 另外一组12V给电机供电。
如图3.8所示。电源部分分为两路,一路直接提供12伏的直流电源,主要是提供给电机使用,另一路通过三端稳压芯片7805稳压成5伏直流电源提供给键盘电路和时钟电路使用,右边两个电容是5伏电源的滤波电容,绿色的LED作为工作指示灯,只要电源部分正常,绿色的LED就会点亮,我们可以根据这个LED来判断整个电源部分是否工作正常。
3.8 电源电路
3.6 主要元器件简介
基于FPGA的直流电机PWM调速系统的核心芯片选用Altera公司FLEX10K系列的的EP10K10TC144-3。该芯片是具有内部电路尺寸很小、互连线短、分布电容小,驱动电路所需的功耗小等特征的可编程逻辑器件,它是实验中常用到的一个芯片。
FLEX10K是工业界第一个嵌入式的可编程逻辑器件,采用可重构的CMOSSRAM工艺,把连续的快速通道互连与独特嵌入式整列相结合,同时也结合了众多可编程器件的优点来完成普通门阵列的宏功能。器件内部集成10万门电路,实现复杂逻辑运算和数据运算。EP10K10TC144-3和其他的FPGA芯片一样具有以下的特点。
(1) 规模很大,其单片逻辑门数可以达到数百万甚至上千万门,它所能实现的功能很强,可以实现系统集成。这样大幅度地减少了印刷电路板的面积和接插件的数量,降低了装配和调试费用。
(2) 提高了产品的可靠性。大量分立式元器件在向印刷电路板上装配时,往往会发生由于虚焊或接触不良而造成故障,并且这种故障常常难以发现,给调试和维修造成极大的困难。FPGA芯片使这种现象减少,设计人员只需要在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能指定。
(3) 大大减小了电子产品的体积和重量,降低了电子产品的功耗,提高了产品的工作速度。FPGA芯片内部很短的连线能大大缩短延迟时间,并且不易受外部干扰,这对提高速度非常有利。
(4) 提高了产品的竞争能力。FPGA芯片和EPROM配合使用时,用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同的EPROM就可实现不同的功能,所以,用FPGA试制样片,能以最快的速度占领市场。再者,FPGA芯片的电路设计周期较短,设计人员在较短时间内可完成电路的输入、编译、优化、仿真,直至最后的芯片制作。
由于Altera公司的FLEX10K系列具有以上所有的特点,所以本设计采用它作为仿真目标器件,软件工具为Altera公司的MAX+PlusII [4]。

4 控制逻辑VHDL描述4.1 VHDL硬件描述语言
硬件描述语言HDL是EDA技术的重要组成部分,常见的HDL有以下几种:
(1) VHDL
(2) Verilog HDL
(3) System Verilog
(4) System C
其中VHDL、Verilog是现在EDA设计中使用最多,也拥有几乎所有的主流EDA工具的支持。而System Verilog和System C这两种HDL语言还处于完善过程中。VHDL是电子设计主流硬件的描述语言之一。VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,于1983年由美国国防部(DOD)发起创建,由IEEE(The Institute of Electrical Engineers)进一步发展并在1987年作为“IEEE标准1076”(IEEE Std 1076)发布。从此,VHDL成为硬件描述语言的业界标准之一。自IEEE公布了VHDL的标准版本之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具支持VHDL。此后VHDL在电子设计领域得到了广泛应用,并逐步取代了原有的非标准硬件描述语言。
VHDL作为一个规范语言和建模语言,随着VHDL的标准化,出现了一些支持该语言的行为仿真器。由于创建VHDL的最初目标是用于标准文档的建立和电路功能模拟,其基本想法是在最高层上描述系统和元件的行为。但到了20世纪90年代初,人们发现,VHDL不仅可以作为系统模拟的建模工具,而且可以作为电路系统的设计工具,可以利用软件工具将VHDL源码自动地转化为文本方式表达的基本逻辑元件连接图,即网表文件。这种方法显然对于电路自动设计是一个极大的推进。很快,电子设计领域出现了第一个软件设计工具,即VHDL逻辑综合器,它把标准VHDL的部分语句描述转化为具体电路实现的网表文件。
VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。
VHDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,在语言易读性和层次化结构化设计方面表现了强大的生命力和应用潜力。因此,VHDL支持各种模式的设计方法:自顶向下与自底向上或混合方法,在面对当今许多电子产品生命周期缩短,需要多次重新设计以融入最新技术、改变工艺等方面,VHDL具有良好的适应性,用VHDL进行电子系统设计的一个很大的优点是设计者可以专心致志于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。
技术的飞速发展使得集成电路的设计规模日益增大,复杂程度日益增高。伴随着设计规模的增大,传统的自下至上的、采用通用逻辑元器件的硬件描述方法变得过于复杂,不易于使用。随着大规模专用集成电路(ASIC)的开发和研制,为了提高开发的效率,增加己有开发成果的继承性以及缩短开发时间,各ASIC研制和生产厂家相继开发了用于各自目的硬件描述语言(HDL)—可以描述硬件电路的功能,信号连接关系及定时关系的语言,它能比原理图更有效地表示硬件电路的特性[5]。
VHDL语言具有以下特点:
(1)VHDL语言可以支持自上至下(Top Down)和基于库(Library-Based)的设计方法,而且还支持同步电路、异步电路及其它随机电路的设计。其范围之广使其它HDL语言所不能比拟的。
(2)VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路:支持大规模设计的分解和设计重用;支持传输延迟和惯性延迟,可以更准确的建立复杂的电路硬件模型。
(3)在用VHDL语言设计系统硬件时,没有嵌入与工艺有关的信息,这样在工艺更新时,就无需修改原设计程序,只要改变相应的映射工具即可。可见,无论修改电路还是修改工艺,相互之间不会产生什么不良影响。
(4)VHDL语言己作为一种IEEE的工业标准,设计成果便于复用和交流。这样又进一步推动VHDL语言的推广和完善:另外,VHDL语言的语法比较严格,给阅读和使用都带来了极大的好处。
(5)VHDL语言具有并发性,体现在两个方面:首先使用VHDL语言进行数字电路设计时存在并发性,即VHDL语言支持设计分解,可使被分解的各子部分的设计并行完成,这些子部分的设计由三部分组成:定义实体—确定模型与环境的接口;定义结构体—完成模型的功能描述;定义测试部分—为模型生成测试向量,并捕获模型输出信号状态以供分析。其次,VHDL语言在执行上具有并发性,很适合描述电路的并发性特点[4]。

4.2 FPGA内部逻辑组成
图4.1  FPGA直流电机PWM 控制电路
由图4.1可以看出电机控制逻辑模块由PWM脉宽调制信号产生电路、方向控制电路组成。其中PWM脉宽调制信号产生电路由可控的加减计数器CNTA、5位二进制计数器CNTB、数字比较器LPM_COMPARE三部分组成,方向控制电路由两个二选一电路21MUX组成。连接在每个模块的端口的作用在2.5中已经详细的说明,在这里就不再重复。接着就对PWM脉宽调制信号产生电路的VHDL描述与仿真、方向电路的VHDL描述与仿真进行详细的分析。
4.3 PWM脉宽调制信号产生电路描述
PWM脉宽调制信号产生电路由可控的加减计数器CNTA、5位二进制计数器CNTB、数字比较器LPM_COMPARE三部分组成。可控的加减计数器做细分计数器,确定脉冲宽度。当U/D=1时,输入CLK2,使设定值计数器的输出值增加,PWM的占空比增加,电机转速加快;当U/D =0,输入CLK2,使设定值计数器的输出值减小,PWM的占空比减小,电机转速变慢。5位二进制计数器在CLK0的作用下,锯齿波计数器输出周期性线性增加的锯齿波。当计数值小于设定值时,数字比较器输出高电平;当计数值大于设定值时,数字比较器输出低电平,由此产生周期性的PWM波形。其内部逻辑图如图4.2所示。
图 4.2  FPGA中的PWM脉宽调制信号产生电路
可控的加减计数器CNTA中的端口U_D控制计数器的方向,EN1是计数器的使能端,控制计数器初值的变化。U­_D=1时,加减计数器CNTA在脉冲CLK2的作用下,每来一个脉冲,计数器CNTA加1,U_D=0时,每来一个脉冲,计数器CNTA减1。使能端EN1设定计数器值的初值,当EN1由1变为0的时候,无论U_D如何表化,计数器的值都不会发生变化,这样就完成了计数器的设定值,其仿真波形如图4.3所示,其VHDL语言如下。
LIBRARY IEEE;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNTA IS
   PORT(CLK:IN STD_LOGIC;
        U_D:IN STD_LOGIC;
         CQ:OUT STD_LOGIC_VECTOR(4 DOWNTO 0));
END CNTA;
ARCHITECTURE behav OF CNTA IS
   SIGNAL CQI:STD_LOGIC_VECTOR(4 DOWNTO 0);
BEGIN
    PROCESS(CLK)
BEGIN
     IF CLK'EVENT AND CLK='1'THEN
      IF U_D='1' THEN
        IF CQI<=31 THEN  CQI<="11111";
          ELSE CQI<=CQI+1; END IF;
        ELSIF CQI=0 THEN CQI<="00000";
          ELSE CQI<=CQI-1;END IF;
  END IF;
  END PROCESS;
  CQ<=CQI;
  END behav;
图 4.3 细分计数器的仿真波形
CNTB是一个简单的5位二进制计数器,它的工作原理和CNTA的原理很相似,我们只是在CNTA的时钟端加了一个使能端EN1控制其加减的方向。而CNTB的时钟端没有加使能端,所以每来一个脉冲计数器加1,因为CNTB是一个5位的二进值计数器,所以当计数器的值当大于32时,计数器又重新从0开始记数,从而产生周期性的线性增加的锯齿波。其仿真波形如4.4,其VHDL语言如下。
ENTITY  CNTB IS
  PORT(CLK: IN BIT;
         Q:BUFFER INTEGER RANGE 31 DOWNTO 0);
   END;
ARCHITECTURE BHV OF CNTB IS
  BEGIN
PROCESS(CLK)
  BEGIN
    IF CLK'EVENT AND CLK='1' THEN
         Q<=Q+1;
           END IF;
       END PROCESS;
     END BHV;
图4.4  5位二进制计数器仿真波形
数字比较器是产生PWM波形的核心组成部件,可控的加减计数器CNTA和5位二进制计数器CNTB同时加数字比较器LPM-COMPARE两端作为两路输入信号,当计数器CNTB输出值小于细分计数器CNTA输出的规定值时, 比较器输出高电平; 当CNTB输出值大于细分计数器CNTA输出的规定值时, 比较器输出低电平。改变细分计数器的设定值, 就可以改变PWM输出信号的占空比。为了便于观察防真波形,我在CNTB的输出加上B[4..0],仿真波形如图4.5。
图4.5 数字比较器的仿真波形
细分计数器CNTA是一个双向计数器, 可以进行加减计数,由U_D控制其加/减计数方向, CLK是计数时钟输入端。为了便于连续变速控制, 在计数器的CLK端通过“与”门, 加入了CLK2外部变速控制附加时钟, 并由EN1信号控制是否允许变速。在本次设计中直流电机转速进行了32级细分。其仿真波形如图4.6,细分计数器的初值我设为08H,也就是十进值的8,当计数器CNTB的值小于8时,AGB输出高电平,当计数器CNTB的值大于8时,AGB的输出值为低电平,从而产生PWM波形。
图4.6  A[4..0]=08H时电机加速PWM波形
通过改变细分计数器的值就可以改变PWM的占空比,从而改变直流电机的速度。在图4.6中占空比D=8/32=0.25,在图4.7中占空比D=4/32=0.125。通过以上两组数据比较以及分析仿真波形我们可以看出,只要改变使能端电平的高低,便可以改变细分计数器的值,也就是改变细分计数器CNTA的初值,从而可以改变直流电机的占空比,改变直流电机的速度。
图4.7  A[4..0]=04H时电机减速PWM波形
调节PWM波的占空比是电机调速的重要手段,若脉宽计数器CNTA的值逐渐增大,输出脉冲的开启时间变大,PWM占空比逐渐变大,功率器件输出给电机电枢的能量增加,电机加速。若脉宽计数器定时器CNTA的值减小,输出脉冲的开启时间变小,PWM占空比逐渐变小,功率器件输出给电机电枢的能量减少,电机减速。当电机得到加速信号,占空比增大至它可调范围的最大值后保持,电机得到减速信号,占空比减小至它的可调范围的最小值后保持。
4.4 运行控制逻辑电路描述
如图4.8所示FPGA中的工作/停止控制和正/反转方向控制电路,其两个二选一多路选择器加上两个与门根据逻辑原理组合而成。START键通过“与”门控制PWM输出,实现对电机的工作/停止控制。当START端接高电平时,表示电源接通,电机开始运转;当START端接低电平时,电机停止运转。Z/F键控制选择PWM波形是从正端Z进入H桥,还是从负端F进入H桥,以控制电机的旋转方向。当Z/F=1时PWM输出波形从正端Z进入H桥,电机正转。当 Z/F =0时PWM输出波形从负端F进入H桥,电机反转。仿真如图4.9所示。
图4.8  FPGA中的工作/停止控制和正/反转方向控制电路
图4.9 正/反转工作控制电路波形
当START=1时,与门打开,允许电机工作。当START=0时,与门关闭,电机停止转动。仿真如图4.10所示。
图4.10 工作/停止电路波形

5 直流电机PWM调速系统仿真
5.1 FPGA开发环境的介绍
MAX+Plus II(MuliPtle Array Martix and Programmxnaable Logie User System)是ALTERA公司推出的具有完全集成化、可视化的设计环境,具有工业标准EDA工具接口,可运行于多种操作系统。MAX+Plus II提供了一种与结构无关的设计环境,设计人员无须精通器件内部结构,只需运用自己熟悉的输入工具进行设计,就可以通过MAX+Plus II把这些设计转换为最终结构所需要的格式。
MAX+Plus II提供丰富的逻辑功能供设计人员调用,其中包括74系列全部器件的等效宏功能库和多种特殊的宏功能(MacorFunctino)模块以及参数化的宏功能(Mageufnctino)模块。MAX+PlusH还具有开放核的特点,允许设计人员添加自己的宏功能模块。充分利用这些逻辑功能模块,可以大大减轻设计的工作量,成倍缩短开发周期。
Altera公司的MAX+plus II有以下特点:
开放的界面——MAX+plus II软件可与其他工业标准的设计输入、综合与校验工具相连接,支持与Candence、Synopsys、Viewlogic等其它公司所提供的EDA接口。
完全集成化——MAX+plus II的设计输入、处理与校验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。
丰富的设计库——MAX+plus II提供丰富的库单元供设计者调用,其中包括74系列的全部器件、大量的数字器件和新型参数化的宏函数,大大减轻了设计人员的工作量。
硬件描述语言——MAX+plus II软件支持各种HDL设计输入选项,包括VHDL、verilog HDL和Altera公司自己的硬件描述语言AHDL。
开放核特性——MAX+plus II软件具有开放核的特点,它允许设计人员添加自己认为有价值的宏函数。
MAX+plus II软件的设计输入方法有多种,主要包括原理图输入方式、文本设计输入方式、波形设计输入方式等。
(1) 原理图输入与符号编辑。利用MAX+plus II提供的各种原理图库进行设计输入是一种最为直接的输入方式。用这种方式输入时,为提高效率,应采用自顶向下逻辑分块,把大规模的电路划分成若干小块的方法。
(2) 硬件描述语言输入。MAX+plus II包含一个集成的Text Editor(文本编辑程序),适合于输入和编辑用VHDL语言编写的设计文件。
(3) MAX+plus II Waveform Editor(波形编辑程序)用于建立和编辑波形文件及输入仿真向量和功能测试向量,适合于时序和重复的函数。
设计人员可以根据自己的实际情况灵活的选择MAX+plus II软件的输入方式。若对系统进行数学描述,需要采用VHDL语言的行为描述。在数学模型建立之后,需要改为数据流描述方式。在这个过程中,会遇到两种情况:一种是对时间要求较高的部分即时序逻辑,另一种是状态机即组合逻辑。对于时序逻辑,用VHDL语言的数据流描述的方式要用到大量的基本数字器件,如门电路、触发器等,这些器件的使用要用到VHDL语言的元件例化语句和元件配置语句,而且还要定义大量的中间变量作为元件的输入输出量,书写不是非常方便。这种情况下使用原理图输入是非常直观和方便的。状态机(Sate Machine)是一种记录下给定时刻状态的设备,并根据输入对每个给定状态的改变,改变其状态或引发一个动作。状态机是控制电路设计中的重要部分,它的功能十分强大,规定了事件的合法状态即转换条件,对信号有条件要求的场合非常适用。这样的情况用原理图是比较难以表述的,而用VHDL语言则很简单,采用相应的选择语句即可。描述出来的状态机可以作为一个新的宏函数供原理图调用。
5.2 建立工程项目
在本次设计中,主要用到的设计方法是原理图输入设计,MAX+plus II提供了功能强大,直观便捷和操作灵活的原理图输入设计功能,同时还配备了适用于各种需要的元件库,其中包含基本逻辑元件库(如与非门、反向器、D触发器等)、宏功能元件(包含了几乎所有74系列的器件),以及功能强大,性能良好的类似于IP Core的巨功能块LPM库。但更为重要的是,MAX+plus II还提供了原理图输入多层次设计功能,使得用户能设计更大规模的电路系统,以及使用方便精度良好的时序仿真器。通过时序仿真,能对迅速定位电路系统的错误所在,并随时纠正。 能对设计方案作随时更改,并储存设计过程中所有的电路和测试文件。将不会有任何器件损坏和损耗,符合现代电子设计技术规范。下面介绍基本设计步骤。
(1)为工程设计建立一个文件夹,本次设计的文件取名为eda,路径为F:\eda。
(2)输入设计项目和存盘
①打开MAX+Plus II,选菜单File中的new,在弹出的对话框中选择原理图编辑输入项“Graphic Editor File” 如图5.1所示。按“OK”键后打开原理图编辑口。
图5.1 建立原理图编辑器对话框
②然后在编辑窗口的任一位置上右击,将弹出一个菜单,选择其中的输入元件项“Enter Symbol”,于是将弹出如图5.2所示的元件输入对话框。
图5.2 元件输入对话框
③在Symbol Name中输入本设计需要用到的元件,如二选一多路选择器21 MUX,数字比较器LPM_COMPARE等等,再单击OK按钮,便可以将元件调入原理图编辑窗口中。
注意:在本次设计中需要用到用VHDL语言描述出来的CNTA和CNTB两个状态机作为新的宏函数供原理图调用。还要用到一个参数可调的宏函数LPM_COMPARE,其具体的操作方法是在图5.2原理图编辑窗口输入LPM_COMPARE,单击“OK”键,便可以找到LPM_COMPARE,如图5.3所示。
图5.3 参数未设置的数字比较器图标
双击图5.3中的LPM_COMPARE右上角的参数显示文字,然后在弹出的参数设置对话框中选择合适的参数,如图5.4所示。
图5.4 参数设置对话框
数字比较器各端口及其参数的含义是:
Aclr:异步清零输入;
Alb、aAeb、,agb、ageb、,aneb、aleb:比较器数据输出;
Clock:上升沿触发记数时钟输入;
Dataa[]:并行数据输入端;
设置情况如图4.1所示,比较器位宽为5,即5位比较器
④选择菜单File中的Save as,选择刚建的工程项目F:\eda,将设计好的图文文件取名为:PWM.gdf,并存盘在这个目录中。
(3) 将设计项目设置成工程文件
为了使MAX+plus II能对输入的设计项目按设计者的要求进行各项处理,必须将PWM.gdf设置成Project。
图5.5将设计项目设置成工程文件
(4)选择目标器件并编译
为了获得与目标器件相对应的、精确的时序仿真文件,在对文件编译前必须选定实现本项目的目标器件,在本次设计中选择EPF10K10TC144-3,最后启动编译。
图5.6 选择目标器件
图5.7 对文件进行编译、综合和适配等操作
(5) 时序仿真
时序仿真的主要内容是建立波形文件(和建立原理图输入设计一样),输入信号节点、设置波形参量、设定仿真时间、波形文件存盘、运行仿真和分析波形[5]。
5.8 输入信号节点
5.9 设定仿真时间
上面详细介绍介绍了原理图的设计流程,现在对其归纳如下:

5.10 项目输入设计框图

在本次设计中,需要满足的技术要求是设计具有正/反转,起/停控制功能、速度在线可调的直流电机控制装置。接下来就用仿真波形详细的说明本次设计的电路满足以上的所有要求。

5.3 正/反转控制仿真
键盘Z_F是电机的方向控制键。当要求电机正转时,只需要按下键Z_F,表示Z_F输出高电平,即Z_F=1,电机正转,如图5.11所示。当键Z_F松开时,Z_F=0时,电机反转,如图5.12、图5.13所示。
图5.11 电机正转
5.12 电机反转
图5.13 电机正反转
5.4 /控制仿真
START键是电机的启动键,当按下START键时,START=1,电机进入运行状态,如图5.14所示。反之,START=0时,电机停止,如图5.15、图5.16所示。
图5.14 启动仿真波形
图5.15 停止仿真波形
图5.16 启/停仿真波形
5.5 /减速仿真
键盘EN1控制电机是否允许变速。所以通过改变EN1便可以改变设定值H[4..0]的值,也就是设定值的初值,从而改变了直流电机的占空比,改变直流电机的速度,达到调速的目的。
因为CNTB是5位的计数器,所在本设计中直流电机转速细分为32级。如图5.17的占空比为2/32=0.0625,同理通过按键EN1该变H[4..0]的值便得到如图5.18、5.19的PWM仿真波形,其占空比依次为0.125、0.25,也就是占空比增大,电机的速度增加。根据以上的数据比较与仿真波形的分析可以看出,电机的速度在逐渐的增加。所以通过改变EN1的值可以改变直流电机的PWM占空比,从而改变直流电机的速度。
图5.17 H[4..0]=02H仿真波形
图5.18  H[4..0]=04H仿真波形
图5.19 H[4..0]=08H仿真波形
5.6 仿真结果分析
通过5.2到5.5的仿真波形分析可知,本设计中的各项功能够很好的实现。在时钟脉冲的作用下,计数器CNTA和CNTB都能按照事先设定好的规则进行计数。CNTA是可控的加减计数器,U_D控制其计数的方向,EN1用于设定其初值,当NE1由高电平变为低电平时,就完成了设定值。CNTB是5位二进制计数器,其在时钟脉冲CLK0的作用下一直加数,当它加到32时就自动返回到0再重新加数。两路计数器同时加到数字比较器LMP_COMPARE上,当CNTB的值小于设定值时,数字比较器输出高电平,当CNTB的值大于设定值时,数字比较器输出低电平。因此改变设定值的大小就可以改变PWM波形的大小,也就是完成了电机的调速。Z_F是电机的方向按键,选择PWM波形的进入方向,当其为1时,电机正转,反之,反转。至于电机的控制,是在它的输入端加上两个与门来控制电机的启动与停止。其具体的操作如下:
当按下键Z_F键时,电机正转(如图5.11),松开键时,电机反转(如图5.12)。当按下键START时,电机开始工作(如图5.14),松开时,电机停止工作(如图5.15)。通过按键EN1的闭合与断开可以改变H[4.0]的值(如图5.17、5.18、5.19)从而改变直流电机的PWM占空比,达到改变直流电机速度的目的。
本设计采用VHDL设计FPGA 脉宽调制控制方案, 计算机仿真和对直流电机控制的结果表明,该电路能有效地产生PWM 控制信号控制电机的转速, 控制精度由FPGA 中的数字比较器决定。在本设计中,采用的数字比较器为5位, 若增加数字比较器的位数, 就可以提高电机转速的控制精度。
电路中省去了D/A 转换器使电路变得更加简洁, 同时也降低控制器的成本。FPGA 内部采用状态机结构, 遇到干扰时, 能很快从异常状态转入正常工作状态, 保证了控制系统具有高的可靠性。从以上的仿真中可以看出,基于FPGA的直流电机的控制能够达到很好的预期效果。

6 总结这次设计,我于年月日年月日查阅资料,收集资料、在消化资料的基础上提出工程技术方案,并对设计方案进行论证。于年月日完成设计初稿。在这期间,我用了两个月的时间不断修改原理图和程序,直到程序和仿真基本满足设计要求,最后在指导老师X老师的指导下,根据任务书圆满地完成了该毕业设计。在这段设计的过程中,确实也遇到很多的困难。FPGA技术是一门较新的学科,这方面的资料不是很多,所有的一切只有靠自己去摸索,这是一个比较漫长的过程。在求助于老师、理清思路后,于是到图书馆、网上查阅资料,比如怎样实现电机的正转和反转、加速和减速等等。经过指导老师X老师的耐心指点和连续一个星期的奋战才算基本合格。我发现收获了不少,通过查资料了解了直流电机工作原理及用途、PWM控制技术、键盘电路接口技术、时钟电路技术等等,同时也让我学习现代电子产品的设计流程,为以后从事产品开发打好了基础。



致谢
在论文即将完成之际,也将是我的大学生活快要结束的时候,此时,我的心情无法平静,从开始进入课题到论文的顺利完成,有我们可敬的X老师给了我辛勤地指导,还有其他师长、领导、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!
在这次毕业设计中,首先要感谢我的指导老师X教授,他在学习和设计方面给予我大量的指导,并为我们提供了一个良好的学习环境,让我学到了知识,掌握了解决问题的方法,也获得了实践锻炼的机会。他的严谨细致、一丝不苟的作风将一直是我工作、学习中的榜样,同时他的循循善诱的教导、不拘一格的思路和为人处世的坦荡也给予我无尽的启迪。除此之外,他还教了一些我做人的道理。在此祝愿他身体健康,全家幸福!还有很多我无法一一列举姓名的师长和友人给了我指导和帮助,在此衷心的表示感谢,他们的名字我一直铭记在心!
最后,衷心感谢在百忙之中抽出时间审阅本论文的专家教授

00.png
完整的Word格式文档51黑下载地址(共页):
http://www.51hei.com/bbs/dpj-113482-1.html


回复

使用道具 举报

ID:302773 发表于 2019-9-25 23:01 | 显示全部楼层
请问楼主有这个项目的代码吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表