CN111049438B - 一种步进电机控制系统、方法以及步进电机 - Google Patents
一种步进电机控制系统、方法以及步进电机 Download PDFInfo
- Publication number
- CN111049438B CN111049438B CN201911379740.XA CN201911379740A CN111049438B CN 111049438 B CN111049438 B CN 111049438B CN 201911379740 A CN201911379740 A CN 201911379740A CN 111049438 B CN111049438 B CN 111049438B
- Authority
- CN
- China
- Prior art keywords
- pulse
- programmable logic
- logic device
- period
- clock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000033001 locomotion Effects 0.000 claims abstract description 26
- 230000007306 turnover Effects 0.000 claims description 40
- 238000004891 communication Methods 0.000 claims description 15
- 230000000630 rising effect Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 description 2
- 230000033764 rhythmic process Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/14—Arrangements for controlling speed or speed and torque
- H02P8/18—Shaping of pulses, e.g. to reduce torque ripple
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/14—Arrangements for controlling speed or speed and torque
- H02P8/20—Arrangements for controlling speed or speed and torque characterised by bidirectional operation
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/40—Special adaptations for controlling two or more stepping motors
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Control Of Stepping Motors (AREA)
Abstract
本发明涉及电机控制技术领域,具体涉及一种步进电机控制系统、方法以及步进电机,其中系统包括微处理器、可编程逻辑器件和驱动器;微处理器包括运动规划模块,用于根据输入信号规划出每个控制周期内步进电机的驱动脉冲的个数和方向,并根据时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数;可编程逻辑器件用于生成脉冲控制信号;其中,微处理器可以对大部分数据进行处理,将处理后的结果发送给可编程逻辑器件,可编程逻辑器件可以实现高精度脉冲控制信号的生成,并且在电机高速运行的情况下,不损失脉冲精度,占用资源少,也不影响其他任务。另外,可编程逻辑器件同时完成多个步进电机脉冲控制信号的生成,因此非常适合多轴机器人的控制。
Description
技术领域
本发明涉及电机控制技术领域,具体涉及一种步进电机控制系统、方法以及步进电机。
背景技术
步进电机是一种执行单元,在很多机器人上使用广泛。小功率步进电机的驱动一般使用专用的步进电机驱动芯片,比较常用的有A4988等。为实现步进电机的驱动,一般需要控制驱动芯片的方向和脉冲。方向决定了电机运动的方向,单位时间脉冲决定了电机运动的速度。
现有的步进电机控制技术很多使用ARM生成步进电机控制信号,一般使用定时器资源产生,但是采用定时器资源产生控制脉冲存在资源占有大,长时间运行脉冲精度损失问题;现有的部分控制方案采用FPGA生成步进电机信号来控制步进电机,由于在脉冲生成中涉及到乘除法运算,对FPGA资源消耗较大,成本较高。
发明内容
为了解决现有技术中单独采用ARM或FPGA来生成步进电机控制信号存在的资源消耗较大的技术问题。
一种步进电机控制系统,包括微处理器、与该微处理器连接的可编程逻辑器件、与该可编程逻辑器件连接的驱动器;
所述微处理器包括运动规划模块,用于根据输入信号规划出每个控制周期内步进电机的驱动脉冲的个数和方向,并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数;
所述可编程逻辑器件包括脉冲生成模块,用于根据所述驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号;
所述驱动器用于根据所述脉冲控制信号控制步进电机运行。
其中,所述并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数包括:
根据下述公式计算出驱动脉冲翻转一次所需间隔的时钟周期数;
fCnt=Tperiod/(1/freCPLD)/2/fCount
其中,Tperiod表示一个控制周期,fCount表示每个控制周期内需要产生的脉冲个数,freCPLD表示可编程逻辑器件的时钟频率,fCnt表示驱动脉冲翻转一次所需间隔的时钟周期数;
其中,所述驱动脉冲翻转一次所需间隔的时钟周期数包括整数部分和小数部分,所述运动规划模块还用于将所述驱动脉冲翻转一次所需间隔的时钟周期数发送给所述可编程逻辑器件。
其中,所述根据所述驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号包括:
脉冲生成模块记录所述时钟周期数的整数部分和小数部分,控制当前驱动脉冲经过所述整数部分个时钟周期后进行状态翻转,并同时对所述小数部分进行累加,当经过多次翻转使得所述小数部分累加达到或者超过一个时钟周期时,则在下一次经过一个补偿脉冲周期后控制所述驱动脉冲翻转,所述补偿脉冲周期的长度为在所述整数部分的基础上增加一个时钟周期。
其中,所述在下一次经过一个补偿脉冲周期后控制所述驱动脉冲翻转之后还包括:
脉冲生成模块还用于将经过多次翻转得到的小数部分的累加结果减少一个时钟周期,将剩余部分继续累加。
在一种实施例中,所述微处理器为ARM,所述可编程逻辑器件为CPLD;
所述微处理器和可编程逻辑器件之间通过SPI通信总线和INT通信总线连接,所述可编程逻辑器件用于在所述脉冲控制信号下降沿来临时通过所述INT通信总线向所述微处理器发送一个中断触发信号,所述微处理器接收到所述中断触发信号后将所述数据发送给所述可编程逻辑器件,所述可编程逻辑器件接收到所述数据后进行缓存,并在所述脉冲控制信号的下一个上升沿来临时生成脉冲控制信号。
一种步进电机控制方法,包括:
根据输入信号规划出每个控制周期内步进电机的驱动脉冲的个数和方向,并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数;
根据所述驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号;
根据所述脉冲控制信号控制步进电机运行。
其中,所述并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数包括:
根据下述公式计算出驱动脉冲翻转一次所需间隔的时钟周期数;
fCnt=Tperiod/(1/freCPLD)/2/fCount
其中,Tperiod表示一个控制周期,fCount表示每个控制周期内需要产生的脉冲个数,freCPLD表示可编程逻辑器件的时钟频率,fCnt表示驱动脉冲翻转一次所需间隔的时钟周期数;
其中,所述驱动脉冲翻转一次所需间隔的时钟周期数包括整数部分和小数部分。
其中,所述根据所述驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号包括:
记录所述时钟周期数的整数部分和小数部分,控制当前驱动脉冲经过所述整数部分个脉冲周期时进行状态翻转,并同时对所述小数部分进行累加,当经过多次翻转使得所述小数部分累加达到或者超过一个时钟周期时,则在下一次经过一个补偿脉冲周期后控制所述驱动脉冲翻转,所述补偿脉冲周期的长度为在所述整数部分的基础上增加一个时钟周期。
进一步的,在下一次经过一个补偿脉冲周期后控制所述驱动脉冲翻转之后还包括:将经过多次翻转得到的小数部分的累加结果减少一个时钟周期,将剩余部分继续累加。
一种步进电机,包括上所述的步进电机控制系统。
依据上述实施例的步进电机控制系统和方法,该系统包括微处理器、与该微处理器连接的可编程逻辑器件、与该可编程逻辑器件连接的驱动器;微处理器包括运动规划模块,用于根据输入信号规划出每个控制周期内步进电机的驱动脉冲的个数和方向,并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数;可编程逻辑器件包括脉冲生成模块,用于根据驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号;驱动器用于根据脉冲控制信号控制步进电机运行。其中,微处理器可以对大部分数据进行处理,将处理后的结果发送给可编程逻辑器件,可编程逻辑器件可以实现高精度脉冲控制信号的生成,并且在电机高速运行的情况下,不损失脉冲精度,占用资源少,也不影响其他任务。另外,可编程逻辑器件同时完成多个步进电机脉冲控制信号的生成,因此非常适合多轴机器人的控制。
附图说明
图1为本申请实施例的步进电机控制系统结构示意图;
图2为本申请实施例的ARM和CPLD数据交互时序图;
图3为本申请实施例的脉冲控制信号和时钟周期关系示意图;
图4为本申请实施例的步进电机控制方法流程图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
在本发明实施例中,该方法充分利用ARM和CPLD的特点,ARM进行大部分数据处理,CPLD完成脉冲逻辑生成,通过二者配合,可以实现高精度脉冲控制信号(即脉冲控制序列)生成,并且在高速运行情况下,不损失脉冲精度,不影响其他任务的处理。同时,CPLD是并行处理器,可实现多个步进电机脉冲同时生成,非常适合多轴机器人系统。
实施例一:
请参考图1,一种步进电机控制系统,包括输入装置1、与输入装置1连接微处理器2、与该微处理器2连接的可编程逻辑器件3、与该可编程逻辑器件3连接的驱动器4,本实施例的输入装置可为键盘、鼠标或者可输入显示屏等,用于数据输入;微处理器2采用ARM,可编程逻辑器件3采用CPLD,驱动器4采用常见的电机驱动器。
其中,微处理器2包括运动规划模块21,该运动规划模块21用于根据输入装置1的输入信号规划出每个控制周期内步进电机的驱动脉冲的个数和方向,此为现有技术,此处不再详细说明,一般的一个运动过程,例如要控制机械臂从A处移动到B处需要包括多个控制周期。运动规划模块21并且还进一步并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数,即计算出经过几个时钟周期后控制当前脉冲从低电平翻转成高电平或者从高电平翻转成低电平,一般的一个脉冲周期包括多个时钟周期,微处理器2将计算出来的驱动脉冲翻转一次所需间隔的时钟周期数发送给可编程逻辑器件3。
其中,可编程逻辑器件3包括脉冲生成模块31,脉冲生成模块31用于根据驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号;在一个控制周期内,脉冲生成模块31可以根据微处理器2规划的方向生成对应的脉冲控制信号,每次经过计算好的需要间隔的时钟周期来控制驱动脉冲翻转,以此生成所需的驱动脉冲个数,即得到脉冲控制信号,并将生成的脉冲控制信号发送给驱动器4,驱动器4用于根据该脉冲控制信号控制步进电机运行,以完成设定的运动过程。
本实施例的步进电机控制系统中,利用了微处理器的高速处理能力,将数据处理过程全部在微处理器中进行处理,将处理后的结果发送给可编程逻辑器件,可编程逻辑器件可以根据处理结果实现高精度脉冲控制信号的生成,并且在电机高速运行的情况下,不损失脉冲精度,占用资源少,也不影响其他任务。另外,可编程逻辑器件同时完成多个步进电机脉冲控制信号的生成,因此非常适合多轴机器人的控制。
其中,运动规划模块根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数包括:运动规划模块21根据下述公式计算出驱动脉冲翻转一次所需间隔的时钟周期数;
fCnt=Tperiod/(1/freCPLD)/2/fCount
其中,Tperiod表示一个控制周期,fCount表示每个控制周期内需要产生的脉冲个数,freCPLD表示可编程逻辑器件的时钟频率,fCnt表示驱动脉冲翻转一次所需间隔的时钟周期数;
例如,本实施例中一个控制周期Tperiod为20ms,该20ms时间段内需产生fCount个脉冲,则需在20ms时间内生成fCount个上升沿。由于CPLD时钟频率为freCPLD,例如本实施例中为50M,每个反转周期为1/50M,即20ns。则计算脉冲需多少个时钟周期(20ns)翻转一次:
fCnt=Tperiod/(1/freCPLD)/2/fCount;
该系统中为fCnt=500000/fCount;
其中,一般的驱动脉冲翻转一次所需间隔的时钟周期数包括整数部分和小数部分,现有技术中基本都是直接忽略小数部分,这样就会使得生成的控制脉冲精度有所偏差,长时间累计的话就会造成电机的控制精度不高。为了保证产生的脉冲的精度,本实施例需要对脉冲的整数部分和小数部分分别考虑。
由于fCnt可能有小数,对于整数部分和小数部分分别处理,并对小数部分进行16位标幺:
记录Xc为fCnt的整数部分;XRes为fCnt的小数部分,XRes=(fCnt-Xc)*65536。
其中,根据驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号包括:
脉冲生成模块记录时钟周期数的整数部分和小数部分,如图3,控制当前驱动脉冲经过整数部分个时钟周期(如Xc个时钟周期)时进行状态翻转,并同时对小数部分(XRes)进行累加,每个翻转都会余下小数部分,当经过多次翻转使得小数部分累加达到或者超过一个时钟周期(即65536)时,则在下一次经过一个补偿脉冲周期后控制驱动脉冲翻转,该补偿脉冲周期的长度为在整数部分(如Xc个时钟周期)的基础上增加一个时钟周期,即(Xc+1)个时钟周期。如图3,第一翻转时间间隔为Xc个时钟周期,第二次翻转时间间隔为(Xc+1)个时钟周期。
同时,在下一次经过一个补偿脉冲周期后控制驱动脉冲翻转之后还包括:脉冲生成模块还用于将经过多次翻转得到的小数部分的累加结果减少一个时钟周期,将剩余部分继续累加。即经过一次补偿之后,需要对XRes的累计值减去65536,剩余的继续累计,直到下次累计值再达到65536后,再一次进行时钟补偿。这样能保证生成的控制脉冲序列的精度,进而保证电机运行的精度。
其中,本实施例的微处理器2和可编程逻辑器件3之间通过SPI通信总线和INT通信总线连接,以实现数据的高速传输,传输速度为8M。除了SPI通信外,CPLD可以通过INT触发ARM的外部中断,两者数据交互时序如下:
如图2,可编程逻辑器件用于在脉冲控制信号下降沿来临时通过INT通信总线向所述微处理器发送一个中断触发信号,微处理器接收到中断触发信号后将数据发送给可编程逻辑器件,可编程逻辑器件接收到数据后进行缓存,并在脉冲控制信号的下一个上升沿来临时生成后续的脉冲控制信号。这样通过CPLD调整通信的节奏,保证CPLD在生成脉冲前已接收到ARM发过来的指令,避免数据短缺,或接收不及时,保证了电机控制的精准性。
实施例二:
请参考图4,本实施例提供一种步进电机控制方法,该方法包括:
步骤201:根据输入信号规划出每个控制周期内步进电机的驱动脉冲的个数和方向,并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数;
步骤202:根据驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号;
步骤203:根据脉冲控制信号控制步进电机运行。
其中,在步骤201中,根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数包括:
根据下述公式计算出驱动脉冲翻转一次所需间隔的时钟周期数;
fCnt=Tperiod/(1/freCPLD)/2/fCount
其中,Tperiod表示一个控制周期,fCount表示每个控制周期内需要产生的脉冲个数,freCPLD表示可编程逻辑器件的时钟频率,fCnt表示驱动脉冲翻转一次所需间隔的时钟周期数;
其中,驱动脉冲翻转一次所需间隔的时钟周期数包括整数部分和小数部分,本实施例中对小数部分和整数部分均进行了考虑和相关处理,以保证生成的控制脉冲序列的精度,进而保证步进电机控制的精度。
其中,所述根据驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号包括:
记录时钟周期数的整数部分和小数部分,控制当前驱动脉冲经过整数部分个时钟周期(如Xc个时钟周期)时进行状态翻转,并同时对小数部分(XRes)进行累加,当经过多次翻转使得小数部分累加达到或者超过一个时钟周期(即65536)时,则在下一次经过一个补偿脉冲周期后控制驱动脉冲翻转,该补偿脉冲周期的长度为在整数部分(如Xc个时钟周期)的基础上增加一个时钟周期,即(Xc+1)个时钟周期。如图3,第一翻转时间间隔为Xc个时钟周期,第二次翻转时间间隔为(Xc+1)个时钟周期。
同时,在下一次经过一个补偿脉冲周期后控制驱动脉冲翻转之后还包括:将经过多次翻转得到的小数部分的累加结果减少一个时钟周期,将剩余部分继续累加。
其中,步骤201涉及大量计算,可在微处理器中进行,例如ARM,步骤202涉及脉冲生成,可以在可编程逻辑器件中进行,例如CPLD。微处理器和可编程逻辑器件之间通过SPI通信总线和INT通信总线连接,可编程逻辑器件用于在脉冲控制信号下降沿来临时通过INT通信总线向微处理器发送一个中断触发信号,微处理器接收到中断触发信号后将数据发送给可编程逻辑器件,可编程逻辑器件接收到数据后进行缓存,并在脉冲控制信号的下一个上升沿来临时生成后续的脉冲控制信号。这样通过CPLD调整通信的节奏,保证CPLD在生成脉冲前已接收到ARM发过来的指令,避免数据短缺,或接收不及时,保证了电机控制的精准性。
实施例三
本实施例提供一种步进电机,该电机包括实施例1提供的步进电机控制系统,采用该步进电机控制系统可以保证电机高速运行的情况下,不损失脉冲精度,占用资源少,也不影响其他任务。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (8)
1.一种步进电机控制系统,其特征在于,包括微处理器、与该微处理器连接的可编程逻辑器件、与该可编程逻辑器件连接的驱动器;
所述微处理器包括运动规划模块,用于根据输入信号规划出每个控制周期内步进电机的驱动脉冲的个数和方向,并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数;
所述可编程逻辑器件包括脉冲生成模块,用于根据所述驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号;
所述驱动器用于根据所述脉冲控制信号控制步进电机运行;
所述驱动脉冲翻转一次所需间隔的时钟周期数包括整数部分和小数部分;
其中,所述根据所述驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号包括:
脉冲生成模块记录所述时钟周期数的整数部分和小数部分,控制当前驱动脉冲经过所述整数部分个时钟周期后进行状态翻转,并同时对所述小数部分进行累加,当经过多次翻转使得所述小数部分累加达到或者超过一个时钟周期时,则在下一次经过一个补偿脉冲周期后控制所述驱动脉冲翻转,所述补偿脉冲周期的长度为在所述整数部分的基础上增加一个时钟周期。
2.如权利要求1所述的步进电机控制系统,其特征在于,所述并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数包括:
根据下述公式计算出驱动脉冲翻转一次所需间隔的时钟周期数;
fCnt = Tperiod/(1/freCPLD)/2/fCount
其中,Tperiod表示一个控制周期,fCount表示每个控制周期内需要产生的脉冲个数,freCPLD表示可编程逻辑器件的时钟频率,fCnt表示驱动脉冲翻转一次所需间隔的时钟周期数;
其中,所述运动规划模块还用于将所述驱动脉冲翻转一次所需间隔的时钟周期数发送给所述可编程逻辑器件。
3.如权利要求2所述的步进电机控制系统,其特征在于,所述在下一次经过一个补偿脉冲周期后控制所述驱动脉冲翻转之后还包括:
脉冲生成模块还用于将经过多次翻转得到的小数部分的累加结果减少一个时钟周期,将剩余部分继续累加。
4.如权利要求2所述的步进电机控制系统,其特征在于,所述微处理器为ARM,所述可编程逻辑器件为CPLD;
所述微处理器和可编程逻辑器件之间通过SPI通信总线和INT通信总线连接,所述可编程逻辑器件用于在所述脉冲控制信号下降沿来临时通过所述INT通信总线向所述微处理器发送一个中断触发信号,所述微处理器接收到所述中断触发信号后将数据发送给所述可编程逻辑器件,所述可编程逻辑器件接收到所述数据后进行缓存,并在所述脉冲控制信号的下一个上升沿来临时生成脉冲控制信号。
5.一种步进电机控制方法,其特征在于,包括:
根据输入信号规划出每个控制周期内步进电机的驱动脉冲的个数和方向,并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数;
根据所述驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号;
根据所述脉冲控制信号控制步进电机运行;
其中,所述驱动脉冲翻转一次所需间隔的时钟周期数包括整数部分和小数部分;
所述根据所述驱动脉冲的个数、方向以及驱动脉冲翻转一次所需间隔的时钟周期数生成脉冲控制信号包括:
记录所述时钟周期数的整数部分和小数部分,控制当前驱动脉冲经过所述整数部分个脉冲周期时进行状态翻转,并同时对所述小数部分进行累加,当经过多次翻转使得所述小数部分累加达到或者超过一个时钟周期时,则在下一次经过一个补偿脉冲周期后控制所述驱动脉冲翻转,所述补偿脉冲周期的长度为在所述整数部分的基础上增加一个时钟周期。
6.如权利要求5所述的步进电机控制方法,其特征在于,所述并根据可编程逻辑器件的时钟周期计算驱动脉冲翻转一次所需间隔的时钟周期数包括:
根据下述公式计算出驱动脉冲翻转一次所需间隔的时钟周期数;
fCnt = Tperiod/(1/freCPLD)/2/fCount
其中,Tperiod表示一个控制周期,fCount表示每个控制周期内需要产生的脉冲个数,freCPLD表示可编程逻辑器件的时钟频率,fCnt表示驱动脉冲翻转一次所需间隔的时钟周期数。
7.如权利要求5所述的步进电机控制方法,其特征在于,在下一次经过一个补偿脉冲周期后控制所述驱动脉冲翻转之后还包括:将经过多次翻转得到的小数部分的累加结果减少一个时钟周期,将剩余部分继续累加。
8.一种步进电机,其特征在于,包括如权利要求1-4任一项所述的步进电机控制系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911379740.XA CN111049438B (zh) | 2019-12-27 | 2019-12-27 | 一种步进电机控制系统、方法以及步进电机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911379740.XA CN111049438B (zh) | 2019-12-27 | 2019-12-27 | 一种步进电机控制系统、方法以及步进电机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111049438A CN111049438A (zh) | 2020-04-21 |
CN111049438B true CN111049438B (zh) | 2021-10-15 |
Family
ID=70239424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911379740.XA Active CN111049438B (zh) | 2019-12-27 | 2019-12-27 | 一种步进电机控制系统、方法以及步进电机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111049438B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112248650B (zh) * | 2020-10-21 | 2021-12-28 | 北京方正印捷数码技术有限公司 | 喷墨打印方法和设备 |
CN113985761B (zh) * | 2021-09-30 | 2024-02-09 | 歌尔股份有限公司 | 基于fpga的脉冲产生控制方法、终端设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103860204A (zh) * | 2014-03-31 | 2014-06-18 | 深圳市开立科技有限公司 | 一种应用于四维超声探头的步进电机控制系统 |
CN204681279U (zh) * | 2015-06-02 | 2015-09-30 | 扬州大劲电机制造有限公司 | 一种基于arm的多通道步进电机控制系统 |
CN106712612A (zh) * | 2017-02-09 | 2017-05-24 | 上海理工大学 | 快速响应的步进电机极速驱动系统及方法 |
CN107276469A (zh) * | 2017-07-27 | 2017-10-20 | 深圳怡化电脑股份有限公司 | 步进电机的驱动方法和驱动装置 |
-
2019
- 2019-12-27 CN CN201911379740.XA patent/CN111049438B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103860204A (zh) * | 2014-03-31 | 2014-06-18 | 深圳市开立科技有限公司 | 一种应用于四维超声探头的步进电机控制系统 |
CN204681279U (zh) * | 2015-06-02 | 2015-09-30 | 扬州大劲电机制造有限公司 | 一种基于arm的多通道步进电机控制系统 |
CN106712612A (zh) * | 2017-02-09 | 2017-05-24 | 上海理工大学 | 快速响应的步进电机极速驱动系统及方法 |
CN107276469A (zh) * | 2017-07-27 | 2017-10-20 | 深圳怡化电脑股份有限公司 | 步进电机的驱动方法和驱动装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111049438A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111049438B (zh) | 一种步进电机控制系统、方法以及步进电机 | |
US11548024B2 (en) | Motion control system of spraying machine based on FPGA and motion control method thereof | |
US7778814B2 (en) | Method and device for simulating an automation system | |
US10632615B2 (en) | Servo driving method, apparatus, and robot thereof | |
US5551044A (en) | Method and apparatus for interrupt/SMI# ordering | |
US7463003B2 (en) | Motor control system for controlling a plurality of motors | |
US6026498A (en) | Clock signal generator circuit using a logical result of an output of a computer and a source clock to generate plurality of clock signals | |
CN112636660B (zh) | 伺服驱动控制系统及绝对位置信号处理方法、装置、设备 | |
CN101458511A (zh) | 基于可编程逻辑器件的硬件插补方法 | |
CN101226408B (zh) | 交流伺服绝对值编码器位置反馈脉冲分频输出方法及电路 | |
CN108139731B (zh) | 步进机马达控制电路及用于控制步进机马达的方法 | |
JPS63148881A (ja) | サ−ボモ−タの速度制御装置 | |
CN103838183A (zh) | 一种数控系统及其输出控制方法 | |
US4383245A (en) | Digital servomotor drive apparatus | |
CN111883080A (zh) | 显示驱动方法、装置、显示面板以及电子设备 | |
TW201723708A (zh) | 功能單元及控制裝置 | |
CN106933535B (zh) | 一种在单片机系统中实现高精度延时的方法 | |
CN115132114A (zh) | 频率补偿方法、补偿电路及显示装置 | |
US7752478B2 (en) | Apparatus and method for real time tracking using a quadrature interface | |
JPH0457246B2 (zh) | ||
US5935236A (en) | Microcomputer capable of outputting pulses | |
CN114545801B (zh) | 可由外部信号直接启动输出的处理器 | |
EP4220204A1 (en) | Machine learning for syncing multiple fpga ports in a quantum system | |
CN103988429A (zh) | 脉冲信号输出装置 | |
SU1164777A1 (ru) | Устройство дл управлени курсором |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |