一种基于脉冲变频控制的步进电机控制系统及方法转让专利

申请号 : CN202110533870.5

文献号 : CN113258842B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡建鹏夏存宝王良坤

申请人 : 杭州中科微电子有限公司

摘要 :

本发明公开了一种基于脉冲变频控制的步进电机控制系统及方法。解决现有步进电机的细分模式确定,步进固定,不能很好的降低电机运行噪音,减少电机运行抖动的问题。系统包括相连的MCU控制器、步进控制器、功率放大器和步进电机,步进控制器包括模式控制模块、脉冲变频模块、sin计数器和sin译码器。模式控制模块输出倍频至脉冲变频模块,脉冲变频模块根据倍频将输入脉冲进行变频处理。本发明摒弃了逐个脉冲累加一次步进值的细分控制,而是采用最小步进值,同时对输入脉冲进行变频处理,使得电机无论在哪种细分模式下都能以硬件最高精度细分运转,步进电机转动更静音、平稳、连贯。

权利要求 :

1.一种基于脉冲变频控制的步进电机控制系统,包括MCU控制器、步进控制器、功率放大器和步进电机,MCU控制器发送脉冲和方向控制信息至步进控制器,步进控制器与功率放大器输入端连接,功率放大器输出端连接步进电机,其特征在于:所述步进控制器包括模式控制模块、脉冲变频模块、sin计数器和sin译码器,模式控制模块:输入细分模式,根据输入细分模式和步进控制器最高细分计算出倍频并发送至脉冲变频模块;

脉冲变频模块:根据倍频将输入脉冲进行变频处理,输出新脉冲至sin计数器;

所述脉冲变频模块包括宽度计数器、移位器、micstep计数器,宽度计数器连接移位器,移位器输入连接模式控制模块,移位器输出连接micstep计数器,micstep计数器输出连接sin计数器,

宽度计数器,计算输入脉冲的脉宽值,发送给移位器;

移位器,接收倍频信息,根据倍频计算出变频后的新脉宽值;

micstep计数器,以新脉宽值为计数周期进行计数,每计数到新脉宽值产生一个脉冲,清零重新计数,重复计数产生变频后的新脉冲;

所述micstep计数器包括整数计数器和小数计数器,移位器输出分别连接整数计数器和小数计数器,小数计数器连接整数计数器,整数计数器输出连接sin计数器,整数计数器,获取新脉宽值的整数值,以整数值为计数周期进行计数,每计数到整数值产生一个新脉冲,清零重新计数,重复计数产生变频后的新脉冲;

小数计数器,获取新脉宽值的小数值,在整数计数器每产生一个新脉冲则累加一次小数值,当累计值达到整数时,则产生进位发送给整数计数器,保留累计值小数部分,整数计数器接收到进位后计数值减1;

sin计数器:获取方向控制信息,根据变频后的新脉冲累计最小步进值;

sin译码器:将累计的步值设定为对应电流,通过功率放大器处理后传输给步进电机,由步进电机转换为对应步距角。

2.根据权利要求1所述的一种基于脉冲变频控制的步进电机控制系统,其特征是所述脉冲变频模块还包括步进计数器、差值计算器,步进计数器输入端连接MCU控制器,步进计数器输出端、sin计数器输出端分别连接差值计算器的输入端,差值计数器的输出端分别连接整数计数器、sin计数器,

步进计数器,对输入脉冲步进值进行计数;

差值计算器,将输入脉冲步进值与新脉冲步进值进行相差,将步进差值发送给整数计数器和sin计数器,整数计数器根据步进差值控制新脉冲产生数量,sin计数器在新的输入脉冲周期开始后加上上一周期的步进差值。

3.一种基于脉冲变频控制的步进电机控制方法,采用权利要求1或2中系统,其特征是包括以下步骤:

S1.MCU控制器输入脉冲和方向控制信息至步进控制器;

S2.计算输入脉冲的脉宽值,根据设定倍频计算变频后脉冲的新脉冲值;

S3.以新脉宽值为计数周期进行计数,每计数到新脉宽值产生一个脉冲,重复计数产生变频后的新脉冲;具体过程包括:S31.获取新脉宽值的整数值和小数值;

S32.以整数值为计数周期进行计数,判断是否有进位,若有计数值减1,若没有按正常计数;

