基于CPLD的多功能脉冲分配器的设计说明书Word文档下载推荐.docx
《基于CPLD的多功能脉冲分配器的设计说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于CPLD的多功能脉冲分配器的设计说明书Word文档下载推荐.docx(40页珍藏版)》请在冰豆网上搜索。
![基于CPLD的多功能脉冲分配器的设计说明书Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/1/6eb63a06-5c04-4295-9a75-21aa32439eca/6eb63a06-5c04-4295-9a75-21aa32439eca1.gif)
这种设计方法具有设计简单、代码通用、系统灵活性和可靠性强的优势。
文中详细介绍了脉冲分配器中XC9572CPLD芯片、分频器和状态机的设计细节。
由于是基于可编程逻辑器件并结合VHDL语言设计的步进电机脉冲分配器,因此其突出的优点就是有良好的升级特性,能很好地提高产品的竞争优势。
关键词:
步进电机;
脉冲分配器;
VHDL;
CPLD
ThedesignofMultifunctionalPulseDistributor
basedonCPLD
Abstract:
Withtherapiddevelopmentofmoderneconomy,steppermotor,asadevicewhichcanpreciselypositioning,iswidelyusedinvariousindustries.However,steppermotorcannotcontroloperationitself,thussteppermotorcontrollerisneeded.Meanwhile,thepulsedistributor,asthecoreequipmentofsteppermotorcontroller,willbeindirectcontrolofthesteppermotoroperationandtheoperationofspeed.
Thepulsedistributorisdesignedtocarryoutitsvariousfunctions,amongwhichare:
bykeymodeswitching,twomodesofsixhoursofthree-phaseandthree-batscanbeshoot;
accordingtothehighorlowleveloftheelectricityoftheresetbutton,whethersteppermotorisinoperationcanbedecided;
thecontroloftheall-directionoperationofsteppermotorcanbecarriedoutbythedirectioncontrolkeys;
moreover,thispulsedistributorhasthefunctionoffrequency-distribution,itcancontrolthespeedofthesteppermotorbytransferringtheinputfrequencyintoeightdifferentoutputfrequencies.
ThedesignofthispulsedistributoremploysXC9572CPLDchipwhichproducedbyXILINXcompanyasitsmainhardwareandVHDLasitsmainsoftware.Thismethodissimpleindesign,withacommoncode,aflexiblesystemandhasadvantagesinitsreliability.ThispaperdescribesindetailaboutthepulsesplitXC9572CPLD,thedividersandthedesigndetailsofthestatemachine.
BecauseitisthesteppermotorpulsedistributorwhichisbasedonprogrammablelogicdeviceandVHDLdesign,ithastheobviousadvantagesofagoodupgradesandagoodcompetitiveadvantage.
Keywords:
StepperMotor;
PulseDistributor;
VHDL;
CPLD
1概述
步进电机是将电脉冲信号转换成角位移的一种机电式数模转换器。
每当输入一个脉冲时,转轴便转过一个固定的机械角度。
步进电机旋转的角位移与输入脉冲的个数成正比,其转速与输入脉冲的频率也成正比,其转动方向由输入脉冲对绕组加电的顺序决定。
它具有快速起停、精确步进、没有累积误差且能直接接受数字信号的特点,在数字控制系统中得到了广泛的应用。
尤其在数控设备、航空、导弹等工业中一般都采用步进电机作为伺服执行元件。
步进电机要依靠专门的设备(步进电机驱动控制器)才能运行。
对实际的步进电机控制系统来说,脉冲分配器是整个系统的核心电路。
系统框图如图1-1所示。
图1-1步进电机控制系统框图
常用的步进电机控制系统采用专用控制器或者微机控制。
而传统的控制器往往使控制系统成本较高,而且性能不稳定。
微机控制用软件进行控制,程序量较大,占用CPU时间较多,而且抗干扰能力差。
因此用户在使用传统驱动控制时往往需要做许多工作,才可实现按设计要求控制步进电机,有时甚至不能够完成控制任务。
随着步进电机应用范围的不断扩大,以及适应当今产品智能化的要求,设计结构简单、功能实用的智能步进电机脉冲分配器系统十分必要。
脉冲分配器作为步进电机控制器中的核心设备,设计中可采用功能强大的硬件描述语言设计具有多种输出模式的脉冲分配器;
还可对输入脉冲分配器的时钟信号进行分频,实现步进电机调速范围选择。
同时脉冲分配器可采用可编程逻辑器件为控制芯片,它能控制指令按照一定顺序和分配方式传送到功率放大器,经过放大后控制步进电机的绕组按照预先规定的工作方式通、断电,驱动电机转子旋转。
所设计的多功能脉冲分配器技术要求如下:
1、可以输出两种脉冲:
一种为双三拍,另一种为三相六拍;
2、有一个模式键来切换输出形式,当功能键按下时为三相六拍输出,当缺省时为双三拍输出;
3、有一个复位信号EX,当EX为高电平时,输出为低电平;
4、电机控制有一方向选择控制端DIR,当DIR为高电平时,电机反转,反之为正转;
5、DIR有效电平时插入,要能使A路在下一拍即改变转向;
6、有三位输出频率控制器,可以将输入频率分成八种频率输出;
7、要求用VHDL语言来实现,并提供仿真波形图;
8、设计平台用XILINX公司XC9572来实现。
设计主要解决的是如何使脉冲分配器既要实现三相六拍工作,又要实现双三拍工作;
同时为了使步进电机调速范围广,并且无需频繁中断,还需要设计分频器对输入脉冲进行有效地八种分频。
具体的设计思路如下:
论证步进电机脉冲分配器的实现方式,确定用可编程逻辑器件来实现,把XILINX公司XC9572高性能的CPLD器件作为脉冲分配器的芯片;
通过逻辑分析后,用VHDL语言设计分频器和状态机的程序,并把程序进行编译,再通过波形仿真,形成仿真波形图;
选用斩波驱动放大电路和磁阻式步进电机。
基于CPLD的多功能脉冲分配器能达到设计的技术要求,基本能够按设计要求工作。
2步进电机脉冲分配器实现方式的论证
2.1几种实现方式比较
(1)逻辑电路法
中、小规模数字集成电路(如74系列及其改进系列、CC4000系列、74HC系列等)都属于通用型数字集成电路。
这种方法是由与或门电路和触发器构成的,它们的逻辑功能都比较简单,而且是固定不变的。
由于它们的这些逻辑功能在组成复杂数字系统时经常要用到,所以这些器件有很强的通用性,早期的电路设计大多采用这种方法来实现。
从理论上来讲,用这些通用型的中、小规模集成电路可以组成复杂的数字系统,但是在目前的应用中,由于控制要求的不同和应用范围的变大,为了实现复杂的要求就需要增加一定的门电路和触发器,其印制板的面积随之增加,成本也随之增加,而可靠性却随之下降,其电路也比较复杂。
另外这种脉冲分配器的最大缺点是:
脉冲分配的路数受计数器和译码器的限制,不能是任意的,它还要有专门的控制和功放电路,其应用灵活性差。
因此现在这种方法已经很少采用了。
(2)专用集成电路法
如果把所设计的数字系统做成一片大规模集成电路,则不仅能减少电路的体积、重量、功耗,而且会使电路的可靠性大为提高。
这种为某种专门用途而设计的集成电路叫做专门集成电路,即所谓的ASIC(ApplicationSpecificIntegratedCircuit的缩写)。
目前脉冲分配器的专门集成电路已经有很多,如5G674、CH250等。
它们集成度高,抗干扰能力强,但是这些集成电路控制方式都不灵活。
集成电路设计完成以后其逻辑关系和时序过程就完全确定了,无法修改和更新,所以在很大程度上限制了它的应用范围。
而且在用量不大的情况下,设计和制造这样的专用集成电路不仅成本很高,而且设计、制造的周期也太长。
(3)软件实现(由单片机或PC机的扩展I/O输出)
采用软件实现,即利用查表或计算的方法来进行脉冲的环行分配。
把相应的状态代码列入程序数据表中,通过软件可顺次在数据表中提取数据并通过输出接口输出即可。
通过正向顺序读取和反向顺序读取数据表可控制电机进行正反转,通过控制读取一次的时间间隔可控制电机的转速。
将计算机软件技术应用于智能步进电机脉冲分配器硬件电路设计中,使步进电机脉冲分配器的电路具有微型化、低功耗、智能化的特点。
解决了用硬件实现步进电机普遍适应性差的问题。
这种方法可以大大简化硬件电路,降低了成本,提高了运行的可靠度和精度,易于修改;
充分利用计算机软件资源以降低硬件成本,尤其是对多相的脉冲分配具有更大的优点。
但是这种方法占用了较多的计算机CPU的时间,降低了计算机的运行效率和实时控制精度,易影响步进电机的运行速度,在高精度控制系统,这种方法是不可取的。
(4)用可编程逻辑器件实现
可编程逻辑器件(ProgrammableLogicDevice,简称PLD)的出现为解决器件的选择问题提供了一条比较理想的途径。
PLD虽然是作为一种通用器件生产的,但它的逻辑功能是由用户通过对器件的编程来设定的。
而且有些PLD的集成度很高,足以满足设计一般数字系统的需要。
这样可以由设计人员自行编程,把一个数字系统“集成”在一片PLD上,而不必去请芯片制造厂商设计和制造专门集成电路芯片。
自80年代以来PLD的发展非常迅速。
目前生产和使用的PLD产品主要有现场可编程逻辑阵列FPLA(系FieldProgrammableLogicArray的缩写)、可编程阵列逻辑PAL(系ProgrammableArrayLogic的缩写)、通用阵列逻辑GAL(系GenericArrayLogic的缩写)、可擦除的可编程逻辑器件EPLD(系ErasableProgrammableLogicDevice的缩写)、复杂可编程逻辑器件CPLD(系ComplexProgrammableLogicDevice的缩写)和现场可编程门阵列FPGA(系FieldProgrammableGateArray的缩写)等几种类型。
其中EPLD、CPLD和FPGA的集成度比较高,有时又把这三种器件称为高精度PLD。
复杂可编程逻辑器件CPLD是一种可擦除的、可重新编程的高密度PLD器件。
其结构灵活,性能优越,功能可靠。
几乎可以代替整个74LS系列、54LS系列、74HC系列和CC4000系列的器件(只有少量的除外)。
它可以反复的擦除、改写,且擦除时间仅为10ms,不采用紫外线光源,也不需要窗口式的封装。
在封装前后都可以对芯片进行反复的完善和实际的测试,测试的可靠性可以达到100%。
并且它还可以加密,安全性能很好,设计者不用了解其内部的结构,只要能明确输入和输出之间的关系就可以编程了,编好程序后用编程器把程序写入器件即可。
它具有易于编程和调试,集成度高,成本低,可靠性高等优点。
同时CPLD作为设计复杂逻辑密集型集成电路的主要器件,在功耗方面也显示出优势,与同样密集度的其它PLD相比,CPLD的待机功耗最低。
2.2确定方案
随着超大规模集成电路的集成度和工艺水平的不断提高,CPLD得到了广泛的应用,它们不仅具有GAL芯片的所有优点,而且由于它规模大、引脚多且功耗低,所以非常适用于各种复杂控制的场合。
同时VHDL语言可以很好地描述由CPLD组成的逻辑电路。
因此本次毕业设计采用这种方案,用CPLD设计多功能脉冲分配器。
3脉冲分配器的设计
脉冲分配器是整个步进电机控制电路的核心部分。
步进电机运行时,要求把有相当功率的电脉冲按要求逻辑馈送给它的各个控制绕组。
而电脉冲是如何按照要求的逻辑馈送的呢?
这是由脉冲分配器来完成。
在设计中,脉冲分配器需要设计成能控制指令按照一定顺序和分配方式传送到功率放大电路。
然后经放大后控制步进电机的绕组按照预先规定的工作方式通、断电,驱动电机转子旋转。
在具体的脉冲分配器设计过程中,主要分硬件和软件两部分来设计。
3.1脉冲分配器的硬件部分设计
随着超大规模集成电路的集成度和工艺水平的不断提高,深亚微米工艺,如0.18um、0.13um已经走向成熟,专用集成电路ASIC的设计成本在不断降低。
CPLD/FPGA作为实现ASIC的主流器件,它们的特点是直接面向用户,具有极大的灵活性和通用性,使用方便,硬件测试和实现快捷,开发效率高,成本低,工作可靠性好。
设计要求步进电机的工作模式有以下两种:
三相双三拍和三相六拍。
其正转激励分别为:
AB—BC—CA—AB…;
A—AB—B—BC—C—CA—A…。
其反转激励分别为:
AC—BC—AB—AC…;
A—AC—C—BC—B—AB—A…。
在同一频率输入脉冲下,双三拍工作方式的转速为三相六拍方式的2倍,可使伺服系统快速运动,但由于步距相对较大,其定位精度是三相六拍方式的
。
而三相六拍方式运动速度相对较慢,但定位精度提高一倍。
因此在步进电机的控制过程中,常需要将两种方式结合在一起使用,使系统在快速工作时用双三拍工作方式,而需要定位时用三相六拍方式。
与此同时,为了扩大步进电机的转速范围,有专门的分频功能,可以使步进电机有八种速率转动方式。
这就是说,所设计选用的脉冲分配器芯片既要实现三相六拍工作,又要实现双三拍工作,同时还需要有三位输出频率控制端,将输入脉冲信号频率分成八种频率输出。
而XC9572CPLD器件刚好能轻松地满足这些要求。
3.3.1XC9572芯片介绍
XC9572CPLD器件是XILINX公司生产的一款高性能可编程逻辑器件。
每个XC9572器件由四个功能块FB(FunctionBlock)、一个输入/输出块IOB和一个开关矩阵FastCONNECT组成互连的系统。
每个FB由18个独立的宏单元组成,每个宏单元可实现一个组合电路或寄存器的功能;
每个FB提供36个输入和输出具有可编程逻辑的容量,其中18个输出用于驱动FastCONNECT开关矩阵;
FB除接受来自FastCONNECT的输入外,还接收全局时钟、输出使能和复位/置位信号。
IOB是内部逻辑电路和用户I/O引脚之间的接口,提供器件输入和输出的缓冲;
每个IOB包括一个输入缓冲器、输出驱动器、输出使能数据选择器和用户可编程接地控制器。
具体结构图如图3-1所示。
图3-1XC9572芯片结构图
XC9572芯片的主要特点如下:
(1)所有可编程管脚间的脚对脚延时均为5ns;
(2)系统的时钟速度可达到125MHz;
(3)具有72个宏单元和1600个可用系统门;
(4)可编程次数为10000次;
(5)可采用5V在线编程和擦除;
(6)拥有强大的管脚锁定能力;
(7)每个宏单元都具有可编程低功耗模式;
(8)未用的管脚有编程接地能力;
(9)提供有编程保密位,可对设计提供加密保护以防止非法读取;
(10)外部I/O引脚与3.3V和5V兼容。
选用的实际XC9572芯片及其管脚图分别如图3-2和图3-3所示。
图3-2XC9572芯片实图图3-3XC9572管脚图
3.1.2XC9572芯片在设计中有关管脚功能分析
根据设计要求对XC9572芯片进行管脚分配,管脚分配如图3-4所示。
具体说明如下:
CP是时钟输入脚。
脉冲分配器用来接受来自控制器的CP脉冲,并按步进电机状态转换表的状态顺序产生各相接通或截止的信号。
每来一个CP脉冲,脉冲分配器的输出就转换一次。
因此步进电机转速的高低、升速或降速、启动或停止都要取决于CP脉冲的有无或频率的大小。
EX是复位脚。
EX=0时,电机正常运行;
而EX=1时,则输出全为0,芯片复位,电机停止运行。
DIR是正反转控制脚。
当DIR为0时,芯片输出正转脉冲;
而当DIR为1时,芯片输出反转脉冲。
值得注意的是,DIR信号需要即时有效,例如当步进电机运行在三相六拍的正转模式的BC拍时,DIR信号为高电平,电机需要反转,则下一时钟的上升沿,脉冲分配器需要输出B拍。
MODE是双三拍和三相六拍模式选择脚。
当MODE为0时,芯片是三相六拍输出;
而当MODE为1时,芯片是双三拍输出。
RST是分频模块的复位脚。
RST为1时,内置的计数值清零重新计数。
a1、a2、a3是三位输出频率控制脚。
通过改变a1、a2、a3来控制频率的大小。
OUTA、OUTB、OUTC是芯片的三相输出脚。
图3-4XC9572芯片有关管脚的端口功能分布图
上述功能也可以简单的以表格的形式来描述,如表3-1所示。
表3-1脉冲分配器功能表
输入
输出
CP
EX
MODE
DIR
OUTA
OUTB
OUTC
X
1
输出全0,芯片复位
↑
三相六拍正转
三相六拍反转
双三拍正转
双三拍反转
上表并未给出分频模块的功能,进入放大电路的实际频率是CP经分配器分频后输出的CLK_OUT。
如果要求一个XC9572芯片控制两台步进电机的运行,只需在XC9572的输出端口加三路输出OUTa、OUTb、OUTc,其输出特性和OUTA、OUTB、OUTC三相相同。
3.2脉冲分配器的软件部分设计及波形仿真
随着计算机技术、超大规模集成电路技术的发展,传统的硬件系统设计方法很难满足硬件设计复杂度快速增长以及设计成果可继承性的需要,从而导致了采用硬件描述语言的硬件电路设计方法的兴起。
所谓硬件描述语言(HDL),就是可以描述硬件电路的功能、信号连接及定时关系的语言。
硬件描述语言HDL有多种类型,最有代表性的是美国国防部开发的VHDL(VHSICHardwareDescriptionLanguage)语言和Verilog公司开发的VerilogHDL语言。
VHDL语言具有与硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言的层次化、结构化和易读性设计方面,表现了强大的生命力和应用潜力,因此选用VHDL语言进行编程。
3.2.1VHDL语言的特点和基本结构
VHDL语言是一种国际标准的硬件描述语言,具有丰富的表达能力,可使不同复杂度(系统级/电路板级/芯片级/门级)的电路网络在同一抽象程度上被描述,其支持系统级、寄存器级、门级三种不同层次,是未来数字系统设计的主流。
VHDL语言与一般的计算机高级语言相比,具有如下优点:
(1)通用性和设计的可变换性
VHDL语言是一种国际标准的硬件描述语言,几乎所有的综合仿真工具都支持它。
由于VHDL是一种标准,所以VHDL模型可以在与此标准相一致的任意系统上运行,这就意味着无论是否使用了相同的设备,在一个地方建立的模型,都可以在另外一个地方运行。
因而设计者可以交换一个数字系统的子系统的高层次描述,从而独立地发展每个子系统。
(2)支持多种设计方法和设计技术
VHDL语言支持TopDown和基于库(Library_Based)的设计方法,而且还支持同步电路、异步电路、FPGA和其它随机电路的设计,其范围之广是其它HDL语言所不能比拟的。
(3)系统硬件描述能力强
VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路。
另外,高层次的行为描述可以和低层次的RTL描述及结构描述混合使用。
VHDL语言能进行系统级的硬件描述,这是它的一个最突出的优点。
其它HDL语言如UDL/I、Verilog等只能进行IC级或PCB级描述,而不能对系统级的硬件进行很好的描述。
(4)大规模设计和设计的再利用
在完成一个大型硬件系统的设计后,分解设计和描述设计的功能同等重要。
在VHDL中,有些功能是专门为此而开发的。
在VHDL中出现的程序包、配置说明和表示一个实体的各种不同实现的多个结构体的概念,都体现了对设计共享、实验及设计管理的支持。
一个完整的VHDL语言程序通常包含实体(entity)、结构体(architecture)、配置(configuration)、包集合(package)和库(library)5个部分,如图3-5所示。
实体用于描述所设计的系统的外部接口信号;
结构体用于描述系统内部的结构和行为;
配置用于从库中选取所需单元来组成系统;
包集合存放各设计模块能共享的数据类型、常数、程序等;
库用于存放已编译的实体、构造体、包集合、配置。
图3-5VHDL语言程序基本结构
下面是一个完整的VHDL程序设计的基本语法结构。
library<
库名>
;
——————指定库名
use<
.<
程序包名>
.all;
——————指定程序包
…
entity实体名称is[generic(类属声明)];
—————实体声明
[port(端口声明)];
end[实体名称];
architecture结构体名称of实体名称is—————结构体声明
{块声明语句};
begin
{并行处理语句};
end[结构体名称];
3.2.2控制逻辑分析
设计要求步进电机以三相六拍和双三拍方式工作。
如果以“0”表示绕组断电,以“1”表示绕组通电。
那么对于ABC三相绕组来说,步进电机在正、反转时,脉冲分配器输出对应