A process and position variable motor control IP core and motor control system

By integrating a motor control IP core into an FPGA, the problems of high cost and easy damage in spacecraft motor control systems are solved, achieving flexible control and high reliability of motor flow and position, and making it suitable for motor devices with various position parameters.

CN122178801APending Publication Date: 2026-06-09NAT SPACE SCI CENT CAS
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
NAT SPACE SCI CENT CAS
Filing Date
2026-02-24
Publication Date
2026-06-09

AI Technical Summary

Technical Problem

In existing spacecraft motor control systems, the CPU plus FPGA control structure is costly and prone to damage due to human error, and it is difficult to achieve complex motor processes and position control.

Method used

Design a motor control IP core with variable flow and position, integrated in an FPGA, including an instruction parsing module, a large flow decomposition module, a small flow parameter reading module, a small flow decomposition module, a motor drive gating module, and a motor drive module, to realize motor flow and position control and reduce dependence on the CPU.

Benefits of technology

It achieves cost reduction, reduced operational difficulty and risk of mechanism damage without increasing CPU, adapts to multiple position parameters, supports real-time adjustment of process and position parameters, and improves control reliability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122178801A_ABST
    Figure CN122178801A_ABST
Patent Text Reader

Abstract

The application discloses a flow and position variable motor control IP core and a motor control system, and the IP core comprises: an instruction analysis module which analyzes data injection instructions to obtain a flow type, and triggers a large flow disassembly module or a small flow parameter reading module; the large flow disassembly module sends a plurality of disassembled small flow instruction codes to the instruction analysis module; the small flow parameter reading module reads motor action parameters from a flow parameter table and a position parameter table; the small flow disassembly module disassembles the motor action parameters into motor action instructions, and generates corresponding small flow completion or fault flags by a motor to position or fault flag; a motor drive gating module outputs motor instruction step numbers and target positions to corresponding motor drive modules according to the motor type of a current step, and obtains a to position or fault signal; and the motor drive module generates a drive signal to a motor drive chip, obtains position information of a motor position acquisition chip, and judges whether the motor is to position or fault.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to aerospace scientific payload controllers, specifically to a motor control IP core and motor control system with variable flow and position. Background Technology

[0002] In aerospace scientific payloads, motor controllers are often needed to control motor movements to reach different positions and achieve desired functions. A common motor controller architecture uses a Central Processing Unit (CPU) to record position parameters under different processes, calculate the corresponding motor pulse counts, and send them sequentially to a Field Programmable Gate Array (FPGA) for execution. The FPGA acts solely as a motor driver, generating motor drive pulses based on the number of motor pulses sent by the CPU to drive the motor. However, the CPU-plus-FPGA control architecture used in spacecraft is expensive. If only the FPGA is used as the motor driver, the number of motor pulses for each position needs to be manually issued; incorrect command transmission can easily lead to mechanical damage. Therefore, a motor process and position control IP core that can be integrated into an FPGA has been developed. This allows for motor control requirements to be met using only the FPGA, reducing the difficulty of manual operation, lowering the risk of mechanical damage, and saving on the cost of scientific payload equipment.

[0003] Commonly used FPGAs in spacecraft only function as motor drivers, generating motor drive pulses based on the number of motor pulses issued to drive the motor. This requires a CPU to record position parameters under different processes, calculate the corresponding number of motor pulses, and send them to the FPGA for execution in sequence. However, the CPU plus FPGA control structure is expensive. The motor control IP core designed in this invention can be integrated into the FPGA. It can realize complex motor processes and position control requirements using only the FPGA, which can reduce the difficulty of operation for personnel, reduce the risk of damage to the mechanism, and save the cost of scientific payload equipment. Summary of the Invention

[0004] To address the high cost of existing CPU-plus-FPGA control structures, this invention aims to overcome these shortcomings by disclosing a motor control IP core and control system with variable flow and position. By integrating the IP core into an FPGA, which simulates the functions implemented by a CPU, the flow and position control of the motor can be achieved without using a CPU.

