掌桥专利:专业的专利平台
掌桥专利
首页

步进马达的自动化速度渐变控制

文献发布时间:2023-06-19 11:11:32


步进马达的自动化速度渐变控制

相关专利申请

本申请要求Keith Edwin Curtis在2018年10月25日提交的名称为“AutomatedSpeed Ramp Control for Stepper Motors(步进马达的自动化速度渐变控制)”的共同拥有的美国临时专利申请序列号62/750,434的优先权;并且据此以引用方式并入本文以用于所有目的。

技术领域

本公开涉及步进马达的速度控制,并且更具体地讲,涉及用于步进马达的自动化速度渐变控制的方法和装置。

背景技术

步进马达是同步定位马达。为了以高步进速率运行,步进马达必须被加速和减速(步进速度渐变控制)以保持锁定。通过使用基于数字控制振荡器(NCO)的步进电路,可自动化步进速度排序。然而,这需要软件开销来使步进马达加速和减速。当步进马达速度增加或减少时,在微型计算机或微控制器的中央处理单元(CPU)上运行的软件必须提供新预分频器NCO值并将它们加载到预分频器NCO中。这需要CPU的高优先级中断,由此降低其他软件相关功能的性能。

发明内容

因此,需要一种使用直接存储器存取(DMA)来减小核心处理(例如,中央处理单元(CPU))、加载并改善其软件指令执行定时的自动化步进马达加速和减速(速度渐变控制)方法和装置。

根据一个实施方案,一种用于使用直接存储器存取(DMA)传输来进行步进马达的速度渐变控制的方法可包括以下步骤:提供数字控制振荡器(NCO),该数字控制振荡器具有振荡器输入和预分频值输入以及提供时钟脉冲的输出,其中时钟脉冲的频率可以是振荡器频率和预分频值的函数;在存储器中提供加速和减速预分频值的表;针对第一数量的时钟脉冲,通过使用直接存储器存取(DMA)传输的来自存储器的加速预分频值对NCO进行编程;针对第二数量的时钟脉冲抑制向NCO的DMA传输;以及针对第三数量的时钟脉冲,通过使用DMA传输的来自存储器的减速预分频值对NCO进行编程。

根据该方法的另一实施方案,可包括在进行向NCO的DMA传输之前对来自NCO的特定数量的时钟脉冲进行计数的步骤。根据该方法的另一实施方案,可包括对来自NCO的时钟脉冲的数量进行计数,然后在时钟脉冲的数量达到最大计数之后抑制NCO的输出的步骤。

根据另一个实施方案,一种用于步进马达加速和减速的自动化速度渐变控制的装置可包括:振荡器,该振荡器具有输出;数字控制振荡器(NCO),该数字控制振荡器具有振荡器输入和预分频值输入以及提供时钟脉冲的输出,其中NCO振荡器输入可联接到振荡器输出,并且来自NCO的时钟脉冲的频率可以是来自振荡器的频率和预分频值的函数;存储器,该存储器用于存储多个加速和减速预分频值;以及直接存储器存取(DMA)控制电路,该直接存储器存取控制电路联接在NCO预分频值输入和存储器以及NCO的输出之间,其中DMA控制电路可针对第一数量的时钟脉冲向NCO提供来自存储器的加速预分频值,针对第二数量的时钟脉冲抑制DMA控制电路,以及然后可针对第三数量的时钟脉冲向NCO提供来自存储器的减速预分频值。

根据另一实施方案,累加器计数器可联接在NCO的输出和DMA控制电路之间,其中DMA控制电路可在已经发生特定数量的时钟脉冲之后向NCO提供单个预分频值。根据另一实施方案,最大计数器可联接到NCO的输出并且在从NCO接收到特定最大数量的时钟脉冲之后抑制NCO的操作。