S33.当计数到整数值则产生一个新脉冲,清零计数;

同时在每产生一个新脉冲则累加一次小数值,当累计值达到整数时,则产生进位发送给整数计数器,保留累计值小数部分;

S34.重复步骤32‑33,直到产生设定变频后的新脉冲;

S4. 根据变频后的新脉冲累计步进值,设定对应电流,由步进电机转换为对应步距角。

4.根据权利要求3所述的一种基于脉冲变频控制的步进电机控制方法,其特征是步骤S2具体过程包括:

S21.检测输入脉冲中相邻的两个上升沿,两个上升沿之间为一个脉冲;

S22. 对脉冲范围内的系统时钟个数进行计数,计数获得的时钟数为当前脉冲的脉宽值;

S23.获取输入的细分模式和步进控制器最高细分,计算倍频=将输入的细分模式/步进控制器最高细分,将脉宽值除以倍频,获得变频后新脉宽值。

5.根据权利要求4所述的一种基于脉冲变频控制的步进电机控制方法,其特征是在步骤S4中新脉冲累计步进值后还包括差值控制处理步骤,包括:S41.步进计数器每检测到一个输入脉冲,以倍频值为输入脉冲步进值,获得输入脉冲步进值;

S42.获取新脉冲步进值;

S43.将输入脉冲步进值与新脉冲步进值进行相差,获得步进差值,将步进差值发送给整数计数器,控制新脉冲产生数量;

S44.检测当前操作周期是否结束,若否返回步骤S42,若是将步进差值发送给sin计数器,sin计数器在新的输入脉冲周期开始后加上上一周期的步进差值。

说明书 :

一种基于脉冲变频控制的步进电机控制系统及方法

技术领域

[0001] 本发明涉及步进电机技术领域,尤其是涉及一种基于脉冲变频控制的步进电机控制系统及方法。

背景技术

[0002] 目前细分驱动控制是提高步进电机运行精度,减小运行抖动和噪音的主流方法之一,通过有规律的设定流过电机线圈的电流大小,使原本一步运行的转动细分成多步运行,
减小了步距角和步进震荡动能。常见的细分模式有半步模式、1/4步模式、1/8步模式等,即
输入一个脉冲,步进电机分别转动1/2、1/4、1/8步距等。传统的步进电机控制系统如图1所
示,由MCU控制器、步进控制器、功率放大器和步进电机组成。其细分驱动实现结构如图2所
示,由模式控制器、sin计数器和sin译码器组成。方向控制输入设定sin计数器累加或者累
减,脉冲输入设定sin计数器计数频率,模式控制模块设定sin计数器计数步进。步进控制器
每接收到一个脉冲,sin计数器累加一次步进值,并通过sin译码器设定对应电流,步进电机
转过对应步距角。但传统的细分模式模式确定,步进固定,还不能很好的降低电机运行噪
音,减少电机运行抖动。

发明内容