[0005] In view of this, the present invention provides a motor control IP core with variable flow and position for aerospace scientific payloads, comprising: an instruction parsing module, a large-flow decomposition module, a small-flow parameter reading module, a small-flow decomposition module, a motor drive selection module, and a motor drive module; wherein, The instruction parsing module is used to parse the data injection instruction sent by the load management unit to obtain the process type. If the process type is a large process instruction, the large process decomposition module is triggered; otherwise, the small process parameter reading module is triggered. The large process decomposition module is used to decompose the large process instruction into multiple small process instruction codes and send them to the instruction parsing module in sequence; The small process parameter reading module is used to read the motor action parameters corresponding to the small process instruction from the process parameter table and the position parameter table and output them to the small process disassembly module. The small process decomposition module is used to decompose the motor action parameters into motor action commands, and generate corresponding small process completion flags or fault flags based on the motor arrival or fault flags and output them to the large process decomposition module. The motor drive selection module is used to output the motor command step number and target position to the corresponding motor drive module according to the motor type of the current step, and to obtain the current motor drive module's arrival or fault signal. The motor drive module is used to generate drive signals to the motor drive chip and obtain position information from the motor position acquisition chip to determine whether the motor is in position or malfunctioning.

[0006] Preferably, the process type includes large process instructions and small process instructions, wherein the large process instructions are the sequential execution of multiple small process instructions, and the small process instructions are the sequential execution of one or more motor actions.

[0007] Preferably, the instruction parsing module further includes: when receiving the small process instruction code decomposed by the large process decomposition module, generating the type of the small process instruction and the process parameter reading flag, and triggering the small process parameter reading module.

[0008] Preferably, the process parameter table is used to store the number of motor action steps corresponding to all sub-process instructions, the motor type of each step, and the instruction location address of each step. The position parameter table is used to store all instruction steps and target positions of all motors; By injecting long commands to modify the default values ​​of the process parameter table and position parameter table in real time, the process and position of motor control can be modified.

[0009] Preferably, the processing procedure of the small process parameter reading module includes: Based on the address corresponding to the small process instruction type, read the number of motor action steps, the motor type of each step, and the instruction location address of each motor action stored in the process parameter table. Based on the obtained instruction location address, read the instruction step number and target position for each motor action corresponding to each step in the position parameter table; The number of motor action steps, the motor type for each step, the number of instruction steps for each motor action, and the target position for each motor action are output to the small process decomposition module.

[0010] Preferably, the processing procedure of the small process decomposition module includes: Step 1: Receive the number of motor action steps, the motor type of each step, the instruction steps of each motor action, and the target position of each motor action from the small process parameter reading module. Step 2: Based on the motor type of the current motor action step, output the instruction number and target position of the current motor action to different motor drive modules; Step 3: If a motor position signal is received for the current motor action step, proceed to Step 2 and continue sending the motor command for the next motor action step until all motor action steps are completed. Then, generate a small process completion flag and output it to the large process disassembly module. If a motor fault signal is received, generate a small process fault flag, stop the current small process, and generate a small process fault flag and output it to the large process disassembly module.

[0011] Preferably, there is more than one motor drive module, which is connected to different motor drive chips and motor position acquisition chips respectively.

[0012] Preferably, the processing procedure of the motor drive module includes: The motor drive module outputs motor drive pulses indicating the number of steps to the motor drive chip. Once the motor stops and stabilizes, it reads the current motor position and compares it with the target position to determine if the motor has reached the correct position. If the difference between the actual position of the motor and the target position is within the resolver deviation threshold and the number of closed-loop adjustments is within the set number of motor closed-loop adjustments, then the motor is considered to be in position normally, and a motor position signal is generated. If the difference between the actual position of the motor and the target position exceeds the resolver deviation threshold, but the number of closed-loop adjustments is within the set range of the number of motor closed-loop adjustments, then the number of motor steps is adjusted according to the deviation between the actual and theoretical positions of the resolver. If the difference between the actual position and the target position of the motor exceeds the resolver deviation threshold, and the number of closed-loop adjustments exceeds the set number of motor closed-loop adjustments, then the motor is considered to be faulty, and a motor fault signal is generated.

[0013] Preferably, the IP core has a manual stop function. When an abnormal stop command is received during the execution of the large process instruction, the large process decomposition module, the small process decomposition module, and the motor drive module all stop working. When a process abnormal stop command is received during the execution of a small process instruction, both the small process disassembly module and the motor drive module stop working.

