(毕业论文)基于EDA的步进电机控制论文_第1页
(毕业论文)基于EDA的步进电机控制论文_第2页
(毕业论文)基于EDA的步进电机控制论文_第3页
(毕业论文)基于EDA的步进电机控制论文_第4页
(毕业论文)基于EDA的步进电机控制论文_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2013届本科生毕业论文学号:090701050119成绩:基于eda的步进电机控制系统设计院 部:电子信息学院专 业:电子信息工程姓 名:指导老师:二o三年五月毕业论文诚信声明本人郑重声明:所呈交的毕业论文 基于eda的步进电机控制系统设计 是 本人在指导老师的指导下,独立研究、写作的成果。论文中所引用是他人 的无论以何种方式发布的文字、研究成果,均在论文中以明确方式标明。本声明的法律结果由木人独口承担。毕业论文作者签名:摘要步进电机是将电脉冲信号转变为机械角位移或线位移的开环控制机电元件,它的工 作原理是利用电子电路,将直流电变成分时供电的多相时序控制电流,用这种电流为步 进电机供电,步进

2、电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控 制器。因其具有成本低、易于精确控制、无累积误差等优点,在生产、生活中的很多领 域有广泛应用。木文以两相混合式步进电机为控制对象,在分析步进电机的特点和工作原理的基础 上介绍一种面向fpga的eda技术实现对步进电机驱动细分。本设计主要介绍步进电机 在低频丁作时,分辨率不高,容易产生振荡,运行不够平稳,无法满足高精密度的要求。 为此本文在分析细分驱动技术的原理上,利用fpga中的嵌入式eab构成lpm_rom存放 步进电机各相细分屯流所需的pwm控制波形数据表,通过fpga设计的数字比较器同步 产生多路pwm电流波形,实现对步进电机转

3、角进行均匀控制。该设计简化了外围电路, 控制精度高,控制效果好,仿真结果显示,功能完全达到设计期望。【关键词】:步进电机 细分控制 eda 数字比较器abstractthe stepper motor electrical pulses into mechanical angular displacement or linear displacement open-loop control of electromechanical components. it works by using an electronic circuit dc power into sharing power su

4、pply, multi-phase timing control current, using this current powered for stepper motor to work properlyo the drive is sharing power supply to the stepper motor, multi-phase timing controller。because of its low cost, easy to precise controb no accumulated error and other advantages, is widely used in

5、 many areas of production and daily life。this present article based on the two-phase hybrid stepping motor as the control object, considered the characteristics and working principle of stepping motor, is introduced a kind of a subdivided driving of stepping motor based on eda technologyo stepper mo

6、tor working in low frequency, the resolution is not high, easy to produce oscillations, the operation is not smooth, can not meet the high precision requiremento based on the principle of driving technique in the analysis on the subdivision, we use the embedded eab in fpga to compose a lpm_rom to de

7、posit a data sheet of pwm control waveform of each phase of subdivision current, the digital comparator designed with fpga synchronous engender pwm waveform of current, realize the uniform control of the rotation angle of the stepping motoro the design makes the peripheral circuit more simpler, cont

8、rol precision more higher, and control effect more betterokey words : stepper motor, subdivision control, eda, the digital comparator第1章绪论-1 -1.1 选题背景及意义-1-1.2 发展现状及前景-2-1.3 本课题研究主要内容-3-第2章系统硬件描述与设计-4 -2. 1硬件描述42. 1. 1 运动速度的控制-5-2. 1.2 正转反转的控制-6-2. 1.3 步进度数控制-6-2. 2 实验方案验证-7-2. 2. 1 方案一一 7 -2.2.2 方案

9、二-8-2. 2. 3方案的选择-9-2.3 硬件设计-9-2.3. 1 硬件介绍-10-2.3.2步进电机特点以及常见问题 -12-2.3.3 fpga逻辑功能结构及其总体设计 -13-第3章程序设计-15-3. 1硬件描述语言vhdl - 15 -3. 1. 1viidl语言的特点-15-3. 1.2vhdl语言的基本结构-16-3. 1.3程序框图-17-第4章系统仿真与调试-18-第5章总结-20-参考文献一21-附录 vhdl源程序-23-致谢-28-第1章绪论1.1选题背景及意义步进电机也叫步进器它是一种感应电动机,它的工作原理是利用屯子屯路,将电脉 冲信号转变为角位移和线位移。在