根据另一实施方案,DMA控制电路可包括:脉宽调制(PWM)模块,该脉宽调制模块具有联接到NCO的时钟输出的输入以及输出;以及数据信号调制器(DSM),该数据信号调制器具有联接到NCO的时钟输出的第一输入、联接到固定逻辑电平的第二输入、联接到DMA模块的DMA触发输入的输出,以及联接到PWM模块输出以用于将DSM的输出选择性地联接在其第一输入和第二输入之间的控制输入,其中在PWM模块的输出可处于第一逻辑电平时可选择第一输入,并且当PWM模块的输出可处于第二逻辑电平时可选择第二输入。

根据另一实施方案,累加器计数器可联接在NCO的输出以及DSM的第一输入和PWM模块的输入之间,其中DMA模块可在已经发生特定数量的时钟脉冲之后向NCO提供单个预分频值。根据另一实施方案,PWM模块的占空比可以是可编程的,以在第一数量的时钟脉冲期间提供第一逻辑电平输出,在第二数量的时钟脉冲期间提供第二逻辑电平输出,并且在第三数量的时钟脉冲期间提供第一逻辑电平输出。根据另一实施方案,第一逻辑电平可以是逻辑零,并且第二逻辑电平可以是逻辑一。根据另一实施方案,第一逻辑电平可以是逻辑一,并且第二逻辑电平可以是逻辑零。根据另一实施方案,DSM的输出可被配置为在对于DSM的控制输入的控制信号的边缘上在其第一输入和第二输入之间切换。

根据另一实施方案,DMA控制电路可包括:第一计数器,该第一计数器用于对第一数量的时钟脉冲进行计数;第二计数器,该第二计数器用于对第二数量的时钟脉冲进行计数;第三计数器,该第三计数器用于对第三数量的时钟脉冲进行计数;以及多路复用器,该多路复用器具有联接到NCO输出的第一输入、联接到固定逻辑电平的第二输入、联接到DMA模块的输出以及由第一计数器、第二计数器和第三计数器控制的输入选择;其中第一计数器控制多路复用器以在第一数量的时钟脉冲期间将第一输入联接到其输出,第二计数器控制多路复用器以在第二数量的时钟脉冲期间将第二输入联接到其输出,并且第三计数器控制多路复用器以在第三数量的时钟脉冲期间将第一输入联接到其输出。

根据又一个实施方案,一种用于步进马达加速和减速的自动化速度渐变控制的装置可包括:振荡器,该振荡器具有输出;数字控制振荡器(NCO),该数字控制振荡器具有振荡器输入和预分频值输入以及提供时钟脉冲的输出,其中NCO振荡器输入可联接到振荡器输出,并且时钟脉冲的频率可以是来自振荡器的频率和预分频值的函数;存储器,该存储器用于存储多个加速和减速预分频值;直接存储器存取(DMA)模块,该直接存储器存取模块联接在NCO预分频值输入和存储器之间;脉宽调制(PWM)模块,该脉宽调制模块具有联接到NCO的时钟输出的输入;以及数据信号调制器(DSM),该数据信号调制器具有联接到NCO的时钟输出的第一输入、联接到固定逻辑电平的第二输入、联接到DMA模块的DMA触发输入的输出,以及用于将DSM的输出选择性地联接在其第一输入和第二输入之间的控制输入;其中DMA模块在第一数量的时钟脉冲期间利用加速预分频值对NCO进行编程,在第二数量的时钟脉冲期间不进行对NCO的编程,并且在第三数量的时钟脉冲期间利用减速预分频值对NCO进行编程。

根据另一实施方案,累加器计数器可联接在NCO的时钟输出以及DSM的第一输入和PWM模块的输入之间,其中DMA模块可在已经发生特定数量的时钟脉冲之后向NCO提供单个预分频值。根据另一实施方案,最大计数器可联接到NCO的输出并且在从NCO接收到特定最大数量的时钟脉冲之后抑制NCO的操作。根据另一实施方案,PWM模块的占空比可以是可编程的,以在第一数量的时钟脉冲期间提供第一逻辑电平输出,在第二数量的时钟脉冲期间提供第二逻辑电平输出,并且在第三数量的时钟脉冲期间提供第一逻辑电平输出。根据另一实施方案,DSM的输出可被配置为在对于DSM的控制输入的控制信号的边缘上在其第一输入和第二输入之间切换。

