一种基于mcu的多通道均匀伺服脉冲生成方法

xiaoxiao2020-10-23  15

一种基于mcu的多通道均匀伺服脉冲生成方法
【技术领域】
[0001]本发明涉伺服控制领域,特别涉及一种基于MCU的多通道均匀伺服脉冲生成方法。
【背景技术】
[0002]工业自动化的发展,对传动系统的精度和性能提出了更高的要求。伺服驱动系统有着定位精确、转速精度高、转速可调范围大、转矩稳定、加速快、外型紧凑的优点,在数控机床和工业机器人这类要求高精度定位的数控领域得到了越来越广泛的应用。伺服驱动技术作为数控机床、工业机器人及其它产业机械控制的关键技术之一,在国内外普遍受到关注。伺服系统以位置和速度作为控制对象,是连接数控装置和机械本体的关键部分,接受数控装置发来的进给脉冲指令信号,经过信号变换和功率放大经由伺服电机驱动数控设备实现所要求的运动。
[0003]位置和速度的控制精度是伺服系统的核心价值所在,是衡量数控系统最为重要的技术指标之一。多年来伺服电机和伺服驱动器厂商不遗余力地进行技术升级和创新,取得了丰硕的成果。然而数控系统分为算法计算、数据传输、机械执行三个环节,伺服电机和伺服驱动器只是数控系统其中一个机械执行环节,提高整个数控系统的性能需要各个环节的性能保证。目前,数据传输这一环是较为薄弱的一环,制约着系统性能和精度的提升。
[0004]在数据传输上,大部分数控系统采用数据总线进行数据传输再经由MCU处理,得到的具体命令交由FPGA产生各路伺服脉冲再经电平转换后发送至伺服驱动器,以固定周期控制系统运行。伺服驱动器是根据接收的脉冲动作的,由于控制周期固定,欲保证伺服驱动器动作均匀协调则脉冲发送的均匀性就显得至关重要,周期内脉冲的不均匀将严重影响伺服动作的平滑性和伺服之间的同步。一般的方法中,MCU难以做到输出均匀的伺服脉冲,所以添加FPGA辅助产生和分发脉冲。FPGA虽然实现了脉冲分发的均匀性,但也增加了系统的环节和时延,拉长了输出传输这薄弱的一环,影响了系统性能提升和带来成本上升。

【发明内容】