[0003] 本发明主要是解决现有技术中步进电机的细分模式确定,步进固定,不能很好的降低电机运行噪音,减少电机运行抖动的问题,提供了一种基于脉冲变频控制的步进电机
控制系统及方法。不用改变前级脉冲输入,采用最小步进值,同时对输入脉冲进行变频处
理,步进电机能始终工作在最高硬件细分精度,提高了电机控制精度,也便于原有步进电机
系统细分控制升级。
[0004] 本发明的上述技术问题主要是通过下述技术方案得以解决的:一种基于脉冲变频控制的步进电机控制系统,包括MCU控制器、步进控制器、功率放大器和步进电机,MCU控制
器发送脉冲和方向控制信息至步进控制器,步进控制器与功率放大器输入端连接,功率放
大器输出端连接步进电机,所述步进控制器包括模式控制模块、脉冲变频模块、sin计数器
和sin译码器,
[0005] 模式控制模块:输入细分模式,根据输入细分模式步进控制器最高细分计算出倍频并发送至脉冲变频模块;
[0006] 脉冲变频模块:根据倍频将输入脉冲进行变频处理,输出新脉冲至sin计数器;
[0007] sin计数器:获取方向控制信息,根据变频后的新脉冲累计步进值;其中方向控制信息用于设定sin计数器累加或者累减。
[0008] sin译码器:将累计的步进值设定为对应电流,通过功率放大器处理后传输给步进电机,由步进电机转换为对应步距角。
[0009] 传统的细分模式模式确定,步进便固定,本发明摒弃了逐个脉冲累加一次步进值的细分控制,而是采用最小步进值,同时对输入脉冲进行变频处理,使得电机无论在哪种细
分模式下都能以硬件最高精度细分运转,步进电机转动更静音、平稳、连贯。本发明提高了
步进电机细分精度无需提高主控脉冲输入频率,可以便捷应用于原有步进电机控制系统细
分控制升级。MCU控制器输出脉冲以及方向控制信息,sin译码器根据sin计数器计数值将其
转换为对应电流,功率放大器对步进控制器输出电流进行放大,步进电机根据电流转换成
对应步距角。
[0010] 作为一种优选方案,所述脉冲变频模块包括宽度计数器、移位器、micstep计数器,宽度计数器连接移位器,移位器输入连接模式控制模块,移位器输出连接micstep计数器,
micstep计数器输出连接sin计数器,
[0011] 宽度计数器,计算输入脉冲的脉宽值,发送给移位器;宽度计数器对输入脉冲相邻两个上升沿或是两个下降沿之间的系统时钟个数进行计数,计数获得的时钟数为输入脉冲
当前脉冲脉宽值。
[0012] 移位器,接收倍频信息,根据倍频计算出变频后的新脉宽值;移位器根据输入倍频对脉宽值移位,计算出新脉宽值,具体的可以为将脉宽值除以倍频数得到新脉宽值,同时根
据倍频数确定当前输入脉冲周期内产生新脉冲的个数,发送给micstep计数器。
[0013] micstep计数器,以新脉宽值为计数周期进行计数,每计数到新脉宽值产生一个脉冲,清零重新计数,重复计数产生变频后的新脉冲。将新脉冲宽值作为计数周期,对时钟数
进行计数,可以是加计数从0至新宽值,也可以是减计数从新脉宽值至0。每次累计时钟数至
新脉宽值后产生一个脉冲,然后清零重新进行计数,重复计数动作输出变频后的新脉冲,新
脉冲输入至sin计数器。
[0014] 作为一种优选方案,所述micstep计数器包括整数计数器和小数计数器,移位器输出分别连接整数计数器和小数计数器,小数计数器连接整数计数器,整数计数器输出连接
sin计数器,
[0015] 整数计数器,获取新脉宽值的整数值,以整数值为计数周期进行计数,每计数到整数值产生一个新脉冲,清零重新计数,重复计数产生变频后的新脉冲;即以整数值为一个计
数周期,对系统时钟数进行计数,当计数累计达到整数值时,产生一个新脉冲,整数计数器
清零。然后进行下一个计数周期计数,直到产生设定倍频数量的脉冲形成新脉冲或是在当
前输入脉冲的周期内产生对应周期长度的新脉冲。
[0016] 小数计数器,获取新脉宽值的小数值,在整数计数器每产生一个新脉冲则累加一次小数值,当累计值达到整数时,则产生进位发送给整数计数器,保留累计值小数部分,整
数计数器接收到进位后计数值减1。本方案中小数值累计在整数计数器每产生一个新脉冲
时进行,累加值初始值为小数值,在产生第一个新脉冲时,累加一次小数值,累计值为两个
小数值相加值,当累计值达到整数时,即累计值为整数或者具有整数部分,具体的为等于1
或是大于1,则产生进位,小数计数器去除累计值整数部分,保留累计值小数部分,继续进行
累计。micstep计数器是加计数,整数计数器接收进位后计数值减1,若micstep计数器是减
计数,整数计数器接收进位后计数值加1。
[0017] 由于输入脉冲的脉宽值(系统时钟的整数倍)不一定能被倍频数整除,会出现计算出的新脉宽值带小数的情况,为了能更均匀的产生新脉冲,将micstep计数器分为整数计数
器和小数计数器。小数计数器在每产生一个新脉冲时累加一次小数值,当累计值达到整数
时,产生进位给整数计数器。整数计数器每来一个系统时钟则计数值加1,若小数计数器有
进位则计数值再减1,整数计数器计数值达到新脉宽值,则产生一个新脉冲并清零后重新计
数。如此计数,确保了电路在输入脉冲脉宽值不能被倍频数整除的情况下也能产生均匀倍
频的新脉冲。
[0018] 作为一种优选方案,所述脉冲变频模块还包括步进计数器、差值计算器,步进计数器输入端连接MCU控制器,步进计数器输出端、sin计数器输出端分别连接差值计算器的输
入端,差值计数器的输出端分别连接整数计数器、sin计数器,
[0019] 步进计数器,对输入脉冲步进值进行计数;
[0020] 差值计算器,将输入脉冲步进值与新脉冲步进值进行相差,将步进差值发送给整数计数器和sin计数器,整数计数器根据步进差值控制新脉冲产生数量,sin计数器在新的
输入脉冲周期开始后加上上一周期的步进差值。输入脉冲会发生频率变化,由于当前周期
内新脉冲脉宽宽度取决于上一周期输入脉冲的脉宽值,输入脉冲的频率变化时,输入脉冲
脉宽变化的首个周期会出现新脉冲倍频和设定值不相等的情况,导致步进电机多步或失
步,通过本方案的差值控制处理,确保了在不同输入脉冲情况下,步进控制器都能精准步进
运转。
[0021] 一种基于脉冲变频控制的步进电机控制方法,包括以下步骤:
[0022] S1.MCU控制器输入脉冲和方向控制信息至步进控制器;
[0023] S2.计算输入脉冲的脉宽值,根据设定倍频计算变频后脉冲的新脉冲值;
[0024] S3.以新脉宽值为计数周期进行计数,每计数到新脉宽值产生一个脉冲,重复计数产生变频后的新脉冲;
[0025] S4. 根据变频后的新脉冲累计步进值,设定对应电流,由步进电机转换为对应步距角。
[0026] 传统的细分模式模式确定,步进便固定,本发明摒弃了逐个脉冲累加一次步进值的细分控制,而是采用最小步进值,同时对输入脉冲进行变频处理,使得电机无论在哪种细
分模式下都能以硬件最高精度细分运转,步进电机转动更静音、平稳、连贯。本发明提高了
步进电机细分精度无需提高主控脉冲输入频率,可以便捷应用于原有步进电机控制系统细
分控制升级。
[0027] 作为一种优选方案,步骤S2具体过程包括:
[0028] S21.检测输入脉冲中相邻的两个上升沿,两个上升沿之间为一个脉冲;另外也可以以相邻的两个下降沿之间作为一个脉冲。
[0029] S22. 对脉冲范围内的系统时钟个数进行计数,计数获得的时钟数为当前脉冲的脉宽值;
[0030] S23. 获取输入的细分模式和步进控制器最高细分,计算倍频=将输入的细分模式/步进控制器最高细分,根将脉宽值除以倍频,获得变频后新脉宽值。具体的为将脉宽值
除以倍频数得到新脉宽值,同时根据倍频数确定当前输入脉冲周期内产生新脉冲的个数。
倍频数由设定的细分模式和当前电机步进控制器最高细分精度决定,例如输入1/8细分模
式,步进控制器最高细分1/256为例,则倍频数为32倍频,即根据步进控制器最高细分精度,
将输入的细分模式转换成对应的倍频数。
[0031] 作为一种优选方案,步骤S3的具体过程包括:
[0032] S31.获取新脉宽值的整数值和小数值;
[0033] S32.以整数值为计数周期进行计数,判断是否有进位,若有计数值减1,若没有按正常计数;
[0034] S33.当计数到整数值则产生一个新脉冲,清零计数;
[0035] 同时在每产生一个新脉冲则累加一次小数值,当累计值达到整数时,则产生进位发送给整数计数器,保留累计值小数部分;
[0036] S34.重复步骤32‑33,直到产生变频后的新脉冲。
[0037] 作为一种优选方案,在步骤S4中新脉冲累计步进值后还包括差值控制处理步骤,包括:
[0038] S41.步进计数器每检测到一个输入脉冲,以倍频值为该输入脉冲步进值,获得输入脉冲步进值;步进计数器步进计数根据倍频设定,当倍频为4,则检测到一个输入脉冲则
计数得到步进值为4。
[0039] S42.获取新脉冲步进值;累计sin计数器在当前周期内输出新脉冲的步进值。
[0040] S43.将输入脉冲步进值与新脉冲步进值进行相差,获得步进差值,将步进差值发送给整数计数器,控制新脉冲产生数量;在步进差值为0时,整数计数器阻止产生新脉冲。
[0041] S44.检测当前操作周期是否结束,若否返回步骤S42,若是将步进差值发送给sin计数器,sin计数器在新的输入脉冲周期开始后加上上一周期的步进差值。操作周期为当前
输入脉冲的周期,当前操作周期结束即在操作周期内完成产生新脉冲。
[0042] 输入脉冲会发生频率变化,由于当前周期内新脉冲脉宽宽度取决于上一周期输入脉冲的脉宽值,输入脉冲的频率变化时,输入脉冲脉宽变化的首个周期会出现新脉冲倍频
和设定值不相等的情况,导致步进电机多步或失步,通过本方案的差值控制处理,确保了在
不同输入脉冲情况下,步进控制器都能精准步进运转。
[0043] 因此,本发明的优点是:采用最小步进值,同时对输入脉冲进行变频处理,使得电机无论在哪种细分模式下都能以硬件最高精度细分运转,步进电机转动更静音、平稳、连
贯。