附图说明

通过参考以下结合附图进行的描述,可以获得对本公开的更完整的理解,其中:

图1示出了根据本公开的教导内容的三轴步进马达电路的示意性框图;

图2、图3和图4示出了根据本发明的具体示例性实施方案的自动化速度渐变控制电路的示意性框图,该自动化速度渐变控制电路使用直接存储器存取(DMA)传输来加载速度渐变控制值以用于步进马达的加速和减速;

图5示出了图2、图3和图4所示的自动化速度渐变控制电路的操作的示意图;并且

图6示出了图2、图3和图4所示的自动化速度渐变控制电路的功能电路变化的示意性框图。

虽然本公开易受各种修改形式和替代形式的影响,但是其具体示例性实施方案已经在附图中示出并且在本文中详细描述。然而,应当理解,本文对特定示例性实施方案的描述并非旨在将本公开限于本文所公开的形式。

具体实施方式

本发明的实施方案可提供自动化速度渐变控制,其用于使用直接存储器存取(DMA)传输以加载速度渐变控制值来使步进马达加速和减速,而无需集成电路数字处理器(例如,(例如但不限于微控制器单元(MCU)的)中央处理单元(CPU))的干预或程序执行来维持步进马达的加速和减速操作。此外,核心独立外围设备(CIP)可用于促进自动化步进马达的加速和减速(速度渐变控制)电路的设计。CIP是被设计成在没有来自CPU的软件代码或监督的情况下处理其任务的功能模块块。因为CIP功能是在硬件而不是软件中执行的,所以CIP实现远超过典型微控制器单元(MCU)的能力的电路性能,同时简化设计体验并减小存储器成本。设计者可创建复杂的控制电路,同时具有更容易地创新其嵌入式解决方案的灵活性。该功能尤其有利于在计算机数字控制(CNC)机器中使用。

根据本发明的具体示例性实施方案,自动化步进马达加速和减速操作信息(确定步进速度的输出时钟频率)可由数字控制振荡器(NCO)提供。NCO是一种定时器,该定时器使用来自增量值相加的溢流以将具有输入频率的信号除以除数值,从而输出频率为输入信号除以除数值的信号。与简单的计数器驱动定时器或脉宽调制器(PWM)相比,使用该相加方法的优点在于除法的分辨率不随除法器值变化,由此导致真正的线性频率控制。NCO最适用于需要线性频率控制、高频准确度和固定占空比下的精细分辨率的应用。

根据本公开的教导内容,NCO可被配置为频率预分频器(在下文中称为“预分频器NCO”)并且具有通过直接存储器存取(DMA)传输提供的频率预分频数据,而无需MCU的CPU的干预或程序执行。这使频率预分频数据到预分频器NCO中的变化自动化。DMA控制电路可用于控制启用和禁用DMA传输,其中DMA传输在步进速度加速和减速期间启用,并且在正常运行步进速度期间禁用。存储器中的表可被提供用于步进速度加速和减速频率预分频数据(确定时钟频率-步进速度),由此DMA暂停是在步进速度加速的结束和步进速度减速的开始之间构建完整步进速度加速/减速简档所需要的一切。

根据本公开的具体示例性实施方案,可从步进马达加速和减速过程中消除CPU程序软件干预。可将加速/减速曲线(确定时钟脉冲速度简档)加载到存储器中,并且然后可启动步进马达操作。电路在特定第一数量的NCO频率周期(时钟脉冲)内自动倾斜上升(使步进速度加速),然后在特定第二数量的NCO频率周期内基于在加速阶段期间传输到NCO中的最后频率预分频数据DMA以最高NCO频率运行,然后在特定第三数量的NCO频率周期内开始减速阶段(使步进速度减慢)。当加速/减速曲线已完成时,自动化步进马达加速和减速电路可提供中断以触发下一个步进马达移动曲线(简档)的软件加载,例如来自CPU。再次启动加速和减速曲线(简档)并且CNC机器继续操作。

