基于FPGA的步进电机控制系统的数字硬件设计研究.docx
《基于FPGA的步进电机控制系统的数字硬件设计研究.docx》由会员分享,可在线阅读,更多相关《基于FPGA的步进电机控制系统的数字硬件设计研究.docx(42页珍藏版)》请在冰豆网上搜索。
基于FPGA的步进电机控制系统的数字硬件设计研究
基于FPGA的步进电机控制
系统的数字硬件设计研究
作者姓名:
谭建秋
专业名称:
电子信息科学与技术专业
指导老师:
朱晋讲师
摘要
步进电机因其能够精确地控制机械的移动量而被广泛采用。
步进电机是由输入的脉冲信号来加以控制的。
模拟电路虽然可以用来产生连续可调的脉冲信号,但却难以控制,而用数字集成电路来对步进电机进行控制,则能克服以上缺点。
现在,数字集成电路的设计越来越多地采用VHDL+FPGA的设计方法。
采用VHDL的设计方法有着不依赖器件、移植容易、能加快设计的特点。
并且,VHDL在现场就能进行修改,与FPGA器件相结合,能大大提高设计的灵活性与效率,缩短产品的开发周期,加快产品的上市时间。
VHDL+FPGA的设计方法是数字系统设计的一个创新,也是未来的一种发展方向。
步进电机是一种将电脉冲转化为角位移的执行机构,已广泛应用于各种自动化控制系统中。
为了提高对步进电机的细分要求,提出了基于FPGA控制的步进电机控制器方案。
给出了用VHDL语言层次化设计各功能模块的过程,利用QuartusⅡ进行仿真,给出了仿真结果,并成功地在FPGA器件上验证了设计的可能性。
采用FPGA器件和VHDL语言,只需修改模块程序参数,而无须修改硬件电路就能实现各种控制。
该设计硬件结构简单可靠,可根据实践需要灵活方便进行配置。
关键词:
VHDLFPGA步进电机
Abstract
Steppermotorscanbeprecisebecauseofmechanicalcontrolofthemovementofproductionandarewidelyused.Steppermotorinputfromthepulsesignaltocontrol.Althoughanalogcircuitscanbeusedtoproducecontinuouslyadjustablepulsesignal,butitisdifficulttocontrol,andtheuseofdigitalintegratedcircuitstothesteppermotorcontrol,toovercometheabovedrawbacks.
Now,digitalICdesignincreasinglyusedVHDL+FPGAdesignmethods.VHDLdesignisnotdependentondevices,easilytransplanted,canspeedupthedesigncharacteristics.Furthermore,VHDLatthescenecanmakechangesandFPGAdevicescombinecangreatlyimprovethedesignflexibilityandefficiency,shortenproductdevelopmentcycles,accelerateproducttimetomarket.VHDL+FPGAdesignmethodologyfordigitalsystemsdesignaninnovative,aswellasthefuturedirectionofdevelopment.
Steppingmotorisaelectricalimpulsesintoangulardisplacementoftheexecutiveagency,hasbeenwidelyusedinallkindsofautomaticcontrolsystem.Inordertoimprovethesteppermotorsubdivisionrequirements,isputforwardbasedonFPGAcontrolsteppingmotorcontrollerscheme.Inthispaper,aVHDLlanguagethefunctionmoduledesignofhierarchicalprocess,useⅡQuartussimulation,thenthesimulationresults,andsucceededintheFPGAdevicevalidatedesignofpossibilities.BasedonFPGAdeviceandVHDLlanguage,onlymodifymoduleprocedureparameters,withouthavingtochangehardwarecircuitcanachieveallkindsofcontrol.Thehardwaredesignofsimplestructureandreliable,butaccordingtothepracticeneedsisflexibleandconvenientforconfiguration.
Keywords:
FPGA,VHDL,steppermotor
前言
电子系统设计的变革是从八十年代中期开始的。
Altera公司发明了现场可编程门阵列(FPGA)器件,随后研制了复杂可编程逻辑器件(CPLD)。
这些器件最大的特点是用户可编程,使电子系统设计工程师通过利用与器件兼容的EDA软件,在办公室或实验室里就可以设计自己的专用集成电路(下称ASIC)系统,实现用户规定的各种专门用途,因此构成了可编程ASIC类器件应用的广阔前景,推动了数字系统现场集成技术的形成与发展。
随着FPGA和CPLD技术的不断发展,产品的集成度和性能不断提高,而价格却逐步降低。
目前,FPGA/CPLD产品可以完成更加复杂的工作,其应用范围扩展到了数据处理、网络、仪器仪表、工业控制、军事和航空航天等更广泛的领域。
同时,随着FPGA产品的高度集成化、系统化,以及FPGA厂商日益完善的远程控制方案,大大缩短和简化了工程技术人员的硬件设计和升级的过程,提高了用户产品设计和实现的工作效率。
一、设计目标
本论文的设计目标是,采用VHDL方式,用FPGA来设计和实现步进电机脉冲信号控制系统,以构成步进电机测试用的信号发生器。
二、实现目标的技术路线
在EDA技术平台上,利用硬件描述语言VHDL(VHDL—VeryHighSpeedIntegratedcircuit(VHSIC)HardwareDescriptionLanguage(超高速集成电路硬件描述语言))进行数字逻辑设计,进行系统的逻辑功能和时延仿真,并用FPGA实现其所要求的逻辑功能定义。
三、设计意义
VHDL和FPGA为特征的数字系统现场集成技术是将来ASIC设计的主要发展趋势之一,通过本课题研究,学习和掌握数字逻辑的VHDL设计方法和系统功能的FPGA实现方法,推动了数字系统现场集成技术的应用。
1步进电机脉冲信号发生器原理与设计要求
近来,呈高速发展的OA、FA(机器人技术)缺少不了电机。
电机己广泛应用于工业制造的各个领域。
电机的种类有很多种。
二十世纪末以来,步进电机因其能够精确地控制机械的移动量而被广泛采用。
上述这两个领域均利用电机来精密地控制机械的移动量,一般多采用步进电机(steppingmotor,又称Pulsemotor)。
本章将对步进电机及其控制部分—脉冲信号发生器的原理和本研究课题的有关设计要求作简要的介绍。
1.1步进电机原理
步进电机是由输入的脉冲信号来加以控制的。
其最大特征是容易精确地控制机械位置。
·步进电机的特征
(l)电机的总旋转角度与输入脉冲总数成比例,电机的速度与每秒的输入脉冲数目(脉冲速率:
Pulserate)成比例。
图1.1输入脉冲与旋转角的关系
图1.1所示为输入脉冲与旋转角的关系。
在实用上,输入脉冲数的单位多为pps(pulsepersecond:
每秒的脉冲数)
(2)旋转角误差不会逐步累积。
1.2测试原理
电机驱动电路图1.2为现在广泛使用的4相步进电机驱动电路(相激磁电路)。
此电路由4BIT双方向移位暂存器构成,每次当脉冲输入CLK端子时往右或往左(CW或CCW)移位(Shift)。
图1.24相步进电机的驱动电路
表1.1移位暂存器的4个输出在移位时的状态
当移位暂存器移位一次,步进电机就会转一个角度,而暂存器的移位是由输入到CLK的脉冲所决定的,每输入1个脉冲则移位一次,因此,步进电机的转速及所旋转的角度就由输入脉冲的速率和总脉冲数所决定。
图1.3脉冲速率与电机旋转速度的关系
如果步进电机仅需能够旋转即可的场合,则只要脉冲产生电路所产生的脉冲供给步进电机即可。
但是,在实际上,我们往往需要调节步进电机的旋转速度或旋转量,看看是否符合我们的要求。
测试一个步进电机是否能完全同输入脉冲同步,就需要一个能精确设定脉冲速率和脉冲总数的脉冲发生器。
有了这样的脉冲发生器,就可以控制步进电机完成一系列复杂的动作,例如加速、减速等。
1.3设计要求
用户要求,步进电机的控制系统一脉冲信号发生器的输出脉冲能完成定速、加速、减速,且速率和加减速度都能做到连续可调。
主要的功能定义是:
(l)基准时钟
65536Hz
(2)输出脉冲个数设定范围
l~16777215
(3)输出脉冲速率设定范围
l~65535pps(1pps/step)
(4)输出脉冲加速度设定范围
0~65535pps/s
(5)用FPGA实现
1.4目前可以实现的方法及比较
要实现上述的脉冲信号发生器,有多种实现方法可供选择,具体如下:
(1)模拟电路的方法
图1.4用模拟信号控制脉冲
用模拟电路实现的方法见图1.4。
图中的纵向坐标代表了电压和输出脉冲频率的大小,从图中可以看出,不同的电压大小可以得出不同频率的输出脉冲。
模拟电路来实现脉冲信号发生器,主要是通过精确地控制输出电压的大小,再通过压控震荡电路,从而获得不同频率的脉冲输出。
这种方法的优点是:
用模拟电路可以比较容易地得到连续可调的脉冲信号。
缺点是:
用模拟电路设计脉冲信号发生器,精度有限,而且,抗干扰能力差,也难以用微机来控制。
(2)单片机的方法
通常,单片机的时钟信号(clock)来源于晶振,所以,可以得到稳定度相当高的脉冲。
因此,以子程序控制单片机运行一定数量周期的空操作即可构成定时器,根据定时器令输出端呈ON/OFF动作即可产生脉冲。
这种方法所具有的优点是:
输出脉冲的稳定度很高。
缺点是:
如果所要求的脉冲周期不是单片机时钟(clock)周期的整数倍时,实现起来就有一定的困难。
而且,编制这样的汇编程序也不是一般的操作人员所能完成,如果要改变输出脉冲,程序就得重新写,显得较为烦琐。
(3)采用专用逻辑电路的方法
采用专用逻辑电路来设计脉冲信号发生器,即用硬件的方法来实现,可以在能够输出连续可调的不同频率的脉冲信号的同时,系统又具有更高的可靠性和稳定性。
结合上述几种传统的方法进行比较之后得出:
我们可以采用可编程ASIC来实现步进电机的控制,其主要优点在于:
①根据具体的逻辑要求来设计ASIC;
②ASIC具有较高的稳定性;
③应用较为简便;
④由于是数字集成电路,便于用微机控制。
所以,本研究课题就选用第(3)种方法,即用专用逻辑电路的方法来实现。
本研究课题的目标是以VHDL为设计手段,以FPGA为目标载体,设计和实现一个可产生符合步进电机测试用途的脉冲信号发生器的专用的数字集成电路系统。
2本研究课题所涉及的主要理论和技术
本研究课题的主要知识要点是:
以FPGA(现场可编程门阵列)为系统目标器件,以VHDL设计方法为目标系统逻辑设计的基本方法,采用Altera公司的QuartusII开发系统,以现代EDA的数字设计方式,来设计实现前面所述的基于FPGA的步进电机脉冲信号控制系统的数字硬件。
2.1数字系统现场集成技术的基本概念
纵观信息技术的进步,一切数字化产品高度发展的核心,都归功于基于半导体技术高度发展的专用集成电路,归功于系统的单芯片集成技术—SOC(systemonchip)。
在半导体技术的推动下,数字系统的性能、功能、体积和电源消耗不仅得到显著改善,而且价格不断降低。
数字系统的半导体技术含量不断增加。
当前,由于复杂电路的单芯片集成技术日益完善,使得整个系统集成在一起成为可能。
因此,系统级芯片(SOC)正在出现并改变着整个工业结构;知识产权(IP)成为关键的资源;新的市场动力来自于灵活变通和新构想,而不是对市场趋势的预测。
2.1.1工艺集成技术
数字系统的工艺集成技术就是指采用半导体掩膜工艺的方法来实现数字系统的单片物理结构。
其中,主要的加工工艺技术为CM0S(互补金属—氧化物—硅)工艺。
而主要电路的设计方式,可以分为门阵列设计、标准单元设计和全定制电路设计等。
不同的设计方式和不同的加工工艺流程互为规范和制约。
为了实现不同的电路性能成本指标,需要不同的电路设计规范和工艺设计规范,并要制定合理的加工工艺流程。
2.1.2现场集成技术
所谓现场集成技术,是指一个数字系统的单片化设计和实现可以在实验室现场进行,是指采用FPGA、CPLD为代表的可编程逻辑器件作为数字系统实现的目标载体来进行的数字系统单片的现场设计、现场仿真、现场实现的技术。
对于利用现场集成技术来实现数字系统的单片化,其基本要素是:
①现场集成的目标载体—现场可编程器件;
②现场集成的设计工具及IP库资源;
③针对具体目标器件的不同编程方式。
(1)FPGA未来发展方向
以FPGA、CPLD为代表的现场可编程逻辑电路的主要发展方向为:
1)为了迎接系统级芯片时代,向密度更高、速度更快、频带更宽的数百万门超大规模的方向发展。
2)为了方便用户设计和特殊功能应用,向嵌入通用或标准功能模块方向发展。
3)为了适应全球环保潮流,向低压、低功耗的绿色元件方向发展。
同时,模拟可编程阵列、数/模混合可编程阵列,动态可重构阵列器件等新概念也正在涌现。
(2)设计的实现过程
设计实现过程主要分为输入文件的编译→逻辑单元的分解规划→目标芯片中的布局布线→时延分析→配置文件的建立。
在整个过程中,要运行一系列程式去进行处理和转换,完成逻辑图→网表文件→Bit文件的转换,从而在实现逻辑分区规划的基础上,进一步完成优化的布局和布线。
(3)设计的仿真过程
要成功地进行FPGA应用系统的设计,至少需要两次仿真。
一是逻辑功能仿真,即对经过合并处理的网表文件进行逻辑功能的验证,这时不考虑布线及不同分区规划而产生的时延对系统功能的影响,仅仅为了验证系统设计的功能;二是布局、布线后的LCA系统仿真,此时要考虑不同的布线,分区规划产生的各种时延对系统功能的影响,而且往往是考虑最坏的情况,即恶劣的温度环境、电源供电等情况。
通常经过系统时延仿真并获得通过的布局布线后设计配置文件用来配置FPGA芯片时,芯片的功能基本正确且成功。
2.2现场集成的编程方式
在现场可编程集成电路的应用设计中,针对具体目标器件,需要不同的编程方式来实现目标数字系统的下载。
根据不同的器件结构,目前常用的下载可分为如下3种:
1.在线系统可编程技术ISP(In—systemProgrammability)。
具有ISP功能的器件在下载时无需专门的编程器,可直接在己制成的系统(称为目标系统)中或印制板上对芯片进行编程数据下载。
ISP技术为系统设计和制造带来了很大的灵活性。
目前大多数CPLD新芯片均采用ISP编程技术。
2.在线系统可重配置技术ISR(In—systemReconfiguration)。
具备ISR功能的器件也可直接在目标系统中或印制电路板上通过数据下载电缆配置和重新配置,无需专门的编程器。
因为ISR器件是基于SRAM编程技术,故系统掉电后,芯片的编程信息会丢失。
3.一次性编程技术。
具备这种编程技术的FPGA采用反熔丝制造工艺,一旦编程就不可改变,适用于高可靠性低功耗的使用场合。
2.2.1高密度型和低成本型的可编程逻辑器件
1.高密度型的可编程逻辑器件
密度型的可编程逻辑器件以ALTERA公司推出的ACEX1K系列FPGA为代表。
ACEX1K器件带有高性能的嵌入式存储块(EAB),每个EAB块提供4096位,除实现一般RAM、ROM,先进先出(FIFO)等其他一些逻辑功能,可以达到64位、66MHz的高性能的带宽。
逻辑阵列由若干个LAB块组成,每个LAB块有八个逻辑单元LE和一个局部的快速通道组成,一个LE由一个四输入LUT、一个可编程的触器、进位链、级连链和互连信号组成。
一部分型号的器件还带有锁(PLL)功能,I/O单元有多电压的功能,可以配置成5V、3V和2.5V的电压。
器件的密度为576~4992个逻辑单元,可以满足比较复杂的设计要求。
2.低成本型的可编程逻辑器件
低成本型的可编程逻辑器件有ALTERA公司推出的FLEX600系列的FPGA器件。
该系列又分为EPF6010A、EPF6016、EPF6016A和EPF6024A几种系列的器件,统称FLEX600系列。
1)FLEX600系列FPGA的主要特性
FLEX60系列FPGA器件具有低电压、低功耗的特点。
系列中的EPF6010A、EPF6016A和EPF6024A工作所需的电压只需要3.3V,大大降低了功耗。
此外,该系列FPGA为计数器和算术应用提供了更高的速度,工作频率超过了12OMHZ。
2)FLEX600系列FPGA的基本结构
FLEX600系列是一种小容量、低成本的FPGA器件,采用0.3um的SRAM工艺。
该器件由逻辑阵列块有10个逻辑单元LE。
一个LE由一个四输入的查找表和一个寄存器组成。
该器件的集成度范围为10000~24000个可用门、808~1960个LE单元。
现在,在数字系统现场集成设计方式中,用VHDL进行设计输入的方法已成为大势所趋,因此,下面我将重点介绍采用VHDL设计技术的优缺点。
2.3VHDL设计方法及技术原理
2.3.1VHDL的发展概况
VHDL是在70—80年代,由美国国防部资助的VHSIC项目开发的产品。
这种语言首次开发出来时,其目标仅是作为一个电路文本化的一种标准,为了使人们用文本方式描述设计能够被其它人所理解。
同时,也被用来作为模型语言,方便于采用软件来进行模拟。
20世纪90年代,引起数字系统设计方式发生突破性技术变革的技术是VHDL技术。
目前正在全球范围内先进工业国家的电子系统设计领域获得广泛应用。
今天,VHDL己成为数字电路和系统的描述、建模、综合的工业标准。
在电子产业界,无论ASIC设计人员,还是系统级设计人员,都需要学习VHDL来提高他们的工作效率。
2.3.2VHDL设计综合过程
通常,设计过程可划分为下述6个步骤:
(l)设计要求的定义;
(2)用VHDL进行设计描述(系统描述与代码设计);
(3)源代码模拟;
(4)设计综合,设计优化和设计的布局布线;
(5)布局布线后的设计模块模拟;
(6)器件编程。
2.3.3设计要求的定义
在从事设计进行编写代码工作之前,必须对设计目的和要求有一个明确的认识。
例如,设计的功能是什么?
对所需的信号建立时间、时钟一输出时间、最大系统工作频率、关键的路径等这些需求,要有一个明确的定义,这将有助于我们的设计,然后再选择适当的设计方式和相应的器件结构,进行设计综合。
2.3.4采用VHDL进行设计描述
l)设计规划:
有了设计要求的定义后,编写设计代码。
但是,首先应该决定设计方式。
只有对如何描述我们的设计有了一个最佳的认识,才能更有效地编写设计代码,然后再通过综合,进行所需要的逻辑实现。
常用的设计方式有三种:
自顶向下设计、自底向上设计、平坦式设计。
2)设计代码的编写:
决定了设计方式后,根据VHDL具体的语法结构,参照一些功能块、数据状态图等设计代码。
但是编写一个优化的VHDL代码的关键在于要依靠硬件的内在要求去思考,特别是,要能象综合软件运行时的“思考”方式去体验如何实现设计。
2.4EDA工具
EDA工具有多种,本研究课题所采用的Altera公司的QuartusII软件便是为了使用户能够有效地使用Altera公司的器件进行数字系统现场开发所推出的。
现场可编程逻辑器件的开发系统是各器件厂商开发的、给开发者使用的一套集成开发环境软件。
本研究课题采用美国Altera公司的FLEX600系列FPGA器件中的EPF6010A芯片。
所以我们却采用了Altera公司的开发系统。
Altera的CPLD和FPGA器件具有良好的性能、极高密度和非常大的灵活性,它通过集成化、多I/O容量及最快的速度,为用户的各种需求提供了有效的解决方案,极大地满足了对片上系统日益增长的需求。
Altera的可编程器件除了具有CPLD/FPGA的一般特点外,还具有改进的结构、先进的处理技术、现代的开发工具以及多种Mega功能等优点,主要有:
高性能、高密度逻辑集成、较短的开发周期。
3设计与实现
本研究课题采用了Altera公司的QuartusII开发软件。
整个设计的流程是:
先用QuartusII软件的文本编辑功能编写VHDL源程序,并进行编译和综合。
流程可见图3.1。
图3.1设计流程
3.1采用的设计方案
本研究课题的设计思想:
利用各种不同频率的脉冲叠加,如图3.2所示。
图3.2脉冲合成
由于本课题要求的基准时钟是65536HZ,输出的脉冲信号的频率范围为O—65535PPs,所以需要用一个16位的计数器来实现不同脉冲信号的输出,而不同频率的输出脉冲之间不能重叠。
16位计数器的16种不会重叠的状态具体如图3.3所示。
图3.316位计数器的16种不会重叠的状态
有了16种不同频率而且互相不重叠的脉冲后,就可以提取16种频率的脉冲中所需要的几种来进行叠加,从而构成所需的连续可调的输出脉冲。
可以由16种不同频率的脉冲来叠加成O—65535pps中任何频率的输出脉冲的原理见下面的公式:
f=al5×fo/21+al4×fo/22+al3×fo/23+alZ×fo/24+all×fo/25+alO×fo/26+a9×fo/27+a8×fo/28+a7×fo/29+a6×fo/210+as×fo/211+a4×fo/212+a3×fo/213+aZ×fo/214+al×fo/215+ao×fo/216
=fo/216×(215