基于EDA的步进电机控制论文.doc_第1页
基于EDA的步进电机控制论文.doc_第2页
基于EDA的步进电机控制论文.doc_第3页
基于EDA的步进电机控制论文.doc_第4页
基于EDA的步进电机控制论文.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

2013届本科生毕业论文 学号:090701050119 成绩: 基于EDA的步进电机控制系统设计院 部: 电子信息学院 专 业: 电子信息工程 姓 名: 指导老师: 二一三年五月毕业论文诚信声明本人郑重声明:所呈交的毕业论文 基于EDA的步进电机控制系统设计 是本人在指导老师的指导下,独立研究、写作的成果。论文中所引用是他人的无论以何种方式发布的文字、研究成果,均在论文中以明确方式标明。本声明的法律结果由本人独自承担。 毕业论文作者签名: 年 月 日摘要步进电机是将电脉冲信号转变为机械角位移或线位移的开环控制机电元件,它的工作原理是利用电子电路,将直流电变成分时供电的多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器。因其具有成本低、易于精确控制、无累积误差等优点,在生产、生活中的很多领域有广泛应用。本文以两相混合式步进电机为控制对象,在分析步进电机的特点和工作原理的基础上介绍一种面向FPGA的EDA技术实现对步进电机驱动细分。本设计主要介绍步进电机在低频工作时,分辨率不高,容易产生振荡,运行不够平稳,无法满足高精密度的要求。为此本文在分析细分驱动技术的原理上,利用FPGA中的嵌入式EAB构成LPM_ROM存放步进电机各相细分电流所需的PWM控制波形数据表,通过FPGA设计的数字比较器同步产生多路PWM电流波形,实现对步进电机转角进行均匀控制。该设计简化了外围电路,控制精度高,控制效果好,仿真结果显示,功能完全达到设计期望。【关键词】: 步进电机 细分控制 EDA 数字比较器Abstract The 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 supply, multi-phase timing control current, using this current powered for stepper motor to work properly。the drive is sharing power supply to the stepper motor, multi-phase timing controller。Because of its low cost, easy to precise control, no accumulated error and other advantages, is widely used in 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 Technology。Stepper motor working in low frequency,the resolution is not high, easy to produce oscillations, the operation is not smooth, can not meet the high precision requirement。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 deposit 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 motor。The design makes the peripheral circuit more simpler,control precision more higher,and control effect more better。【key words】: Stepper Motor,Subdivision control,EDA,The digital comparator目 录第1章 绪论- 1 -1.1 选题背景及意义- 1 -1.2 发展现状及前景- 2 -1.3 本课题研究主要内容- 2 -第 2 章 系统硬件描述与设计- 4 -2.1 硬件描述- 4 -2.1.1 运动速度的控制- 5 -2.1.2 正转反转的控制- 6 -2.1.3 步进度数控制- 6 -2.2 实验方案验证- 7 -2.2.1 方案一- 7 -2.2.2 方案二- 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.1 VHDL语言的特点- 15 -3.1.2 VHDL语言的基本结构- 16 -3.1.3 程序框图- 17 -第4章 系统仿真与调试- 18 -第5章 总结- 20 -参考文献- 21 -附录 VHDL源程序.- 23 -致 谢.- 28 -第1章 绪论1.1 选题背景及意义步进电机也叫步进器它是一种感应电动机,它的工作原理是利用电子电路,将电脉冲信号转变为角位移和线位移。在非超载的情况内,电机的转速、停止的位置与输入脉冲数成正比例。步进电机每接收一个脉冲信号,便按设定的方向旋转一个固定的角度(称为“步进角”),其转速取决于脉冲频率。步进电机作为执行原件,它是机电一体化关键部件之一,一般用作定速控制和定位控制。步进电机具有控制简单、惯量低、无累计误差、定位精度高等特点。所以其广泛运用于各种自动控制系统中,随着微电子和计算机技术等现代工业的不断发展。不论在工业、军事、生活娱乐中,其需求量与日俱增。 随着深亚微米技术的发展,使得一些大系统可以集成在一个芯片中,另外现场可编程门阵列FPGA可以进行多次编译。这就解决了对于在步进电机的高精度且繁杂的实验中,每次选用新的驱动芯片的耗费问题。它的出现为这种系统提供了很大的方便。本设计中选用型号为TS3103TC100-3的步进电机和型号为 EP1K10T100-3的FPGA,来实现基于EDA技术对步进电机系统的设计和控制。因此改变控制参数很方便,只需改变相应部分的程序即可。 邹道生.EDA技术在步进电机驱动中的应用 N江西师范大学学报(自然科学版).2006年.EDA技术就是在电子CAD技术的基础上发展起来的一种计算机软件系统,是以计算机为工作平台,在EDA工作软件上,设计者使用VHDL硬件描述语言进行电子系统的设计。它是融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果。设计者可以将电子产品从电路设计、性能分析、优化、仿真、对指定目标芯片的适配编译等整个过程在计算机上自动处理完成。现在对EDA的概念范畴用的很宽,在机械、电子、军事等各个领域都有应用。本文所指的EDA技术主要针对电子电路设计、逻辑编译、布线仿真和IC设计。FPGA即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,使用灵活,解决了定制电路的不足和原有可编程器件门电路数有限的缺点。当需要修改FPGA功能时,只需换一片EPROM。所以,同一片FPGA,不同的程序,就可以产生不同的电路功能。可以说,FPGA芯片是小系统提高系统可靠性、集成度的最佳选择之一。同时本次使用的步进电机比普通电机优点更显著,其区别在于脉冲驱动的形式不同,因此步进电机才可以和现代化数字控制系统相结合。因为步进电机不需要进行模拟/数字的转换,就可以直接把数字脉冲信号转化成角位移,所以其被认为是最理想的数字控制机床的执行元件。早期的步进电机难以获得较大的转矩,无法满足需求,所以使用的时候一般与液压扭矩放大器一同组成液压脉冲马达。1.2 发展现状及前景 步进电动机已经成为除了直流电机和交流电机之外的第三类电机。传统电机作为机电能量的转换装置,在人类生产、生活进入电气化过程中起了关键性作用。可是在人类社会进入自动化时代的今天,传统电机的功能已经满足不了工厂自动化和办公自动化等控制系统的需求。为了适应这些需求,发明了一系列新的具备控制功能的电机系统,其中特点显著,且应用广泛的一类就是步进电机。步进电机的发展与计算机工业息息相关。自从计算机外围设备中的小型直流电机被步进电机取代后,很快就促进了步进电动机的发展。另外,微型计算机和数字控制技术的飞速发展,也使得步进电机的应用推广到其他领域,比如电加工机床、小功率机械加工机床、测量仪器、光学和医疗仪器以及包装机械等。预计未来对步进电机的研究还会继续深入下去,研究的方向之一就是,电机与驱动的一体化,使步进电机体积更小,性价比更高,性能更优越。在民用设备中大量使用,如:家庭机器人,民用智能化设备。当前,最具发展前景的就是混合式步进电机。其有以下四个发展方向:(1)继续走小型化的方向发展。由于电动机应用领域的拓宽和各类整机的小型化,这就要求电动机本身也越来越小。(2)把圆形电动机改成方形电动机。因为方形电动机的力矩要比圆形的高30%-40%。(3)对电动机进行整体设计,即把转自位置的传感器/相对编码器、减速齿轮/减速机与电动机本身综合在一起设计。(4)向三相或五相电动机方向发展。三相和五相电动机解决了目前广泛应用的二相和四相电动机震动和噪音较大的缺点。1.3 本课题研究主要内容 由于现代自动化技术与智能技术的飞速发展,所以步进电机的应用也变得非常广泛。同时,近年来,随着嵌入式技术的发展,PLD(可编程逻辑器件)在速度和集成度两方面得到了飞速提升。由于它体积小、速度快、费用低、用户可对他进行读/写操作,应用领域也不断的扩大,越来越多的电子系统开始采用PLD来实现数字信号处理。由此,本文提出了用型号为EP1K10T100-3的FPGA为核心的控制方法设计四相步进电机的外围驱动电路控制系统,并利用VHDL语言编写步进电机的控制时序电路,使用四个机械式按键对步进电机进行转速、方向等的控制,实现步进电机的加减速和常速步进角度的控制,步进电机最少转动1.8度。而且系统的可移植性优越,可靠性强。在设计方法上简单易行:在FPGA步进电机的控制系统中减少了控制系统设计的工作量、大大缩短研制开发周期,和节约了开发费用,而且提高了控制系统的可靠性,具有较高的使用和推广价值。第 2 章 系统硬件描述与设计2.1 硬件描述 系统原理框图如图2.1所示,本系统设计硬件部分主要包括型号为 EP1K10T100-3的FPGA芯片以及自己设计的步进电机驱动电路,与步进电机连接实现的完整的步进电机在步进角度、步进速度、正反转控制等方面的控制。将程序输入电脑,对FPGA进行程序编译下载,将设计好的电路板与实验板FPGA连接测试所编程是否正确,是否可以正转,反转,以及改变转动角度和速度等。图2.1 系统原理框图步进电机是将电脉冲转化为角位移和线位移的执行元件。它并不是连续运行的而是以固定角度一步一步旋转的电动机,一般情况下每步旋转15。另外,角位移量可以通过控制脉冲个数来控制,从而达到准确定位的目的;电机的转速和加速度通过控制脉冲频率,来达到调速的目的;同时也可以通过脉冲“相位”控制电机正反转的。步进电机在空载时能够正常启动的脉冲频率叫“空载启动频率”。如果脉冲频率高于该值,电机不能正常启动,可能发生“丢步”或“堵转”。在有负载的情况下,启动频率应更低,如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频。因此步进电机低速启动运转,若高于一定速度就无法启动,并伴有啸叫声。 吕京娜.用FPGA实现的步进电机控制系统 M电子技术.2006年.本系统设计中选用的步进电机是四相单8拍的工作方式,所对应的步距角为1.8度。对应的脉冲分配表如表2.1所列:表 2.1 四相脉冲分配表节拍编码SMASMBSMCSMDn1000n+11100n+20100n+30110n+40010n+50011n+60001n+71001 2.1.1 运动速度的控制正如前文所述,步进电机的启动频率应低于空载启动频率,因此本设计采用梯形图法对步进电机的加减速进行控制。输入的脉冲频率决定了步进电机的转速。如图2.2所示,T0T1时段为步进电机启动过程,脉冲频率呈线性递增。T1T2为步进电机恒速运行阶段,输入脉冲频率不变。T2T3是停止过程,脉冲频率呈线性递减。 图2.2 驱动步进电机的脉冲频率的变化规律当改变输入脉冲的周期时, ABCD 四相绕组脉宽将发生变化。这就使电机转速发生变化, 所以步进电机的运动速度与输入脉冲的频率成正比。如果给步进电机发一个控制脉冲,它就转一步。2个脉冲的间隔越短,步进电机就转得越快。调整控制器发出的脉冲频率,就可以对步进电机进行调速。脉冲分配波形图如图2.3所示: 图 2.3 脉冲分配波形图2.1.2 正转反转的控制步进电机的正、反转控制可通过改变步进电机各绕组的通电顺序来实现, 这一过程称为“脉冲分配”。例如:四相六线步进电机通电顺序为 AB- BC- CD- DA- AB.则电机正转。如果按反序换相通电,即:步进电机通电顺序改为 AD- DC- CB- BA- AD.则电机反转。因此,可以通过FPGA 输出的方向控制信号或经编程改变输出脉冲的顺序,从而改变各绕组的通电顺序来实现电机正反转的控制。2.1.3 步进度数控制如果给步进电机发一个控制脉冲,它就转一步,步进电机的角位移与输入的脉冲数成正比,因此可以用FPGA脉冲输出个数控制步进电机的角位移量,来实现对步进电机步进度数的控制。 王登贵.基于PLC的四相步进电机控制方法及实现 M微计算机信息.2006. n =L/ 其中L 为步进电机的输出位移量(mm), 为机构的脉冲当量(mm/脉冲)。2.2 实验方案验证2.2.1 方案一本实验采用六线四相步进电机,六线式四相步进电机比较常见,它的等效电路如图2.4所示,它有4条信号引线A、B、,通过控制这4条引线上脉冲产生的时刻,即可控制步进电机的转动。单片机控制步进电机原理图如图2.5所示,通过P1.4P1.7来控制各线圈的接通与断开。P1的4脚对应步进电机的A,P1的5脚对应,P1的6脚对应B,P1的7脚对应。这4条驱动线通过ULN2003与单片机的P1.0P1.3引脚相连。 仇国庆.基于51系列单片机控制步进电机调速实验M.重庆邮电大学自动化学院.2009. 图2.4 步进电机的控制等效电路 图2.5 步进电机与单片机连接原理图2.2.2 方案二如图2.6 为FPGA控制步进电机原理图,图2.7为步进电机驱动原理图。因其工作电压为24V,最大电流为0.3A,因此用“ULN2003”来做为驱动。通过P1.4P1.7来控制各线圈的接通与断开。开机时P1.4P1.7均为高电平,如将P1.4P1.7切换为低电平则可驱动步进电机运行,但是在切换之前将前一个输出引脚变为高电平。如果要改变电机的转动速度只要改变两次接通之间的时间,而要改变电机的转动方向,只要改变各线圈接通的顺序。 王鸿钰等.步进电机控制技术入门M.北京:同济大学出版社,1990.图2.6 FPGA控制步进电机原理图图2.7 步进电机驱动电路原理图 2.2.3 方案的选择 (1)FPGA运行速度快FPGA内部集成串并收发器,可以把外部时钟倍频,核心频率可以达到数十Gbps。而单片机运行速度低的多,在高速场合单片机无法代替FPGA 。(2)FPGA可以进行二次开发 FPGA甚至包含单片机和DSP软核,并且I/O数仅受FPGA自身I/O限制,所以,FPGA又是单片机和DSP的超集,也就是说,FPGA能实现单片机和DSP所能实现的大部分功能。(3)FPGA管脚多,容易实现大规模系统 单片机I/O口有限,而FPGA动辄数百I/O,可以方便连接外围设备。比如一个系统可能包含多路“AD/DA”,单片机就要进行仔细的资源分配,总线隔离,而拥有丰富的I/O资源的FPGA,可以很容易用不同I/O连接各外设 。 孙伟 黄大庆等.基于FPGA的多通道PWM控制器设计N.江苏科技学院学报.2009.(4)FPGA内部程序并行运行,有处理更复杂功能的能力 单片机程序是串行执行的,必须一条一条的执行,在处理突发事件时只能使用中断,但单片机的中断资源又有限;而FPGA不同逻辑可以并行执行处理多条任务,这就导致了FPGA的工作效率更高。总的来说,基于FPGA要比基于单片机要快很多。因为单片机是基于指令工作的,同样的激励到达单片机后,单片机首先要判断,然后读取相应的指令,最后作出响应,这每一步都是需要在单片机的时钟驱动下一步步的进行。而基于FPGA则是把相应的逻辑暂时“固化”为硬件电路了,它对激励作出的响应速度就是电信号的传播速度,当然这指的是“异步逻辑”。2.3 硬件设计在本次设计中我们选用的步进电机型号为TS3103TC100 - 3的和型号为 EP1K10T100 - 3的FPGA现场可编程门阵列,来实现对步进电机系统的设计及控制。驱动则选用复合晶体管ICULN2003,下面就硬件组成各部分设计进行详细的介绍。2.3.1 硬件介绍步进电机的驱动可以选用专用的驱动模块,如 L 298,FT 5754等,这类驱动模块接口简单,操作方便,他们既可以驱动步进电机也可以驱动直流电机,本设计中我们使用“达林顿”驱动器ULN2003。ULN2003具有电流增益高,温度范围宽,带负载能力强,工作电压高等特点,适应于各类要求高速大功率驱动的系统。下面先介绍一下ULN2003芯片。UNL2003芯片封装外形图如图2.8和内部结构图如图2.9、2.10所示:该芯片是16脚七路电机驱动芯片,分直插式和贴片式。其引脚端功能及符号如表2.2: 图2.8 ULN2003芯片 图2.9 ULN2003内部结构 图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.3A。所以设计其电路时必须由双环形脉冲信号和功率驱动电路等组成控制系统。如前面介绍它有A 、B、 4条信号引线,通过控制这4条引线上脉冲产生的时刻从而控制步进电机的转动。 图2.11 步进电机实物图 型号TS3103TC100-3步距角1.8deg相数4电压24V电流0.3A最大静转矩6.5kg/cm尺寸56.450.8mm 表2.3 步进电机参数表2.3.2 步进电机特点以及常见问题1 .步进电机技术指标 相数电机内部的线圈组数。目前有二相、三相、四相以及五相步进电机。相数不同,“步距角”也不同。 步距角系统每发出一个脉冲信号,电机转动的角度。本设计选用的步进电机的“步距角”为1.8。 拍数电机转过一个“步距角”所需的脉冲数。如本设计使用的四相步进电机,有以四相4拍方式运行,即ABBCCDDAAB;还有四相8拍运行方式,AABBBCCCDDDAA。 定位转矩电机在截止状态下,转头自身的锁定力矩。 步距角精度步进电机每转过一个“步距角”的实际值与理论值的误差。误差/步距角*100%,4拍运行时在5%以内,8拍在15%之内。 失步电机运转时的运转步数与理论步数不符,称为“失步(丢步)”。 失调角转子齿轴线偏与定子齿轴线之间的角度,这个角度是不可避免的。2. 常见问题 步进电机应用于低速场合,每分钟转速不能超过1000转,此状态下的步进电机效率高、噪音小。 步进电机的“动态力矩”取决于电机运行时的平均电流。电流越大,电机输出力矩也越大。 步进电机运转时速度不能太高否则无法启动且有嗡鸣声。 步进电机最好使用半步状态,整步状态时振动大。 步进电机外表允许温度范围在8090之间。2.3.3 FPGA逻辑功能结构及其总体设计为了简化设计,实现系统大量逻辑电路的集成,在设计中使用了现场可编程逻辑门阵列器件(FPGA)。FPGA主要实现以下逻辑功能:定时脉宽门控、计数测量、地址锁存、译码、总线的驱动和扩展以及数码显示的控制等功能。FPGA器件选择Altera公司的EPF10K10LC84-4芯片。该芯片有576个逻辑元件、72个LAB/CLB、3万多个逻辑门、6144个RAM。每个I/O引脚可以选择为集电极开路输出,可以通过编程控制每个I/O引脚的速度以及I/O寄存器的使用。FPGA按逻辑功能块的基本逻辑构造单元的大小,可分为细粒度结构和粗粒度结构;按互连结构根据FPGA内部的连线结构的不同,分为分段互连型和连续互连型两类;按编程特性根据采用的开关元件的不同,可分为一次编程型和可重复编程型。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。 FPGA使用的开发软件为QuartusII,该软件属于MAX+PLUS II的升级版,性能方面得到更好的优化,深受用户的喜爱,它是Altera公司的综合FPGA开发软件。该软件是一个支持原理图、VHDL设计输入、编译仿真集成环境。QuartusII可以在计算机各种系统中完美运行,提供了自动逻辑综合工具,具有数字逻辑设计的全部特性。 FPGA设计经过4个基本阶段:设计输入、设计编译、设计验证和器件编程。首先,根据系统的逻辑功能生成顶层结构图。然后,分成几个小模块进行下一级设计,各模块都必须严格由上而下分析其逻辑功能,从底层进行设计编译,每一级都进行波形验证。当最后顶层模块的逻辑功能在波形仿真中满足系统时序要求时,才可进行器件编程。这里主要使用QuartusII的TIMER进行波形仿真,来验证各子模块的功能。 雷环利.基于FPGA的核物理实验定标器的设计与实现 M 单片机与嵌入式系统应用.2002年.由于FLEX10K在工作期间,将配置数据保存在SRAM中,而SRAM数据是易丢失的。SRAM单元必须在器件加电后装入配置数据,且配置完成后,它的存储器和I/O引脚必须被初化。初始化后,器件进入用户模式,开始系统运行。第3章 程序设计3.1 硬件描述语言VHDL硬件描述语言是EDA技术的重要组成部分,是EDA各种描述方法中最能体现EDA优越性的描述方法。EDA(电子设计自动化)技术就是在计算机的辅助下完成电子产品设计的一种先进的硬件设计技术,是立足于计算机工作平台开发出来的一整套先进的设计电子系统的软件工具。其技术范畴包括:PCB设计、电路设计、PLD设计、IC版图设计。在EDA工作软件上,设计者使用VHDL硬件描述语言用语句表示输入输出的逻辑关系,将程序输入到计算机中进行电子系统的设计,然后由计算机自动地完成逻辑编译。VHDL是电子设计的主流硬件描述语言。3.1.1 VHDL语言的特点VHDL语言作为用普通文本形式设计数字系统的标准化硬件描述语言,主要描述的是系统的行为结构,接口和功能,其描述风格和语法与计算机高级语言非常类似。硬件描述语言的基本特点就是,将设计项目(或称设计实体)分为内(不可视部分、内部功能、算法)、外(可视部分、端口)两部分。当然,作为硬件描述语言中被广泛应用的VHDL语言,相比之下具备了很多其他描述语言不具备的优点。其主要优点如下: VHDL作为硬件描述语言的第一个国际标准,其具备了很强的可移植能力。对于同种硬件电路的VHDL语言,它可以从一个工作平台移植到另一个平台上执行。 VHDL语言功能强大,其设计方案具有多样性,设计效率高。VHDL具有强大的语言结构,只需用简单的语言程序就可以描述复杂的硬件电路。此外,它还具有多层次电路设计功能,VHDL 语言能够同时支持同步/异步电路的设计。 VHDL 语言设计灵活,修改方便。既支持模块化设计, 也支持层次化设计,可将大项目分解成若干小项目去设计,同时,也便于设计结构的交流,保存,重用。 VHDL语言系统硬件描述能力强,可独立实现。由于其设计层次较高,可描述系统电路,也可描述逻辑门电路。既可单独采用寄存器传输描述、结构描述 , 也可以采用三者的混合描述方式。 具有丰富的数据类型和库函数。用户可根据需求对数据类型进行自定义,同时可以随之对设计进行仿真模拟,这样对硬件设计提供了较大方便。 侯伯亨等.VHDL硬件描述语言与数字逻辑电路设计M.西安:西安电子科技大学出版社,2009. VHDL的系统设计与硬件结构无关。设计人员不用首先考虑设计时要用到的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化, 而不需要考虑其他的问题。当硬件电路的设计描述完成以后 ,VHDL 语言允许采用多种不同的器件结构来实现。方便了工艺的转换,也不会因工艺变化而使描述过时。 易于共享和重用,产品开发速度快,成本低。3.1.2 VHDL语言的基本结构一个相对完整的VHDL程序(或称为设计实体)具有比较固定的结构。至少应包括三个基本组成部分:库(Library)、程序包(Package)使用说明、实体(Entity)说明和实体对应的结构体(Architecture)说明。实体说明用于描述该设计实体与外界的接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是不可视部分。根据需要实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体如图3.1所示: 周祖成译.电子设计硬件描述语言VHDLM.北京:北京学苑出版社,1994.图3.1 VHDL基本结构图3.1.3 程序框图程序设计框图如图3.2所示。其中difre1为4分频的分频器程序设计;difre2为2分频的控制器程序设计;mux4为四选一的选择器程序设计;由mux4输出一个时钟信号,即输入一个时钟信号到stepmotor,给步进电机一个脉冲信号从而驱动步进电机转动。图3.2 程序设计框图第4章 系统仿真与调试Altera公司的Quartus软件提供了可编程片上系统设计的一个综合开发环境,是进行可编程片上系统设计的基础。Quartus集成环境包括以下内容:系统级设计、嵌入式软件开发,可编程逻辑器件设计,综合,布局和布线,验证以及仿真。 朱三元.QuartusII软件操作N.计算机软件及应用.2006.Altera技术领先的Quartus设计软件配合一系列可供客户选择的IP核,可使设计人员在开发和推出FPGA、CPLD和结构化ASIC的设计的同时,获得无与伦比的设计性能、一流的易用性以及最短的市场推出时间。这是设计人员首次将FPGA移植到结构化ASIC中,能够对移植以后的性能和功耗进行准确的估算。Quartus软件支持VHDL的设计输入、基于图形的设计输入方式以及集成系统设计工具。Quartus软件可以将设计、综合、布局和布线以及系统严整全部都整合到一个无缝的环境中,其中还包括和第三方EDA工具的接口。11 Chatschik BisdikianAn Overview of the Bluetooth Wireless TechnologyIEEE Commanications Magazine,Dec.2003.附录 VHDL源程序1、初步程序(按键控制正反转及步进距离):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;-entity stepmotor is port( clk : in std_logic; -Clock Signal key1_8,key5_4,key9: in std_logic; -1.8 and 5.4 degree key key18,key45,key90 : in std_logic; -18,45 and 90 degree key key180,key360 : in std_logic; -180 and 360 degree key keyorder : in std_logic; -this key control the stepmotor rotate clockwise or counterclockwise astep,bstep : out std_logic; -astep and bstep driver cstep,dstep : out std_logic); -cstep and dstep driverend stepmotor;-architecture behave of stepmotor is signal dcount : std_logic_vector(4 downto 0); -this counter is used to control the speed of the stepmotor signal degreecount : std_logic_vector(7 downto 0); -this is used to counter the steps signal degree : std_logic_vector(7 downto 0); -this is used to save degree signal abcd : std_logic_vector(1 downto 0); -a,b,c,d,step driver counter signal clk_temp : std_logic; -clock signal used internal begin process(clk) -accumulate dcount,从0到31计数 begin if(clkevent and clk=1) then dcount=dcount+1; end if; end process; process(clk) -generate clk_temp ,对clk64分频 begin if(clkevent and clk=1) then if(dcount=11111) then clk_temp=not clk_temp; end if; end if; end process; process(clk) -get the degree,确定角度 begin if(clkevent and clk=1) then if(key1_8=0) then degree=00000001;-转1.8度,数字1就代表转1.8度。 elsif(key5_4=0) then-转5.4度,*3 degree=00000011; elsif(key9=0) then-转9度,5 degree=00000101; elsif(key18=0) then-转18度,*10 degree=00001010; elsif(key45=0) then-转45度,25 degree=00011001; elsif(key90=0) then-转90度,50 degree=00110010; elsif(key180=0) then-转180

温馨提示

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

评论

0/150

提交评论