自动化步进马达加速和减速电路的优点在于CNC时钟的加速和减速是完全自动化的,而无需来自CNC电路的CPU的干预。

加速/减速表可被编程到例如但不限于闪存存储器中。DMA CIP可用于使加速和减速电路的操作自动化,而与CPU程序步骤无关。除了初始步进频率简档表加载和开始操作之外,不需要程序软件(例如,固件)开销。

现在参见附图,示意性地示出了示例性实施方案的细节。附图中的相似元件将由相似数字表示,并且类似的元件将由具有不同的小写字母后缀的相似数字表示。

参见图1,描绘了根据本公开的教导内容的三轴步进马达电路的示意性框图。示出了大体由数字100、CPU 132和存储器130表示的三轴(x、y和z)步进马达电路,但以下公开内容也适用于双轴和单轴步进马达电路。

NCO 126可用作频率预分频器并且接收来自时钟振荡器128的具有频率Fosc的时钟信号和预分频值,并且提供频率为时钟信号Fosc和预分频值的函数的CNC_CLK信号。NCO126可用存储在存储器130中的预分频值来编程。信号CNC_CLK的频率可以是来自时钟振荡器128的频率Fosc除以预分频值。

X步进驱动器108以由来自X-NCO 120的信号的频率(其为CNC_CLK的频率的函数)确定的步进速率和编程到X-NCO 120中(例如,从CPU 132)的X步进速率驱动X步进马达102。X计数器114可监测来自X-NCO 120的步进脉冲(频率周期)的数量,并且在达到编程计数(#X步长)(例如,从CPU 132编程)时抑制X-NCO 120进一步输出。X-NCO 120的输出可为来自预分频器NCO126的输入信号(CNC_CLK)的频率除以X步进速率的函数。

Y步进驱动器110以由来自Y-NCO 122的信号的频率确定的步进速率和编程到Y-NCO 122中(例如,从CPU 132)的Y步进速率驱动Y步进马达104。Y计数器116可监测来自Y-NCO 122的步进脉冲(频率周期)的数量,并且在达到编程计数(#Y步长)(例如,从CPU 132编程)时抑制Y-NCO 122进一步输出。来自Y-NCO 122的输出信号频率可以是来自预分频器NCO126的输入信号(CNC_CLK)的频率除以Y步进速率。NCO 126从时钟振荡器128接收具有频率Fosc的时钟信号并且输出具有频率CNC_CLK的信号,如上文所述。

Z步进驱动器112以由来自Z-NCO 124的信号的频率确定的步进速率和编程到Z-NCO 124中(例如,从CPU 132)的Z步进速率驱动Z步进马达106。Z计数器118可监测来自Z-NCO 124的步进脉冲(频率周期)的数量,并且在达到编程计数(#Z步长)(例如,从CPU 132编程)时抑制Z-NCO 124进一步输出。来自Y-NCO 122的输出信号频率可以是来自预分频器NCO126的输入信号(CNC_CLK)的频率除以Y步进速率。NCO 126从时钟振荡器128接收具有频率Fosc的时钟信号并且输出具有频率CNC_CLK的信号,如上文所述。

当X步进马达102和Y步进马达104的步进速率相同时,将导致45度的角移动。当X步进速率和Y步进速率不同时,将导致不同的角移动。步进脉冲的数量将确定CNC机器在由步进马达控制时将移动多远。因此,跟踪来自X-NCO的步进脉冲的数量将确定由X步进马达102控制的工具的移动位置,同样用于Y步进马达104和Z步进马达106。

三轴步进电路的Y步进部分和Z步进部分以与上文针对X步进所述的方式基本上相同的方式工作。通过将独特的X、Y和Z步进速率分别编程到X-NCO120、Y-NCO 122和Z-NCO124中,可对CNC工具的移动进行编程以产生期望的任何图案。此外,X步长计数器(X-CNTR)114、Y步长计数器(Y-CNTR)116和Z步长计数器(Z-CNTR)118可分别用针对X步进马达102、Y步进马达104和Z步进马达106允许的步长的最大数量来编程,例如,预定计数#X步长、#Y步长、#Z步长。如果达到步长的最大数量,则步长计数器(114,116,118)可抑制从相应NCO(120,122,124)输出步长。

参见图2,描绘了根据本发明的具体示例性实施方案的自动化速度渐变控制电路的示意性框图,该自动化速度渐变控制电路使用直接存储器存取(DMA)传输来加载速度渐变控制值以用于步进马达的加速和减速。数字控制振荡器(NCO)126被配置为频率预分频器,该频率预分频器具有:时钟输入,该时钟输入联接到从例如但不限于时钟振荡器128供应的具有频率Fosc的时钟信号;预分频输入,该预分频输入联接到DMA控制电路240;以及供应CNC_CLK信号的输出,该CNC_CLK信号的频率响应于输入除数值预分频,例如,信号CNC_CLK的频率是频率Fosc除以预分频值。

NCO 126将生成时钟脉冲CNC_CLK,其频率是频率Fosc除以预分频值的函数。可通过DMA控制电路240将预分频值编程到NCO 126中。DMA控制电路240可包括直接存储器存取(DMA)模块232、数据信号调制器(DSM)234和脉宽调制器(PWM)模块238。DMA模块232可从存储器130获得预分频值。存储器130存储步进马达的加速和减速两者的预分频值。DMA模块232可以是例如但不限于CIP,其可以独立于CPU 132起作用。在例如从CPU 132重置到DMA模块232时,可重置其地址计数器,从存储器130获得第一预分频值并将其编程到NCO 126中。这开启NCO 126,其以来自时钟振荡器128的频率Fosc除以编程到NCO 126中的预分频值所确定的频率生成时钟脉冲(CNC_CLK)。

PWM模块238(在重置时)也以第一输出(出于解释的目的,逻辑低)开始,在DSM 234的MOD输入处接收该第一输出。DSM 234的MOD输入处的逻辑低将CNC_CLK时钟脉冲联接到DMA模块232的触发输入。每当接收到CNC_CLK时钟脉冲时,DMA模块232中的地址计数器将递增,并且DMA模块232将从存储器130读取新预分频值并将该新预分频值传输到NCO 126中(DMA传输)。在PWM模块238已接收到特定数量的CNC_CLK时钟脉冲之后,其输出将转到第二逻辑电平(出于解释的目的,逻辑高),并且DSM 234的输出可与CNC_CLK时钟脉冲解耦并保持在逻辑低,由此将不会发生DMA传输。在PWM模块238已接收到更多数量的CNC_CLK时钟脉冲后,其输出将返回到第一逻辑电平,然后CNC_CLK时钟脉冲将再次联接到DMA模块232的触发输入(地址计数器),并且到预分频器NCO 126的DMA传输将在步进马达速度简档的减速阶段内恢复。针对第一逻辑电平和第二逻辑电平的任何期望比率,可基于要接收的CNC_CLK时钟脉冲的数量通过占空比信号从CPU 132编程PWM模块238的PWM占空比。上述电路和功能可由微控制器200提供。

DSM 234可被配置为接通经调制信号的边缘。这防止由于调制信号(来自PWM模块238的输出)与经调制信号(CNC_CLK)之间的异步定时而引起的缩短脉冲。

参见图3,描绘了根据本发明的另一个具体示例性实施方案的自动化速度渐变控制电路的示意性框图,该自动化速度渐变控制电路使用直接存储器存取(DMA)传输来加载速度渐变控制值以用于步进马达的加速和减速。图3所示的电路以与图2所示和上文所述的电路基本上相同的方式起作用,其中添加了联接在NCO 126的输出与PWM 238和DSM 234模块的输入之间的累加器计数器236。累加器计数器236允许在DMA模块232启动下一个DMA传输之前出现特定数量的CNC_CLK脉冲。例如,响应于从CPU 132接收的累加器计数负载输入,多个CNC_CLK时钟脉冲将在发起下一个DMA传输之前发生。上述电路和功能可由微控制器300提供。

参见图4,描绘了根据本发明的又一个具体示例性实施方案的自动化速度渐变控制电路的示意性框图,该自动化速度渐变控制电路使用直接存储器存取(DMA)传输来加载速度渐变控制值以用于步进马达的加速和减速。图4所示的电路在添加计数器228的情况下以与图2和图3所示和上文所述的电路基本上相同的方式起作用。计数器228可用从CPU 132接收的最大计数Max_Count编程,其致使当达到编程的最大计数时抑制预分频器NCO 126输出另外的CNC_CLK时钟脉冲。其还可用于重置PWM模块238。这可防止CNC工具超过最大行进距离。计数器228可在开始新加速/减速简档时由CPU 132重置。上述电路和功能可由微控制器400提供。

参见图5,描绘了图2、图3和图4所示的自动化步进马达加速和减速电路的操作的示意图。来自PWM模块238的输出波形540相对于DMA传输542(加速DMA传输542a和减速DMA传输542b)以及CNC_CLK时钟脉冲544的相对频率示出。最初,当输出540处于第一逻辑电平时,允许加速DMA传输542a,并且当输出540处于第二逻辑电平时,不存在DMA传输542(对DMA模块232的DMA启动触发被抑制)。CNC_CLK时钟脉冲的频率由NCO 126基于来自加速/减速表的预分频值来确定,该加速/减速表存储在存储器230中并在每次DMA传输542期间被编程到NCO 126中。一旦达到提供CNC_CLK时钟脉冲的最高频率的编程预分频值,例如,基于所期望的加速DMA传输542a的数量,就抑制另外的DMA传输,直到发生另外数量的时钟脉冲(CNC_CLK),然后NCO 126再次被编程有预分频值减速DMA传输542b以减小CNC_CLK时钟脉冲的频率,从而用于使步进马达减速。

预期且在本公开的范围内,DSM模块234的功能可由数字电子器件设计领域的普通技术人员已知的且受益于本公开的多路复用器或逻辑功能的其他组合提供。还可预期并且在本公开的范围内,可使用计数器和组合逻辑来代替PWM模块238。参见图6,描绘了图2、图3和图4所示的电路的功能电路变化的示意性框图。例如但不限于,DMA控制电路640可包括DMA模块232、多路复用器634、加速计数器640、最大速度计数器642、减速计数器644、相关联的逻辑门(未编号)。

多路复用器634可用于代替DSM模块234,其中cntl输入处的逻辑“0”将CNC_CLK时钟脉冲联接到DMA模块232的触发输入,并且逻辑“1”将抑制到其的CNC_CLK时钟脉冲。加速计数器640可在步进马达的加速期间计数CNC_CLK时钟脉冲的数量,最大速度计数器642可在步进马达的最大速度期间计数CNC_CLK时钟脉冲的数量,并且减速计数器644可在步进马达的减速期间计数CNC_CLK时钟脉冲的数量。使用组合逻辑,计数器640和642的输出可控制对多路复用器634的输入选择。当步进马达的减速已完成时,计数器644可向CPU 132a提供中断。上述电路和功能可由微控制器600提供。

已根据一个或多个实施方案描述了本公开,并且应当理解,除了明确陈述的那些方案之外,许多等同方案、替代方案、变型方案和修改方案是可能的,并且在本公开的范围内。虽然本公开易受各种修改形式和替代形式的影响,但是其具体示例性实施方案已经在附图中示出并且在本文中详细描述。然而,应当理解,本文对具体示例性实施方案的描述并非旨在将本公开限于本文所公开的特定形式。

相关技术
  • 步进马达的自动化速度渐变控制
  • 一种步进马达的速度控制方法及步进马达控制装置
技术分类

06120112831025