[0005]本发明的目的在于克服现有技术的缺点与不足,提供一种基于MCU的多通道均匀伺服脉冲生成方法。
[0006]本发明的目的通过以下的技术方案实现:
[0007]一种基于MCU的多通道均匀伺服脉冲生成方法,包含以下顺序的步骤:
[0008]a.系统初始化时设置MCU自动装载定时器中断定时时长T,设置控制周期Tc,一个T为一个步长,一个控制周期的步数总数为Tc/T,启动定时器,开系统中断;
[0009]b.一个控制周期的起始,设置各通道参数,包括输出极性、相移Ps、翻转系数K、输出脉冲数,通过设置上述4个通道参数,输出伺服所需的控制脉冲;同时步数计数清零,根据通道极性初始化GP1 ;
[0010]C.判断步长计数是否等于步数总数,若是则进入步骤g,若不是则MCU执行其他任务,等待到达步长时间T进入中断任务;
[0011]d.以中断查询的方式判断各个通道在该时刻是否需要进行电平的翻转,若需要则进入步骤Θ,若不需要则进入步骤f ;
[0012]e.翻转对应的满足翻转条件的GP1输出管脚的电平,进入步骤f ;
[0013]f.步数计数增加1,退出中断任务,进入步骤c ;
[0014]g.当前的控制周期结束,进入下一控制周期。
[0015]步骤a中,所述的步数总数要满足以下条件:设置定时步长和控制周期时使步数总数为一个控制周期内输出伺服脉冲数的最大值的4倍以上的偶数。定时步长T远大于MCU的指令周期以避免系统频繁被中断而影响其他任务的执行,步数总数Tc/T应为一个控制周期内输出伺服脉冲数的最大值的4倍以上,越大则输出脉冲的均匀误差越小,在系统设置时步数总数Tc/T设为偶数也能减少误差。
[0016]步骤b中,所述的翻转系数K的计算方法是:翻转系数K等于步数总数除以2倍的该通道设定输出脉冲数,只保留整数结果。翻转系数K实质为每个通道的电平翻转间隔,其基本单位是定时步长T,每个脉冲需要两次翻转,因此,翻转系数K等于步数总数除以2倍的该通道设定输出脉冲数,结果只保留整数。相移Ps以定时步长T为基本单位将通道脉冲输出的起始点进行相位偏移,产生相移可调的脉冲输出。
[0017]步骤b中,所述的根据通道极性初始化GP1具体为:若通道输出极性为正,则GP1初始为低电平,反之GP1初始为高电平。GP1为MCU的通用输入输出管脚,一个GP1口可以对应输出一个通道的伺服脉冲,本发明的方法对输出脉冲的通道数没有限制,只要MCU的GP1管脚数量满足所需的脉冲数即可,因此选择MCU时需要对GP1管脚数有要求。
[0018]步骤c中,所述的MCU,其运行任务的时间基准是以定时步长为单位的步数计数方式。该方式中时钟不暂停从而保证系统运行时序的精确性。
[0019]步骤d中,所述的以中断查询的方式判断各个通道在该时刻是否需要进行电平的翻转,其判断方法为各通道翻转系数K能否整除当前步数计数Cs与对应通道的相移Ps的和,若能够整除则需要进行电平的翻转,反之则不需要。
[0020]本发明与现有技术相比,具有如下优点和有益效果:
[0021]1、只需一个中断定时器即可完成多通道的伺服脉冲输出,满足多路均匀伺服脉冲发生的需求。
[0022]2、缩短数据传输环节,减少了控制命令的时延,以一个时间为参考基准,精确地驱动系统任务,有效提高了系统的时效性。
[0023]3、在通用的MCU上实现,简化系统结构,节约开发成本。
[0024]4、在系统的每一个控制周期都能调整各通道的脉冲输出形式,使得对伺服的控制更加精确,这是采用普通MCU方法用定时器输出所做不到的。
【附图说明】
[0025]图1为本发明所述的一种基于MCU的多通道均匀伺服脉冲生成方法的流程图;
[0026]图2为多通道均匀脉冲生成的实例示意图。
【具体实施方式】
[0027]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0028]如图1,一种基于MCU的多通道均匀伺服脉冲生成方法,包含以下顺序的步骤:
[0029]a.系统初始化时设置MCU自动装载定时器中断定时时长T,设置控制周期Tc,一个T为一个步长,一个控制周期的步数总数为Tc/T,本实施例的步数总数为12、通道数设为4,启动定时器,开系统中断;
[0030]所述的步数总数要满足以下条件:设置定时步长和控制周期时使步数总数为一个控制周期内输出伺服脉冲数的最大值的4倍以上的偶数;
[0031]b.一个控制周期的起始,设置各通道参数,包括:输出极性、相移Ps、翻转系数K、输出脉冲数,步数计数清零,根据通道极性初始化GP1 ;
[0032]所述的翻转系数K的计算方法是:翻转系数K等于步数总数除以2倍的该通道设定输出脉冲数,只保留整数结果;
[0033]所述的根据通道极性初始化GP1具体为:若通道输出极性为正,则GP1初始为低电平,反之GP1初始为高电平;
[0034]c.判断步长计数是否等于步数总数,若是则进入步骤g,若否则MCU执行其他任务,等待到达步长时间T进入中断任务;
[0035]所述的MCU,其运行任务的时间基准是以定时步长为单位的步数计数方式;
[0036]d.查询各通道翻转系数K能否整除当前步数计数Cs与对应通道的相移Ps的和,若是则进入步骤e,若否则进入步骤f ;
[0037]所述的以中断查询的方式判断各个通道在该时刻是否需要进行电平的翻转,其判断方法为各通道翻转系数K能否整除当前步数计数Cs与对应通道的相移Ps的和,若能够整除则需要进行电平的翻转,反之则不需要;
[0038]e.翻转对应的满足翻转条件的GP1输出管脚的电平,进入步骤f ;
[0039]f.步数计数增加1,退出中断任务,进入步骤c ;
[0040]g.当前的控制周期结束,进入下一控制周期。
[0041]通道O参数:极性为负、相移Ps = 0、翻转系数K = 2、输出脉冲数为3,通道I参数:极性为正、相移Ps = 0、翻转系数K = 2、输出脉冲数为3,通道2参数:极性为正、相移Ps = 1、翻转系数K = 2、输出脉冲数为3,通道3参数:极性为正、相移Ps = 0、翻转系数K=3、输出脉冲数为2,由图2可清晰看见通道参数对输出脉冲的控制作用。
[0042]系统的下一个控制周期之初,各通道参数得到新的赋值,进行新的控制周期。MCU在每个定时步长T的时刻,查询各个通道的翻转系数和当前步数计数运算的结果,符合翻转条件的通道其输出电平得到翻转。
[0043]进一步的,使用目前新出的高性能MCU处理器,如STM32系列中以Cortex_M3、Cortex-M4为内核的处理器,其主频能达100M以上,这样使得步数总数更大,得到的脉冲输出更加均匀。
[0044]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
【主权项】
1.一种基于MCU的多通道均匀伺服脉冲生成方法,其特征在于,包含以下顺序的步骤: a.系统初始化时设置MCU自动装载定时器中断定时时长T,设置控制周期Tc,一个T为一个步长,一个控制周期的步数总数为Tc/T,启动定时器,开系统中断; b.一个控制周期的起始,设置各通道参数,包括输出极性、相移Ps、翻转系数K、输出脉冲数,通过设置上述4个通道参数,输出伺服所需的控制脉冲;同时步数计数清零,根据通道极性初始化GP1 ; c.判断步长计数是否等于步数总数,若是则进入步骤g,若不是则MCU执行其他任务,等待到达步长时间T进入中断任务; d.以中断查询的方式判断各个通道在该时刻是否需要进行电平的翻转,若需要则进入步骤e,若不需要则进入步骤f ; e.翻转对应的满足翻转条件的GP1输出管脚的电平,进入步骤f; f.步数计数增加1,退出中断任务,进入步骤c; g.当前的控制周期结束,进入下一控制周期。2.根据权利要求1所述的基于MCU的多通道均匀伺服脉冲生成方法,其特征在于,步骤a中,所述的步数总数要满足以下条件:设置定时步长和控制周期时使步数总数为一个控制周期内输出伺服脉冲数的最大值的4倍以上的偶数。3.根据权利要求1所述的基于MCU的多通道均匀伺服脉冲生成方法,其特征在于,步骤b中,所述的翻转系数K的计算方法是:翻转系数K等于步数总数除以2倍的该通道设定输出脉冲数,只保留整数结果。4.根据权利要求1所述的基于MCU的多通道均匀伺服脉冲生成方法,其特征在于,步骤b中,所述的根据通道极性初始化GP1具体为:若通道输出极性为正,则GP1初始为低电平,反之GP1初始为高电平。5.根据权利要求1所述的基于MCU的多通道均匀伺服脉冲生成方法,其特征在于,步骤c中,所述的MCU,其运行任务的时间基准是以定时步长为单位的步数计数方式。6.根据权利要求1所述的基于MCU的多通道均匀伺服脉冲生成方法,其特征在于,步骤d中,所述的以中断查询的方式判断各个通道在该时刻是否需要进行电平的翻转,其判断方法为各通道翻转系数K能否整除当前步数计数Cs与对应通道的相移Ps的和,若能够整除则需要进行电平的翻转,反之则不需要。
【专利摘要】本发明公开了一种基于MCU的多通道均匀伺服脉冲生成方法,包含以下步骤:设置各通道参数,输出初始化;判断步长计数是否等于步数总数,若是则控制周期结束,反之则等待到达步长时间进入中断任务;然后判断各个通道在该时刻是否需要进行电平的翻转,若需要则翻转对应通道输出电平,若不需要则步数计数增加1,退出中断任务;当前的控制周期结束,进入下一控制周期。本发明的方法,只需一个中断定时器即完成多通道的伺服脉冲产生,缩短数据传输环节,减少了控制命令的时延,有效提高了系统的时效性,简化了系统结构,节约开发成本。
【IPC分类】G05B19/04
【公开号】CN104898474
【申请号】CN201510153363
【发明人】史步海, 刘志鑫, 包智, 郭宇
【申请人】华南理工大学
【公开日】2015年9月9日
【申请日】2015年4月1日

最新回复(0)