10、非超载的情况内,电机的转速、停止的位置与输入脉 冲数成止比例。步进电机每接收一个脉冲信号,便按设定的方向旋转一个固定的角度(称 为“步进角”),其转速取决于脉冲频率。步进电机作为执行原件,它是机电一体化关 键部件z, -般用作定速控制和定位控制。步进电机具有控制简单、惯量低、无累计 误差、定位精度高等特点。所以其广泛运用于各种自动控制系统屮,随着微屯子和计算 机技术等现代工业的不断发展。不论在工业、军事、生活娱乐中,具需求量与日俱增。随着深亚微米技术的发展,使得一些大系统可以集成在一个芯片中,另外现场可编 程门阵列fpga可以进行多次编译。这就解决了对于在步进电机的高精度且繁杂的实验 中,每次

11、选用新的驱动芯片的耗费问题。它的出现为这种系统提供了很大的方便。本设计中选用型号为ts3103tc100-3的步进电机和型号为ep1k10t100-3的fpga, 来实现基于eda技术对步进电机系统的设计和控制。因此改变控制参数很方便,只需改 变相应部分的程序即可。山eda技术就是在电子cad技术的基础上发展起来的一种计算机软件系统,是以计算 机为工作平台,在eda t作软件上,设计者使用vhdl硕件描述语言进行电子系统的设 计。它是融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果。设计 者可以将电子产品从电路设计、性能分析、优化、仿真、对指定口标芯片的适配编译等 整个过程在计算

12、机上自动处理完成。现在对eda的概念范畴用的很宽,在机械、电子、 军事等各个领域都有应用。木文所指的eda技术主要针对电子电路设计、逻辑编译、布 线仿真和1c设计。fpga即现场可编程门阵列,它是在pal、gal、cpld等可编程器件的基础上进一步发 展的产物。它作为专用集成电路(astc)领域屮的一种半定制屯路而出现的,使用灵活, 解决了定制电路的不足和原有可编程器件门电路数有限的缺点。当需要修改fpga功能 时,只需换一片eprom。所以,同一片fpga,不同的程序,就可以产生不同的电路功能。 可以说,fpga芯片是小系统提髙系统可靠性、集成度的最佳选择z-o同时本次使用的步进电机比普通电

13、机优点更显著,其区别在于脉冲驱动的形式不 同,因此步进电机才可以和现代化数字控制系统相结合。因为步进电机不需要进行模拟 /数字的转换,就可以直接把数字脉冲信号转化成角位移,所以其被认为是最理想的数 字控制机床的执行元件。早期的步进电机难以获得较大的转矩,无法满足需求,所以使 用的时候一般与液压扭矩放人器一同组成液压脉冲马达。1.2 发展现状及前景步进电动机已经成为除了直流电机和交流电机z外的第三类电机。传统电机作为机 电能量的转换装置,在人类生产、生活进入电气化过程中起了关键性作用。可是在人类 社会进入自动化时代的今天,传统电机的功能已经满足不了工厂自动化和办公自动化等 控制系统的需求。为了适

14、应这些需求,发明了一系列新的具备控制功能的电机系统,其 中特点显著,且应用广泛的一类就是步进电机。步进电机的发展与计算机t业息息相关。自从计算机外i韦i设备中的小型直流电机被 步进电机取代后,很快就促进了步进电动机的发展。另外,微型计算机和数字控制技术 的飞速发展,也使得步进屯机的应用推广到其他领域,比如电加工机床、小功率机械加 工机床、测量仪器、光学和医疗仪器以及包装机械等。预计未来对步进电机的研究还会继续深入下去,研究的方向之一就是,电机与驱动 的一体化,使步进电机体积更小,性价比更高,性能更优越。在民用设备屮大量使用, 如:家庭机器人,民用智能化设备。当前,最具发展前景的就是混合式步进电