[0014] On the other hand, the present invention provides a motor control system for aerospace scientific payloads, wherein the system includes an FPGA integration process and a position-variable motor control IP core.

[0015] Compared with the prior art, the advantages of the present invention are: 1. The variable-flow and variable-position motor control IP core of this invention is implemented based on FPGA, without the need for an additional CPU; 2. This invention can be adapted to motor devices with various position parameters, enabling a universal design; 3. This invention can adjust the process and position parameters in real time through injected instructions, without requiring program recompilation; 4. The motor closed-loop control logic involved in this invention can achieve closed-loop control of motor position without proportional-integral-derivative control (PID), thus eliminating the complex controller parameter tuning process.

[0016] 5. This invention includes a process abnormality stop function, which provides flexibility for manual intervention to stop the process at any time, increases the reliability of the control scheme, and reduces the risk of device damage. Attached Figure Description

[0017] Figure 1 This is a block diagram of the motor flow and position control structure of the present invention; Figure 2 This is a diagram illustrating the process and location parameter storage and retrieval method of the present invention; Figure 3 This is the motor closed-loop control logic diagram of the present invention. Detailed Implementation

[0018] This invention provides a control method for motor flow and position control using only an FPGA. By integrating the IP core involved in this invention into the FPGA, motor flow and position control can still be achieved without using a CPU, saving the cost of the CPU in the controller. This IP core has been successfully used in the motor control system of the Chang'e 7 lunar probe. Furthermore, this invention provides a scheme with adjustable flow and position parameters, applicable to motor devices with different position parameters, achieving a universal design.

[0019] The core of this IP core lies in its hierarchical instruction execution architecture, where both process and position are variable. Instructions issued by the load management unit are parsed and broken down into smaller process sequences by the large-process decomposition module. Each smaller process dynamically reads action and position parameters from a parameter table and further decomposes them into motor drive instructions. The system controls motor execution and monitors position and fault status in real time through a dedicated drive module and gating logic, ultimately feeding the execution results back to the higher-level process. This design achieves flexible online configuration and highly reliable execution of the motor control process.

[0020] The technical solution of the present invention will be described in detail below with reference to the accompanying drawings and embodiments.

[0021] Example 1 Embodiment 1 of the present invention proposes a motor control IP core with variable flow and position. The IP core is connected to a load management unit, a motor drive chip, and a motor position acquisition chip, respectively. The IP core includes: an instruction parsing module, a large flow decomposition module, a small flow parameter reading module, a small flow decomposition module, a motor drive selection module, a motor 1 drive module, and a motor 2 drive module, wherein: (1) The instruction parsing module is used to parse the instructions sent by the load management unit to obtain the process type to be executed. The process instructions parsed by the instruction parsing module include two types: small process instructions and large process instructions. Large process instructions are the sequential execution of multiple small processes, and small processes may contain one or more motor actions. If the load management unit sends a large process instruction, the large process type is output to the large process decomposition module; if it sends a small process instruction, the small process type is output to the small process parameter reading module.

[0022] (2) The large process decomposition module is used to decompose the large process into multiple small processes and send the decomposed small process instruction codes to the instruction parsing module in sequence. After the current small process instruction code is sent to the instruction parsing module, it waits for the current small process execution completion flag. After receiving the execution completion flag, it continues to send the next small process instruction code to the instruction parsing module until all the small processes contained in the large process have been executed.

[0023] (3) Mini-process parameter reading module, used to read all parameters contained in the mini-process. The mini-process parameter reading module contains two parameter tables: one is the process parameter table, which stores the number of motor action steps corresponding to all mini-process types, the motor type of each step, and the instruction position address of each motor action; the other is the position parameter table, which stores the total number of instruction steps and target position involved in all motors.

[0024] Both the process parameter table and the position parameter table can be modified by changing the default values ​​to change the motor control process and position, or they can be modified in real time by injecting long commands.

[0025] The small process parameter reading module reads the number of motor action steps, the motor type of each action, and the position parameter address of each step stored in the process parameter table according to the address corresponding to the small process type. Then, based on the obtained position parameter address, it reads the corresponding motor step number and motor target position parameter from the position parameter table. Finally, it outputs the number of motor action steps, the motor type of each action, the instruction step number of each motor action, and the target position of each motor to the small process decomposition module.

