CN113419450A - 一种电机foc控制及运行方法、装置、电子设备及介质 - Google Patents
一种电机foc控制及运行方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN113419450A CN113419450A CN202110723943.7A CN202110723943A CN113419450A CN 113419450 A CN113419450 A CN 113419450A CN 202110723943 A CN202110723943 A CN 202110723943A CN 113419450 A CN113419450 A CN 113419450A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- priority
- operating system
- motor
- mcu
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 47
- 230000006870 function Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 5
- 238000011017 operating method Methods 0.000 claims 2
- 238000004891 communication Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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/0423—Input/output
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Control Of Electric Motors In General (AREA)
Abstract
本申请提供了一种电机FOC控制及运行方法、装置、电子设备及介质,在本申请中,通过对操作系统屏蔽的中断的优先级阈值以及各中断的优先级进行设置,并且将用实现电机FOC控制的ADC中断的优先级设置的高于该优先级阈值,将其它中断的优先级设置的不高于该优先级阈值,使操作系统不能控制用于实现电机FOC控制的ADC中断,实现了在MCU中运行操作系统时,该操作系统只能控制优先级低于该优先级阈值的中断。
Description
技术领域
本申请涉及电机控制技术领域,尤其涉及一种电机磁场定向控制(Field-Oriented Control,FOC)控制及运行方法、装置、电子设备及介质。
背景技术
随着技术的发展,目前主流的各大芯片厂商TI、NXP、ST、Microship等提供的电机FOC控制方案都是基于微控制单元(Microcontroller Unit,MCU)的裸机框架实现的,并没有使用操作系统。这由于FOC的算法实现是在高频的数/模转换器(Analog-to-DigitalConverter,ADC)中断中进行,而当MCU中移植操作系统后,该移植的操作系统的任务调度会对ADC中断产生不良影响,无法实现电机的控制效果。最常见的就是,操作系统在进行任务调度时,可能会开启全局中断开关,导致该MCU中的所有的中断都被禁止执行,这也就导致了用于实现电机FOC控制的ADC中断被禁止,但是如果一款MCU仅用来执行电机的FOC控制,这样对MCU的利用率太低,又会导致资源的浪费。
发明内容
本申请提供了一种电机FOC控制方法、装置、电子设备及介质,用以解决现有技术中移植了操作系统的MCU会禁止执行FOC算法的ADC中断,导致无法执行电机的FOC控制的问题。
本申请提供了一种电机FOC控制方法,应用于具有操作系统的MCU,所述方法包括:
接收对所述操作系统屏蔽的中断的优先级阈值进行设置的第一指令,及对各中断的优先级进行设置的第二指令,其中,所述各中断中用于实现电机FOC控制的ADC中断的优先级高于所述优先级阈值,其它中断的优先级不高于所述优先级阈值;
根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置,并根据所述第二指令,对所述各中断的优先级进行设置。
在一种可能的实施方式中,所述方法还包括:
识别所述用于实现电机FOC控制的ADC中断是否使用与所述操作系统相关的函数接口,若是,则删除所述函数接口。
在一种可能的实施方式中,所述根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置之前,所述方法还包括:
若所述MCU使用ARM Cortex-M的CPU架构,则将所述操作系统的源码中的PRIMASK寄存器替换为BASEPRI寄存器。
在一种可能的实施方式中,所述根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置包括:
获取所述第一指令中携带的数值以及目标字段,将所述数值写入所述BASEPRI寄存器的目标字段中。
本申请还提供了一种电机FOC运行方法,应用于具有操作系统的MCU,所述方法包括:
若识别到中断,则判断所述中断的优先级是否高于所述操作系统屏蔽的中断的优先级阈值;
若所述中断的优先级高于所述操作系统屏蔽的中断的优先级阈值,则确定所述中断为用于实现电机FOC控制的ADC中断,并响应所述用于实现电机FOC控制的ADC中断。
在一种可能的实施方式中,所述方法还包括:
若所述中断的优先级不高于所述操作系统屏蔽的中断的优先级阈值,则依据所述操作系统的全局中断开关确定是否响应所述中断。
本申请还提供了一种电机FOC控制装置,应用于具有操作系统的MCU,所述装置包括:
接收模块,用于接收对所述操作系统屏蔽的中断的优先级阈值进行设置的第一指令,及对各中断的优先级进行设置的第二指令,其中,所述各中断中用于实现电机FOC控制的ADC中断的优先级高于所述优先级阈值,其它中断的优先级不高于所述优先级阈值;
设置模块,用于根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置,并根据所述第二指令,对所述各中断的优先级进行设置。
在一种可能的实施方式中,所述装置还包括:
删除模块,用于识别所述用于实现电机FOC控制的ADC中断是否使用与所述操作系统相关的函数接口,若是,则删除所述函数接口。
在一种可能的实施方式中,所述装置还包括:
替换模块,用于若所述MCU使用ARM Cortex-M的CPU架构,则将所述操作系统的源码中的PRIMASK寄存器替换为BASEPRI寄存器。
在一种可能的实施方式中,所述设置模块,具体用于获取所述第一指令中携带的数值以及目标字段,将所述数值写入所述BASEPRI寄存器的目标字段中。
本申请还提供了一种电机FOC运行装置,应用于具有操作系统的MCU,所述装置包括:
判断模块,用于若识别到中断,则判断所述中断的优先级是否高于所述操作系统屏蔽的中断的优先级阈值;
响应模块,用于若所述中断的优先级高于所述操作系统屏蔽的中断的优先级阈值,则确定所述中断为用于实现电机FOC控制的ADC中断,并响应所述用于实现电机FOC控制的ADC中断。
在一种可能的实施方式中,所述响应模块,还用于若所述中断的优先级不高于所述操作系统屏蔽的中断的优先级阈值,则依据所述操作系统的全局中断开关确定是否响应所述中断。
本申请还提供了一种电子设备,所述电子设备至少包括具有操作系统的MCU和存储器,所述MCU用于执行存储器中存储的计算机程序时实现如上述任一所述电机FOC控制方法和上述任一所述电机FOC运行方法的步骤。
本申请还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被具有操作系统的MCU执行时实现如上述任一所述电机FOC控制方法和上述任一所述电机FOC运行方法的步骤。
在本申请中,通过对操作系统中屏蔽的中断的优先级阈值以及各中断的优先级进行设置,并且将用实现电机FOC控制的ADC中断的优先级设置的高于该优先级阈值,将其它中断的优先级设置的不高于该优先级阈值,使操作系统不能控制用于实现电机FOC控制的ADC中断,实现了在MCU中运行操作系统时,操作系统对中断进行有选择的屏蔽。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请提供的一种电机FOC控制的流程示意图;
图2为本申请提供的MCU中寄存器的示意图;
图3为本申请提供的MCU开发的流程示意图;
图4为本申请提供的一种电机FOC运行的流程示意图;
图5为本申请提供的一种电机FOC控制装置的结构示意图:
图6为本申请提供的一种电机FOC运行装置的结构示意图;
图7为本申请提供的一种电子设备结构示意图;
图8为本申请提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为了实现MCU既能响应ADC中断,使得可以在进行FOC的核心计算时产生的ADC中断可以被响应,电机FOC控制可以正常进行,又能在操作系统中进行其它操作,本申请提供了一种电机FOC控制及运行方法、装置、电子设备及介质。
实施例1:
图1为本申请提供的一种电机FOC控制的流程示意图,该过程包括:
S101:接收对所述操作系统屏蔽的中断的优先级阈值进行设置的第一指令,及对各中断的优先级进行设置的第二指令,其中,所述各中断中用于实现电机FOC控制的ADC中断的优先级高于所述优先级阈值,其它中断的优先级不高于所述优先级阈值。
本申请提供的一种电机FOC控制方法应用于MCU,该MCU中移植有操作系统,该操作系统可以是RT-Thread操作系统等。
在操作系统管理中断时,可以通过设置该操作系统可以屏蔽的中断的优先级阈值,使得在操作系统在管理中断时,只可以管理优先级小于该优先级阈值的中断。
具体的,在本申请中,具有操作系统的MCU接收对操作系统屏蔽的中断的优先级阈值进行设置的第一指令,该第一指令中携带有该优先级阈值对应的数值。其中,该数值为待设置的优先级阈值。
在本申请中,还会对各中断的优先级进行设置。具体的,MCU接收输入的对各中断的优先级进行设置的第二指令,该第二指令中携带有各中断的优先级对应的数值。其中,该数值为待设置的中断的优先级。
其中,为了使MCU中的操作系统没有控制用于实现电机FOC控制的ADC中断的权限,即当MCU中的操作系统在工作时也不会屏蔽该用于实现电机FOC控制的ADC中断,为了实现在同一MCU中,即能进行电机FOC控制又能进行其它操作,在本申请中,该各中断中用于实现电机FOC控制的ADC中断的优先级高于该优先级阈值,其它中断的优先级不高于该优先级阈值。
S102:根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置,并根据所述第二指令,对所述各中断的优先级进行设置。
在本申请中,在接收到第一指令之后,根据该第一指令中携带的数值,对所述操作系统屏蔽的中断的优先级阈值进行设置。该数值即为该操作系统屏蔽的中断的优先级阈值。使得操作系统可以对优先级低于该优先级阈值的中断进行控制,即该操作系统可以屏蔽优先级低于该优先级阈值的中断。
在本申请中,该MCU可以仅接收一个第二指令,在该第二指令中携带有各中断对应的优先级,该MCU还可以接收多个第二指令,若接收到多个第二指令时,该每个第二指令中可以携带一个或多个中断对应的优先级。在接收到第二指令之后,根据该第二指令中携带的各中断对应的数值,对各中断的优先级进行设置。针对任一数值,该数值即为对应该数值的中断的优先级。
在本申请中,可以将用于实现电机FOC控制的ADC中断的优先级设置为最高优先级,该最高优先级为0,将其它中断的优先级设置不高于操作系统屏蔽的中断的优先级阈值。
在本申请中,通过对操作系统屏蔽的中断的优先级阈值以及各中断的优先级进行设置,并且将用于实现电机FOC控制的ADC中断的优先级设置的高于该优先级阈值,将其它中断的优先级设置的不高于该优先级阈值,使操作系统不能控制用于实现电机FOC控制的ADC中断,实现了在MCU中运行操作系统时,操作系统对中断进行有选择的屏蔽。
实施例2:
为了使用于实现电机FOC控制的ADC中断不受操作系统的任何影响,便于在该ADC中断中进行电机FOC控制,在上述实施例的基础上,在本申请中,所述方法还包括:
识别所述用于实现电机FOC控制的ADC中断是否使用与所述操作系统相关的函数接口,若是,则删除所述函数接口。
在本申请中,在设置了用于实现电机FOC控制的ADC中断的优先级之后,还会删除该ADC中断中与该操作系统相关的函数接口,使得该ADC中断不受操作系统的任何影响,便于在该ADC中断中进行电机FOC控制。
具体的,在本申请中,在对用于实现电机FOC控制的ADC中断的优先级进行设置之后,该MCU会识别该ADC中断是否使用与该操作系统相关的函数接口,若该ADC中断使用与该操作系统相关的函数接口,则删除该函数接口。
在删除该用于实现电机FOC控制的ADC中断与该操作系统相关的函数接口之后,该ADC中断将不再与该操作系统进行通信,使得该ADC中断不受操作系统的控制,实现了位于MCU的操作系统既能响应ADC中断,使得可以在该ADC中断中进行电机FOC控制,又能在操作系统中进行其它操作。
实施例3:
在上述各实施例的基础上,在申请中,所述根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置之前,所述方法还包括:
若所述MCU使用ARM Cortex-M的CPU架构,则将所述操作系统的源码中的PRIMASK寄存器替换为BASEPRI寄存器。
当在MCU中移植操作系统之后,该操作系统运行时会对产生的中断进行屏蔽,若该MCU使用ARM Cortex-M的CPU架构,则位于该MCU中移植的操作系统是采用PRIMASK寄存器进行中断管理,即该操作系统屏蔽中断时采用的是PRIMASK寄存器,但是该PRIMASK寄存器在对中断进行屏蔽时,会关闭所有可屏蔽的中断,只留下不可屏蔽中断(Non MaskableInterrupt,NMI)和硬件错误(Hard fault,硬fault)。而MCU进行电机FOC控制时,通过ADC中断实现,但是使用该PRIMASK寄存器的操作系统会屏蔽该用于实现电机FOC控制的ADC中断,导致无法进行电机FOC控制。
因此,在本申请中,为了使MCU中的操作系统的运行不会对用于实现电机FOC控制的ADC中断产生影响,可以将该操作系统源码中的PRIMASK寄存器替换为BASEPRI寄存器,使得该操作系统采用BASEPRI寄存器管理中断。在本申请中,将操作系统源码中的PRIMASK寄存器替换为BASEPRI寄存器时,可以通过删除掉该操作系统的源码中的接口定义,并设计新的接口来实现。
图2为本申请提供的MCU中寄存器的示意图,如该图2所示,在Cortex-M的CPU架构的MCU中主要的寄存器包括:程序状态寄存器(Program status register)、中断屏蔽寄存器组(Exception mask registers)以及控制器寄存器(CONTROL register),其中该程序状态寄存器为PSR寄存器,该中断屏蔽寄存器组包括PRIMASK寄存器、FAULTMASK寄存器和BASEPRI寄存器,该控制器寄存器为CONTROL寄存器。
实施例4:
在上述实施例3的基础上,在申请中,所述根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置包括:
获取所述第一指令中携带的数值以及目标字段,将所述数值写入所述BASEPRI寄存器的目标字段中。
例如在本申请中,BASEPRI寄存器的位[7:0]用于表达优先级阈值。并且在设置优先级时,用户可以自行选择使用该8个字段中的几位字段来表达该优先级阈值,即在该位[7:0]中,可以用位[7:M]表达优先级阈值,位[M:7]则读为0,操作系统在写入时可以对该位[M:7]忽略。
因此,在对所述BASEPRI寄存器屏蔽的中断的优先级阈值进行设置时,该MCU接收的第一指令中携带有该优先级阈值对应的数值,以及选择的用以表达该优先级阈值的目标字段。
例如,若该第一指令中携带的数值为3,选择的目标字段为[7:5],则在操作系统中写入该优先级阈值时写入的为0110000。
表1为中断优先级寄存器的字段,如该表1所示,该中断优先级寄存器采用8个字段设置被屏蔽的中断的优先级阈值,分别为Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7。在使用该中断优先级寄存器时,用户可以自行选择使用几位字段表达优先级阈值,未使用的部分可以置1,例如在该表1中使用Bit7、Bit6以及Bit5表达优先级阈值,即该Bit7、Bit6以及Bit5用于表达8个优先级(Implemented 8priority levels),而Bit0,Bit1,Bit2,Bit3,Bit4则不用表达(Not implemented)。若该优先级阈值的数值为5,则该优先级阈值在该中断优先级寄存器中的形式为10111111。
表1
表2为BASEPRI寄存器的字段,该BASEPRI寄存器共有32位,但是在进行中断屏蔽时,该BASEPRI寄存器对于其自身的字段的使用和中断优先级寄存器SIP相同,因此如表2所示该BASEPRI寄存器的位[7:0]用于表达优先级阈值。并且在设置优先级时,用户可以自行选择使用该8个字段中的几位字段来表达该优先级阈值,即在该位[7:0]中,可以用位[7:M]表达优先级阈值,位[M:7]则读为0,操作系统在写入时可以对该位[M:7]忽略。例如,该M可以为5,该BASEPRI寄存器的优先级阈值为1,则该优先级阈值在该BASEPRI寄存器中的形式为0010000,操作系统在写入该优先级阈值时,可以只写入00100000,则此时该BASEPRI寄存器的在屏蔽中断时,可以用“1<<5”来表示该BASEPRI寄存器。
31~8 | 7~0 |
表2
实施例5:
图3为本申请提供的MCU开发的流程示意图,如该图3所示,该过程包括:
S301:在MCU中移植操作系统。
S302:将操作系统源码中的PRIMASK寄存器替换为BASEPRI寄存器。
S303:对该BASEPRI寄存器屏蔽的中断的优先级阈值进行设置,对各中断的优先级进行设置,其中,该各中断中用于实现电机FOC控制的ADC中断的优先级高于该优先级阈值,其它中断的优先级不高于该优先级阈值。
S304:删除ADC中断中与该操作系统相关的函数接口。
实施例6:
图4为本申请提供的一种电机FOC运行的流程示意图,该过程包括:
S401:若识别到中断,则判断所述中断的优先级是否高于所述操作系统屏蔽的中断的优先级阈值。
本申请提供的一种电机FOC运行应用于MCU,该MCU中移植有操作系统,该操作系统可以是RT-Thread操作系统等。
在本申请中,在电机FOC运行时,由于已经预先设置好操作系统屏蔽的中断的优先级以及各中断的优先级,因此可以根据比较该识别到的中断的优先级和操作系统屏蔽的中断的优先级阈值的关系,确定是否响应该识别到的中断。具体的,若MCU识别到中断,则根据预先设置的各中断的优先级以及操作系统屏蔽的中断的优先级阈值,确定该中断的优先级,并判断该中断的优先级是否高于操作系统屏蔽的中断的优先级阈值。
S402:若所述中断的优先级高于所述操作系统屏蔽的中断的优先级阈值,则确定所述中断为用于实现电机FOC控制的ADC中断,并响应所述用于实现电机FOC控制的ADC中断。
在本申请中,在对各中断的优先级进行设置时,仅将用于实现电机FOC控制的中断的优先级设置的高于操作系统屏蔽的中断的优先级阈值,其它中断的优先级的不高于该优先级阈值,则若确定该中断的优先级高于操作系统屏蔽的中断的优先级高于该优先级阈值,则该中断一定是用于实现电机FOC控制的ADC中断,由于该ADC中断的优先级高于该优先级阈值,则该操作系统没有权限对该ADC中断进行屏蔽控制,则该MCU响应该ADC中断。
例如,在本申请中,该优先级阈值为1,识别到的该中断的优先级为0,该中断的优先级高于该优先级阈值,则确定该中断为用于实现电机FOC控制的ADC中断,并且该ADC中断不会受该操作系统的影响,即该ADC中断不会被屏蔽。
在本申请中,操作系统在MCU中运行时为了保护线程间的数据,可能会屏蔽该MCU中的中断,即关闭MCU中的中断,操作系统在关闭该MCU中的中断时是根据该优先级阈值进行操作的。操作系统可以关闭优先级低于该优先级阈值的中断,但是该用于实现电机FOC控制的ADC中断的优先级高于该优先级阈值,所以不能关闭该ADC中断,使得该ADC中断在MCU中独立运行,不会被操作系统影响。
在本申请中,操作系统可被定义被屏蔽的优先级阈值,当该优先级阈值被设置为一个非0值后,该操作系统可以屏蔽优先级等于或小于该优先级阈值的中断。
实施例7:
在上述各实施例6的基础上,所述方法还包括:
若所述中断的优先级不高于所述操作系统屏蔽的中断的优先级阈值,则依据所述操作系统的全局中断开关确定是否响应所述中断。
在本申请中,若识别到中断,并且确定该中断的优先级不高于操作系统屏蔽的中断的优先级阈值,则该中断可以被操作系统控制,则根据该操作系统的全局中断开关确定是否响应该中断。
实施例8:
图5为本申请提供的一种电机FOC控制装置的结构示意图,该装置包括:
接收模块501,用于接收对所述操作系统屏蔽的中断的优先级阈值进行设置的第一指令,及对各中断的优先级进行设置的第二指令,其中,所述各中断中所述操作系统屏蔽的中断的ADC中断的优先级高于所述优先级阈值,其它中断的优先级不高于所述优先级阈值;
设置模块502,用于根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置,并根据所述第二指令,对所述各中断的优先级进行设置。
在一种可能的实施方式中,所述装置还包括:
删除模块503,用于识别所述用于实现电机FOC控制的ADC中断是否使用与所述操作系统相关的函数接口,若是,则删除所述函数接口。
在一种可能的实施方式中,所述装置还包括:
替换模块504,用于若所述MCU使用ARM Cortex-M的CPU架构,则将所述操作系统的源码中的PRIMASK寄存器替换为BASEPRI寄存器。
在一种可能的实施方式中,所述设置模块502,具体用于获取所述第一指令中携带的数值以及目标字段,将所述数值写入所述BASEPRI寄存器的目标字段中。
图6为本申请提供的一种电机FOC运行装置的结构示意图,该装置包括:
判断模块601,用于若识别到中断,则判断所述中断的优先级是否高于所述操作系统屏蔽的中断的优先级阈值;
响应模块602,用于若所述中断的优先级高于所述操作系统屏蔽的中断的优先级阈值,则确定所述中断为用于实现电机FOC控制的ADC中断,并响应所述用于实现电机FOC控制的ADC中断。
在一种可能的实施方式中,所述响应模块602,还用于若所述中断的优先级不高于所述操作系统屏蔽的中断的优先级阈值,则依据所述操作系统的全局中断开关确定是否响应所述中断。
实施例9:
图7为本申请提供的一种电子设备结构示意图,在上述各实施例的基础上,本申请还提供了一种电子设备,该电子设备可以但不限于为机器人,如图7所示,包括:具有操作系统的MCU 701、通信接口702、存储器703和通信总线704,其中,MCU 701,通信接口702,存储器703通过通信总线704完成相互间的通信;
所述存储器703中存储有计算机程序,当所述程序被所述MCU 701执行时,使得所述MCU 701执行如下步骤:
接收对所述操作系统屏蔽的中断的优先级阈值进行设置的第一指令,及对各中断的优先级进行设置的第二指令,其中,所述各中断中用于实现电机FOC控制的ADC中断的优先级高于所述优先级阈值,其它中断的优先级不高于所述优先级阈值;
根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置,并根据所述第二指令,对所述各中断的优先级进行设置。
在一种可能的实施方式中,还包括如下步骤:
识别所述用于实现电机FOC控制的ADC中断是否使用与所述操作系统相关的函数接口,若是,则删除所述函数接口。
在一种可能的实施方式中,所述根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置之前,还包括如下步骤:
若所述MCU使用ARM Cortex-M的CPU架构,则将所述操作系统的源码中的PRIMASK寄存器替换为BASEPRI寄存器。
在一种可能的实施方式中,所述根据所述第一指令,对操作系统屏蔽的中断的优先级阈值进行设置包括:
获取所述第一指令中携带的数值以及目标字段,将所述数值写入所述BASEPRI寄存器的目标字段中。
由于上述电子设备解决问题的原理与电机FOC控制方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口702用于上述电子设备与其它设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述MCU的存储装置。
图8为本申请提供的一种电子设备结构示意图,在上述各实施例的基础上,本申请还提供了一种电子设备,该电子设备可以但不限于为机器人,如图8所示,包括:具有操作系统的MCU 801、通信接口802、存储器803和通信总线804,其中,MCU 801,通信接口802,存储器803通过通信总线804完成相互间的通信;
所述存储器803中存储有计算机程序,当所述程序被所述MCU 801执行时,使得所述MCU 801执行如下步骤:
若识别到中断,则判断所述中断的优先级是否高于所述操作系统屏蔽的中断的优先级阈值;
若所述中断的优先级高于所述操作系统屏蔽的中断的优先级阈值,则确定所述中断为用于实现电机FOC控制的ADC中断,并响应所述用于实现电机FOC控制的ADC中断。
在一种可能的实施方式中,还包括如下步骤:
若所述中断的优先级不高于所述操作系统屏蔽的中断的优先级阈值,则依据所述操作系统的全局中断开关确定是否响应所述中断。
由于上述电子设备解决问题的原理与电机FOC运行方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口802用于上述电子设备与其它设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述MCU的存储装置。
实施例10:
在上述各实施例的基础上,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由具有操作系统的MCU执行的计算机程序,当所述程序在所述MCU上运行时,使得所述MCU执行时实现如下步骤:
接收对所述操作系统屏蔽的中断的优先级阈值进行设置的第一指令,及对各中断的优先级进行设置的第二指令,其中,所述各中断中用于实现电机FOC控制的ADC中断的优先级高于所述优先级阈值,其它中断的优先级不高于所述优先级阈值;
根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置,并根据所述第二指令,对所述各中断的优先级进行设置。
在一种可能的实施方式中,还包括如下步骤:
识别所述用于实现电机FOC控制的ADC中断是否使用与所述操作系统相关的函数接口,若是,则删除所述函数接口。
在一种可能的实施方式中,所述根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置之前,还包括如下步骤:
若所述MCU使用ARM Cortex-M的CPU架构,则将所述操作系统的源码中的PRIMASK寄存器替换为BASEPRI寄存器。
在一种可能的实施方式中,所述根据所述第一指令,对操作系统屏蔽的中断的优先级阈值进行设置包括:
获取所述第一指令中携带的数值以及目标字段,将所述数值写入所述BASEPRI寄存器的目标字段中。
由于上述提供的计算机可读取介质解决问题的原理与电机FOC控制方法相似,因此MCU执行上述计算机可读取介质中的计算机程序后,实现的步骤可以参见上述其它实施例,重复之处不再赘述。
在上述各实施例的基础上,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由具有操作系统的MCU执行的计算机程序,当所述程序在所述MCU上运行时,使得所述MCU执行时实现如下步骤:
若识别到中断,则判断所述中断的优先级是否高于所述操作系统屏蔽的中断的优先级阈值;
若所述中断的优先级高于所述操作系统屏蔽的中断的优先级阈值,则确定所述中断为用于实现电机FOC控制的ADC中断,并响应所述用于实现电机FOC控制的ADC中断。
在一种可能的实施方式中,还包括如下步骤:
若所述中断的优先级不高于所述操作系统屏蔽的中断的优先级阈值,则依据所述操作系统的全局中断开关确定是否响应所述中断。
由于上述提供的计算机可读取介质解决问题的原理与电机FOC运行方法相似,因此MCU执行上述计算机可读取介质中的计算机程序后,实现的步骤可以参见上述其它实施例,重复之处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种电机FOC控制方法,其特征在于,应用于具有操作系统的MCU,所述方法包括:
接收对所述操作系统屏蔽的中断的优先级阈值进行设置的第一指令,及对各中断的优先级进行设置的第二指令,其中,所述各中断中用于实现电机FOC控制的ADC中断的优先级高于所述优先级阈值,其它中断的优先级不高于所述优先级阈值;
根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置,并根据所述第二指令,对所述各中断的优先级进行设置。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
识别所述用于实现电机FOC控制的ADC中断是否使用与所述操作系统相关的函数接口,若是,则删除所述函数接口。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置之前,所述方法还包括:
若所述MCU使用ARM Cortex-M的CPU架构,则将所述操作系统的源码中的PRIMASK寄存器替换为BASEPRI寄存器。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置包括:
获取所述第一指令中携带的数值以及目标字段,将所述数值写入所述BASEPRI寄存器的目标字段中。
5.一种电机FOC运行方法,其特征在于,应用于具有操作系统的MCU,所述方法包括:
若识别到中断,则判断所述中断的优先级是否高于所述操作系统屏蔽的中断的优先级阈值;
若所述中断的优先级高于所述操作系统屏蔽的中断的优先级阈值,则确定所述中断为用于实现电机FOC控制的ADC中断,并响应所述用于实现电机FOC控制的ADC中断。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述中断的优先级不高于所述操作系统屏蔽的中断的优先级阈值,则依据所述操作系统的全局中断开关确定是否响应所述中断。
7.一种电机FOC控制装置,其特征在于,应用于具有操作系统的MCU,所述装置包括:
接收模块,用于接收对所述操作系统屏蔽的中断的优先级阈值进行设置的第一指令,及对各中断的优先级进行设置的第二指令,其中,所述各中断中用于实现电机FOC控制的ADC中断的优先级高于所述优先级阈值,其它中断的优先级不高于所述优先级阈值;
设置模块,用于根据所述第一指令,对所述操作系统屏蔽的中断的优先级阈值进行设置,并根据所述第二指令,对所述各中断的优先级进行设置。
8.一种电机FOC运行装置,其特征在于,应用于具有操作系统的MCU,所述装置包括:
判断模块,用于若识别到中断,则判断所述中断的优先级是否高于所述操作系统屏蔽的中断的优先级阈值;
响应模块,用于若所述中断的优先级高于所述操作系统屏蔽的中断的优先级阈值,则确定所述中断为用于实现电机FOC控制的ADC中断,并响应所述用于实现电机FOC控制的ADC中断。
9.一种电子设备,其特征在于,所述电子设备至少包括具有操作系统的MCU和存储器,所述MCU用于执行存储器中存储的计算机程序时实现根据权利要求1-4中任一所述电机FOC控制方法和权利要求5-6中任一所述电机FOC运行方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被具有操作系统的MCU执行时实现根据权利要求1-4中任一所述电机FOC控制方法和权利要求5-6中任一所述电机FOC运行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110723943.7A CN113419450A (zh) | 2021-06-29 | 2021-06-29 | 一种电机foc控制及运行方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110723943.7A CN113419450A (zh) | 2021-06-29 | 2021-06-29 | 一种电机foc控制及运行方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113419450A true CN113419450A (zh) | 2021-09-21 |
Family
ID=77716990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110723943.7A Pending CN113419450A (zh) | 2021-06-29 | 2021-06-29 | 一种电机foc控制及运行方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419450A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0423094D0 (en) * | 2004-10-18 | 2004-11-17 | Ttp Communications Ltd | Interrupt control |
CN1632773A (zh) * | 2004-12-31 | 2005-06-29 | 北京中星微电子有限公司 | 芯片内的中断处理装置及方法 |
US20060112208A1 (en) * | 2004-11-22 | 2006-05-25 | International Business Machines Corporation | Interrupt thresholding for SMT and multi processor systems |
CN1866231A (zh) * | 2005-05-18 | 2006-11-22 | 大唐移动通信设备有限公司 | 在嵌入式实时操作系统中实现逻辑中断优先级的方法 |
CN103743987A (zh) * | 2013-11-19 | 2014-04-23 | 广东威灵电机制造有限公司 | 电机控制系统中微处理器的adc采样故障检测方法 |
CN104579110A (zh) * | 2014-09-25 | 2015-04-29 | 湖南大学 | 一种高速永磁电机变频调速系统及方法 |
CN109698652A (zh) * | 2018-12-22 | 2019-04-30 | 西安航天动力研究所 | 火箭发动机双路步进电机同时基变速控制及角度测量方法 |
CN111752877A (zh) * | 2019-03-27 | 2020-10-09 | 阿里巴巴集团控股有限公司 | 一种处理器及其中的中断控制器 |
-
2021
- 2021-06-29 CN CN202110723943.7A patent/CN113419450A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0423094D0 (en) * | 2004-10-18 | 2004-11-17 | Ttp Communications Ltd | Interrupt control |
US20060112208A1 (en) * | 2004-11-22 | 2006-05-25 | International Business Machines Corporation | Interrupt thresholding for SMT and multi processor systems |
CN1632773A (zh) * | 2004-12-31 | 2005-06-29 | 北京中星微电子有限公司 | 芯片内的中断处理装置及方法 |
CN1866231A (zh) * | 2005-05-18 | 2006-11-22 | 大唐移动通信设备有限公司 | 在嵌入式实时操作系统中实现逻辑中断优先级的方法 |
CN103743987A (zh) * | 2013-11-19 | 2014-04-23 | 广东威灵电机制造有限公司 | 电机控制系统中微处理器的adc采样故障检测方法 |
CN104579110A (zh) * | 2014-09-25 | 2015-04-29 | 湖南大学 | 一种高速永磁电机变频调速系统及方法 |
CN109698652A (zh) * | 2018-12-22 | 2019-04-30 | 西安航天动力研究所 | 火箭发动机双路步进电机同时基变速控制及角度测量方法 |
CN111752877A (zh) * | 2019-03-27 | 2020-10-09 | 阿里巴巴集团控股有限公司 | 一种处理器及其中的中断控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1049985B1 (en) | Apparatus and method for initiating hardware priority management by software controlled register access | |
CN106569891B (zh) | 一种存储系统中任务调度执行的方法和装置 | |
WO1999038074A1 (en) | Method and apparatus for handling multiple level-triggered and edge-triggered interrupts | |
WO2009153620A1 (en) | A system, method and computer program product for scheduling a processing entity task | |
CN109933451B (zh) | 一种基于risc-v架构的异常和中断处理系统及方法 | |
CN105550029A (zh) | 一种进程调度方法及装置 | |
KR100782307B1 (ko) | 하드 디스크 드라이브의 동작 클럭 주파수를 제어하는방법, 기록매체, 및 하드 디스크 드라이브 | |
CN102334108B (zh) | 具有可指派通用寄存器组的处理器 | |
CN104391754A (zh) | 一种任务异常的处理方法及装置 | |
CN107526622B (zh) | Linux的快速异常处理方法及装置 | |
CN113419450A (zh) | 一种电机foc控制及运行方法、装置、电子设备及介质 | |
US20130117757A1 (en) | Method and apparatus for scheduling application programs | |
CN110083473B (zh) | 基于risc-v架构总线访问错误的改进系统及方法 | |
KR20160113142A (ko) | 동적 언어들로 된 인라인 캐시들에 대한 하드웨어 가속 | |
KR20160113143A (ko) | 동적 언어들로 된 인라인 캐시들에 대한 하드웨어 가속 | |
US6785883B1 (en) | Software system for tracing data | |
CN102737198A (zh) | 对象保护方法及装置 | |
TWI710956B (zh) | 用於處理資料之設備及方法和電腦程式 | |
US6112274A (en) | Method and apparatus for processing more than one interrupts without reinitializing the interrupt handler program | |
CN108701031B (zh) | 寄存器访问控制 | |
CN106021041B (zh) | 基于有限状态机的多周期非流水线cpu调试方法 | |
CN103412828A (zh) | 一种数据处理的方法和设备 | |
US20230169025A1 (en) | Direct memory access circuit, operation method thereof, and method of generating memory access command | |
CN115145687B (zh) | 一种用户态虚拟机任务的调度方法及装置 | |
US20040006677A1 (en) | Microcomputer and method for controlling a microcomputer |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210921 |
|
RJ01 | Rejection of invention patent application after publication |