一种基于移位寄存器的高速插补脉冲输出方法及装置

文档序号:30601869发布日期:2022-07-01 21:47阅读:292来源:国知局
一种基于移位寄存器的高速插补脉冲输出方法及装置

1.本发明涉及工业控制领域和电子信息领域,尤其涉及一种基于移位寄存器的高速插补脉冲输出方法及装置。


背景技术:

2.在工业控制行业,自动化程度越来越高,在运动控制相关应用或者是数控机床上,越来越多地用到插补运动来实现更加高精度的运动效果,比如桁架机械臂、3d打印机等场合。现在不少plc和运动控制器中,都会加入插补运动功能,所述插补为数控系统轴运动过程中,按照一定方法确定运动轨迹的过程。通常已知轨迹上部分参数,通过“数据密化”的方式,完成指定轨迹运动。一般有“直线插补”、“圆弧插补”、“螺旋插补”等。插补运动的轨迹生成通常会有一个上位机软件,用户在软件上设置生成对应的曲线或者是指令,然后转换成若干个插补运动的轨迹,然后下载到下位机控制器进行执行。而插补运动的实现,一般有总线型和脉冲型两种,因为总线控制的成本还相对较高,所以脉冲型在很多对成本较为敏感的场合普遍使用。
3.插补运动的脉冲输出,通常要求在指定时间片内,输出插补曲线上对应的脉冲数,这个输出脉冲数在指定时间片内随着插补运动曲线的不同而各不相同。在不同的应用领域,对插补脉冲输出的频率要求,也各有不同,从基础的几十khz到几mhz均有涉及。
4.目前插补脉冲产生和输出通常有两种实现方式,一种是完全基于单个主控mcu实现,另一种是mcu+fpga的方式实现。
5.其中采用单个mcu的方式,一般会采用至少arm m3(或同等性能内核)以上内核的mcu,一般主频会要求至少50mhz,mcu一方面要负责与上位机进行通讯,接收下发的插补曲线数据,另一方面根据曲线进行脉冲生成和输出。脉冲的输出一般通过mcu的io电平翻转来实现,这当中涉及到脉冲数据的计算、定时器的应用等功能,计算较为繁忙,所以纵使有比较高的主频,其脉冲输出频率最高也只能到100khz左右。这个输出频率,在很多输出频率要求相对较高的场合下,无法满足要求,在应用上有一定的限制。如果选用主频更高的mcu,其对应的价格也会提高。此外,采用单颗mcu的方式,对于多轴插补的情况,无法做到几个轴的同步,几个轴的运行始终存在一定的先后,插补效果有一定的偏差。
6.采用mcu+fpga的方式,通常mcu负责与上位机进行通讯和插补数据的转换,然后将需要输出的插补脉冲数据发送给fpga进行输出,fpga在这种方式中,主要起到高速脉冲输出的功能。采用这种方式,能够输出至少2mhz以上的脉冲频率,但是这种方式的成本很高,一般应用在高端领域。


技术实现要素:

7.本发明目的在于针对现有技术的不足,提出一种基于移位寄存器的高速插补脉冲输出方法及装置,可以用较低性能的mcu实现高速插补脉冲的输出,且能保证多个插补轴同步运行,一方面能够极大降低控制方案的成本,另一方面又能达到很高的输出频率(最大超
过200khz),可以使用到更加广泛的场合中。
8.本发明的目的是通过以下技术方案来实现的:第一方面,本发明提供了一种基于移位寄存器的高速插补脉冲输出方法,通过一个电机控制单元mcu和若干个移位寄存器,实现多轴插补脉冲输出,其中每个轴对应一个或多个移位寄存器;该方法具体包括如下步骤:(1)将各个轴的插补脉冲数据根据移位寄存器的输出要求进行排列,并按照顺序的地址存储在电机控制单元mcu的指定数据地址空间;(2)启动mcu中的脉冲宽度调制pwm输出,产生移位脉冲信号,并通过定时器的计数中断依次从mcu的指定数据地址空间读取各轴插补数据,并放到对应通用输入/输出口gpio口上,并控制移位寄存器读入这些并行数据;该过程中pwm移位脉冲信号始终保持设定频率输出移位;(3)定时器在每一次计数循环过程中,能够产生指定脉冲数,直到所有mcu存储的插补数据输出,完成整个插补过程。
9.进一步地,步骤(2)中,在每一次新的插补脉冲数据写入移位寄存器过程中,需要保证移位寄存器数据写入时间少于pwm移位频率。
10.进一步地,步骤(2)中,所述pwm用于移位寄存器的移位时钟,pwm的频率决定了插补输出脉冲的频率。
11.进一步地,步骤(2)中,多轴插补时,所有轴的移位脉冲均采用mcu的同一个pwm信号,保证多轴之间的同步性。
12.进一步地,插补过程划分成若干个时间片来执行,在每个时间片内进行移位寄存器数据的填充来生成各个轴的插补脉冲,依据时间片运行的时间-位置曲线,结合实际脉冲当量参数,得到在指定时间片内每个轴需要输出的脉冲个数。
13.进一步地,整个插补脉冲数据输出的过程中,pwm移位脉冲频率保持一致,即用位置变化率最大的一组脉冲输出频率作为需要保持的pwm移位脉冲频率,以此为基础生成所有插补脉冲数据。
14.进一步地,定时器拥有可重复计数寄存器,每一次定时器的计数中断时,对可重复计数寄存器进行赋值并重新计数,最终实现所有mcu存储的插补数据输出。
15.进一步地,所述可重复计数寄存器设置指定脉冲数据个数输出,并产生中断信号用于移位寄存器的数据更新,同时还用于pwm的输出。
16.第二方面,本发明提供了一种基于移位寄存器的高速插补脉冲输出装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现所述的基于移位寄存器的高速插补脉冲输出方法。
17.第三方面,本发明提供了一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时,实现所述的基于移位寄存器的高速插补脉冲输出方法。
18.本发明的有益效果:1. 只需要一颗中低性能的主控mcu芯片和若干个低成本的移位寄存器就能实现多轴高速插补脉冲输出,减少mcu执行io翻转所需要的开销,让移位寄存器来实现这部分功能,mcu只需要进行简单的固定移位脉冲的生成和并口赋值工作,提升了插补运行的效率。相比于现有方案需要一颗高性能主控mcu或者是mcu+fpga的方式,极大降低了插补脉冲输出实现的硬件成本。
19.2. 本发明用一个统一的移位脉冲作为若干个移位寄存器的移位信号,能够起到多插补轴同步运行的效果,在不考虑移位寄存器差异的条件下,该同步效果可认为完全同步。相比较采用高性能mcu的方式,能有量级上的提升。
20.3. 使得低成本的电路方案不仅能应用到普通常规行业上,也能应用到对脉冲速度、脉冲同步要求非常高的高端领域中。
21.4. 本发明为了能够输出更高频率的插补脉冲,需要降低输出过程中mcu的开销,所以需要提前将插补数据按照移位寄存器的输出要求存放在指定空间,在每次移位完成后,只需要将新数据直接放到gpio口输出即可,不需要做太多其他工作,以保证输出波形不会出现断续的情况。
22.5. 本发明能够用较低性能的mcu实现多轴高速插补脉冲的输出,且输出脉冲频率能超过200khz。
23.6. 本发明用定时器关联指定io输出pwm作为移位脉冲信号,然后采用定时器的重复计数功能可适配各种类型的移位寄存器位数,如8位或16位移位寄存器,可设置不同的重复计数来产生中断。重复计数频率和pwm输出频率与mcu主频相关,可以设置到很高(大于mhz级别)。
24.7. 本发明不仅能够用于多轴插补脉冲控制,还能应用到位插补上,实现类似电子凸轮、电子齿轮、随动等复杂功能;即通过设置电子凸轮曲线或者电子齿轮、随动功能参数,生成对应驱动轴的脉冲数据,然后通过外部输入的编码器脉冲作为计数源,控制输出驱动轴的脉冲实现对应功能。
附图说明
25.图1为本发明提供的一种基于移位寄存器的高速插补脉冲输出方法流程图。
26.图2为本发明实施例中的系统框架图。
27.图3为本发明实施例中x轴按时间片的插补波形示意图。
28.图4为本发明实施例中2轴插补数据存放位置示意图。
29.图5为本发明提供的一种基于移位寄存器的高速插补脉冲输出装置示意图。
具体实施方式
30.为了使本领域技术人员能进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图。
31.如附图1所示,本发明提出一种基于移位寄存器的高速插补脉冲输出方法,该方法通过一个主控mcu和若干个移位寄存器,实现多轴插补脉冲输出,其中每个轴对应一个或多个移位寄存器,主控mcu用来接收上位机下发的插补脉冲数据,该数据由运动轨迹曲线或者是运动指令换算而来,移位寄存器用于高速脉冲输出。所述移位寄存器为一种存储器,数据以并行方式输入,根据脉冲将数据位依次向左或者向右移动一个比特,从输出端输出。具体步骤如下:(1)将各个轴的插补脉冲数据根据移位寄存器的输出要求进行排列,并按照顺序的地址存储在电机控制单元mcu的指定数据地址空间;(2)启动mcu中的脉冲宽度调制pwm输出,产生移位脉冲信号,并通过定时器的计数
中断依次从mcu的指定数据地址空间读取各轴插补数据,并放到对应gpio口上,并控制移位寄存器读入这些并行数据;该过程中pwm移位脉冲信号始终保持设定频率输出移位;(3)定时器有可重复计数寄存器,在每一次计数循环过程中,能够产生指定脉冲数,具体为:可重复计数寄存器会从设定计数值(一般与移位寄存器位数一致)依次递减,并等待计数中断,数据递减的频率也就是pwm的频率,当计数值减为0时,就会产生计数中断。在计数中断中,将新的一组移位数据放到gpio口,并写入到移位寄存器中,然后对计数寄存器重新赋值,重新开始计数,开始新一组移位脉冲输出,直到所有mcu存储的插补数据输出完成后结束插补过程。
32.基于本发明方法,可以用较低性能的mcu(如arm m0或同等性能内核),实现高速(大于200khz)的插补脉冲输出,采用该方法仅需增加一个或多个移位寄存器的费用,就能实现至少arm m4或同等性能内核水平的插补脉冲输出能力,而且能够保证几个插补轴之间的同步,其成本几乎不需要增加,性价比非常高。
33.如附图2所示,本发明方法实现过程中,采用上位机或者触摸屏(下文统称为上位机)输入用户插补命令,如g代码指令、运动控制指令、各种插补运动曲线参数等,这些指令最终可以转换成若干个轴之间的插补运动,这些插补运动数据通常可采用串口与mcu进行通讯和传输。为了降低对mcu数据处理能力的要求,需要在上位机中对上述指令和参数进行计算,并转换成各个轴的对应插补脉冲数据,本发明以2轴进行直线插补为例进行说明。采用3轴插补脉冲输出或更多轴的插补运动,和2轴直线插补原理及方法过程一致,在此不进行展开描述。
34.2轴直线插补运动,是指x轴和y轴按照线性关系进行运动,其体现的是x轴和y轴之间位置间的相互关系,对单轴分析,可以得到每个轴的时间-位置曲线,本发明中,将整个插补过程划分成若干个小的时间片来执行,在每个时间片内进行移位寄存器数据的填充来生成各个轴的插补脉冲,如图3所示,是其中x轴(或y轴)按照时间片运行的时间-位置曲线。结合实际脉冲当量等参数,就能得到在指定时间片内每个轴需要输出脉冲增量,即需要输出的脉冲个数,时间片的选择与插补波形的精度有关,可根据实际要求进行设置,时间片设定得越小,输出波形位置精度越高。
35.设定时间片为t,在某一个时间片内需要输出的脉冲数为nt,一方面为了让移位寄存器能够输出脉冲,需要将脉冲用二进制“010101”这样的方式输出,且需要适配移位寄存器的位数,即将脉冲数nt转换成整数倍的移位寄存器位数。另一方面为了减少mcu设置不同移位脉冲频率的开销,需要将整个插补波形输出的过程中,pwm移位脉冲频率保持一致,即用位置变化率最大的那一组脉冲输出频率作为需要保持的pwm移位脉冲频率,以此为基础生成所有插补脉冲数据,这当中需要对各时间片内数据的分辨率(即并行数据组数)和数据中01位置进行设置和分配。上位机将插补脉冲数据按照输出顺序以此发送给mcu,并将移位脉冲频率数据也一起发给mcu进行pwm移位脉冲频率的设置。
36.mcu接收到插补数据后,对于数据量不大的情况,可以直接存放在ram中,并按照连续位置存储,其存储方案如附图4所示,即将同一时间需要输出的各个轴放在连续地址,例如将同一时间输出的x轴插补数据1和y轴插补数据1放在连续地址,并以此规律将x轴插补数据2和y轴插补数据2至x轴插补数据n和y轴插补数据n的数据存放在连续地址,这种方式能够让mcu每次取数据的时候能够做到开销最小,不需要额外进行其他操作。
37.对于数据量很多的时候,可以先下载到外部eeprom或其他存储介质,然后在运行过程中采用dma数据搬运的方式,按一定时间间隔将数据放到ram中供程序使用,外部存储介质的存储方式同样按照图4所呈现的方式进行。
38.完成pwm配置、时钟配置和数据读取后,就可进行插补脉冲的输出,本发明中主控mcu采用arm m0或者同等性能的mcu,本发明实施例中以stm32f030c8t6进行说明,其最大主频为48mhz,其包含丰富的io管脚、多个串口和定时器,可完全满足本发明实施例中功能需求。在满足最高插补频率输出要求的情况下,还可再降低对mcu的要求。
39.其中串口可用于与上位机进行,上位机可进行插补指令的配置或者是插补波形的选择,然后将指令或者波形转换成以固定间隔时间输出的脉冲数据。脉冲数据按照移位寄存器的输出要求进行排列,并按照一定指令下发给主控mcu,并按照顺序的地址存在于mcu指定地址,以备输出。
40.高级定时器tim1拥有可重复计数寄存器tim1_rcr,该寄存器在设置指定脉冲个数输出后,会产生中断信号,可用于移位寄存器的数据更新,且该定时器还用于pwm的输出,pwm的占空比一般按照50%进行设置。该pwm用于移位寄存器的移位时钟,pwm的频率决定了插补输出脉冲的频率。
41.启动pwm输出,产生移位脉冲信号,在每一次tim1的重复计数中断中,将mcu存储的每个轴的移位脉冲数据放到对应gpio口上,并控制移位寄存器读入这些并行数据。因为该中断过程不需要执行太多指令,且操作简单,所以其执行周期非常短,可保证在下一个pwm移位脉冲到来前准备好数据,在这个过程中,pwm移位脉冲信号不需要停止,始终保持设定频率输出移位,在每一次新数据填入过程中,只需要保证移位寄存器数据写入时间少于pwm移位频率即可,确保输出脉冲不间断。多轴插补时,所有轴的移位脉冲均采用mcu的同一个pwm信号,保证多轴之间的同步性。本发明采用的方式使mcu的工作复杂度大大降低,也保证了mcu读取、写入新数据的实时性。直到所有存储的插补数据输出,即完成整个插补过程。
42.本发明能够将中低性能的mcu用到插补脉冲输出要求较高的场合,包括直线插补、圆弧插补、螺旋插补等等应用都能用到该方法,同时也不限于单轴的应用,只要mcu的gpio口足够,能够适用于多轴场景,而且性能不会有大的影响。
43.与前述基于移位寄存器的高速插补脉冲输出方法的实施例相对应,本发明还提供了基于移位寄存器的高速插补脉冲输出装置的实施例。
44.参见图5,本发明实施例提供的一种基于移位寄存器的高速插补脉冲输出装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,用于实现上述实施例中的基于移位寄存器的高速插补脉冲输出方法。
45.本发明基于移位寄存器的高速插补脉冲输出装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明基于移位寄存器的高速插补脉冲输出装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、通讯接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理
能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
46.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
47.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
48.本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于移位寄存器的高速插补脉冲输出方法。
49.所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
50.上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1