[0026] (4) Small process decomposition module, which is used to decompose the small process parameters into motor action instructions for each step and generate small process completion or fault flags.

[0027] The small process decomposition module receives the number of motor action steps, motor type for each step, instruction steps for each step, and target position for each step from the small process parameter reading module. Then, based on the motor type of the current step, it outputs the instruction steps and target position of the current step to the different motor drive modules. If a motor position signal is received for the current step, the module continues to send motor instructions for the next step until all steps are completed, generating a small process completion flag and outputting it to the large process decomposition module. If a motor fault signal is received, a small process fault flag is generated, the current small process is stopped, and a small process fault flag is generated and output to the large process decomposition module.

[0028] (5) Motor drive gating module, used to select the motor command step number and target position, output the motor command step number and target position to the corresponding motor drive module according to the motor type of the current step, and select the current motor drive module's arrival or fault signal.

[0029] (6) Motor drive module, used to generate drive signals for motor drive chip and collect position information of motor position acquisition chip to determine whether the motor is in position or has a fault.

[0030] The motor drive module connects to the motor drive chip and the motor position acquisition chip. First, the motor drive module outputs motor drive pulses indicating the number of steps to the motor drive chip. Then, after the motor stops and stabilizes, it reads the current motor position and compares it with the target position to determine if the motor has reached its designated position. If the difference between the actual motor position and the target position is within the resolver deviation threshold, and the number of closed-loop adjustments is within the motor's closed-loop adjustment count, the motor is considered to have reached its designated position, and a motor position signal is generated. If the difference exceeds the resolver deviation threshold, but the number of closed-loop adjustments is still within the motor's closed-loop adjustment count, the motor step count is adjusted based on the deviation between the actual and theoretical resolver positions. If the difference exceeds the resolver deviation threshold, and the number of closed-loop adjustments exceeds the motor's closed-loop adjustment count, the motor is considered to be faulty, and a motor fault signal is generated.

[0031] This IP core is equipped with a process abnormal stop function. After issuing a process abnormal stop command, it can stop the large process disassembly module from continuing to issue small process commands, stop the small process disassembly module from continuing to issue generator command steps and target positions, and stop the motor drive module from sending drive pulses to the motor drive chip.

[0032] Example 2 Embodiment 2 of the present invention provides a motor control IP core with variable flow and position, the logic block diagram of which is as follows: Figure 1 As shown, all modules contained in this IP core are implemented inside the FPGA. In this embodiment, the FPGA used is Fudan Microelectronics' JFM4VSX55RT chip, and the development language is Verilog. The logic of this IP core executing a large-scale instruction action is as follows: 1. After the large process instruction code is issued, the instruction code of the data injection instruction is parsed by the instruction parsing module. After detecting that it is a large process instruction, the large process decomposition module is triggered.

[0033] The large process decomposition module reads the number of small processes, types of small processes, and execution order corresponding to different large processes based on the parsed large process instruction types, and then automatically generates small process instruction codes in sequence, triggering the instruction parsing module again.

[0034] 3. The instruction parsing module generates the sub-process type and process parameter reading flag based on the sub-process instruction code, and triggers the sub-process parameter reading module.

[0035] 4. The mini-process parameter reading module looks up process parameters in a table based on the mini-process type, such as... Figure 2As shown, the process parameter table specifies the number of motor action steps in different processes, the motor type for each step, and the storage address of the motor action position for each step. Then, based on the motor action position storage address, a position parameter lookup table is performed to read the corresponding motor instruction steps and motor target position. The number of motor action steps in the sub-process, the motor type for each step, the instruction steps for each step, and the target position of the motor for each step are output to the sub-process decomposition module, triggering the sub-process decomposition module's action.

[0036] The 5-step process breakdown module reads the motor type for each step and outputs the number of motor action instructions and the target position of the motor to the drive modules of different motors according to the motor type.

