一种超精细步进电机的控制器的制作方法

文档序号:7331405阅读:594来源:国知局
专利名称:一种超精细步进电机的控制器的制作方法
技术领域
本发明属于电机控制技术,特别涉及一种超精细步进电机的控制器。
背景技术
步进电机是一种离散的运动装置,广泛应用于国民经济的各个领域,目前通用的 控制方法是采用单片机结合步进电机控制器的方法进行控制,这种控制方法的缺点是1、 由于单片机的运行速度限制,在实现细分驱动时,步进电机速度不高。2、单片机通过定时器 控制步进电机的步进脉冲的产生,由于定时器的时间分辨率有限,所以步进电机的运行速 度调节是离散的,各级速度之间间隔较大,在一些对速度要求严格的场合不能满足要求。3、 由于速度的间隔较大,造成各个速度之间的力矩也不连续,容易发生失步。所以步进电机只 能用于简单的控制系统中。

发明内容
本发明目的在于克服上述现有技术的不足,本发明提供一种超精细步进电机的控 制器,可以超精细控制步进机的速度和步数。为实现上述目的,本发明的技术方案如下一种超精细步进电机的控制器,包括外部通信接口、控制信号发生器、步进电机驱 动器,特点是所述控制信号发生器包括可编程逻辑器件芯片及其第一供电电路;该可编程 逻辑器件芯片包括速度控制模块、解码模块、时钟模块,及其依次连接的主控模块、flash控 制模块和存储模块,该可编程逻辑器件芯片还包括用于接收外部控制指令的接收端口和将 控制参数转化成控制信号的输出端接口,所述控制信号发生器还具有用于接收外部控制指 令的控制接口协议,精细调速算法和精确定位算法;所述的步进电机驱动器包括接收端口和输出端口及其用于提供驱动电流的第二 供电电路,所述的接收端口与所述的控制信号发生器的输出端口相连,所述的输出端口接 所述的步进电机的控制端口相连。所述的解码模块用于接收所述的控制信号发生器的接收端口接收的外部控制器 发来的控制指令,并解码获得目标速度、目标方向和目标步数并输入所述的主控模块。所述的主控模块用于将所述的目标速度、目标方向和目标位置与步进电机当前的 速度、方向、位置进行比较,经计算获得所述的步进电机的运行状态参数包括运行速度、方 向,并按运行状态参数执行达到所述的目标位置。所述的速度控制模块用于存储速度变化曲线,控制电机的运行速度变化。所述的时钟模块用于产生所述控制信号发生器需要的分频信号。所述的flash控制模块用于从所述的存储模块中读出控制数据,并转换该控制数 据为适当的数据格式后输出给所述的电机驱动模块。所述的存储模块用于存储步进电机的驱动控制数据。所述的控制信号发生器采用EMP570芯片。
3
所述的步进电机驱动器采用集成芯片A3973。与现有技术相比,本发明的有益效果是在实现高细分情况下的高速运行,同时实 现步进电机的超精细的调速,提高启动和停止速度,提高启动力矩,并且可以极大的扩展步 进电机的应用范围,如要求快速启停的控制场合等。


图1是本发明超精细步进电机的控制器的结构示意图。
图2是本发明超精细步进电机控制器的外部通信时序图。
图3是本发明超精细步进电机控制器的电机驱动芯片A3973控制时序图。
图4是本发明的电机驱动电路图。
图5是本发明超精细步进电机控制器中控制信号发射器内部流程图。
图6是本发明控制信号发生器解码模块结构示意图。
图7是本发明的控制信号发生器时钟发生模块结构示意图。
图8是本发明的步进电机细分原理图。
表1是本发明的超精细步进电机控制器外部通信协议。
表2是本发明的步进电机驱动芯片A3973控制协议。
表3是DAC参数表。
表4是步进电机的参数列表
具体实施例方式下面结合附图和具体实施方式
对本发明作进一步说明,但不以此限制本发明的保 护范围。请先参阅图1,图1是本发明超精细步进电机的控制器的结构示意图。如图所示, 一种超精细步进电机的控制器,包括外部通信接口、控制信号发生器、步进电机驱动器,所 述控制信号发生器包括可编程逻辑器件芯片及其第一供电电路;该可编程逻辑器件芯片包 括速度控制模块1、解码模块2、时钟模块3,及其依次连接的主控模块4、flash控制模块5 和存储模块6,该可编程逻辑器件芯片还包括用于接收外部控制指令的接收端口和将控制 参数转化成控制信号的输出端接口,所述控制信号发生器还具有用于接收外部控制指令的 控制接口协议,精细调速算法和精确定位算法;所述的步进电机驱动器包括接收端口和输出端口及其用于提供驱动电流的第二 供电电路,所述的接收端口与所述的控制信号发生器的输出端口相连,所述的输出端口接 所述的步进电机的控制端口相连。解码模块2用于接收所述的控制信号发生器的接收端口接收的外部控制器发来 的控制指令,并解码获得目标速度、目标方向和目标步数并输入所述的主控模块4。主控模 块4用于将所述的目标速度、目标方向和目标位置与步进电机当前的速度、方向、位置进行 比较,经计算获得所述的步进电机的运行状态参数包括运行速度、方向,并按运行状态参 数执行达到所述的目标位置。速度控制模块1用于存储速度变化曲线,控制电机的运行速 度变化。时钟模块3用于产生所述控制信号发生器需要的分频信号。flash控制模块5用 于从存储模块6中读出控制数据,并转换该控制数据为适当的数据格式后输出给所述的电机驱动模块。存储模块6用于存储步进电机的驱动控制数据。本发明的工作过程外部控制器(例如单片机,ARM,DSP等)通过超精细步进电机 控制器的外部通讯接口进行通讯,如图2本发明超精细步进电机控制器的外部通信时序图 和表1本发明超精细步进电机控制器外部通信协议所示,超精细步进电机控制器接收到步 进电机的运动命令,经过解码,得到步进电机的目标速度、目标方向或者目标步数。然后根 据目标速度、目标方向或者目标步数控制步进电机的运行。步进电机驱动器采用集成芯片A3973,该芯片内部集成两个6位D/A,可以精确实 现32细分。该芯片的控制时序如图3本发明超精细步进电机控制器的电机驱动芯片A3973 控制时序图所示,控制协议如表2本发明的步进电机驱动芯片A3973控制协议所示,电源部 分如图4本发明的电机驱动电路图所示。为达到精细控制的目的,超精细步进电机控制器采用32细分驱动步进电机。 A3973的两组电流输出直接与步进电机的两个绕组相连,为步进电机提供驱动电流,A3973 内部集成两个数模转换器(DAC),DAC根据输入数据的大小,控制A3973,向步进电机的绕组 输出相应的驱动电流。A3973的控制数据由控制信号发生器提供,通过strobe,elk, data 三个管脚输入。A3973控制数据经过详细的测试,使步进电机细分步距十分均勻平稳,为方 便控制,将A3972的控制数据按照表2所示的协议,和步进电机的运行特点编制成表格,数 据按照步进电机的运行时电流变化顺序排列,使用时只需要按照步进电机的运行方向,按 照不同的顺序依次读出A3973的控制数据,并按照图3所示时序输入到A3973即可,控制信 号存储于控制信号发生器中的内部FLASH存储模块5内。控制信号发生器根据外部主控制器的命令,经过计算得到步进电机的驱动电流的 大小和变化趋势,并根据步进电机的驱动电流的大小、变化趋势和A3973控制数据的存储 方式,产生相应的FLASH模块5的读地址,读出A3973控制数据,转换成相应的控制信号。输 出到A3973的控制接口,A3973根据控制信号发生器输入的控制数据产生相应的驱动电流, 驱动步进电机做成相应的动作。当步进电机驱动芯片A3973的驱动电流改变一次,步进电机就运行一步,方向由 步进电机两个绕组的电流方向决定。电机驱动芯片A3973驱动电流的改变速度,决定了步 进电机的速度。电机驱动芯片A3973的驱动电流改变是由控制信号发生器输出的控制数据 引起,控制信号发生器每改变一次控制数据,A3973的驱动电流就改变一次。改变控制信号 发生器输出控制数的速度,就改变了步进电机的运行速度。图5是本发明超精细步进电机控制器中控制信号发射器内部流程图,如图所示, 控制信号发生器的工作过程如下解码模块2接到外部控制器发过来的控制信号,解码得到步进电机的目标速度, 运行方向,运动距离(对步进电机而言就是需要运行的细分后的步数),并将这些数据传输 到主控模块4,主控模块4根据当前步进电机的状态速度、方向和位置与目标速度、目标方 向和目标位置进行比较,经计算得到步进电机现在需要做的动作。比如,当前步进电机的运 行状态是顺时针方向转动、转动速度为300° /s。而目标速度是顺时针方向、目标速度是 10° /s。主控模块4则发出指令控制步进电机顺时针方向、减速运行到10° /s的速度。具 体工作过程是主控模块4根据目标速度,与当前速度的比较,得到步进电机应该减速运行 的,并且通过速度控制模块1内存储的速度变化曲线,控制电机的运行速度变化。
控制信号发生器采用ALTERA公司的EPM570芯片,该芯片是CPLD (现场可编程阵 列),可根据需要灵活配置它的功能,编程语言采用VHDL语言。内部包括速度控制模块1、 解码模块2、时钟模块3、主控模块4、FLASH控制模块5、存储模块6。解码模块2,如图6本发明控制信号发生器解码模块结构示意图所示Clk,Wr,rd, data, commandin, dataout是外部系统时钟CLK提供整个系统所需要的时钟信号。其他的 接口是内部信号线。解码模块2通过Clk,wr,rd,data, commandin, dataout,与外部主控 制器通信,wr为外部控制写信号,rd为外部控制器读信号,解码根据协议,得到两个步进 电机的目标速度和目标步数信息,目标速度通过speedrankoutv和speedrankoutv输出到 主控模块4。目标步数通过presetlocationv。I^resetlocationh,输出到主控模块4。同 时该模块还可以向外部控制输出步进电机的当前速递和位置。当前速度通过speedrankv 和speedrankv有主控模块4输入到解码模块2中。当前步进电机位置通过Iocationh和 Iocationv由主控模块4输入到解码模块2。时钟模块3如图7本发明的控制信号发生器时钟发生模块结构示意图所示,是时 钟发生电路,根据elk输入的时钟信号,产生控制器需要的分频信号。FLASH模块5从存储模块6中读出控制数据,并将它们转换成合适的数据格式,输 出给电机驱动器。存储模块6,采用EP3C16内部集成FLASH存储器,用于存储步进电机的驱动控制数据。主控制模块4是整个控制器的核心部分,接收到解密模块2传递过来的目标速度 和目标位置。得到相应的控制数据在存储模块6内的存储地址。步进电机细分控制算法说明如下(1)步进电机的运动角度确定步进电机根据两相电流的变化,转动相应的机械角度。fel= (η/4) · ffflech......................................................· (1)其中,是电角度,η为电角度旋转一周(360° )整步运行的步数,· f_h机械角 度。两相电流分别为IA,IB。就是IA,^的合成电角度。当IA,L分别接通或者关断时。 步进电机运行一个额定机械角度,这个额定机械角度就是一个整步运行机械角度。如图8 本发明的步进电机细分原理图所示,这是电角度运行90°,位于电角度坐标的坐标轴上。IA, Ib的变化和电角度之间的关系如公式2所示 Ia = Ipeak · sin (fs),Ib = Ipeak · cos (fs).........................(2)其中fs是IA,Ib的合成电角度。当fs不位于坐标轴上,而是位于两个坐标轴之间的某个电角度时,根据公式1,机 械角度也不再位于整步位置,而是位于整步位置中间的某个位置。调整IA,Ib的大小,得到 不同的4值,就可以使步进电机小于整步运行角度的机械角度运动。达到细分运行的效果。根据A3973输出电流的计算公式Iteip = Vdac/ (Range χ Rs)........................· (3)Vdac = [(l+DAC)x VEEF]/64......................... G)VDAe为A3973内部数字模拟转换器的输出电压。Itkip是A3973输出的电流,大小是 由内部参数DAC控制,改变DAC的值,就可以按照A3973的通讯时序改变A3973输出电流的
6大小,实现步进电机的细分。改变IA,L的变化方向就可以改变电角度的变化方向,进而改 变电机的运行方向。为方便控制,将DAC的值编制成表格,存在存储模块6内。由于所述的 步进电机驱动器内的DAC只有6维,就是只有64个变化数值,为了保证细分精度,只能取其 中32个作为有效数值,因此只能做到精确32的细分。所述DAC的值编制成表格如表3本发明的DAC参数表所示,该表为存在存储模块 6内,IA,Ib都等于零时的DAC值存储于地址为零的内存空间。按照图8所示电角度逆时针 方向增加时变化DAC数据的内存地址增加。主控模块4依次读取存储模块6的数值,并通 过FLASH控制模块转换成适合A3973要求的数据格式,并由主控模块4控制输出至所A3973 输入端。(2)步进电机的运行方向确定主控模块4依次读取存储模块6内的数值时,通过控制存储模块6的读取地址的 增减来改变IA,Ib的增减来改变电机的运行方向。调速算法在执行调速功能时的算法。步进电机驱动芯片A3973根据输入DAC的值改变输出电流大小,主控模块4通过 控制A3973的DAC的变化速度改变步进电机的运行速度。为保证步进电机的平稳运行,在调 速时避免发生丢步的现在,速度的改变要保证平稳。速度的平稳调整方法为,将速度分成32 个等级,速度调整时遍历当前速度和目标速度的所有速度等级。为保证力矩的平稳,每个速 度级运行不同的步数。速度级和相应运行步数编制表格。根据所述A3973的控制协议,改 变A3973的输出电流需要传输16个bit的数据。A3973通讯最高频率为5Mhz。按照主时 钟33MHz计算,设定所述步进电机驱动芯片A3973的通讯频率为33/4 = 4. 125MHz。则每次 控制A3973需要16/4. 125 = 1. 45us。对应时钟频率为0. 6875MHz。本设计中以0. 6875MHz 作为步进电机的控制时钟。对0. 6875MHz进行分频,可以实现不同的速度等级,具体的速度 级和对应步进电机的实际转速如表3所示。步进电机加速和减速使用同样的调速算法。定位算法由于要保证步进电机的速度平稳变化,每一个速度级需要转动一定的 步数来保证步进电机的力矩不会突然变化。尤其是在减速时,要保证可靠的步数确保电机 严格按照调速算法减速。避免突然停止转动,电机的转动惯量造成步进电机失步,进行定位 转动时就要步进机的参数列表进行计算。具体流程举例说明设当前的步进电机位置为pl,目标位置为p2,转动目标最高速度等级为30。L为 电机转动距离,单位为步数。主控模块首先计算P2_pl = L,L的正负表征步进电机的运行 方向。假设步进电机转动步数为1000步,则根据表4步进电机的参数列表所示,步进电机 运行到速度级9需要运行6694步。就是说,1000步不足以让步进电机转动到设定的最高速 度等级30,步进电机由静止开始加速运行后,主控模块4实时计算剩余的步数,并与当前速 度与对应的步数累加值比对,当剩余步数等于或者小于当前速度的步数累加值时,强制减 速至下一个速度级,当运行是416时,电机转速可以达到13级,继续转动至544步时,步进 电机速度等级会曾指14级,剩余456步,小于14级速度的步数累加值,步进电机减速至速 度级13,转动至648步时,剩余352步,等于速度级12的步数累加值,步进电机减速至速度 级12,以此类推。直至停止使,电机正好运行1000步。上述实施例仅列示性说明本发明的原理及功效,而非用于限制本发明。任何熟悉 此项技术的人员在不违背本发明的精神及范围下,对上述实施例进行的修改,均落于本发明的保护范围。表1是本发明的超精细步进电机控制器外部通信协议
权利要求
1.一种超精细步进电机的控制器,包括外部通信接口、控制信号发生器、步进电机驱动 器,其特征在于所述控制信号发生器包括可编程逻辑器件芯片及其第一供电电路;该可编程逻辑器件 芯片包括速度控制模块(1)、解码模块O)、时钟模块(3),及其依次连接的主控模块0)、 flash控制模块( 和存储模块(6),该可编程逻辑器件芯片还包括用于接收外部控制指令 的接收端口和将控制参数转化成控制信号的输出端接口,所述控制信号发生器还具有用于 接收外部控制指令的控制接口协议,精细调速算法和精确定位算法;所述的步进电机驱动器包括接收端口和输出端口及其用于提供驱动电流的第二供电 电路,所述的接收端口与所述的控制信号发生器的输出端口相连,所述的输出端口接所述 的步进电机的控制端口相连。
2.根据权利要求1所述的一种超精细步进电机的控制器,其特征在于,所述的解码模 块( 用于接收所述的控制信号发生器的接收端口接收的外部控制器发来的控制指令,并 解码获得目标速度、目标方向和目标步数并输入所述的主控模块(4)。
3.根据权利要求2所述的一种超精细步进电机的控制器,其特征在于,所述的主控模 块(4)用于将所述的目标速度、目标方向和目标位置与步进电机当前的速度、方向、位置进 行比较,经计算获得所述的步进电机的运行状态参数包括运行速度、方向,并按运行状态 参数执行达到所述的目标位置。
4.根据权利要求2所述的一种超精细步进电机的控制器,其特征在于,所述的速度控 制模块(1)用于存储速度变化曲线,控制电机的运行速度变化。
5.根据权利要求2所述的一种超精细步进电机的控制器,其特征在于,所述的时钟模 块(3)用于产生所述控制信号发生器需要的分频信号。
6.根据权利要求2所述的一种超精细步进电机的控制器,其特征在于,所述的flash控 制模块( 用于从所述的存储模块(6)中读出控制数据,并转换该控制数据为适当的数据 格式后输出给所述的电机驱动模块。
7.根据权利要求2所述的一种超精细步进电机的控制器,其特征在于,所述的存储模 块(6)用于存储步进电机的驱动控制数据。
8.根据权利要求1所述的一种超精细步进电机的控制器,其特征在于,所述的控制信 号发生器采用EMP570芯片。
9.根据权利要求1所述的一种超精细步进电机的控制器,其特征在于,所述的步进电 机驱动器采用集成芯片A3973。
全文摘要
本发明公开了一种超精细步进电机的控制器,包括外部通信接口、控制信号发生器、步进电机驱动器,控制信号发生器包括可编程逻辑器件芯片及其第一供电电路;步进电机驱动器包括接收端口和输出端口及其用于提供驱动电流的第二供电电路。本发明在实现高细分情况下的高速运行的同时,实现步进电机的超精细调速,提高启动和停止速度,提高启动力矩,扩展了步进电机的应用范围。
文档编号H02P8/22GK102122913SQ201110066238
公开日2011年7月13日 申请日期2011年3月18日 优先权日2011年3月18日
发明者李丕丁 申请人:上海理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1