




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、兰州工业学院毕业(论文)慕龊慕龊毕业设计(论文)慕龊题目: 基于fpga的直流电机的pwm控制系统设计慕龊学 院: 电子信息工程学院 慕龊专 业: 通 信 技 术 慕龊班 级: 通信12-2班 慕龊姓 名: 康 建 明 慕龊学 号: 201210602214 慕龊指导教师(副教授) 周 彬 慕龊 日 期: 2015年3月15日 慕龊摘要慕龊利用fpga可编程芯片及vhdl语言实现了对直流电机pwm控制器的设计,熟悉直流电机的工作原理及特性,对直流电机启动停止、正转反转以及速度的测量进行控制。介绍了用vhdl语言编程实现直流电机pwm控制器的pwm产生模块、串口通信模块、转向调节模块等功能,该系
2、统无须外接d/a转换器及模拟比较器结构简单,控制精度高,有广泛的应用前景。同时,控制系统中引入上位机控制功能,可方便对电机进行远程控制。慕龊关键词:fpga可编程门阵列;quartus ii ;pwm;直流电机慕龊慕龊慕龊abstract慕龊a new design of dc motor pwm controller based on fpga and understand the working principle and characteristics of dc motor ,start stop forward inversion and the speed of a dc moto
3、r measurement control ,the pwm create module, the serial communication module and the steering unit have been implemented in and chip with the characteristics of simple structure precisecontrol and no exterior dacthe new control system call be widely used and the computer station control is intro-du
4、ced慕龊key words:field programmable able gate array;quartus ii ;pwm;dc motor慕龊慕龊4慕龊慕龊慕龊1. 绪论慕龊1.1课题的来源慕龊电机是电动机和发电机的统称,是一实现机电能转换的电磁装置。拖动生产机械,将电能转换为机械能的电机称为电动机,作为电源,将机械能转化为电能的电机称为发电机。由于电流有交直流之分,所以电机也就有交流电机和直流电机两大类,在各类机电系统中,由于直流电机具有良好的启动,停止和速度控制测速等良好性能,直流电机技术已广泛运用于各个行业。本课题研究的基于fpga的小容量的直流电动机的pwm制动控制系统中的应
5、用,传统的方法产生pwm信号电路比较复杂,数字pwm控制只需一个fpga中的内部资源就可以实现,而本次设计介绍了一种用单片大规模fpga实现的pwm发生的直流电机控制器,其中产生的pwm波具有脉冲中心对称、pwm周期和死区时间可编程等特点,且性能优异,灵活性和可靠性高,同时,加入了串行通信接口,方便加入上位机控制功能。用数字比较器代替模拟比较器,数字比较器的一端接设定值计数器的输出,另一端接线性递增计数器输出。当线性计数器计数值小于设定值时输出低电平,大于设定值时输出高电平,而且通过总线数据或按键控制在系统调整脉宽数及数字比较器的设定值,从而实现对电机转速、波动性等参数的灵活控制。慕龊直流电动
6、机是一种能量转换的装置,具有良好的启动停止、正转反转以及便于测速等特性,在国民经济中起着重要作用。在日常生活中的家用电器,随处可见各种各样的电机,如汽车、电视机、电风扇、空调等等家用电器。同时,在越来越多的应用场合,普通的电机己无法满足要求,而是要求能够实现快速启停或反转以及准确测速等功能。因此我们必须寻找新的电机控制器来适应时代的发展。慕龊随着电子技术的发展,用基于现场可编程门阵列fpga的数字电子系统对电机进行控制,为实现电动机数字控制提供了一种新的有效方法。现场可编程门阵列(fpga)器件集成度高、体积小、速度快,以硬件电路实现算法程序,将原来的电路板级产品集成为芯片级产品,从而降低了功
7、耗,提高了可靠性。尤其是硬件描述语言的出现,解决了传统电路原理图设计系统工程的诸多不便。针对以上情况,本课题提出基于现场可编程门阵列(fpga)的直流电机pwm控制系统设计。慕龊1.2 本课题的目的及意义 慕龊随着现代化步伐的迈进,人们对自动化的需求越来越高,使电动机控制向更复杂的方向发展。而直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。它过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、制动、反转和测速能满足生产过程自动化系统各种不同的特殊运行要求。最近几年来,由于直流电机的优秀性能,人们采用fpga等各种可
8、编程硬件为基础,可以大幅度提高逻辑系统的精确度和系统可靠性。慕龊1.3 本课题国内外的研究现状慕龊从80 年代中后期起,世界各大电气公司都在竞相开发直流电机装置,当直流电机的控制发展到一个很高的技术水平,使数字式直流调速装置具有很高的精度、优良的控制性能和强大的抗干扰能力, 在国内外得到广泛的应用。直流电机控制装置作为最新控制水平的传动方式更显示了强大优势。直流电机控制系统不断推陈出新,为工程应用提供了优越的条件。采用这种控制系统后,整个电机控制系统实现向数字化方向发展,结构简单,可靠性高,操作维护方便,电机稳态运行时转速精度可达到较高水平。制动和反转,能满足生产过程自动化系统各种不同的特殊运
9、行要求。由于直流电机具有较佳的性能价格比,所以在工业过程及设备控制中得到日益广泛的应用。慕龊在国内,从20世纪60年代初初步实现直流电机在工业中的使用。这使直流电机控制系统也得到迅速的发展和广泛的应用。目前,直流电机控制系统在我国国民经济各部门得到广泛的应用。随着现在科技的迅速发展,直流电机控制的科技装置具有便于启动、停止、正转反转和测速等优点,使的直流电机在人们生活中的应用越来越广泛。又因为我国直流电机控制也正向着脉宽调制(pulsewidthmodulation,简称pwm)方向发展。我国现在大部分数字化控制直流电机控制装置依靠进口。但由于进口设备价格昂贵,也给出了国产数字控制直流电机装置
10、的发展空间。慕龊1.4 论文章节安排慕龊根据直流电机在国内外研究现状,对直流电机控制的研究已经逐渐成熟,对其结构也已逐步掌握,因此我们在基于现场可编程芯片来完成对直流电机控制,也符合我们本次选题的要求。本文共包括六章内容。第一章绪论,分析了研究意义,提出了设计基于fpga的直流电机控制,并且对研究的内容进行分析。第二章首先阐述直流电机的基本知识。第三章介绍了本次主要系统整体结构及模块设计。第四章设系统电路设计。第五章介绍系统软件设计及其仿真。慕龊慕龊27慕龊慕龊慕龊2. 直流电机的基本知识慕龊2.1直流电机的基本情况慕龊直流电动机与交流电动机相比较,具有良好的调速性能和启动性能。直流电动机具有
11、宽广的调速范围,平滑的无级调速特性,可实现频繁的无级快速启动、制动和反转;能满足自动化生产系统中各种特殊运行的要求。而直流发电机则能提供无脉动的大功率的直流电源,且输出的电压可以精确地调节和控制。慕龊但直流电机也有它显著的缺点:一是制造工艺复杂,消耗有色金属较多,生产成本高;二是运行的时候由于电刷与换向器之间容易产生火花,所以可靠性比较差,维护比较困难。所以在一些对调速性能要求不高的领域中己被交流变频调速系统所取代。但是在某些要求调速范围大、快速性高、精密度好、控制性能优异的场合,直流电动机的应用目前仍然占有较大的比重。慕龊2.2 直流电动机的工作原理慕龊电流产生磁场原理的变形(电流产生磁场)
12、,一个通电线圈相当于一个具有ns极的磁体,形成电磁力。载流导体在磁场中将会受到力的作用,若磁场与载流导体互相垂直,作用在导体上的电磁力大小为: f = bli 慕龊力的方向用左手定则确定,如2.1图所示:慕龊慕龊从图上可以看出,电刷a是正电位,b是负电位,在n极范围内的导体ab中的电流是从a流向b,在s极范围内的导体cd中的电流是从c流向d。前面已经说过,载流导体在磁场中要受到电磁力的作用,因此,ab和cd两导体都要受到电磁力fde的作用。根据磁场方向和导体中的电流方向,利用电动机左手定则判断,ab边受力的方向是向左,而cd边则是向右。由于磁场是均匀的,导体中流过的又是相同的电流,所以,ab边
13、和cd边所受电磁力的大小相等。这样,线圈上就受到了电磁力的作用而按逆时针方向转动了。当线圈转到磁极的中性面上时,线圈中的电流等于零,电磁力等于零,但是由于惯性的作用,线圈继续转动。线圈转过半州之后,虽然ab与cd的位置调换了,ab边转到s极范围内,cd边转到n极范围内,但是,由于换向片和电刷的作用,转到n极下的cd边中电流方向也变了,是从d流向c,在s极下的ab边中的电流则是从b流向a。因此,电磁力fdc的方向仍然不变,线圈仍然受力按逆时针方向转动。可见,分别处在n、s极范围内的导体中的电流方向总是不变的,因此,线圈两个边的受力方向也不变,这样,线圈就可以按照受力方向不停的旋转了,通过齿轮或皮
14、带等机构的传动,便可以带动其它工作机械。 慕龊从以上的分析可以看到,要使线圈按照一定的方向旋转,关键问题是当导体从一个磁极范围内转到另一个异性磁极范围内时(也就是导体经过中性面后),导体中电流的方向也要同时改变。换向器和电刷就是完成这个任务的装置。在直流发电机中,换向器和电刷的任务是把线圈中的交流电变为直流电向外输出;而在直流电动机中,则用换向器和电刷把输入的直流电变为线圈中的交流电。可见,换向器和电刷是直流电机中不可缺少的关键性部件。 慕龊当然,在实际的直流电动机中,也不只有一个线圈,而是有许多个线圈牢固地嵌在转子铁芯槽中,当导体中通过电流、在磁场中因受力而转动,就带动整个转子旋转。这就是直
15、流电动机的基本工作原理。 慕龊比较直流发电机和直流电动机的工作原理可以看出,它们的输入和输出的能量形式不同的。正如前面已经说过,直流发电机由原动机拖动,输入的是机械能,输出的是电能;直流电动机则是由直流电源供电,输入的是电能,输出的是机械能。 慕龊直流电机工作原理图:慕龊慕龊图2.2 直流电动机工作原理慕龊本章小结慕龊本章简单介绍了直流电机的基本结构和工作原理,对直流电机有了一定的了解,在下面对直流电机pwm控制设计中起到铺垫作用。慕龊慕龊3. 系统整体结构慕龊3.1 系统的结构慕龊fpga芯片为控制核心,通过按键或上位机设定电机速度和pwm占空比,由fpga的i/o口控制直流电机驱动芯片驱动
16、直流电机的转动。转速的测量由码盘完成,速度显示数码管来实现。本系统是基于实现电机的恒速调节而进行设计的。如图3.1所示,系统分以下几个模块:转速控制模块,pwm信号产生模块,速度检测模块,电机正反转模块、电机转速采集模块慕龊慕龊图3.1 基于fpga直流电机控制系统框图慕龊3.1.1串口通信慕龊本设计中采取异步串行通信。以一个字符为单位传送,需要cpu与上位机之间事先必须约定字符格式和波特率。设计采用固定的字符传输格式:一位起始位,8位数据,一位停止位。如图3.1.1所示。慕龊慕龊 慕龊传送顺序是低位在前,高位在后,依次传送。用4倍波特率作为接收采样时钟,并把第8个采样值作为接收数据。在用fp
17、ga实现的异步串行通信电路中采用fifo进行缓存,并在划分为接收模块、发送模块和接口模块三个功能模块,其中接收模块实现遥测数据的接收、缓存,发送模块实现遥控数据的缓存、发送,接口模块则实现和外部的连接。发送模块要实现对遥控数据缓存,同时按照设计的异步串行通信字符格式将数据串行发送。发送模块包含移位寄存器、实现遥测数据计数的计数器和发送状态机电路等。fpga模块接收从rs-485发送过来的串行数据,25位为一个字符。该模块分别实现提取八位数据和串行数据发送的功能。当din连续输出16个1后,下一个din为0时,开始提取后面的8位有效的数据00101010,然后加上起始位1,停止位0。程序中,波特
18、率可以根据需要通过分频程序进行改动。慕龊3.1.2直流电机的转向控制慕龊启动过程的时间长短取决于ri30*c20的乘积以及电源电压的大小,ri30*c20的乘积越大或vcc越低则启动过程越长,反之越短。启动转矩(启动电流)的大小主要取决于r96,r96越小启动差距越大。r96太小会导致流过vd6的电流过大,不节能而且可能烧坏vd6,r96太大会导致启动转矩小,甚至vd6不能被击穿从而不能由启动进入运行状态。一般选择r96大小的原则是使(vcc-0.6v-vvd6)/r96稍大于vvd6的击穿电流即可,其中vvd6为稳压二极管vd6的击穿电压。慕龊而本次直流电机驱动电路使用就是h型全桥式驱动电路
19、,这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。它的基本原理图如图3.1.2所示。慕龊 图3.1.2 h型桥式驱动电路慕龊h型全桥式驱动电路的4只三极管都工作在斩波状态,v1、v4为一组,v2、v3为另一组,两组的状态互补,一组导通则另一组必须关断。当v1、v4导通时,v2、v3关断,电机两端加正向电压,可以实现电机的正转或反转制动;当v2、v3导通时,v1、v4关断,电机两端为反向电压,电机反转或正转制动。在直流电机运转的过程中,我们要不断地使电机在四个象限之间切换,即在正转和反转之间切换,也就是在v1、v4导通且v2、v3关断,到v1、v4关断且v
20、2、v3导通,这两种状态之间转换。在这种情况下,理论上要求两组控制信号完全互补,但是,由于实际的开关器件都存在开通和关断时间,绝对的互补控制逻辑必然导致上下桥臂直通短路,比如在上桥臂关断的过程中,下桥臂导通了。慕龊为了避免直通短路且保证各个开关管动作之间的同步性,两组控制信号在理论上要求互为倒相的逻辑关系,而实际上却必须相差一个足够的死区时间,这个矫正过程既可以通过硬件实现,即在上下桥臂的两组控制信号之间增加延时。 慕龊驱动电流不仅可以通过主开关管流通,而且还可以通过续流二极管流通。当电机处于制动状态时,电机便工作在发电状态,转子电流必须通过续流二极管流通,否则电机就会发热,严重时烧毁。慕龊开
21、关管的选择对驱动电路的影响很大,开关管的选择宜遵循以下原则: 慕龊a) 由于驱动电路是功率输出,要求开关管输出功率较大 。 慕龊开关管的开通和关断时间应尽可能小。慕龊c) 直流电机使用的电源电压不高,因此开关管的饱和压降应该尽量低慕龊在实际制作中,我们可选用大功率达林顿管tip122或场效应管irf530效果都还不错。现在为了取材方便,我们选用三极管作为驱动电路的开关管。 慕龊从前面的分析可知,h型全桥式驱动电路中,由于开关管有开通和关断时间,因此存在上下桥臂直通短路的问题。直通短路的存在,容易使开关管发热,严重时烧毁开关管,同时也增加了开关管的能量损耗。由于现在的许多集成驱动芯片内部已经内置
22、了死区保护(如lmd18200),这里主要介绍的是利用开关管等分立元件以及没有死区保护的集成芯片制作驱动电路时增加死区的方法。慕龊死区时间的问题,只有在正转变为反转或者反转变为正转的时候才存在,而在正转启动或反转启动的时候并没有,因此不需要修正。如果开关管的开通和关断时间非常小,或者在硬件电路中增加延时环节,都可以降低开关管的损耗和发热。当然,通过软件避免直通短路是最好的办法,它的操作简单,控制灵活。通过软件实现死区时间,就是在突然换向的时候,插入一个延时的环节,待开关管关断之后,再开通应该开通的开关管。在开关管每次换向的时候,不立即进行方向的切换,而是先使开关管关断一段时间,使其完全关断后再
23、换向打开另外的开关管。这个关断时间由软件延时实现。以上主要分析了电机的全桥式驱动电路,这是直流电机调速使用最多的调速方法。目前市场上有很多种电机驱动的集成电路,效率高,电路简单,使用也比较广泛但是其驱动方法大多与全桥式驱动一样。pwm控制方法配合桥式驱动电路,是目前直流电机调速最普遍的方法。转向调节原理即为有两个方向信号和一个使能信号。如果dir-z信号为0, dir-f信号24为1,并且使能信号是1,那么三极管1和4导通,电流从左至右流经电机,电机正转;如果dir-z信号变为1,而dir-f信号变为0,那么2和3将导通,电流则反向流过电机,电机反转。其中1,1,2,2是由pwm模块产生的一定
24、占空比的pwm波,用来控制电机转速。慕龊直流电机因其具有速度容易控制,启动制动特性良好的特点而得到广泛应用。它的控制经历了传统的模拟控制方式到数字控制方式的发展。目前国内常用的数字控制方式是以单片微机和 dsp 作为微处理器的直流电机控制系统。由于传统的单片机执行速度相对较慢,烧写入单片机的程序容易受外界干扰,特别是强磁干扰,在恶劣环境下工作会发生意想不到的结果。而用 dsp 控制电机所占用的资源较多,所需的外围元件也较多,影响了系统的可靠性。随着电子技术的发展,可编程门阵列器件 fpga 的出现,给直流电机的数字控制提供了新的手段和方法。由于 fpga 集成上千万个逻辑门阵列,不仅功能强大,
25、速度快开发简单,还易于改造升级。用 fpga 控制电机可以提高电机的测速精度,强化电机系统的控制功能,使得电机控制系统具有灵活的控制性能,控制保护响应快接口设计灵活方便。系统的组成和原理简单,便于对直流电机进行测速.控制器为控制系统的核心,还包括电机驱动电路直流电机测速系统框图。电机反馈电路(包括转速反馈与电流反馈)显示电路和键盘。本系统的 fpga 芯片采用 altera 公司的cyclone 系列的 ep1c3t144。它共有 2910 逻辑单元,59904ram bits,约 8 万逻辑门,最多有 104 个用户 i/o 口,可以说这款 fpga 的资源非常丰富,足够满足本控制系统的需要
26、。 各模块的设计及工作原理测速控制系统以 fpga 为控制核心,采用 pwm 控制。pwm 是脉冲宽度调制(pulse width modulation)的简称,它在自动控制和计算机技术等领域中得到了广泛的应用,也是本系统的技术核心。慕龊3.1.3 直流电机pwm调速原理慕龊在电机数字控制方式中,pwm 是一种常用的调速方法。本系统是通过pi 调节器来调节pwm 占空比实现转速控制,如图所示。pi 调节器中p (比例)代表了当前的信息,起校正动态偏差的作用,使过程反应迅速,增大kp 可以加快系统的响应速度及减少稳态误差,但过大的kp 有可能加大系统超调,产生振荡,以至于系统不稳定。i (积分)
27、代表了过去积累的信息,它能消除系统静差,改善系统静态特性,积分作用的强弱取决于积分时间常数ti,ti 越小,积分作用就越强。其模拟控制规律为:慕龊 (1) 慕龊采用矩阵法进行数值积分,即以求和代替积分得到:慕龊 (2) 慕龊由公式(2)可得 慕龊 (3) 慕龊将公式(2)减公式(3)得:慕龊 (4) 慕龊由上可知控制量的确定仅与本次和前一次误差采样值有关,采用vhdl 语言编程实现pi 算法。占空比的调整理论上可以从01,本系统pwm输出的位数为11 位,因此占空比调整的最小步长为211 分之一。pi 算法硬件接口模块如图3.4所示,其中clk 是系统时钟,内部经过分频后作为pi 模块的时钟。
28、enspd 是按键判读,当enspd=”11”时pi 模块开始工作。setspdin 是转速设定输入;tstspdin 是实测转速输入。由topwm 输出pwm 占空比控制信号。慕龊慕龊 图3.1.3 速度调节环框图慕龊慕龊 图3.1.4 pi 算法模块慕龊pwm 是直接作为控制信号输给电机驱动模块的。pwm 调速的精度与输出信号的位数有关,本系统采用11bit 的位宽,其分辩率可达到1/2048。pwm 产生的方法很多,本系统采用简单的计数法,采用vhdl 语言设计一个02048 计数器,将pi 调节器输出存入锁存器,锁存器的数与计数器的值不断进行比较,当前者大于后者时输出为高电平,否则为低
29、电平。实现模块如图3.1.4 所示,clk 是系统时钟输入,作为内部计算时钟;enspd 是按键判读,当enspd=”11”时模块开始工作。setspdin 是设定速度的输入;pivalue是pi 调节器输入的占空比控制信号;curroverflow是过流保护输入。当电流未超过设定最大值时,motorp 输出占空比由pi 调节器控制的pwm信号驱动电机。慕龊慕龊3.1.4直流电机测速电路慕龊系统用霍尔传感器进行速度检测,在电机的转轴上固定一圆盘,在转盘的同心圆上固定若干个磁钢,并将如图3.1.5所示的霍尔传感器测速电路固定在附近,有磁钢经过时霍尔传感器输出低电平,没有磁钢经过时霍尔传感器输出高
30、电平。这样通过测量一分钟之内的脉冲个数来计算转速。假设磁钢的个数为 x 个,一分钟测量到的脉冲个数为 y 个,则电机的转速为:y/x,这些计算可通过程序实现图3.1.6 为模块化后的霍尔传感器测速接口硬件图,clk 是系统时钟;霍尔传感器输出的信号由 speedinp 端口输入 fpga;程序进行计数,每分钟实际转速值为 14位二进制数,由 speedout 输出。慕龊慕龊图3.1.5 霍尔传感器测速电路慕龊慕龊图3.1.6 霍尔传感器测速模块慕龊直流电机的转速可以通过内嵌的霍尔传感器测量得到,在电机的转动过程中,每一相霍尔传感器的输出周期波形如图3.1.7所示:慕龊慕龊图3.1.7 输出周期
31、波形慕龊如上图所示,电机每转一圈产生2 个周期的占空比为50的方波,那么我们只要测量出一个方波的高电平时间t, 便可由公式v60/4t( rad/min)算出。如果只用1 相霍尔传感器测速的话,当电机速度较慢时,周期比较长,可能会影响到电机实时控制。可以采用如上图所示增加霍尔传感器的方法解决,传感器1和传感器2 以角度a 固定,将与波形作为输出波形,输出波形脉冲宽度与原来波形脉冲宽度的比n=2a/ ,这样就使得电机转速的测量比原来快了n 倍,可以取a 为能被整除的角度,有利于计算。不过这要求霍尔传感器在角度固定时要相当准确,否则会造成误差。慕龊3.2 系统模块设计慕龊3.2.1 pwm信号产生
32、器设计慕龊fpga中的基准计数器用来产生类似模拟电路的三角波基准,是一个最小计数值为0,最大计数值为周期寄存器中保存的数值。pwm 的任务逻辑由输入时钟clk,输出信号pwm_ out,使能位,5位计数器以及一个32位比较器组成。输入时钟作为5位计数器的时钟信号,5位计数器的当前值与占空比设定寄存器中的值经过比较器后来决定pwm_out的输出为高或为低。当前计数器中的值小于或等于占空比寄存器中的值时,pwm out输出低电平,否则输出高电平。pwm 的周期设定寄存器来设置pwm_out的信号周期当前计数器的值等于周期设定寄存器中设定的值时产生一个复位信号来清除计数器中的值。使能控制寄存器能使时
33、钟信号有效或无效,从而控制计数器是否工作,进而控制pwm_out是否保持当前状态不变。pwm生成原理图和框图如图所示:慕龊慕龊图3.2.1 pwm 生成框图慕龊慕龊图3.2.2 pwm 生成原理图慕龊3.2.2转速控制模块 慕龊通过按键将直流电机的转速分为4档,即0档为不运转,13档转速依次增加,并用数码管显示当前的转速档位。模块decd的vhdl程序如下:library ieee;慕龊library ieee;慕龊use ieee. std- logic-1164. all; 慕龊use ieee. std- logic- unsigned. all; 慕龊entity decd is 慕龊
34、port( clk: in std -logic;慕龊dspy: out syd_logic -vector( 1 downto 0) ; 慕龊d: out syd_logic-vector(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”=ddddnull慕龊end case ; 慕龊end process; 慕龊process(clk)慕龊begin
35、慕龊if clk event and clk =1 then cq=cq+1;慕龊end if;慕龊end process;慕龊dspy=cq;慕龊end 慕龊在上述程序中,按键信号由clk送入,dspy为两位标准逻辑矢量,可用来表示4种档位,每一种档位都表示一种速度等级,如档位0的速度等级为4.将dspy1.0接至数码管可及时获知档位信息。慕龊3.2.3锯齿波产生模块cnt五位计数器的设计慕龊锯齿波产生模块可用计数器产生,本设计用5位二进制计数器cnt5在时钟信号clk激励下输出计数脉冲,为了输出增大的锯齿波,程序控制在每一个时钟上升沿来时输出计数值的高四位,计数值记25=32反0,继续下一
36、轮计数,以此形成逐渐上升的锯齿波信号。慕龊 慕龊慕龊 图3.2.3 为计数器模块图和锯齿波仿真图慕龊慕龊计数器模块vhdl语言编程如下:慕龊library ieee;慕龊use ieee.std_logic_1164.all;慕龊use ieee.std_logic_unsigned.all;慕龊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;慕龊archite
37、cture behav of counter32b is慕龊signal cqi:std_logic_vector(31 downto 0);慕龊begin慕龊process(fin,clr,enabl)慕龊begin慕龊if clr=1 then cqi0);慕龊elsif finevent and fin=1 then慕龊if enabl=1 then cqi=cqi+1;end if;慕龊end if;慕龊end process;慕龊dout=cqi;慕龊end behav;慕龊3.2.4比较器模块cmp的设计慕龊数字比较器是产生pwm波形的核心组成部件,锯齿波cnt5输出信号aa3:0
38、 和直流电机转速控制模块decd速率等级输出信号b3:0同时加至数字比较器的两个输入端,进行比较,如a3:0的值大于b3:0输出值,则比较器输出低电平,反之输出高电平,由此产生周期性的pwm波形,若改变速率等级设定值,就可改变pwm输出信号的占空比。改变 decd的输出值就等于改变pwm的输出信号的占空比,也等于改变了周期,这样就实现了速度调控。慕龊 图3.2.4 比较器模块图慕龊比较器可用lpm函数lpm_compare进行定制。慕龊比较器vhdl语言编程如下 :慕龊library ieee;慕龊use ieee.std- logic-1164.all; 慕龊use ieee.std- lo
39、gic- unsigned.all; 慕龊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 d )then 慕龊agb =1; else 慕龊agb=0; 慕龊end if;
40、慕龊if(aad )then 慕龊agb =1; else 慕龊agb=0; 慕龊end if ; 慕龊end process equali ty; 慕龊end architecture agb;慕龊比较器的两路输入信号分别为速率等级设定值a3.0和锯齿波信号b3.0,比较器cmp3输出为高低电平,当锯齿波输出值大于速率等级输出的规定值时,即比较关系为a3.0b3.0,比较器输出低电平,否则输出高电平,比较器输出的高低电平即作为控制直流电机正反转的启动信号。比较器定制完成后,利用quartus原理图设计方法,将转速模块decd、锯齿波产生器cnt5和比较器cmp3连接起来。则完成pwm信号产生
41、器的电路设计。慕龊慕龊图3.2.5 pwm信号产生器慕龊3.2.5正反转模块设计慕龊直流电机旋转方向控制电路用于控制直流电动机正反转和启/停状态,该电路由两个二选一的多路选择器组成,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波无法输出,
42、则电机不转动。慕龊慕龊图3.2.6 直流电动启/停、正反转控制电路慕龊3.2.6转速测量模块设计慕龊根据直流电机的转速测量原理,可以利用频率计的设计方法,设计电机转速测量电路,并通过数码管显示转速测量结果。直流电机转速测量电路包括时序控制器、计数器和锁存器。其中时序控制器产生控制测量转速信号时的工作时序,计数器用于统计直流电机的转数(光电码盘产生的脉冲个数),锁存器用来所存计数器输出的计数值。时序控制器要完成测频任务,需产生3个重要的控制信号,即计数使能信号、计数所存信号和计数清零信号,其中计数使能信号有效的时段必须为1s,这样锁存器的输出值就为直流电机的频率(频率为单位时间内的次数)。计数使
43、能信号有效时,允许计数器计数,紧接着将计数值锁入锁存器;为了得到每一次的计数值,则须把前一次的计数值锁存后,对计数器清零,所以紧随锁存信号之后须清除锁存器记录。因此计数使能信号(1hz的二分频信号)、计数锁存信号和计数器清零信号的控制时序如图3.2.7所示。慕龊慕龊图3.2.7 控制时序图慕龊时序控制器的vhdl程序如下:慕龊library ieee;慕龊use ieee.std_logic_1164.all;慕龊use ieee.std_logic_unsigned.all;慕龊entity ftctrl is慕龊port (clkk:in std_logic;慕龊cnt_en:out st
44、d_logic;慕龊rst_cnt:out std_logic;慕龊load:out std_logic);慕龊end ftctrl;慕龊architecture behav of ftctrl is慕龊signal div2clk :std_logic;慕龊begin慕龊process(clkk)慕龊begin慕龊if clkkevent and clkk=1 then慕龊div2clk=not div2clk;慕龊end if;慕龊end process ;慕龊process(clkk,div2clk)慕龊begin慕龊if clkk=0 and div2clk=0 then rst_cn
45、t=1;慕龊else rst_cnt=0;慕龊end if;慕龊end process;慕龊load=not div2clk;慕龊cnt_en=div2clk;慕龊end behav慕龊直流电机转速测频电路中的cnt、reg可由lpm函数定制,根据原理图设计方法完成了测频电路,如图3.2.8所示,图中ce_in将直流电机转速脉冲信号送入cnt进行统计计数,clk_1hz为1hz的时钟信号,送入testctl中用来产生测频时所需的三路时序控制,信号tsten、clr_cnt和load,锁存器的工作时钟为load信号,即在load=1和clk_1hz=1时,将reg中锁存的转速脉冲个数进行输出,此
46、即直流电机的频率。慕龊将如图所示的电路进行仿真,可得3.2.9图,图中clk的频率为1hz,因此可以这样考虑,计数使能信号tsten在clk为1秒的时段,刚好为高电平,则允许计数器cnt计数,根据频率的定义,该计数值刚好是cnt输入端送入的电机转速的频率。而在clk信号接下来的1秒的时段内,在clk=1和load=1时将计数值锁入reg中,而在clk=0和load=1时,计数器清零信号clr-cnt=1有效,将计数器cnt中已经锁存的计数值清除,以便cnt在下一个计数使能信号tsten=1为高电平期间继续统计脉冲数。由此可见,时序关系图符合测频控制器的工作时序。另外,直流电机的频率测量值可通过
47、图3.2.8中dout15.0之后接带译码器的数码显示电路,可显示电机的频率,也可根据式(4)求得电机的转速。慕龊慕龊图3.2.8 直流电机测频电路图慕龊图3.2.9 测频时序控制器波形仿真图慕龊3.2.7电机转速计数去抖电路慕龊在fpga中加上脉冲信号去抖电路,对来自红外光电电路测得的转速脉冲信号进行数字滤波,从而实现对直流电机转速的精确测量。在此,采用同步整形消抖电路,只要脉冲抖动不出现在时钟上升沿处,电路就不会把它当作一次有效输入。由于抖动一般持续时间较短,因此时钟信号周期足够大,抖动出现在上升沿处的概率较小。同时,正常输入信号应至少持续一个时钟周期,才被认为是一个有效的输入脉冲,以此实
48、现消抖得目的。消抖电路如图3.3.1所示:慕龊慕龊图3.3.1 消抖电路慕龊3.2.8反馈电路设计和显示电路慕龊电流反馈模块电机的起动或堵转时电流很大,起动时的电流一般是额定电流的 6-7 倍,而电机正常允许的堵转电流是额定电流的 2.5 倍以内。一旦电机的堵转电流太大,堵转时间太长时,都有可能烧看坏电动机。因此要有一个过流保护电路。本系统使用的模拟电机电流较小,因此不需要用电流互感器测量电流,只需在电机回路串联一个小电阻,通过测量电阻两端的电压,就可计算出电流值。其采样电阻 r17 为0.1。电流检测电路如图 3.3.2 所示,采样电阻两端电压输入运算放大器的同相输入端,其输出电压adc08
49、09 的输入 in-0 通道,最后通过 a/d 转换后送给 fpag。慕龊慕龊图3.3.2 电流检测原理图慕龊转速与电流值采用四位数码管显示,用74ls373作驱动,电路如图3.3.3 所示。数码管显示采用动态扫描方式,扫描周期为1ms,由主时钟分频后得到。数码管的显示字模分别定义为一个4 位二进制数,这样每输入一个有效的4 位二进制数,通过软件查表就可找到相应的字模输出显示。片选端4bit 分别控制四个数码管的工作。模块化后的电路图如图3.3.4所示。clk 是系统时钟输入,经分频后作为模块内部时钟;buff0buff3 是输入4 位数码管要显示的数据的地址;慕龊3.2.9 led显示电路慕
50、龊charmodep 是显示字模输出口,输给74ls373 的d0d7 以驱动数码管显示数据;csport 输出4 个数码管的片选信号。慕龊慕龊图3.3.3 数码管显示电路慕龊图3.3.4 显示模块慕龊本章小结慕龊本章介绍了系统整个电路的设计组成,详细描述了系统是如何工作的。分别对系统的每一个子电路进行了讲解分析,每一个子电路的功能。慕龊4. 系统电路设计慕龊4.1键盘电路设计慕龊外围包括“键盘输入模块、电机驱动模块、速度和电流反馈模块、显示模块等”(键盘输入模块要实现对电机速度的控制及超流保护的功能,就要设定电机的转速和堵转电流。本系统采用按键输入的方式,其电路如图4.1.1所示,四个按键的
51、功能分别为:复位、确定、加、减通过软件的设置实现速度和堵转电流的设定。模块化后硬件接口如图4.1.2所示。clk为系统时钟输入口,内部经过分频,作为按键分频时钟keyinp 是四个按键的输入端口;enspd 是切换按键功能,先设置最大电流,再设置转速;设置的电流最大值用 8 位二进制数表示,由 keycurr 输出;设置的转速值用 14 位二进制数表示,由 keyspd 输出。按键的防抖动由软件实现,程序如下:慕龊if (clk event and clk=1) then慕龊if cnt_keynum10ms then慕龊cnt_key:=cnt_key+1;慕龊else慕龊cnt_key:=
52、0;慕龊clk_key=not clk_key;慕龊end if;慕龊end if;慕龊慕龊1慕龊慕龊慕龊慕龊图4.1.1 键盘电路慕龊慕龊图4.1.2 按键模块慕龊4.2系统时钟电路设计慕龊fpga是在系统时钟脉冲作用下进行的,在fpga应用系统中,要求采用石英晶振作为时钟脉冲,如图所示,是采用有源石英晶振构成的系统时钟电路。在该电路中,1脚悬空,2脚接地,3脚接输出,4脚接电源。3脚时钟脉冲输出后接在fpga的clk0时钟端,另一路经二分频电路进行分频后接在clk2时钟端。在clk0和clk2的共同作用下,系统进行工作。慕龊时钟输入是系统电路中必不可少的一部分。它能为fpga提供时钟脉冲信
53、号。考虑到eda开发系统时钟输入的重要性。一个是50mhz的有源晶振作为时钟信号源输入,主要用于输入大的时钟信号,为波形发生器提供基准的时钟脉冲输入。慕龊慕龊图4.2.1 时钟电路图慕龊有源晶振的驱动能力强,晶振频率比较大,能达到几百兆hz,采用有源晶振作为时钟源可以使电路的时钟扩大。ho-12系列的有源晶振采用ttl/hcmos技术,频率范围是1000hz-1000mhz,这里我们采用的是100mhz的有源晶振。 把d触发器的输出反馈回输入端与d连接就形成一个二分频电路,如图4.2.2所示,从波形图可以看出q输出的波形将是cp脉冲周期的两倍,即频率是为cp脉冲的一半。慕龊慕龊图4.2.2 触
54、发器接成二分频慕龊4.3 电源电路的设计慕龊由于电机在正常工作时对电源的干扰很大,如果只用一组电源时会影响系统的正常工作,所以我们选用双电源供电。一组5v给控制电路供电,另外一组12v给电机供电。 如图4.2.3所示。电源部分分为两路,一路直接提供12伏的直流电源,主要是提供给电机使用,另一路通过三端稳压芯片7805稳压成5伏直流电源提供给键盘电路和时钟电路使用,右边两个电容是5伏电源的滤波电容,绿色的led作为工作指示灯只要电源部分正常,绿色的led就会点亮,我们可以根据这个led来判断慕龊整个电源部分是否工作正常。慕龊慕龊图4.2.3 电源电路慕龊4.4 fpga内部电路慕龊由图4.4.1
55、可以看出电机控制逻辑模块由pwm脉宽调制信号产生电路、方向控制电路组成。其中pwm脉宽调制信号产生电路由可控的加减计数器cnta、5位二进制计数器cntb、数字比较器三部分组成,方向控制电路由两个二选一电路组成。接着就对pwm脉宽调制信号产生电路的vhdl描述与仿真、方向电路的vhdl描述与仿真进行详细的分析。慕龊慕龊慕龊慕龊慕龊慕龊慕龊慕龊慕龊慕龊慕龊慕龊慕龊慕龊慕龊图4.4.1 fpga内部电路逻辑图慕龊4.5系统总电路慕龊如图4.5所示,基于fpga的直流电机pwm控制电路主要由四部分组成:控制命令输入模块、控制命令处理模块、控制命令输出模块、电源模块。键盘电路、时钟电路是系统的控制命令输入模块,向fpga芯片发送命令,fpga芯片是系统控制命令的处理模块,负责接收、处理输入命令并向控制命令输出模块发出pwm信号,是系统的控制核心。控制命令输出模块由h型桥式直流电机驱动电路组成,它负责接收由fpga芯片发出的pwm信号,从而控制直流电机的正反转、加速以及在线调速。电源模块负责给整个电路供电,保证电路能够正常的运行。慕龊慕龊图4.5 基于fpga的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安徽省高考化学试卷真题(含答案解析)
- 环境灾害应急响应与救援重点基础知识点归纳
- 炸鸡店的网红菜品
- 中式快餐的文化传承与风味传统
- 肯德基炸鸡的特色菜品
- 元旦的风俗国潮风与幼儿故事
- 护理中的卫生与清洁
- 护理实践中的卫生与健康管理
- 肯德基 忠实顾客与忠诚度管理
- 保险公司献爱心活动方案
- 个人债务结清协议书模板
- 招投标管理招聘笔试题与参考答案
- 2023年全国职业院校技能大赛-融媒体内容策划与制作赛项规程
- 国家开放大学本科《商务英语4》一平台机考真题及答案(第一套)
- 新能源汽车动力蓄电池及管理技术 课件 模块二 动力蓄电池管理系统功能和技术认知
- 无犯罪查询授权委托书
- 村霸举报信范文(篇一)
- 《中国心力衰竭诊断和治疗指南2024》解读(总)
- 2024年湖南中考化学试卷及答案
- DL-T-300-2011火电厂凝气器管防腐防垢导则
- 山东省青岛市莱西市(五四学制)2023-2024学年七年级下学期7月期末历史试题(无答案)
评论
0/150
提交评论