15、机。其有 以下四个发展方向:(1) 继续走小型化的方向发展。由于电动机应用领域的拓宽和各类整机的小型化, 这就要求电动机本身也越来越小。(2) 把圆形电动机改成方形电动机。因为方形电动机的力矩要比圆形的高 30%40%o(3) 对电动机进行整体设计,即把转自位置的传感器/相对编码器、减速齿轮/减 速机与电动机本身综合在一起设计。(4) 向三相或五相电动机方向发展。三相和五相电动机解决了目前广泛应用的二 相和四相电动机震动和噪咅较大的缺点。1.3本课题研究主要内容由于现代自动化技术与智能技术的总速发展,所以步进电机的应用也变得非常广泛。 同时,近年来,随着嵌入式技术的发展,pld (可编程逻辑器

16、件)在速度和集成度两方 面得到了飞速提升。由于它体积小、速度快、费用低、用户可对他进行读/写操作,应 用领域也不断的扩大,越来越多的电子系统开始采用pld来实现数字信号处理。由此, 本文提出了用型号为ep1k10t100-3的fpga为核心的控制方法设计四相步进电机的外围 驱动电路控制系统,并利用vhdl语言编写步进电机的控制时序电路,使用四个机械式按 键对步进电机进行转速、方向等的控制,实现步进电机的加减速和常速步进角度的控制, 步进电机最少转动1.8度。而且系统的可移植性优越,可靠性强。在设计方法上简单易 行:在fpga步进电机的控制系统中减少了控制系统设计的工作屋、大大缩短研制开发周 期

17、,和节约了开发费用,而且提高了控制系统的可靠性,具有较高的使用和推广价值。第2章系统硬件描述与设计2.1 硬件描述系统原理框图如图2. 1所示,本系统设计駛件部分主要包括型号为ep1k10t100-3 的fpga芯片以及自己设计的步进电机驱动电路,与步进电机连接实现的完整的步进电 机在步进角度、步进速度、止反转控制等方面的控制。将程序输入电脑,对fpga进行 程序编译下载,将设计好的电路板与实验板fpga连接测试所编程是否正确,是否可以 正转,反转,以及改变转动角度和速度等。步进电机是将电脉冲转化为角位移和线位移的执行元件。它并不是连续运行的而是 以固定角度一步一步旋转的电动机,一般情况下每步

18、旋转15° o另外,角位移量可以通 过控制脉冲个数来控制,从而达到准确定位的的;电机的转速和加速度通过控制脉冲 频率,來达到调速的目的;同时也可以通过脉冲“相位”控制电机正反转的。步进电机在空载时能够正常启动的脉冲频率叫“空载启动频率”。如果脉冲频率高 于该值,电机不能正常启动,可能发生“丢步”或“堵转”。在有负载的情况下,启动 频率应更低,如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低, 然后按一定加速度升到所希望的高频。因此步进电机低速启动运转,若高于一定速度就 无法启动,并伴有啸叫声。本系统设计中选用的步进电机是四相单8拍的丄作方式,所对应的步距角为1. 8度

19、。对应的脉冲分配表如表2. 1所列:表2.1四相脉冲分配表节拍编码smasmbsmcsmdn1000n+l1100n+20100n+30110n+40010n+50011n+60001n+710012.1.1 运动速度的控制止如前文所述,步进电机的启动频率应低于空载启动频率,因此木设计采用梯形图 法对步进电机的加减速进行控制。输入的脉冲频率决定了步进电机的转速。如图2.2所 示,tot1时段为步进电机启动过程,脉冲频率呈线性递增。t1-t2为步进电机恒速 运行阶段,输入脉冲频率不变。t2-t3是停止过程,脉冲频率呈线性递减。图2. 2驱动步进电机的脉冲频率的变化规律当改变输入脉冲的周期时,ab

20、cd四相绕组脉宽将发生变化。这就使电机转速发生 变化,所以步进电机的运动速度与输入脉冲的频率成正比。如果给步进电机发一个控制 脉冲,它就转一步。2个脉冲的间隔越短,步进电机就转得越快。调整控制器发出的脉 冲频率,就可以对步进电机进行调速。脉冲分配波形图如图2. 3所示:输入脉冲a相_n_rln_fld相图2. 3脉冲分配波形图2.1.2 正转反转的控制步进电机的正、反转控制可通过改变步进电机各绕组的通电顺序来实现,这一过程 称为“脉冲分配”。例如:四相六线步进电机通电顺序为ab- bc- cd- da- ab.则电 机正转。如果按反序换相通电,即:步进电机通电顺序改为ad- dc- cb- b