附图说明

[0044] 图1是现有技术中步进电机控制系统结构示意图;
[0045] 图2是现有技术中步进控制器结构示意图;
[0046] 图3是本发明中步进控制器的一种结构示意图;
[0047] 图4是本发明中脉冲变频模块的一种结构示意图;
[0048] 图5是输入脉冲防多步处理示意图;
[0049] 图6是输入脉冲防丢步处理示意图。

具体实施方式

[0050] 下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0051] 实施例:
[0052] 本实施例一种基于脉冲变频控制的步进电机控制系统,如图1所示,包括MCU控制器、步进控制器、功率放大器和步进电机,MCU控制器发送脉冲和方向控制信息至步进控制
器,步进控制器与功率放大器输入端连接,功率放大器输出端连接步进电机,如图3所示,步
进控制器包括模式控制模块、脉冲变频模块、sin计数器和sin译码器。
[0053] 模式控制模块:输入细分模式,根据输入细分模式步进控制器最高细分计算出倍频并发送至脉冲变频模块;
[0054] 脉冲变频模块:根据倍频将输入脉冲进行变频处理,输出新脉冲至sin计数器;
[0055] sin计数器:获取方向控制信息,根据变频后的新脉冲累计步进值;方向控制信息用于设定sin计数器累加或者累减。
[0056] sin译码器:将累计的步进值设定为对应电流,通过功率放大器处理后传输给步进电机,由步进电机转换为对应步距角。
[0057] 如图4所示,脉冲变频模块包括宽度计数器、移位器、micstep计数器,宽度计数器连接移位器,移位器输入连接模式控制模块,移位器输出连接micstep计数器,micstep计数
器输出连接sin计数器,
[0058] 宽度计数器,对输入脉冲相邻两个上升沿之间的系统时钟个数进行计数,计数获得的时钟数为输入脉冲当前脉冲脉宽值,脉宽值发送给移位器;
[0059] 移位器,接收倍频信息,根据倍频计算出变频后的新脉宽值;具体计算为将脉宽值除以倍频数得到新脉宽值,同时根据倍频数确定当前输入脉冲周期内产生新脉冲的个数,
发送给micstep计数器。
[0060] micstep计数器,以新脉宽值为计数周期,对时钟数进行计数,每次累计时钟数至新脉宽值后产生一个脉冲,清零重新计数,重复计数动作输出变频后的新脉冲,新脉冲输入
至sin计数器。
[0061] 由于输入脉冲的脉宽值(系统时钟的整数倍)不一定能被倍频数整除,会出现计算出的新脉宽值带小数的情况,为了能更均匀的产生新脉冲,将micstep计数器分为整数计数
器和小数计数器。
[0062] micstep计数器包括整数计数器和小数计数器,移位器输出分别连接整数计数器和小数计数器,小数计数器连接整数计数器,整数计数器输出连接sin计数器,
[0063] 整数计数器,获取新脉宽值的整数值,以整数值为计数周期进行计数,每计数到整数值产生一个新脉冲,清零重新计数,重复计数产生变频后的新脉冲;即以整数值为一个计
数周期,对系统时钟数进行计数,当计数累计达到整数值时,产生一个新脉冲,整数计数器
清零。然后进行下一个计数周期计数,直到产生设定倍频数量的脉冲形成新脉冲或是在当
前输入脉冲的周期内产生对应周期长度的新脉冲。
[0064] 小数计数器,获取新脉宽值的小数值,在整数计数器每产生一个新脉冲则累加一次小数值,当累计值达到整数时,则产生进位发送给整数计数器,保留累计值小数部分,整
数计数器接收到进位后计数值减1。小数值累计在整数计数器每产生一个新脉冲时进行,累
加值初始值为小数值,在产生第一个新脉冲时,累加一次小数值,累计值为两个小数值相加
值,当累计值达到整数时,即累计值为整数或者具有整数部分,具体的为等于1或是大于1,
则产生进位,将进位发送给整数计数器,小数计数器去除累计值整数部分,保留累计值小数
部分,继续进行累计。
[0065] 输入脉冲会发生频率变化,由于当前周期内新脉冲脉宽宽度取决于上一周期输入脉冲的脉宽值,输入脉冲的频率变化时,输入脉冲脉宽变化的首个周期会出现新脉冲倍频
和设定值不相等的情况,导致步进电机多步或失步。通过差值补偿处理,确保了在不同输入
脉冲情况下,步进控制器都能精准步进运转。
[0066] 脉冲变频模块进一步还包括步进计数器、差值计算器,步进计数器输入端连接MCU控制器,步进计数器输出端、sin计数器输出端分别连接差值计算器的输入端,差值计数器
的输出端分别连接整数计数器、sin计数器,
[0067] 步进计数器,对输入脉冲步进值进行计数;
[0068] 差值计算器,将输入脉冲步进值与新脉冲步进值进行相差,将步进差值发送给整数计数器和sin计数器,整数计数器根据步进差值控制新脉冲产生数量,sin计数器在新的
输入脉冲周期开始后加上上一周期的步进差值。
[0069] 本实施例还包括采用上述系统的一种基于脉冲变频控制的步进电机控制方法,其包括以下步骤:
[0070] S1.MCU控制器输入脉冲和方向控制信息至步进控制器;其中方向控制信息用于设定sin计数器累加或者累减。具体的输入脉冲输入至宽度计数器中,方向信息输入值sin计
数器中。在模式控制中设定细分模式,根据细分模式计算对应倍频,以步进控制器最高细分
1/256为例,若设定1/8细分模式,则将对输入脉冲进入均匀32倍频处理,即获得32倍频,本
实施例里以4倍频为例。
[0071] S2.计算输入脉冲的脉宽值,根据设定倍频计算变频后脉冲的新脉冲值;具体过程包括:
[0072] S21.检测输入脉冲中相邻的两个上升沿,两个上升沿之间为一个脉冲;
[0073] S22. 对脉冲范围内的系统时钟个数进行计数,计数获得的时钟数为当前脉冲的脉宽值;
[0074] S23. 获取输入的细分模式和步进控制器最高细分,计算倍频=将输入的细分模式/步进控制器最高细分,根将脉宽值除以倍频,本实例中输入1/64细分模式,步进控制器
最高细分1/256,则计算得到倍频为4,则输入脉冲脉宽值除以4获得变频后新脉宽值,即新
脉宽值为原脉冲周期的1/4。移位器可以是数字运算电路,实现除法运算。也可以进行移位
操作,将原脉宽值下移2bit得到新脉宽值,也是新脉宽值为原脉冲周期的1/4。
[0075] S3.micstep计数器以新脉宽值为计数周期进行计数,每计数到新脉宽值产生一个脉冲,重复计数产生变频后的新脉冲;具体过程包括:
[0076] S31.获取新脉宽值的整数值和小数值;
[0077] S32.整数计数器以整数值为计数周期进行计数,判断是否有进位,若有计数值减1,若没有按正常计数;
[0078] S33.当计数到整数值则产生一个新脉冲,清零计数;
[0079] 同时小数计数器在每产生一个新脉冲则累加一次小数值,当累计值达到整数时,则产生进位发送给整数计数器,保留累计值小数部分;小数值累计在每产生一个新脉冲时
进行,累加值初始值为新脉宽值小数值,在产生第一个新脉冲时,累加一次小数值,累计值
为两个小数值相加值,当累计值达到整数时,即累计值为整数或者具有整数部分,具体的为
等于1或是大于1,则产生进位,小数计数器去除累计值整数部分,保留累计值小数部分,继
续进行累计。以4倍频,脉宽值为43为例,则产生的新脉宽值为10.75,整数计数器获取整数
部分10,小数计数器获取小数值0.75。在整数计数器每产生一个新脉冲时进行累计,当整数
计数器计数到10时产生一个新脉冲,该新脉冲脉宽值为10,此时小数计数器进行累加一次
小数值,相加后为1.5,则累计值达到了整数,产生进位发送给整数计数器,整数计数器在计
数时计数值减1,小数计数器去除累计值整数部分,保留小数部分0.5,继续进行累计。
[0080] S34.重复步骤32‑33,直到产生变频后的新脉冲,即产生设定的4个新脉冲。
[0081] S4.根据变频后的新脉冲累计步进值,设定对应电流,由步进电机转换为对应步距角。sin计数器每接收到一个倍频后的脉冲累加一次步进值,该步进值为当前电机步进控制
器最高精度下的最小步进值,即无论外部输入哪种细分模式,都能以电机步进控制器最高
精度细分控制下进行运转,累计的是输入细分模式在当前硬件最高精度下的最小步进值。
本实例中以步进控制器最高细分1/256,外部输入细分模式为1/64细分模式为例,转换成倍
频为4,在外部没输入一个脉冲,sin计数器累加4次最小步进值,这样驱动电路即满足了1/
64细分模式控制,又使步进电机始终在1/256细分控制下转动,减小了步距角和步进震荡,
步进电机转动更静音、平稳、连贯。
[0082] 另外在新脉冲累计步进值过程中还包括差值控制处理步骤,其包括:
[0083] S41. 步进计数器每检测到一个输入脉冲,以倍频值为该输入脉冲步进值,获得输入脉冲步进值;步进计数器步进计数规则根据倍频设定,当倍频为4,则检测到一个输入脉
冲则计数得到步进值为4。
[0084] S42.获取新脉冲步进值;累计sin计数器在当前操作周期即当前输入脉冲周期内输出新脉冲的步进值;
[0085] S43.将输入脉冲步进值与新脉冲步进值进行相差,获得步进差值,将步进差值发送给整数计数器,控制新脉冲产生数量;
[0086] S44.检测当前操作周期是否结束,若否返回步骤S42,若是将步进差值发送给sin计数器,sin计数器在新的输入脉冲周期开始后加上上一周期的步进差值。
[0087] 仍然以设定4倍频为例,检测到一个输入脉冲获取输入脉冲步进值为4,在输出一个新脉冲后则获取输出新脉冲步进值加1,将输入脉冲步进值与新脉冲步进值进行相差,计
算得到步进差值发送给整数计数器,在当前周期未结束前,该步进差值=4‑新脉冲步进值不
为0,则整数计数器继续产生新脉冲。当产生4个新脉冲,此时新脉冲步进值累计为4,计算得
到步进差值为0,则整数计数器停止产生新脉冲,直到当前操作周期结束。
[0088] 输入脉冲会发生频率变化,由于当前周期内新脉冲脉宽宽度取决于上一周期输入脉冲的脉宽值,如图5所示,其中Ta0、Ta1、Ta2为每个输入脉冲周期即为操作周期,其中
Taa0、Taa1、Taa2分别为每个操作周期内首个脉冲的周期,其脉宽值表示为,Taa1 =Ta0/4,
Taa2=Ta1/4,Tbb1=Tb0/4,Tbb2=Tb1/4,输入脉冲的频率变化时,输入脉冲脉宽变化的首个
周期会出现新脉冲倍频和设定值不相等的情况,导致步进电机多步或失步。
[0089] 如图5所示,当输入脉冲频率变低时,输入脉冲脉宽变宽,在Ta1周期内产生4个新脉冲后,步进差值为0,整数计数器将保持恒定,阻止新脉冲产生。当输入脉冲频率变高时,
输入脉冲脉宽变窄,在,Tb1周期内只产生了3个新脉冲,则在Tb2周期开始后第一个新脉冲
时sin计数器加上上一周期的步进差值1。确保了在不同输入脉冲情况下,步进控制器都能
精准步进运转。
[0090] 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替
代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。