[0037] 6. Different motor drive modules drive the motor movement command steps, collect the actual motor position, and compare it with the target motor position, such as... Figure 3 As shown, if the deviation between the actual position and the target position of the motor exceeds the deviation threshold, the number of motor steps is adjusted according to the deviation between the actual position and the theoretical position. If the deviation between the actual position and the target position is within the allowable range within the specified number of motor closed-loop adjustments, and the motor does not malfunction, the motor is considered to be in position, and a motor position flag is returned to the small process disassembly module. If the deviation between the actual position and the target position is not within the allowable range, or a motor malfunction is detected, a motor malfunction flag is returned to the small process disassembly module.

[0038] 7. If the small process decomposition module receives a motor position flag, it first determines whether the current step is the last step. If it is not the last step, the step count is incremented by 1, and after a 10-second delay, the next step is performed, outputting the motor action command step number and motor target position to the motor drive module of the next step. If it is the last step, a small process completion flag is generated and returned to the large process decomposition module. If the small process decomposition module receives a motor fault flag, it exits the state machine and generates a small process fault flag, which is returned to the large process decomposition module.

[0039] Upon receiving a completion flag for a minor process, the 8 major process decomposition modules first determine if it is the last minor process. If not, the minor process count is incremented by 1, and after a 10-second delay, the instruction code for the next minor process is automatically generated, triggering the instruction parsing module. If it is the last minor process, the on-orbit process action is considered complete. If the major process decomposition module receives a fault flag for a minor process, it exits the state machine and stops the on-orbit process action.

[0040] 9. If it is necessary to manually stop the process during the execution of the large process instruction, an abnormal stop instruction can be issued. This will stop the large process decomposition module from issuing small process instructions, stop the small process decomposition module from issuing generator instruction steps and target positions, and stop the motor drive module from sending drive pulses to the motor drive chip.

[0041] The logic of this IP core executing a small process instruction action is the same as steps 3, 4, 5, 6, and 7 of executing a large process instruction action. If it is necessary to manually stop the process during the execution of the small process instruction, a process abnormal stop instruction can be issued. This will stop the small process disassembly module from continuing to issue generator instruction steps and target positions, and stop the motor drive module from sending drive pulses to the motor drive chip.

[0042] If it is necessary to modify the process parameter table or position parameter table stored in this IP core, it can be done by modifying the default value stored in the parameter table RAM, or by injecting a long instruction to rewrite the RAM and overwrite the original initial value.

[0043] It is worth noting that in the embodiments of the above system, the modules included are divided according to functional logic, but are not limited to the above division, as long as the corresponding functions can be achieved; in addition, the specific names of each functional module are only for easy differentiation and are not used to limit the scope of protection of the present invention.

[0044] Example 3 Embodiment 3 of the present invention provides a motor control system for aerospace scientific payloads, including an FPGA integration process and a position-variable motor control IP core.

[0045] Overview: The commonly used CPU plus FPGA control structure for spacecraft is expensive. The motor control IP core designed in this invention can be integrated into the FPGA, which can realize the motor control requirements using only the FPGA. This achieves the control purpose and saves the cost of scientific payload equipment. In addition, the motor control IP core described in this invention can be adapted to motor devices with different position parameters. The process parameters and position parameters can be modified to default values, and can also be modified in real time through instruction injection without modifying the program, which helps to shorten the equipment testing time.

[0046] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and are not intended to limit it. Although the present invention has been described in detail with reference to the embodiments, those skilled in the art should understand that modifications or equivalent substitutions to the technical solutions of the present invention do not depart from the spirit and scope of the technical solutions of the present invention, and all such modifications or substitutions should be covered within the scope of the claims of the present invention.

Claims

1. A motor control IP core with variable flow and position, used in aerospace scientific payloads, characterized in that, include: The system includes an instruction parsing module, a large-scale process decomposition module, a small-scale process parameter reading module, a small-scale process decomposition module, a motor drive selection module, and a motor drive module; among which, The instruction parsing module is used to parse the data injection instruction sent by the load management unit to obtain the process type. If the process type is a large process instruction, the large process decomposition module is triggered; otherwise, the small process parameter reading module is triggered. The large process decomposition module is used to decompose the large process instruction into multiple small process instruction codes and send them to the instruction parsing module in sequence; The small process parameter reading module is used to read the motor action parameters corresponding to the small process instruction from the process parameter table and the position parameter table and output them to the small process disassembly module. The small process decomposition module is used to decompose the motor action parameters into motor action commands, and generate corresponding small process completion flags or fault flags based on the motor arrival or fault flags and output them to the large process decomposition module. The motor drive selection module is used to output the motor command step number and target position to the corresponding motor drive module according to the motor type of the current step, and to obtain the current motor drive module's arrival or fault signal. The motor drive module is used to generate drive signals to the motor drive chip and obtain position information from the motor position acquisition chip to determine whether the motor is in position or malfunctioning.

2. The variable-flow and variable-position motor control IP core according to claim 1, characterized in that, The process type includes large process instructions and small process instructions, wherein the large process instruction is the sequential execution of multiple small process instructions, and the small process instruction is the sequential execution of one or more motor actions.

3. The variable-flow and variable-position motor control IP core according to claim 1, characterized in that, The instruction parsing module further includes: when it receives the small process instruction code decomposed by the large process decomposition module, it generates the type of the small process instruction and the process parameter reading flag, and triggers the small process parameter reading module.

4. The variable-flow and variable-position motor control IP core according to claim 1, characterized in that, The process parameter table is used to store the number of motor action steps corresponding to all sub-process instructions, the motor type of each step, and the instruction location address of each step. The position parameter table is used to store all instruction steps and target positions of all motors; By injecting long commands to modify the default values ​​of the process parameter table and position parameter table in real time, the process and position of motor control can be modified.

5. The variable-flow and variable-position motor control IP core according to claim 4, characterized in that, The processing steps of the small process parameter reading module include: Based on the address corresponding to the small process instruction type, read the number of motor action steps, the motor type of each step, and the instruction location address of each motor action stored in the process parameter table. Based on the obtained instruction location address, read the instruction step number and target position for each motor action corresponding to each step in the position parameter table; The number of motor action steps, the motor type for each step, the number of instruction steps for each motor action, and the target position for each motor action are output to the small process decomposition module.

6. The variable-flow and variable-position motor control IP core according to claim 1, characterized in that, The processing steps of the small process decomposition module include: Step 1: Receive the number of motor action steps, the motor type of each step, the instruction steps of each motor action, and the target position of each motor action from the small process parameter reading module. Step 2: Based on the motor type of the current motor action step, output the instruction number and target position of the current motor action to different motor drive modules; Step 3: If a motor position signal is received for the current motor action step, proceed to Step 2 and continue sending the motor command for the next motor action step until all motor action steps are completed. Then, generate a small process completion flag and output it to the large process disassembly module. If a motor fault signal is received, generate a small process fault flag, stop the current small process, and generate a small process fault flag and output it to the large process disassembly module.

7. The variable-flow and variable-position motor control IP core according to claim 1, characterized in that, There is more than one motor drive module, which is connected to different motor drive chips and motor position acquisition chips.

8. The variable-flow and variable-position motor control IP core according to claim 7, characterized in that, The processing steps of the motor drive module include: The motor drive module outputs motor drive pulses indicating the number of steps to the motor drive chip. Once the motor stops and stabilizes, it reads the current motor position and compares it with the target position to determine if the motor has reached the correct position. If the difference between the actual position of the motor and the target position is within the resolver deviation threshold and the number of closed-loop adjustments is within the set number of motor closed-loop adjustments, then the motor is considered to be in position normally, and a motor position signal is generated. If the difference between the actual position of the motor and the target position exceeds the resolver deviation threshold, but the number of closed-loop adjustments is within the set range of the number of motor closed-loop adjustments, then the number of motor steps is adjusted according to the deviation between the actual and theoretical positions of the resolver. If the difference between the actual position and the target position of the motor exceeds the resolver deviation threshold, and the number of closed-loop adjustments exceeds the set number of motor closed-loop adjustments, then the motor is considered to be faulty, and a motor fault signal is generated.

9. The variable-flow and variable-position motor control IP core according to claim 1, characterized in that, The IP core has a manual stop function. When an abnormal stop command is received during the execution of the large process instruction, the large process decomposition module, the small process decomposition module, and the motor drive module all stop working. When a process abnormal stop command is received during the execution of a small process instruction, both the small process disassembly module and the motor drive module stop working.

10. A motor control system for aerospace scientific payloads, characterized in that, The system includes the FPGA integration process and the position-variable motor control IP core.