21、a- ad则 电机反转。因此,可以通过fpga输出的方向控制信号或经编程改变输出脉冲的顺序,从 而改变各绕组的通电顺序来实现电机正反转的控制。2.1.3 步进度数控制如果给步进电机发一个控制脉冲,它就转一步,步进电机的角位移与输入的脉冲数 成正比,因此可以用fpga脉冲输出个数控制步进电机的角位移量,来实现对步进电机步 进度数的控制。n = a l/ 6其中al为步进电机的输出位移量(mm),§为机构的脉冲当量(mm/脉冲)。2.2 实验方案验证2.2.1 方案一本实验采用六线四相步进电机,六线式四相步进电机比较常见,它的等效电路如图2. 4所示,它有4条信号引线a、a、b、b,通过

22、控制这4条引线上脉冲产生的时刻,即可控 制步进电机的转动。单片机控制步进电机原理图如图2. 5所示,通过p1.4-p1.7來控制各线圈的接通与断开。p1的4脚对应步进电机的a, p1的5脚对应a, p1的6脚对应b, p1的7脚对应b。这4条驱动线通过uln2003与单片机的p1. 0p1. 3引脚相连。图2. 4步进电机的控制等效电路kkassgsslonijnuusn < j r c 日.if<>5z2g5$12.2.2 方案二如图2. 6为fpga控制步进电机原理图,图2. 7为步进电机驱动原理图。因其工作电 压为24v,最大电流为0. 3a,因此用“uln2003”来

23、做为驱动。通过pl. 4p1.7来控制各 线圈的接通与断开。开机时p1.4-p1.7均为高电平,如将p1.4-p1.7切换为低电平则可 驱动步进电机运行,但是在切换z前将前一个输出引脚变为高电平。如杲要改变电机的 转动速度只要改变两次接通之间的时间,而要改变电机的转动方向,只要改变各线圈接 通的顺序。actel fpgastepperivcc idirenph1ph2additionalcontrolph3logidclkph4rstfpga 厂1 supply l.图2. 6amiji wv_fpga控制步进电机原理图ib 1c 2b 2c 3e 3c 4b 4c 5e 5c 6e 6c 7

24、e 7c e com丄23456781677to22*5i+24v图2. 7+5v步进电机驱动电路原理图2.2.3 方案的选择(1) fpga运行速度快fpga内部集成串并收发器,可以把外部时钟倍频,核心频率可以达到数十gbpso而 单片机运行速度低的多,在高速场合单片机无法代替fpga o(2) fpga可以进行二次开发fpga甚至包含单片机和dsp软核,并冃t/0数仅受fpga0身i/o限制,所以,fpga又 是单片机和dsp的超集,也就是说,fpga能实现单片机和dsp所能实现的大部分功能。(3) fpga管脚多,容易实现大规模系统单片机1/0口有限,而fpga动辄数白i/o,可以方便连

25、接外用设备。比如一个系统可 能包含多路“ad/da”,单片机就要进行仔细的资源分配,总线隔离,而拥有丰富的i/o 资源的fpga,可以很容易用不同t/0连接各外设。(4) fpga内部程序并行运行,有处理更复杂功能的能力单片机程序是串行执行的,必须一条一条的执行,在处理突发事件时只能使用中断, 但单片机的屮断资源乂有限;irufpga不同逻辑可以并行执行处理多条任务,这就导致了 fpga的工作效率更高。总的来说,基于fpga要比基于单片机要快很多。因为单片机是基于指令工作的,同 样的激励到达单片机后,单片机首先要判断,然后读取和应的指令,最后作出响应,这 每一步都是需要在单片机的时钟驱动下一步

26、步的进行。而基于fpga则是把相应的逻辑暂 时“固化”为硬件电路了,它对激励作出的响应速度就是电信号的传播速度,当然这指 的是“异步逻辑”。2.3硬件设计在木次设计屮我们选用的步进电机型号为ts3103tc100-3的和型号为ep1k10t100 - 3的fpga现场可编程门阵列,来实现对步进电机系统的设计及控制。驱动则选用 复合晶体管tc-uln2003,下面就硬件组成各部分设计进行详细的介绍。2.3.1 硬件介绍步进电机的驱动可以选用专用的驱动模块,如l 298, ft 5754等,这类驱动 模块接口简单,操作方便,他们既可以驱动步进电机也可以驱动直流电机,本设 计屮我们使用“达林顿”驱动

27、器uln2003o uln2003具有电流增益高,温度范i制宽, 带负载能力强,工作电压高等特点,适应于各类耍求高速大功率驱动的系统。下面 先介绍一下uln2003芯片。unl2003芯片封装外形图如图2. 8和内部结构图如图2. 9、2. 10所示:该芯片 是16脚七路电机驱动芯片,分直插式和贴片式。其引脚端功能及符号如表2. 2:1b1u161 1c2b2152c3b3143c4b4134c5b5125c6b6116c7b7107ce89comuln2oo3图 2. 8 uln2003 芯片1b2b3bcom1c2c3c4b5b6b4c5c6c1u-7b7c图2. 9 uln2003内部结

28、构zszzzzzzzzzz161514131211>outgmd 8zz109 pwruln2003图2. 10 uln2003内部结构图表2. 2 uln2003引脚端符号及功能引脚端序号符号功能引脚端序号符号功能11b输入9com公共端22b输入107c输出33b输入116c输岀44b输入125c输出55b输入134c输击66b输入143c输岀77b输入152c输出8e发射极161c输出本设计用到的步进电机实物图如图2. 11。步进电机不像普通电机和直流电机一样可 以在常规状态下使用,由表2. 3可看出其工作电压为24v,最人电流为0. 3a0所以设计 其电路时必须由双环形脉冲信号和

29、功率驱动电路等组成控制系统。如前面介绍它有a、 a、b、b 4条信号引线,通过控制这4条引线上脉冲产生的时刻从而控制步进电机的转动。图2. 11步进电机实物图表2. 3步进电机参数表型号ts3103tc100-3步距角1. 8deg相数4电压24v电流0. 3a最大静转矩6. 5kg/cm尺寸56. 4x 50. 8mm2.3.2步进电机特点以及常见问题1 步进电机技术指标(1) 相数一一电机内部的线圈组数。目前有二相、三相、四相以及五相步进屯机。相 数不同,“步距角”也不同。(2) 步距角系统每发出一个脉冲信号,电机转动的幷度。本设计选用的步进电机的“步距角”为1.8。o(3)拍数一一电机转

30、过一个“步距角”所需的脉冲数。如本设计使用的四相步进电 机,有以四相4拍方式运行,即abbc一cd一da一ab;述有四相8拍运行方式,a一ab bbcccdddaa。(4)定位转矩电机在截止状态下,转头自身的锁定力矩。(5)步距角精度步进电机每转过一个“步距角”的实际值与理论值的误差。误 差/步距角*100%, 4拍运行时在5%以内,8拍在15%之内。(6)失步电机运转时的运转步数与理论步数不符,称为“失步(丢步)”。(7)失调角转子齿轴线偏与定子齿轴线z间的角度,这个角度是不可避免的。2.常见问题(1)步进电机应用于低速场合,每分钟转速不能超过1000转,此状态下的步进电机 效率高、噪音小。

31、(2)步进电机的“动态力矩”取决于电机运行时的平均电流。电流越大,电机输出 力矩也越大。(3)步进电机运转时速度不能太高否则无法启动且有嗡鸣声。(4)步进电机最好使用半步状态,整步状态时振动大。(5)步进电机外表允许温度范围在80° 90°之间。2.3.3 fpga逻辑功能结构及其总体设计为了简化设计,实现系统大量逻辑电路的集成,在设计中使用了现场可编程逻辑门 阵列器件(fpga)。fpga主要实现以f逻辑功能:定时脉宽门控、计数测量、地址锁存、 译码、总线的驱动和扩展以及数码显示的控制等功能。fpga器件选择altera公司的 epf10k10lc84-4芯片。该芯片有5

32、76个逻辑元件、72个lab/clb、3万多个逻辑门、6144 个ram。每个i/o引脚可以选择为集电极开路输出,可以通过编程控制每个i/o引脚的速 度以及1/0寄存器的使用。fpga按逻辑功能块的基本逻辑构造单元的大小,可分为细粒度结构和粗粒度结构; 按互连结构根据fpga内部的连线结构的不同,分为分段互连型和连续互连型两类;按编 程特性根据釆用的开关元件的不同,可分为一次编程型和可重复编程型。fpga是由存放在片内ram中的程序来设置其工作状态的,因此,工作时需要对片内 的ram进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,fpga 芯片将eprom中数据读入片内编程r

33、am中,配置完成后,fpga进入工作状态。掉电后,fpga 恢复成白片,内部逻辑关系消失,因此,fpga能够反复使用。fpga的编程无须专用的fpga 编程器,只须用通用的eprom、prom编程器即可。当需要修改fpga功能时,只需换一片 eprom即可。这样,同一片fpga,不同的编程数据,可以产生不同的电路功能。因此, fpga的使用非常灵活。fpga使用的开发软件为quartusii,该软件属于max+plus 11的升级版,性能方面得 到更好的优化,深受用户的喜爱,它是altera公司的综合fpga开发软件。该软件是一个 支持原理图、vhdl设计输入、编译仿真集成环境。quartus

34、ll可以在计算机各种系统屮 完美运行,提供了自动逻辑综合工具,具有数字逻辑设计的全部特性。fpga设计经过4个基木阶段:设计输入、设计编译、设计验证和器件编程。首先, 根据系统的逻辑功能生成顶层结构图。然后,分成几个小模块进行下一级设计,各模块 都必须严格由上而卞分析其逻辑功能,从底层进行设计编译,每一级都进行波形验证。 当最后顶层模块的逻辑功能在波形仿真屮满足系统时序耍求时,才可进行器件编程。这 里主要使用quartustt的timer进行波形仿真,来验证各子模块的功能。由tflex1ok在工作期间,将配置数据保存在sram中,而sram数据是易丢失的。sram 单元必须在器件加电后装入配置

35、数据,且配置完成后,它的存储器和i/o引脚必须被初 化。初始化后,器件进入用户模式,开始系统运行。第3章程序设计3.1硬件描述语言vhdl駛件描述语言是eda技术的重要组成部分,是eda各种描述方法屮最能体现eda优 越性的描述方法。eda (电子设计自动化)技术就是在计算机的辅助下完成电子产品设 计的一种先进的破件设计技术,是立足于计算机工作平台开发出来的一整套先进的设计 电子系统的软件工具。其技术范畴包括:pcb设计、电路设计、pld设计、ic版图设计。 在eda工作软件上,设计者使用vhdl硬件描述语言用语句表示输入输出的逻辑关系, 将程序输入到计算机屮进行屯子系统的设计,然后由计算机自

36、动地完成逻辑编译。vhdl 是电子设计的主流硬件描述语言。3vhdl语言的特点vhdl语言作为用普通文木形式设计数字系统的标准化硬件描述语言,主耍描述的是 系统的行为结构,接口和功能,其描述风格和语法与计算机高级语言非常类似。硬件描 述语言的基木特点就是,将设计项日(或称设计实体)分为内(不可视部分、内部功能、 算法)、外(可视部分、端口)两部分。当然,作为硬件描述语言屮被广泛应用的vhdl 语言,相比z下具备了很多其他描述语言不具备的优点。其主耍优点如下:(1)viidl作为硬件描述语言的第一个国际标准,其具备了很强的可移植能力。对于 同种駛件电路的vhdl语言,它可以从一个工作平台移植到另

37、一个平台上执行。(2)vhdl语言功能强大,其设计方案具有多样性,设计效率高。vhdl具有强大的语 言结构,只需用简单的语言程序就可以描述复杂的硕件电路。此外,它还具有多层次电 路设计功能,vhdl语言能够同时支持同步/异步电路的设计。(3)viidl语言设计灵活,修改方便。既支持模块化设计,也支持层次化设计,可将 大项fl分解成若干小项fl去设计,同时,也便于设计结构的交流,保存,重用。(4)vhdl语言系统硬件描述能力强,可独立实现。由于其设计层次较高,可描述系 统电路,也可描述逻辑门电路。既可单独采用寄存器传输描述、结构描述,也可以采 用三者的混合描述方式。(5)具有丰富的数据类型和库函

38、数。用户可根据需求对数据类型进行自定义,同时 可以随z对设计进行仿真模拟,这样对硬件设计提供了较犬方便。(6) vhdl的系统设计与硬件结构无关。设计人员不用首先考虑设计时更用到的器件。 这样做的好处是可以使设计人员集屮精力进行电路设计的优化,而不需耍考虑其他的 问题。当硬件电路的设计描述完成以后,vhdl语言允许采用多种不同的器件结构来实 现。方便了工艺的转换,也不会因工艺变化而使描述过时。(7) 易于共享和重用,产品开发速度快,成本低。3.1.2 vhdl语言的基本结构一个相对完整的vhdl程序(或称为设计实体)具有比较固定的结构。至少应包拾 三个基本组成部分:库(library) 程序包

39、(package)使用说明、实体(entity)说 明和实体对应的结构体(architecture)说明。实体说明用于描述该设计实体与外界的 接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是 不可视部分。根据需要实体还可以有配置说明语句。配置说明语句主要用于以层次化的 方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体如图3. 1所示: 图3. 1 vhdl基本结构图3.1.3程序框图程序设计框图如图3. 2所示。其中difrel为4分频的分频器程序设计;difre2为2分 频的控制器程序设计;mux4为四选一的选择器程序设计;由nmx4输出一个时钟信

40、号,即 输入一个时钟信号到stepmotor,给步进电机一个脉冲信号从而驱动步进电机转动。dktitkr5!j.;::u | :pjwt di|e,|emb图3. 2程序设计框图第4章系统仿真与调试altera公司的quartus ii软件提供了可编程片上系统设计的一个综合开发环境,是 进行可编程片上系统设计的基础。quartus ii集成环境包括以下内容:系统级设计、嵌 入式软件开发,可编程逻辑器件设计,综合,布局和布线,验证以及仿真。他altera技术领先的quartus ii设计软件配合一系列可供客户选择的ip核,可使设计 人员在开发和推出fpga、cpld和结构化asic的设计的同时,

41、获得无与伦比的设计性能、 一流的易用性以及最短的市场推出时间。这是设计人员首次将fpga移植到结构化asic 中,能够对移植以后的性能和功耗进行准确的估算。quartus ii软件支持viidl的设计输入、基于图形的设计输入方式以及集成系统设计 工具。quartus ii软件可以将设计、综合、布局和布线以及系统严整全部都整合到一个 无缝的环境中,其中还包括和第三方eda工具的接uo 11我们先应用quartus ii进行仿真。步进电机时序控制黠的符号如图4. 1所示:step motorcontrolorresetd 1 rect 1 onstep_outc2- ojratecx.ojcpx图

42、4. 1步进电机时序控制器的符号对于该控制器,我们设置的齐个控制信号均是外部电键,此外cp为时钟信号 rate(1. . 0)调速方式为:内部数据选择器根据rate(1. 0)值将移位寄存器的时钟分别 和cp及八进制计数器的输出端相连,以对cp进行1、2、4、8分频。step-out输出 的时序通过光电耦合直接送驱动器uln2003,为了提高uln2003的驱动能力,因此在 其输出端加四个22欧的上拉电阻。在仿真过程中可在quartus ii软件中来设定四相输入的电平的高低,图4. 2时序脉冲分配表所示,即为在仿真时设置的脉冲分配。figure / basic stepper foror se

43、quencestep sequenee ->00011000ph11ph20ph30ph40figure 2 basic stepper motor sequencestep sequence >phiph2ph3ph41010100101010110i010图4. 2时序脉冲分配表将所编写程序有pc机下载到fpga中,可得到图4. 3程序仿真波形图所示一组波形, 在quartus ii软件中可直观看到高低电平分配情况。凤bo uumnanjmnjmnjmjmrlnnjmnrlrlrwintinfout801-ir"l_ji 丄 j"ir曰 abcd6 0010

44、0010 x0001 一 y1m9 xott» _x0010_ 1-abc.60 :l1 / 1-abc.eo:i-aficeif二 i; t1_abcbo :厂"l圄 datah0003 ::1 图4. 3程序仿真波形图第5章总结在木次设计屮我们选用了型号为ts3103tc100-3的步进电机和型号为 ep1k10t100-3的fpga即现场可编程门阵列来实现对步进电机系统的设计和控制。通过 两个方案的比较最终确定了采用fpga控制步进电机。fpga是作为专用集成电路(astc) 领域中的一种半定制电路而出现的,使用非常灵活,既解决了定制电路的不足,乂克服 了原有可编程器

45、件门电路数有限的缺点。因此改变控制参数相当方便,只需改变程序中 相应部分即可。木设计利用vhdl语言编写步进电机的控制时序电路,完成了对四相混 合式步进电机的联动控制,实现了步进电机的细分驱动控制:用按键控制步进电机的速 度和转动方向,按下不同的键,分别使步进电机实现顺时针和逆时针转一步,连续按键, 不仅电机连续运转,显示器显示步进电机的状态,同时电机转动角度也可以用按键控制, 最少转动15。,实现了步进电机的精确控制。由于自身能力有限,在本设计中仍存在很多需要改进的不足之处,如在步进电机的 插补控制小,没有结合速度控制、驱动器硬件电路屮,保护电路有待完善。参考文献1邹道生eda技术在步进电机

46、驱动中的应用n江西师范大学学报(自然科学 版)» .2006 年.2吕京娜用fpga实现的步进电机控制系统m电子技术. 2006年.3王登贵基于plc的四相步进电机控制方法及实现m微计算机信息.2006.4仇国庆基于51系列单片机控制步进电机调速实验m 重庆邮电大学自动化学 院.2009.5王鸿铉等步进电机控制技术入门m.北京:同济大学出版社,1990.6孙伟 黄大庆等基于fpga的多通道pwm控制器设计n.江苏科技学院学 报.2009.7雷环利基于fpga的核物理实验定标器的设计与实现m单片机与嵌入式系统 应用.2002年.8侯伯亨等vhdl硬件描述语言与数字逻辑电路设计m西安:西

47、安电子科技大学岀 版社,2009.9周祖成译电子设计硬件描述语言vhdl m.北京:北京学苑出版社,199410朱三元.quartusii软件操作n计算机软件及应用.2006.11chatschik bisdikian. an overview of the bluetooth wireless technology. ieee commanications magazine, dec. 2003.附录vhdl源程序1、初步程序(按键控制正反转及步进距离):1ibrary ieee;use ieee. std-logic-1164. all;use ieee. std-logic-arith.

48、 all;use ieee. std_logicunsigned, al 1;entity stepmotor isport ( elk:instd-logic;-clock signalkeyl_8, key5_4, key9:instd-logic;1. 8 and 5. 4degreekeykeyl8,key45, key90 :instd-logic;18,45 and 90degreekeykeyl80, key360:instd- logic;180 and 360degreekeykeyorder:instd-logic;一一this keycontrolthe stepmoto

49、rrotateclockwise orcounterclockwiseastep,bstep:outstd-logic;-一astep andbstep drivercstep,dstep:outstd.logic);cstep anddstep driverend stepmotor;architecture behave of stepmotor issignal dcount: std-logic-vector (4 downtocounter is used to control the speed of the stepmotorsignal degreecount : std-lo

50、gic-vector (7 downto 0) used to counter the stepssignal degree: std-logic.vector(7 downto 0)used to save degrees ignal abed: std-logic-vector (1一一a,b,c,d,step driver countersignal clk_temp: std-logic;-一clockinternal0); -this;this is;this isdownto 0);signal usedbeginprocess (elk) -accumulate dcount,

51、从0至!31 计数 beginif (clkz event and clk=t)thendcount<=dcount+l;end if;end process;process (elk) -generate elk-temp ,对clk64分频 beginif (clkz event and clk=,lz) thenif (dcount="lllll,') thenelk-temp<=not elk-temp;end if;end if;end process;process (elk) -get the degree,确定角度 beginif (clkz ev

52、ent and clk=,lz) thenif (keyl_8=/0)thendegree<='*00000001"转.8度,数字1就代表转18度。els if (key5_4=, oz) then-转5. 4度,*3degree<="ooooooir'els if (key9=/ oz) then-转9度,x 5degree<="0000010r'els if (key 18=' o') then-转 18度,*10degree<=n00001010"els if (key45=o'

53、;) then-转45度,x 25degree<="0001100r'elsif (key90=, 09 then转90度,x 50degree<="001 1001 0,'elsif (keyl80=, oz) then-转 180度,x 100degree<=,'01100100,'elsif (key360=' o') thendegree<="11001000"转360度,x 200elsif (degreecount>0) then没有键按下,同时degreecoun

54、t 大于零,说明上次转动任务还没有执行完,角度清零。degree<="00000000"end if;end if;end process;process (elk-temp) descend the degreecount角度递减计数,beginif (clk_temp7 event and clk.temp=t)thenif (degree>0) then-角度大于0,角度计数器赋初值degreecount<=degree;elsif (degreecount>0) then角度清0,但是角度计数器还没有 计数完,继续递减计数degreecount<=degreecount-l;abcd<=abcd+l; -计数的同时控制脉冲个数elsedegreecount<="00000000"计数完毕

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论