ES2867929T3 - Controlador integrado para control de movimiento y control de motor - Google Patents

Controlador integrado para control de movimiento y control de motor Download PDF

Info

Publication number
ES2867929T3
ES2867929T3 ES18199464T ES18199464T ES2867929T3 ES 2867929 T3 ES2867929 T3 ES 2867929T3 ES 18199464 T ES18199464 T ES 18199464T ES 18199464 T ES18199464 T ES 18199464T ES 2867929 T3 ES2867929 T3 ES 2867929T3
Authority
ES
Spain
Prior art keywords
processor
data
control
processing core
operating system
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
Application number
ES18199464T
Other languages
English (en)
Inventor
Yan He
Shaoqiu Gong
Shuguo Zhang
Ruiqin Li
Jin Qian
Wenbin Tang
Qichao Wang
Yun Feng
Yuejin Hu
Dongping Fan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rtimeman Motion Control Co Ltd
Original Assignee
Rtimeman Motion Control Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Rtimeman Motion Control Co Ltd filed Critical Rtimeman Motion Control Co Ltd
Application granted granted Critical
Publication of ES2867929T3 publication Critical patent/ES2867929T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/21Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device
    • G05B19/25Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control
    • G05B19/251Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control the positional error is used to control continuously the servomotor according to its magnitude
    • G05B19/258Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control the positional error is used to control continuously the servomotor according to its magnitude with a combination of feedback covered by G05B19/253 - G05B19/256
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P29/00Arrangements for regulating or controlling electric motors, appropriate for both AC and DC motors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34008Asic application specific integrated circuit, single chip microcontroller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34069Shared memory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34208Motion controller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34287Plc and motion controller combined
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Manufacturing & Machinery (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Control Of Multiple Motors (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Programmable Controllers (AREA)
  • Numerical Control (AREA)
  • Multi Processors (AREA)
  • Control Of Electric Motors In General (AREA)

Abstract

Controlador integrado (40) para control de movimiento y control de motor, comprendiendo el controlador integrado (40): un primer procesador (41) configurado para ejecutar un sistema operativo y realizar por lo menos un control de movimiento, en el que el control de movimiento comprende calcular unos valores establecidos de pares cinemáticos de un objeto controlado en cada momento; un segundo procesador (42) configurado para realizar por lo menos un control de motor, en el que el control de motor comprende controlar la rotación de motores según los valores establecidos, que comprende por lo menos cualquiera o una combinación de entre un control de bucle de corriente de motor, un control de bucle de velocidad de motor, y un control de bucle de posición de motor; en el que, el segundo procesador (42) ejecuta el mismo sistema operativo que el primer procesador (41) en el inicio, a continuación, el segundo procesador (42) se desconecta y se reinicia y se reconfigura para ejecutar un sistema operativo diferente al del primer procesador (41) o no ejecutar ningún sistema operativo después del inicio; una memoria caché (43) acoplada con el primer procesador y el segundo procesador; una memoria compartida (50), que es un bloque de memoria cacheable dedicado con direcciones fijas especificadas por el sistema operativo ejecutado en el primer procesador; en el que la memoria compartida (50) mapea sobre la memoria caché; el primer procesador (41) y el segundo procesador (42) están configurados para compartir la memoria compartida (50) y, en consecuencia, realizar una transmisión de datos a través de la memoria caché durante los periodos de control de movimiento y control de motor; el primer procesador (41), el segundo procesador (42) y la memoria caché (43) están integrados en un mismo chip.

Description

DESCRIPCIÓN
Controlador integrado para control de movimiento y control de motor
Campo técnico
La presente invención se refiere en general a un controlador y, más particularmente, a un controlador integrado para control de movimiento y control de motor.
Técnica anterior
El control de movimiento y el control de motor son tecnologías nucleares en el campo de la automatización industrial. El controlador de movimiento y el controlador de motor son dos dispositivos de control críticos comunes utilizados en aparatos automáticos que realizan operaciones complicadas. Los controladores integrados para el control de movimiento y el control de motor pueden aplicarse también en otros campos tales como el campo de los vehículos aéreos no tripulados.
Convencionalmente, la mayoría de los sistemas automatizados industriales, como robots o máquinas herramienta a gran escala adoptan la arquitectura de control distribuido. En una arquitectura de control distribuido, un controlador de movimiento trabaja junto con múltiples controladores de motor. La transmisión de datos entre el controlador de movimiento y el controlador de motor y entre los controladores de motor se consigue a través de buses como buses de campo.
Dicha arquitectura de control distribuido presenta una pluralidad de desventajas conocidas. Por ejemplo, el excesivo hardware puede llevar a elevados costes de hardware y la ocupación de espacios grandes. Además, el protocolo de comunicación de bus es vulnerable a interferencias y afronta problemas de cuellos de botella en volúmenes de transmisión de datos y tasas de transmisión de datos.
En consecuencia, el concepto de “integración de accionamiento y control” es propuesto por la industria para obtener un controlador industrial que integra las funciones del controlador de movimiento y el controlador de motor. Sin embargo, el controlador industrial integrado convencional de accionamiento y control es meramente una simple combinación física del controlador de movimiento y el controlador de motor. Como resultado, la mejora en la cooperación de los dos controladores es limitada.
El documento US 2018/065244 A1 divulga un dispositivo de control que incluye una interfaz para emitir un valor de orden hacia un accionador de motor adaptado para accionar un motor, una parte de almacenamiento adaptada para almacenar una o más órdenes para especificar un comportamiento del motor accionado por el accionador de motor, y una parte de procesamiento que incluye un primer circuito aritmético y un segundo circuito aritmético.
El documento US 2003/230998 A1 divulga un sistema de control distribuido por robot que incluye un controlador principal que emite una primera orden y una pluralidad de controladores de comunicación conectados al controlador principal a modo de estructura de árbol.
El documento WO 2014/110748 A1 divulga un controlador de movimiento que incluye unos medios de compartición de información y una pluralidad de módulos de función.
El documento US 2013/307459 A1 divulga un generador de perfil que puede calcular un perfil de movimiento de curva ST que incluye una referencia de fluctuación que varía continuamente a lo largo del tiempo durante por lo menos uno de los segmentos de perfil de movimiento.
Breve sumario de la divulgación
En consecuencia, un objetivo de la presente invención es proporcionar un controlador integrado para el control de movimiento y el control de motor, que pueden mejorar de manera fiable y estable la tasa de interacción entre la parte de control de movimiento y la parte de control de motor.
Con el fin de resolver el problema técnico anterior, la presente invención proporciona un controlador integrado para el control de movimiento y el control de motor que comprende un primer procesador, un segundo procesador, una memoria caché y una memoria compartida. El primer procesador está configurado para ejecutar un sistema operativo y realizar por lo menos el control de movimiento, en el que el control de movimiento comprende calcular valores establecidos de pares cinemáticos de un objeto controlado en cada momento. El segundo procesador está configurado para realizar por lo menos el control de motor y normalmente no para ejecutar el sistema operativo, en el que el control de motor comprende controlar la rotación de motores según los valores establecidos, que comprende por lo menos cualquiera o una combinación de entre control de bucle de corriente de motor, control de bucle de velocidad de motor y control de bucle de posición de motor. La memoria caché está acoplada al primer procesador y al segundo procesador. La memoria compartida es un bloque de memoria cacheable dedicada con direcciones fijas especificadas por el sistema operativo. La memoria compartida mapea sobre la memoria caché. El primer procesador y el segundo procesador están configurados para compartir la memoria compartida y, en consecuencia, realizar una transmisión de datos a través de la memoria caché durante los periodos de control de movimiento y control de motor. El primer procesador, el segundo procesador y la memoria caché están integrados en un mismo chip.
En una forma de realización de la presente invención, antes del control de movimiento y del control de motor, el controlador integrado está configurado para realizar las siguientes operaciones: iniciar el primer procesador y el segundo procesador por multiprocesamiento simétrico; ejecutar el sistema operativo en el primer procesador y el segundo procesador; desconectar el segundo procesador y mantener el sistema operativo ejecutándose individualmente en el primer procesador; reiniciar y reconfigurar el segundo procesador para hacer que el segundo procesador no ejecute normalmente el sistema operativo.
En una forma de realización de la presente invención, el primer procesador está configurado para escribir datos de control de movimiento en la memoria caché, el segundo procesador está configurado para leer los datos de control de movimiento de la memoria caché, comprendiendo los datos de control de movimiento datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza para los pares cinemáticos o los motores.
En una forma de realización de la invención, el segundo procesador está configurado para escribir datos de realimentación en la memoria caché, el primer procesador está configurado para leer la realimentación de la memoria caché, comprendiendo los datos de realimentación datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza de los pares cinemáticos o los motores.
La presente invención proporciona también un controlador integrado para control de movimiento y control de motor que comprende un primer procesador, un segundo procesador, una memoria caché, una memoria compartida y un dispositivo lógico programable. El primer procesador está configurado para ejecutar un sistema operativo y realizar por lo menos un control de movimiento, comprendiendo el control de movimiento calcular valores establecidos de pares cinemáticos de un objeto controlado en cada momento. El segundo procesador está configurado para realizar por lo menos un control de motor y normalmente no para ejecutar el sistema operativo, comprendiendo el control de motor controlar la rotación de los motores según los valores establecidos, que comprenden por lo menos cualquiera o una combinación de entre control de bucle de corriente de motor, control de bucle de velocidad de motor y control de bucle de posición de motor. La memoria caché está acoplada al primer procesador y al segundo procesador. La memoria compartida es un bloque de memoria cacheable dedicado con direcciones fijas especificadas por el sistema operativo. El dispositivo lógico programable está acoplado con el segundo procesador y está configurado para realizar el control de motor junto con el segundo procesador. La memoria compartida mapea sobre la memoria caché. El primer procesador y el segundo procesador están configurados para compartir la memoria compartida y, en consecuencia, realizar una transmisión de datos a través de la memoria caché en los periodos de control de movimiento y control de motor. El primer procesador, el segundo procesador y la memoria caché están integrados en un mismo chip.
En una forma de realización de la presente invención, el primer procesador está configurado para escribir datos de control de movimiento en la memoria caché, el segundo procesador está configurado para leer los datos de control de movimiento de la memoria caché, comprendiendo los datos de control de movimiento datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza para los pares cinemáticos o los motores.
En una forma de realización de la invención, el segundo procesador está configurado para escribir datos de realimentación en la memoria caché, el primer procesador está configurado para leer la realimentación de la memoria caché, comprendiendo los datos de realimentación datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza de los pares cinemáticos o los motores.
En una forma de realización de la invención, un reloj del dispositivo lógico programable y un reloj del segundo procesador están sincronizados. Cuando el segundo procesador lee datos en el dispositivo lógico programable o los escribe en este, el dispositivo lógico programable ancla los datos leídos o escritos.
En una forma de realización de la presente invención, antes del control de movimiento y del control de motor, el controlador está configurado para realizar las siguientes operaciones: iniciar el primer procesador y el segundo procesador por multiprocesamiento simétrico; ejecutar el sistema operativo en el primer procesador y el segundo procesador; desconectar el segundo procesador y mantener el sistema operativo ejecutándose individualmente en el primer procesador; reiniciar y reconfigurar el segundo procesador para hacer que el segundo procesador no ejecute normalmente el sistema operativo.
La presente invención proporciona también un controlador integrado para control de movimiento y control de motor que comprende un primer procesador, un segundo procesador, una memoria caché, una memoria compartida y un dispositivo lógico programable. El primer procesador está configurado para ejecutar un sistema operativo y realizar por lo menos un control de movimiento, comprendiendo el control de movimiento calcular valores establecidos de pares cinemáticos de un objeto controlado en cada momento. El segundo procesador está configurado para realizar por lo menos un control de motor y normalmente no para ejecutar el sistema operativo, comprendiendo el control de motor controlar la rotación de los motores según los valores establecidos, que comprenden por lo menos cualquiera o una combinación de entre control de bucle de corriente de motor, control de bucle de velocidad de motor y control de bucle de posición de motor. La memoria caché está acoplada con el primer procesador y el segundo procesador. La memoria compartida es un bloque de memoria cacheable dedicado con direcciones fijas especificadas por el sistema operativo. El dispositivo lógico programable está acoplado con el segundo procesador y está configurado para realizar el control de motor junto con el segundo procesador. La memoria compartida mapea sobre la memoria caché. El primer procesador y el segundo procesador están configurados para compartir la memoria compartida y, en consecuencia, realizar una transmisión de datos a través de la memoria caché en los periodos de control de movimiento y control de motor. El primer procesador, el segundo procesador, la memoria caché y el dispositivo lógico programable están integrados en un mismo chip.
En una forma de realización de la presente invención, el primer procesador está configurado para escribir datos de control de movimiento en la memoria caché, el segundo procesador está configurado para leer los datos de control de movimiento de la memoria caché, comprendiendo los datos de control de movimiento datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza para los pares cinemáticos o los motores.
En una forma de realización de la invención, el segundo procesador está configurado para escribir datos de realimentación en la memoria caché, el primer procesador está configurado para leer la realimentación de la memoria caché, comprendiendo los datos de realimentación, datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza de los pares cinemáticos o los motores.
En una forma de realización de la presente invención, antes del control de movimiento y del control de motor, el controlador está configurado para realizar las siguientes operaciones: iniciar el primer procesador y el segundo procesador por multiprocesamiento simétrico; ejecutar el sistema operativo en el primer procesador y el segundo procesador; desconectar el segundo procesador y mantener el sistema operativo ejecutándose individualmente en el primer procesador; reiniciar y reconfigurar el segundo procesador para hacer que el segundo procesador no ejecute normalmente el sistema operativo.
En comparación con la tecnología convencional, la presente invención proporciona un controlador con altas prestaciones en tiempo real a través de una memoria caché compartida y una configuración especial del sistema. Además, puesto que el sistema de integración de accionamiento y control está incorporado en un solo chip, la transmisión de datos se realiza en el interior del chip sin interferencia externa, lo que asegura una transmisión de datos apropiada y fiable. Además, el sistema de integración de accionamiento y control reduce también la redundancia del hardware. Puesto que el sistema de integración de accionamiento y control puede materializarse utilizando un único chip SOC con elementos de circuito periféricos necesarios, se reduce también la ocupación del hardware.
Breve descripción de los dibujos
Con el fin de que las soluciones técnicas de la presente invención puedan entenderse más completamente, las formas de realización de la presente invención se describirán ahora en detalle en lo que sigue con referencia a los dibujos que se acompañan. Principalmente, los dibujos se utilizan sustancialmente para ilustrar las formas de realización de la invención y no deberán utilizarse como limitación de la misma.
La figura 1 es un diagrama de bloques de un controlador según una forma de realización de la presente invención;
La figura 2 es un diagrama de circuito de un controlador según una primera forma de realización de la presente invención;
La figura 3 es un diagrama que ilustra el funcionamiento del controlador según la primera forma de realización de la presente invención;
La figura 4 es un diagrama de circuito de un controlador de acuerdo con una segunda forma de realización de la presente invención;
La figura 5 es un diagrama que ilustra el funcionamiento del controlador de acuerdo con la segunda forma de realización de la presente invención;
La figura 6 es un diagrama de circuito de un controlador de acuerdo con una tercera forma de realización de la presente invención;
La figura 7 es un diagrama de flujo que ilustra un procedimiento para realizar el control de movimiento y el control de motor por un controlador integrado según una forma de realización de la presente invención;
La figura 8 es un diagrama que ilustra el primer procesador y el segundo procesador cargando códigos según una forma de realización de la presente invención;
La figura 9 es un diagrama que ilustra ciclos de sincronización y actualización del segundo procesador y el dispositivo lógico programable según una forma de realización de la presente invención;
La figura 10 es un diagrama que ilustra registros de los dispositivos lógicos programables según una forma de realización de la presente invención.
Descripción detallada de las formas de realización
Con el fin de que los objetivos, características y ventajas de la presente invención puedan entenderse más completamente, las formas de realización de la presente invención se describirán a continuación en detalle en lo que sigue haciendo referencia a los dibujos adjuntos.
Como se utilizan en la presente memoria, las formas singulares “un”, “una”, “el” y “ la” están destinadas a incluir también las formas plurales a menos que el contexto indique claramente otra cosa. Se entenderá además que los términos “comprende” y/o “que comprende”, cuando se utilizan en esta memoria, especifican la presencia de características, números enteros, etapas, operaciones, elementos y/o componentes expuestos, pero no impiden la presencia o adición de una o más características, números enteros, etapas, operaciones, elementos, componentes y/o grupos adicionales de los mismos.
Asimismo, los términos “acoplar”, “conectar” están destinados a designar un acoplamiento o conexión directo o indirecto. En consecuencia, si un dispositivo está acoplado a otro dispositivo, esa conexión puede ser a través de una conexión directa o a través de una conexión indirecta por medio de otros componentes y conexiones, a menos que el contexto indique claramente otra cosa. El término “y/o” está destinado a indicar cualquiera o todas las combinaciones de uno o más componentes enumerados.
Las formas de realización de la presente invención describen un controlador que presenta una función de control de movimiento y una función de control de motor. La figura 1 es un diagrama de bloques del controlador según una forma de realización de la presente invención. Se entiende por los expertos en la materia que el control de movimiento se refiere al cálculo de movimientos diana de pares cinemáticos de un objeto controlado en cada momento en aplicaciones específicas. En la presente memoria, el par cinemático se refiere a una conexión móvil entre dos cuerpos del objeto controlado en contacto entre ellos que impone restricciones sobre su movimiento relativo tal como una junta. El control de movimiento pretende obtener la relación entre los valores establecidos de pares cinemáticos del objeto controlado y el tiempo, así como generar un flujo correspondiente de datos “valores establecidos de pares cinemáticos en función del tiempo” (información de datos), a pesar de los cambios en las etapas de cálculo específicas, cálculo de dianas, cálculo de parámetros y variables en diferentes aplicaciones. Los valores establecidos de pares cinemáticos pueden ser uno o más de entre la posición, la velocidad, la aceleración, la fuerza y el momento de fuerza de los pares cinemáticos.
El control de movimiento controla la rotación de los motores según los “valores establecidos de pares cinemáticos”. En una forma de realización de la presente invención, los valores establecidos de pares cinemáticos se convierten en valores dados de motores de juntas del objeto controlado. Los valores dados de motores pueden ser uno o más de entre el ángulo rotacional, velocidad rotacional, par del motor. La transición de los valores dados de motores desde los valores establecidos de pares cinemáticos puede realizarse por la parte de control de movimiento o la parte de control de motor, que no está limitada en la presente memoria. En consecuencia, los valores establecidos de pares cinemáticos se transmiten a la parte de control de motor puntualmente en momentos predeterminados de tal manera que la parte de control de motor pueda controlar en consecuencia la rotación de los motores. Cuando los motores de todos los ejes alcanzan sus valores dados correspondientes de motor dentro del tiempo requerido, el movimiento resultante del objeto controlado se consigue como se esperaba. Se observa que, en la presente invención, se espera que la parte de control de motor controle múltiples ejes simultánea y rápidamente para asegurar la sincronización multieje y el movimiento resultante apropiado. Además, se espera también que la parte de control de motor consiga una elevada frecuencia en la actualización y ejecución de datos de manera que se cumplan los requisitos de la precisión de movimiento y la continuidad de movimiento. Como se muestra en la figura 1, en una forma de realización de la presente invención, el controlador integrado 10 comprende un controlador de movimiento 11 y un controlador de motor 12. El controlador de movimiento 11 puede realizar la función de control de movimiento antes mencionada, el controlador de motor 12 puede realizar la función de control de motor antes mencionada. Una consola portátil es un ordenador principal para el controlador de movimiento 11, para enviar o editar instrucciones de tarea de aplicación al controlador de movimiento. El controlador de movimiento recibe las instrucciones procedentes de la consola portátil y realiza la planificación de la trayectoria de movimiento según las instrucciones, y transmite entonces los datos de control de movimiento, tales como los valores dados de motores de múltiples ejes al controlador de motor 12. El controlador de motor 12 produce una señal de control (como señal PWM) según los valores dados y emite la señal de control hacia un accionador de motor 13 por el que se accionan los motores.
En las formas de realización de la presente invención, el controlador 10 puede utilizarse en diversas aplicaciones tales como robots eléctricos, máquinas herramienta de control numérico, aeronaves eléctricas de tipo multirrotor, electromóviles, prótesis mecánicas, manos mecánicas, vehículos móviles eléctricos, etc., para realizar el control de movimiento y el control de motor para aparatos accionados por motor coordinados de múltiples ejes.
En las formas de realización de la presente invención, la cantidad de ejes de motor no está limitada y pueden ser 6 u 8, o más o menos.
Actualmente, en un sistema convencional de automatización de múltiples ejes, la transmisión de datos entre el controlador de movimiento y el controlador de motor, y entre los controladores de motor se consigue a través de buses archivados. En la forma de realización de la presente invención, se mejora dicho protocolo de comunicación entre el controlador de movimiento y los controladores de motor.
Primera forma de realización
La figura 2 es un diagrama de circuito de un controlador según una primera forma de realización de la presente invención. Como se muestra en la figura 2, el controlador integrado 20 para el control de movimiento y el control de motor comprende un primer núcleo de procesamiento 21, un segundo núcleo de procesamiento 22, una memoria caché 23 y una memoria compartida 30. El primer núcleo de procesamiento 21 está configurado para ejecutar un sistema operativo y realizar por lo menos el control de movimiento. El segundo núcleo de procesamiento 22 está configurado para realizar el control de motor y normalmente no ejecutar el sistema operativo. En la presente memoria, “normalmente” se define como la mayor parte del tiempo. La memoria caché, como es conocido por los expertos en la materia, es una memoria entre un procesador y una memoria principal. La memoria caché funciona más rápido que la memoria principal a una velocidad casi próxima al procesador. La memoria caché 23 puede ser una memoria caché Nivel 2 (memoria caché L2) para un procesador. Se entiende que la memoria caché 23 puede ser de otros niveles. La memoria caché 23 está acoplada al primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22. La memoria compartida 30 es un bloque de memoria cacheable dedicado con direcciones fijas, que es especificado por el sistema operativo ejecutado en el primer núcleo de procesamiento 21. La memoria compartida 30 mapea sobre la memoria caché 23. El primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 están configurados para compartir la memoria compartida 30 y, en consecuencia, realizar una transmisión de datos a través de la memoria caché 23 durante los periodos del control de movimiento y el control de motor. El primer procesador, el segundo procesador y la memoria caché están integrados en un mismo chip. Por ejemplo, la memoria compartida 30 mapea sobre la memoria caché 23 a través de un mapeo de direcciones. Cuando la memoria compartida 30 mapea sobre la memoria caché 23, la transmisión de datos se realiza en la memoria caché 23 que mejora la tasa de transmisión en 8-10 veces en comparación con el intercambio directo de datos en una memoria física.
En el contexto de la presente invención, el núcleo de procesamiento es una CPU. La CPU puede contener también una memoria caché, como una memoria caché Nivel 1 (memoria caché L1). Múltiples CPU pueden acoplarse a la memoria caché L2 para realizar la comunicación entre ellas.
En la arquitectura de procesador actual, múltiples núcleos de procesamiento que comparten la misma memoria caché están usualmente integrados en un mismo chip de procesamiento. Por tanto, en la forma de realización, el primer núcleo de procesamiento 21, el segundo núcleo de procesamiento 22 y la memoria caché 23 están integrados en un mismo chip, tal como un chip de procesamiento.
En la forma de realización, el primer núcleo de procesamiento 21 ejecuta el sistema operativo y realiza por lo menos el control de movimiento. El sistema operativo puede supervisar el funcionamiento de todo el controlador. El sistema operativo puede realizar también tareas de aplicación específicas, como la tarea de control de movimiento. La tarea de control de movimiento pretende calcular movimientos diana de pares cinemáticos de un objeto controlado en cada momento. La implementación del control de movimiento puede ser diversa. Por ejemplo, según los requisitos de aplicación, diferentes algoritmos de planificación de trayectorias y el software de análisis de tareas pueden desarrollarse para realizar diversas planificaciones de trayectorias y conversiones de bloques de unión. Los algoritmos específicos para dichas planificaciones de trayectorias y conversiones de bloques de unión pueden ser también ampliamente diferentes según las aplicaciones. Por ejemplo, pueden aplicarse algoritmos cinemáticos directos y algoritmos cinemáticos inversos en robots industriales; pueden aplicarse algoritmos de control de vuelo de UAV en UAV. Es obvio para los expertos en la materia la implementación de la función de control de movimiento cuando se requiera.
En la forma de realización, el sistema operativo es un sistema Linux.
El primer núcleo de procesamiento 21 calcula uno o más de entre la posición, la velocidad, la aceleración, la fuerza y el momento de fuerza de los pares cinemáticos del objeto controlado por el controlador 20 en cada momento, que se toman como valores establecidos de pares cinemáticos. En la forma de realización, el primer núcleo de procesamiento 21 convierte también los valores establecidos de pares cinemáticos en valores dados de motores de las juntas del objeto controlado en cada momento. Los valores dados de motores incluyen la posición, la velocidad, la aceleración, la fuerza, el momento de fuerza de los motores o la combinación de los mismos. El primer núcleo de procesamiento 21 emite los valores dados de motores hacia el segundo núcleo de procesamiento 22 en tiempo predeterminado. Alternativamente, en otras formas de realización, el primer núcleo de procesamiento 21 puede no realizar la conversión de valores establecidos de pares cinemáticos en valores dados de motores. El primer núcleo de procesamiento 21 emite directamente los valores establecidos de pares cinemáticos hacia el segundo núcleo de procesamiento 22, a continuación, el segundo núcleo de procesamiento 22 los convierte en los valores dados de motores y realiza el control de motor correspondiente.
En la forma de realización, el segundo núcleo de procesamiento 22 realiza el control de motor sin ejecutar normalmente el mismo sistema operativo que el primer núcleo de procesamiento 21 o sin ejecutar ningún sistema operativo. Según su asignación, el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 funcionan normalmente en una arquitectura de multiprocesamiento asimétrico. El segundo núcleo de procesamiento 22 controla el accionador de motor según los valores dados de motores para accionarlos de manera que cumplan los requisitos rápida y establemente. El control de motor implica el control de bucle de corriente, el control de bucle de velocidad y/o el control de bucle de posición. El control de bucle diferente puede implementarse según diferentes valores dados de motores. En general, cuando el valor dado es un valor posicional, se requiere que se calculen los tres bucles; cuando el valor dado es un valor relacionado con la velocidad (valor de velocidad o valor de aceleración), se requiere que se calculen el bucle de corriente y el bucle de velocidad; cuando el valor dado es un valor de fuerza o valor de momento de fuerza, se requiere que se calcule el bucle de corriente. En consecuencia, el segundo núcleo de procesamiento 22 realiza alternativamente el control de bucle de corriente, o la combinación del control de bucle de corriente y el control de bucle de velocidad, o la combinación del control de bucle de corriente, el control de bucle de velocidad y el control de bucle de posición, para conseguir la tarea de control de motor. Además, puede modificarse la asignación de las tareas entre el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22. Por ejemplo, el primer núcleo de procesamiento 21 realiza el control de bucle de posición, el segundo núcleo de procesamiento 22 realiza el control de bucle de velocidad y el control de bucle de corriente; o el primer núcleo de procesamiento 21 realiza el control de bucle de posición y el control de bucle de velocidad, el segundo núcleo de procesamiento 22 realiza el control de bucle de corriente. La asignación de tareas se determina según los requisitos de la tasa de cálculo de bucle y las prestaciones de la plataforma de hardware.
El segundo núcleo de procesamiento 22 calcula la corriente por la que el motor puede alcanzar la posición, la velocidad, la aceleración, la fuerza o el momento de fuerza requeridos de los valores dados de motores y emite una señal de accionamiento (como una señal PWM) hacia dispositivos de potencia tales como dispositivos IGBT, dispositivos IPM según los resultados calculados para accionar los motores.
En una forma de realización, el segundo núcleo de procesamiento 22 ejecuta un sistema operativo diferente al del primer núcleo de procesamiento 21. Por ejemplo, el segundo núcleo de procesamiento 22 ejecuta un sistema operativo más optimizado. En otra forma de realización, el segundo núcleo de procesamiento 22 no ejecuta ningún sistema operativo.
En algunas formas de realización, el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 son núcleos ARM. Por ejemplo, cada núcleo de procesamiento es un ARM Cortex-A9 MPCore, 4000 MIPS.
Convencionalmente, en una arquitectura de multiprocesamiento asimétrico, los núcleos de procesamiento no comparten una memoria caché. A diferencia de la técnica anterior, en la forma de realización de la presente invención está previsto compartir una memoria compartida a través de la memoria caché en una arquitectura de multiprocesamiento asimétrico. Aunque el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 utilizan la arquitectura de multiprocesamiento asimétrico, comparten todavía la memoria caché 23 y comparten en consecuencia la memoria compartida a través de la memoria caché.
Con el fin de implementar dicha compartición, el controlador está configurado para realizar las operaciones siguientes antes del control de movimiento y el control de motor:
En primer lugar, iniciar un sistema operativo Linux en el primer procesador y el segundo procesador por multiprocesamiento simétrico. Definir que un bloque de memoria sea la memoria compartida, asignar la memoria compartida para que sea una memoria I/O de tal manera que se mantengan las direcciones de la memoria compartida en lugar de asignarse a procesos del sistema operativo y la memoria compartida está configurada para ser cacheable. Desconectar el segundo procesador a través del sistema operativo. En este momento, el primer núcleo de procesamiento ejecuta el sistema operativo individualmente y utiliza la memoria caché L2. El primer núcleo de procesamiento es capaz de acceder a la memoria compartida de una manera cacheable. Seguidamente, reiniciar y reconfigurar el segundo procesador para hacer que el segundo procesador no ejecute normalmente el sistema operativo. El segundo núcleo de procesamiento está reconfigurado para utilizar la memoria caché L2 y acceder a la memoria compartida de una manera cacheable.
Gracias a los medios anteriores, los núcleos de procesamiento son capaces de compartir la memoria compartida en una arquitectura de multiprocesamiento asimétrico.
A partir de lo anterior, el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 están configurados para transferir datos a través de la memoria caché 23 (memoria caché L2) durante los periodos de control de movimiento y control de motor. Específicamente, durante el periodo de control de movimiento, el primer núcleo de procesamiento 21 escribe unos datos de control de movimiento (como valores establecidos de pares cinemáticos o valores dados de motor) en la memoria caché 23, mientras que el segundo núcleo de procesamiento 22 lee los datos de control de movimiento de la memoria caché 23. Como se menciona anteriormente, en las formas de realización de la presente invención, los datos de control de movimiento comprenden datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza para los pares cinemáticos o los motores, y se determinan según la asignación de tareas entre el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22. Correspondientemente, el segundo núcleo de procesamiento 22 escribe datos de realimentación en la memoria caché 23, mientras que el primer núcleo de procesamiento 21 lee la realimentación de la memoria caché 23. Los datos de realimentación comprenden datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza de los pares cinemáticos o los motores. Cuando los datos de control de movimiento son datos de posición, entonces los datos de realimentación comprenden generalmente datos de posición, y pueden comprender además datos relacionados con la velocidad, datos de fuerza y datos de momento de fuerza. Cuando los datos de control de movimiento son datos relacionados con la velocidad, entonces los datos de realimentación comprenden datos relacionados con la velocidad y pueden comprender además datos de posición, datos de fuerza y datos de momento de fuerza. Se entiende que los datos de realimentación pueden no relacionarse tampoco con los datos de control de movimiento. Por ejemplo, los datos de realimentación pueden comprender normalmente uno o más de entre datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y datos de momento de fuerza. En algunas aplicaciones, los datos de realimentación pueden ser datos de posición o datos de orientación del objeto controlado (como la orientación o la velocidad de un UAV o electromóvil).
Para un sistema de control de un aparato de múltiples ejes que requiere una trayectoria precisa y regular, se espera que la parte de control de movimiento del sistema de control pueda transmitir de forma fiable los valores establecidos de pares cinemáticos o valores datos de motores a la parte de control de motor en un periodo de tiempo corto y consistente. En la forma de realización, el primer núcleo de procesamiento y el segundo núcleo de procesamiento trabajan en una arquitectura de multiprocesamiento asimétrico de manera que el segundo núcleo de procesamiento para el control de motor pueda ejecutar un sistema operativo simple diferente al del primer núcleo de procesamiento o no ejecutar un sistema operativo mientras los dos núcleos de procesamiento comparten la memoria caché, asegurando así una transmisión de datos de alta velocidad con altas prestaciones en tiempo real (altas prestaciones en tiempo real significa baja latencia y baja fluctuación).
La figura 3 es un diagrama que ilustra el funcionamiento del controlador según la primera forma de realización de la presente invención. Como se muestra en la figura 3, el primer núcleo de procesamiento 21 genera y emite los datos de control de movimiento hacia el segundo núcleo de procesamiento 22. El segundo núcleo de procesamiento 22 realiza el control de motor según los datos de control de movimiento y emite una señal de accionamiento hacia el accionador de motor 31, el accionador de motor 31 emite corriente para controlar la rotación del motor 32. Los primeros datos de realimentación recogidos del motor 32 se transmiten al segundo núcleo de procesamiento 22. El segundo núcleo de procesamiento 22 emite segundos datos de realimentación hacia el primer núcleo de procesamiento 21. Los primeros datos de realimentación pueden comprender uno o más de entre datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y datos de momento de fuerza. La segunda realimentación puede obtenerse completamente a partir de los primeros datos de realimentación o puede no obtenerse totalmente a partir de los primeros datos de realimentación. Por ejemplo, los segundos datos de realimentación pueden comprender datos generados por el segundo núcleo de procesamiento 22. Como se muestra en la figura 3, la comunicación entre el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 se materializa a través de la memoria caché 23 como se muestra en la figura 2. Cuando se requiera, los primeros datos de realimentación o los segundos datos de realimentación pueden no ser necesarios en control de bucle local o control de bucle completo, lo que no afectará a la función y las prestaciones básicas de todo el sistema de control.
Puesto que acceder a una memoria caché es mucho más rápido que acceder a una memoria principal, se mejora ampliamente la velocidad de funcionamiento del primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22. Particularmente, el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 están integrados en un único chip SOC que presenta una excelente capacidad de procesamiento de datos, pudiendo materializarse así una transmisión de datos de alta velocidad dentro del chip SOC. En la forma de realización que emplea dos núcleos ARM-Contex A9 como el primer y el segundo núcleos de procesamiento, el controlador funciona con una latencia media de 19 ps y una latencia máxima de 59 ps. El controlador de movimiento y el controlador de motor pueden transmitir datos a una tasa de 10 kb (aproximadamente, volumen de datos para motores de 8 ejes) por microsegundo. El bucle de posición se actualiza cada 200 microsegundos, mientras la fluctuación de datos está por debajo de 1 microsegundo, esto es, la tasa de fluctuación es de 0,5%.
En una forma de realización, el controlador 20 comprende además una memoria principal que contiene la memoria compartida 30.
La presente invención proporciona también un procedimiento para cambiar el multiprocesamiento simétrico al multiprocesamiento asimétrico, de manera que se implemente la “compartición de la memoria compartida en una arquitectura de multiprocesamiento asimétrico” antes mencionada.
Según el procedimiento, el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 arrancan y ejecutan el sistema operativo Linux bajo un modo de multiprocesamiento simétrico. El primer y segundo núcleos de procesamiento ejecutan el sistema operativo. Sin embargo, dicho estado de funcionamiento no es normal y solo ocurre cuando el controlador está encendido. A continuación, se especifica que un bloque de memoria sea una memoria compartida y se asigna para que sea una memoria I/O. Como resultado, las direcciones de la memoria compartida se mantienen sin asignarse a otros procesos por el sistema operativo, y la memoria compartida se especifica como cacheable. A continuación, el sistema operativo desconecta uno de los núcleos de procesamiento, tal como el segundo núcleo de procesamiento 22. En este momento, el primer núcleo de procesamiento ejecuta individualmente el sistema operativo y realiza un acceso a la memoria caché L2. El primer núcleo de procesamiento realiza también un acceso cacheable a la memoria compartida. Mientras tanto, el segundo núcleo de procesamiento 22 no ejecuta un sistema operativo diferente en comparación con el primer núcleo de procesamiento 21 ni ejecuta ningún sistema operativo. Sin embargo, el sistema operativo supervisará la memoria caché y la memoria compartida en un modo de multiprocesamiento simétrico puesto que el sistema operativo no es consciente del reajuste del segundo núcleo de procesamiento 22. Por tanto, el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 comparten la memoria caché, así como la memoria compartida en una arquitectura asimétrica. Códigos específicos para las operaciones anteriores pueden almacenarse en una memoria no volátil (tal como una tarjeta SD, EMMC o diversas memorias flash) y ejecutarse por el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 cuando el controlador 20 está encendido.
La figura 7 es un diagrama de flujo que ilustra un procedimiento para realizar el control de movimiento y el control de motor por un controlador integrado según una forma de realización de la presente invención. Como se muestra en la figura 7, el procedimiento comprende las etapas siguientes:
5701, arrancar el sistema operativo Linux en el primer procesador y el segundo procesador en un modo de multiprocesamiento simétrico. En la forma de realización, el primer procesador es el primer núcleo de procesamiento 21, el segundo procesador es el segundo núcleo de procesamiento 22. Especificar un bloque de memoria como la memoria compartida y asignar la memoria compartida para que sea una memoria I/O, de tal manera que las direcciones de la memoria compartida se mantengan sin asignarse a otros procesos por el sistema operativo y la memoria compartida se especifica como cacheable.
5702, desconectar el segundo procesador por medio del sistema operativo. En este momento, el primer procesador ejecuta individualmente el sistema operativo y realiza un acceso a la memoria caché L2. El primer núcleo de procesamiento realiza también un acceso cacheable a la memoria compartida.
5703, reiniciar y reasignar el segundo procesador para hacer que el segundo procesador no ejecute normalmente el sistema operativo. Reasignar el segundo procesador para hacer que realice un acceso a la memoria caché L2 y realice un acceso cacheable a la memoria compartida. Ahora, el sistema se convierte en una arquitectura de multiprocesamiento asimétrico. Como se menciona anteriormente, el segundo procesador puede ejecutar otro sistema operativo, tal como un sistema operativo optimizado en comparación con el primer procesador, o el segundo procesador puede no ejecutar ningún sistema operativo.
5704, durante los periodos de control de movimiento por el primer procesador y de control de motor por el segundo procesador, intercambiando datos el primer procesador y el segundo procesador a través de la memoria caché L2.
La figura 8 es un diagrama que ilustra el primer procesador y el segundo procesador cargando códigos según una forma de realización de la presente invención. Como se muestra en la figura 8, los códigos informáticos que se ejecutan por el primer procesador y el segundo procesador (primer núcleo de procesamiento y segundo núcleo de procesamiento) se almacenan en una memoria no volátil 800. Bajo el modo de multiprocesamiento simétrico, el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 inicia la carga de códigos a partir de la dirección A1. Las direcciones A1 a A2 almacenan códigos informáticos para el sistema operativo y el control de movimiento. Además, las direcciones A1 a A5 pueden almacenar también códigos informáticos para desconectar, reiniciar y reasignar el segundo núcleo de procesamiento 22. Después de que el primer núcleo de procesamiento 21 y el segundo núcleo de procesamiento 22 ejecuten el sistema operativo, el segundo núcleo de procesamiento 22 se reasigna e inicia la carga de códigos desde la dirección A6. Las direcciones A6 a A8 pueden almacenar códigos informáticos para el control de motor por el segundo núcleo de procesamiento 22.
El control de bucle de velocidad y el control de bucle de corriente de la tarea de control de motor requieren ambos unas elevadas características en tiempo real para asegurar la rotación regular y continua del motor. Sin embargo, el sistema operativo interrumpe siempre el procesamiento en curso de vez en cuando para tratar con diferentes tareas, lo que provocará la latencia del envío de los resultados de cálculo desde el control de motor durante la interrupción si el primer núcleo de procesamiento realiza el control de bucle de velocidad y el control de bucle de corriente, afectando así a la característica en tiempo real. Por tanto, en una forma de realización, el segundo núcleo de procesamiento realiza el control de bucle de velocidad y el control de bucle de corriente sin ejecutar el sistema operativo. Además, el segundo núcleo de procesamiento permite siempre la interrupción, esto es, el segundo núcleo de procesamiento no necesita realizar la habilitación/deshabilitación de la respuesta de interrupción.
Además, el segundo núcleo de procesamiento 22 puede utilizar una cola sin bloqueo para asegurar la consistencia de los datos.
El controlador de la forma de realización puede utilizarse en diversos sistemas de control tales como robots eléctricos, máquinas herramienta de control numérico, aeronaves de tipo multirrotor eléctrico, electromóviles, prótesis mecánicas, manos mecánicas, vehículos móviles eléctricos, etc.
El controlador de la forma de realización adopta un sistema de integración de accionamiento y control que reduce la redundancia de hardware. Además, puesto que el sistema de integración de accionamiento y control puede materializarse utilizando un único chip SOC con elementos de circuito periféricos necesarios, se reduce también la ocupación de hardware.
Además, puesto que el sistema de integración de accionamiento y control está incorporado en un único chip, se realiza una transmisión de datos en el interior del chip sin interferencia interna, lo que asegura una transmisión de datos apropiada y fiable.
Además, el sistema de integración de accionamiento y control incorporado en un único chip puede asegurar altas prestaciones en tiempo real. El SOC proporciona alta velocidad de funcionamiento y alta velocidad de comunicación entre el primer y segundo procesadores a través de la memoria caché. El sistema de integración de accionamiento y control de chip único puede utilizarse en aplicaciones más complicadas como aparatos móviles, tales como vehículos tripulados y UVA, etc.
Segunda forma de realización
La figura 4 es un diagrama de circuito de un controlador de acuerdo con una segunda forma de realización de la presente invención. Como se muestra en la figura 4, el controlador integrado 40 para control de movimiento y control de motor comprende un primer núcleo de procesamiento 41, un segundo núcleo de procesamiento 42, una memoria caché 43, un dispositivo lógico programable 44 y una memoria compartida 50. El primer núcleo de procesamiento 41 está configurado para ejecutar un sistema operativo y realizar por lo menos el control de movimiento. El segundo núcleo de procesamiento 42 está configurado para realizar el control de motor y normalmente no ejecutar el sistema operativo. La memoria caché, como se conoce por los expertos en la materia, es una memoria entre un procesador y una memoria principal. La memoria caché funciona más rápido que la memoria principal a una velocidad casi próxima al procesador. La memoria caché 43 puede ser una memoria caché Nivel 2 (memoria caché L2) para un procesador. Se entiende que la memoria caché 43 puede ser de otros niveles. La memoria caché 43 está acoplada con el primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42. La memoria compartida 50 es un bloque de memoria cacheable dedicado con direcciones fijas, que se especifica por el sistema operativo ejecutado en el primer núcleo de procesamiento 41. La memoria compartida 50 mapea sobre la memoria caché 43. El primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42 están configurados para compartir la memoria compartida 50 y, en consecuencia, realizar una transmisión de datos a través de la memoria caché 43 durante los periodos de control de movimiento y control de motor. Por ejemplo, la memoria compartida 50 mapea sobre la memoria caché 43 a través del mapeo de direcciones. Cuando la memoria compartida 50 mapea sobre la memoria caché 43, se realiza una transmisión de datos en la memoria caché 43 que mejora la tasa de transmisión en 8-10 veces en comparación con el intercambio de datos directo en una memoria física. El dispositivo lógico programable 44 está acoplado con el segundo núcleo de procesamiento 42 para realizar el control de motor junto con el segundo núcleo de procesamiento 42.
En la arquitectura de procesador actual, múltiples núcleos de procesamiento que comparten la misma memoria caché están integrados usualmente en un mismo chip de procesamiento. Por tanto, en la forma de realización, el primer núcleo de procesamiento 41, el segundo núcleo de procesamiento 42 y la memoria caché 43 están integrados en un mismo chip, tal como un chip de procesamiento.
En la forma de realización, el primer núcleo de procesamiento 41 ejecuta el sistema operativo y realiza por lo menos el control de movimiento. El sistema operativo puede supervisar el funcionamiento de todo el controlador. El sistema operativo puede realizar también tareas de aplicación específicas, como la tarea de control de movimiento. La tarea de control de movimiento pretende calcular movimientos diana de pares cinemáticos de un objeto controlado en cada momento. La implementación del control de movimiento puede ser de varias formas. Por ejemplo, según los requisitos de aplicación, los diferentes algoritmos de planificación de trayectoria y el software de análisis de tarea pueden desarrollarse para realizar diversas planificaciones de trayectorias y conversiones de bloque de unión. Los algoritmos específicos para dichas planificaciones de trayectorias y conversiones de bloque de unión pueden ser también ampliamente diferentes según las aplicaciones. Por ejemplo, los algoritmos cinemáticos directos y los algoritmos cinemáticos inversos pueden aplicarse en robots industriales; pueden aplicarse algoritmos de control de vuelo de UAV en UAV. Es obvio para los expertos en la materia implementar la función de control de movimiento cuando se requiera.
El primer núcleo de procesamiento 41 calcula uno o más de entre la posición, la velocidad, la aceleración, la fuerza y el momento de fuerza de los pares cinemáticos del objeto controlado por el controlador 40 en cada momento, que se toman como valores establecidos de pares cinemáticos. En la forma de realización, el primer núcleo de procesamiento 41 convierte también los valores establecidos de pares cinemáticos en valores dados de motores de las juntas del objeto controlado en cada momento. Los valores dados de motores incluyen posición, velocidad, aceleración, fuerza, momento de fuerza de los motores o su combinación. El primer núcleo de procesamiento 41 emite los valores dados de motores hacia el segundo núcleo de procesamiento 42 en un tiempo predeterminado. Alternativamente, en otras formas de realización, el primer núcleo de procesamiento 41 puede no realizar la conversión de valores establecidos de pares cinemáticos a valores dados de los motores. El primer núcleo de procesamiento 41 emite directamente los valores establecidos de pares cinemáticos hacia el segundo núcleo de procesamiento 42, a continuación, el segundo núcleo de procesamiento 42 los convierte en los valores dados de motores y realiza el control de motor correspondiente.
A diferencia de la primera forma de realización, el dispositivo lógico programable 44 se introduce en el controlador según la forma de realización. El dispositivo lógico programable tiene una capacidad de cálculo paralela mayor lo que es una gran ventaja en el control de múltiples ejes. El dispositivo lógico programable 44 esta integrado junto con el primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42 en un mismo chip. El dispositivo lógico programable 44 está acoplado con el segundo núcleo de procesamiento 42 para funcionar junto con este. En la forma de realización, el dispositivo lógico programable 44 está acoplado con el segundo núcleo de procesamiento 42 a través de una interfaz. Algunos chips SOC existentes, como Cyclone V proporcionados por Altera Corporation, ofrecen dicho interfaz. En diversas formas de realización, el dispositivo lógico programable puede ser un FPGA.
En la forma de realización, el segundo núcleo de procesamiento 42 normalmente no ejecuta el mismo sistema operativo con el primer núcleo de procesamiento 41. Por el contrario, el segundo núcleo de procesamiento 42 y el dispositivo lógico programable 44 constituyen conjuntamente el controlador de motor para realizar la tarea de control de motor. Según su asignación, el primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42 funcionan normalmente en una arquitectura de multiprocesamiento asimétrico. El controlador de motor controla el accionador de motor según los valores dados de los motores para accionar los motores a fin de que cumplan de manera rápida y estable los requisitos. El control de motor implica el control de bucle de corriente, el control de bucle de velocidad y/o el control de bucle de posición. Pueden implementarse diferentes controles de bucle según diferentes valores dados de motores. En general, cuando el valor dado es un valor posicional se requiere que se calculen los tres bucles; cuando el valor dado es un valor relacionado con la velocidad (valor de velocidad o valor de aceleración), se requiere que se calculen el bucle de corriente y el bucle de velocidad; cuando el valor dado es un valor de fuerza o valor de momento de fuerza, se requiere que se calcule el bucle de corriente. En consecuencia, el controlador de motor realiza alternativamente el control de bucle de corriente, o la combinación del control de bucle de corriente y el control de bucle de velocidad, o la combinación del control de bucle de corriente, el control de bucle de velocidad y el control de bucle de posición para lograr la tarea de control de motor. Además, la asignación de tareas entre el primer núcleo de procesamiento 41 y el controlador de motor puede modificarse. Por ejemplo, el primer núcleo de procesamiento 41 realiza el control de bucle de posición, el controlador de motor realiza el control de bucle de velocidad y el control de bucle de corriente; o el primer núcleo de procesamiento 41 realiza el control de bucle de posición y el control de bucle de velocidad, el controlador de motor realiza el control de bucle de corriente. La asignación de tareas se determina según los requisitos de la tasa de cálculo de bucle y las prestaciones de la plataforma de hardware.
El controlador de motor calcula la corriente por la que el motor puede alcanzar la posición, la velocidad, la aceleración, la fuerza o el momento de fuerza requeridos de los valores dados de motores y emite una señal de accionamiento (como la señal PWM) hacia dispositivos de potencia tales como dispositivos iGbT, dispositivos IPM según los resultados calculados para accionar los motores.
En una forma de realización, el segundo núcleo de procesamiento 42 ejecuta un sistema operativo diferente al del primer núcleo de procesamiento 41. Por ejemplo, el segundo núcleo de procesamiento 42 ejecuta un sistema operativo más optimizado. En otra forma de realización, el segundo núcleo de procesamiento 22 no ejecuta ningún sistema operativo.
En diversas formas de realización, la tarea de control de movimiento se asigna entre el segundo núcleo de procesamiento 42 y el dispositivo lógico programable 44 que constituyen el controlador de motor como un todo. Cuando el segundo núcleo de procesamiento 42 y el dispositivo lógico programable 44 funcionan conjuntamente para realizar el control de bucle de posición, el control de bucle de velocidad y el control de bucle de corriente, la asignación de tareas puede ser como sigue: el segundo núcleo de procesamiento 42 realiza el control de bucle de posición mientras el dispositivo lógico programare 44 realiza el control de bucle de velocidad y el control de bucle de corriente; o el segundo núcleo de procesamiento 42 realiza el control de bucle de posición y el control de bucle de velocidad mientras el dispositivo lógico programable 44 realiza el control de bucle de corriente. Incluso con una configuración avanzada de hardware, el dispositivo lógico programable 44 realiza individualmente el control de bucle de posición, el control de bucle de velocidad y el control de bucle de corriente. Cuando la combinación del segundo núcleo de procesamiento 42 y el dispositivo lógico programable 44 realizan solo parte del control de los tres bucles, tales como el control de bucle de velocidad y el control de bucle de corriente, la asignación de tareas entre el segundo núcleo de procesamiento 42 y el dispositivo lógico programable 44 puede ajustarse correspondientemente. Por ejemplo, el segundo núcleo de procesamiento 42 realiza el control de bucle de velocidad y el dispositivo lógico programable 44 realiza el control de bucle de corriente.
Para un aparato o sistema de múltiples ejes que requiera una trayectoria precisa y regular, se desea que todos los ejes sean controlados simultáneamente y de forma síncrona, de manera que se asegure un movimiento resultante apropiado. En consecuencia, cuando los valores establecidos de pares cinemáticos o valores dados de los motores se calculan y se transmiten al controlador de motor dentro de un periodo predeterminado, se espera que la parte de control de movimiento transmita de forma fiable los valores establecidos de pares cinemáticos o valores dados de los motores a la parte de control de motor en un periodo de tiempo corto y consistente.
En la forma de realización, se proporciona un procedimiento de “compartición de la memoria compartida en una arquitectura de multiprocesamiento asimétrico”. El primer núcleo de procesamiento y el segundo núcleo de procesamiento funcionan en una arquitectura de multiprocesamiento asimétrico de manera que el segundo núcleo de procesamiento para el control de motor puede ejecutar un sistema operativo simple diferente al del primer núcleo de procesamiento o no ejecutar un sistema operativo mientras los dos núcleos de procesamiento comparten la memoria caché, asegurando así una transmisión de datos de alta velocidad con elevadas prestaciones en tiempo real (elevadas prestaciones en tiempo real significa baja latencia y baja fluctuación). En otras palabras, aunque el primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42 utilizan una arquitectura de multiprocesamiento asimétrico, comparten la memoria caché 43 y comparten además la memoria compartida a través de la memoria caché.
El procedimiento comprende las etapas siguientes:
Antes de realizar el control de movimiento y el control de motor, arrancar el sistema operativo Linux en el primer procesador y el segundo procesador en un modo de multiprocesamiento simétrico. Especificar un bloque de memoria como la memoria compartida y asignar la memoria compartida para que sea una memoria I/O, de tal manera que las direcciones de la memoria compartida se mantengan sin asignarse a otros procesos por el sistema operativo y la memoria compartida se especifica como cacheable.
Desconectar el segundo procesador por medio del sistema operativo.
En este momento, el primer procesador ejecuta individualmente el sistema operativo y realiza un acceso a la memoria caché L2. El primer procesador realiza también un acceso cacheable a la memoria compartida.
Reiniciar y reasignar el segundo procesador para hacer que el segundo procesador normalmente no ejecute el sistema operativo. Reasignar el segundo procesador para hacer que realice un acceso a la memoria caché L2 y realice un acceso cacheable a la memoria compartida.
Por los medios anteriores, los núcleos de procesamiento son capaces de compartir la memoria compartida en una arquitectura de multiprocesamiento asimétrico. Por lo anterior, el primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42 están configurados para transferir datos a través de la memoria caché 43 durante los periodos de control de movimiento y control de motor. Específicamente, durante el periodo de control de movimiento, el primer núcleo de procesamiento 41 escribe los datos de control de movimiento (como los valores establecidos de pares cinemáticos o los valores dados de motor) en la memoria caché 43, mientras que el segundo núcleo de procesamiento 42 lee los datos de control de movimiento de la memoria caché 43. Como se menciona anteriormente, en las formas de realización de la presente invención, los datos de control de movimiento comprenden datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza para los pares cinemáticos o los motores, y se determinan según la asignación de tareas entre el primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42. Correspondientemente, el segundo núcleo de procesamiento 42 escribe los datos de realimentación en la memoria caché 43, mientras el primer núcleo de procesamiento 41 lee la realimentación de la memoria caché 43. Los datos de realimentación comprenden datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza de los pares cinemáticos o los motores. Cuando los datos de control de movimiento son datos de posición, entonces los datos de realimentación comprenden generalmente datos de posición y pueden comprender además datos de velocidad, datos de aceleración, datos de fuerza y datos de momento de fuerza. Cuando los datos de control de movimiento son datos de velocidad, entonces los datos de realimentación comprenden datos relacionados con la velocidad, y pueden comprender además datos de posición, datos de fuerza y datos de momento de fuerza. Se entiende que los datos de realimentación pueden no relacionarse tampoco con los datos de control de movimiento.
Por ejemplo, los datos de realimentación pueden comprender normalmente uno o más de entre datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y datos de momento de fuerza. En algunas aplicaciones, los datos de realimentación pueden ser datos de posición o datos de orientación del objeto controlado (como la orientación o la velocidad de un UAV o electromóvil).
La figura 5 es un diagrama que ilustra el funcionamiento del controlador de acuerdo con la segunda forma de realización de la presente invención. Como se muestra en la figura 5, el primer núcleo de procesamiento 41 genera y emite los datos de control de movimiento hacia el segundo núcleo de procesamiento 42. El segundo núcleo de procesamiento 42 y el dispositivo lógico programable 44 generan y emiten la señal de accionamiento hacia el accionador de motor 51 según los datos de control de movimiento. El accionador de motor 51 emite corriente para controlar la rotación del motor 52. En la forma de realización, si el segundo núcleo de procesamiento 42 realiza el control de bucle de posición y el control de bucle de velocidad, entonces el dispositivo lógico programable 44 realiza el control de bucle de corriente. Los primeros datos de realimentación recogidos del motor 52 se trasmiten al segundo núcleo de procesamiento 52. El segundo núcleo de procesamiento 42 emite segundos datos de realimentación hacia el primer núcleo de procesamiento 41. La primera realimentación puede comprender uno o más de entre datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y datos de momento de fuerza. La segunda realimentación puede completarse a partir de los primeros datos de realimentación o puede no completarse totalmente a partir de los primeros datos de realimentación. Por ejemplo, los segundos datos de realimentación pueden comprender datos generados por el segundo núcleo de procesamiento 42. Como se muestra en la figura 3, la comunicación entre el primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42 se materializa a través de la memoria caché 43, como se muestra en la figura 4. Cuando se requiera, los primeros datos de realimentación o los segundos datos de realimentación pueden no ser necesarios en un control de bucle local o un control de bucle completo, lo que no afectará a la función básica y las prestaciones de todo el sistema de control.
Puesto que el acceso a una memoria caché es mucho más rápido que el acceso a una memoria principal, la velocidad de funcionamiento del primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42 se mejora ampliamente. En particular, el primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42 están integrados en un único chip SOC, que originalmente tiene en el mismo un dispositivo lógico programable. Para un aparato o sistema de múltiples ejes que requiere una trayectoria precisa y regular, se desea que todos los ejes estén controlados simultáneamente y de manera síncrona, de modo que se asegure un movimiento resultante apropiado. En consecuencia, el controlador de motor utiliza una CPU (el segundo procesador) y un FPGA (dispositivo lógico programable) para materializar el control de motor de 8 ejes que adopta completamente las ventajas de una mayor capacidad de cálculo paralelo del FPGA (dispositivo lógico programable).
La presente invención proporciona también un procedimiento para cambiar el multiprocesamiento simétrico a multiprocesamiento asimétrico, de manera que se implemente la antes mencionada “compartición de la memoria compartida en una arquitectura de multiprocesamiento asimétrico”.
El procedimiento puede referirse a la descripción en la primera forma de realización y la figura 7 que no se detalla en la presente memoria.
En algunas formas de realización, el dispositivo lógico programable 44 puede compartir también la memoria compartida 50 con el primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42, lo que no se detalla en la presente memoria.
La fluctuación de datos acaecida durante el periodo en que el dispositivo lógico programable 44 realimenta los datos de velocidad y los datos de posición al segundo núcleo de procesamiento 42 puede provocar un cambio de corriente abrupto en el control de bucle de velocidad, que degradará las prestaciones del motor. Puesto que el dispositivo lógico programable 44 y el sistema de procesamiento (que comprende el primer y segundo núcleos de procesamiento 41,42) son dos elementos de cálculo independientes, son problemas críticos que deben resolverse la manera en que se mantiene la sincronización de datos entre ellos y la forma en que se proporciona realimentación de datos continua y completa desde el dispositivo lógico programable 44.
En una forma de realización, como se muestra en la figura 9, los dos elementos de cálculo, el sistema de procesamiento y el dispositivo lógico programable 44 utilizan un mismo reloj externo (oscilación de cristal) para asegurar que ambos estén sincronizados por reloj con una misma base de tiempo. Por tanto, el periodo de tiempo para que el sistema de procesamiento lea datos del dispositivo lógico programable 44 es un cierto tiempo relativo, y se introduce un tiempo escalonado entre el ciclo de actualización de datos del dispositivo lógico programable 44 y el ciclo de actualización de datos del sistema de procesamiento. Por tanto, el FPGa actualiza datos en un cierto tiempo, y el sistema de procesamiento lee datos después de dicho cierto tiempo.
En una forma de realización, toda la señal de reloj interna del dispositivo lógico programable 44 está dividida (por ejemplo, por un divisor de frecuencia PLL) de una misma fuente de reloj. En consecuencia, todos los datos del dispositivo lógico programable 44 se transmiten de forma síncrona. Además, el procesador (el segundo núcleo de procesamiento 42), el bus, el dispositivo lógico programable 44 utilizan el mismo reloj.
En una forma de realización, como se muestra en la figura 10, el dispositivo lógico programare 44 comprende dos registros 101, 102 para anclar los datos de corriente cuando el primer núcleo de procesamiento 41 y el segundo núcleo de procesamiento 42 leen los datos, de manera que se evite la pérdida de datos debido a la metaestabilidad acaecida en un diseño asíncrono. Esto se denomina también “registro en la sombra”. Como se muestra en la figura 10, el dispositivo lógico programable 44 realiza internamente un cálculo matemático y almacena los datos de resultado en el registro 102. Seguidamente, los datos de resultado se almacenan adicionalmente en el registro 101. A través de dicho tictac del reloj, el sistema de procesamiento puede leer datos completos y correctos del dispositivo lógico programable. Durante el periodo de tiempo en que el sistema de procesamiento lee los datos, puede impedirse la actualización de datos en los registros del dispositivo lógico programable. En la forma de realización, los registros 101, 102 pueden ser unos biestables.
Tercera forma de realización
La figura 6 es un diagrama de circuito de un controlador según una tercera forma de realización de la presente invención. Como se muestra en la figura 6, el controlador integrado 60 para el control de movimiento y el control de motor comprende una primera combinación de núcleo de procesamiento 61, una segunda combinación de núcleo de procesamiento 62, un dispositivo lógico programable 63, una memoria caché (no mostrada) y una memoria compartida (no mostrada). La primera combinación de núcleo de procesamiento 61 está configurada para ejecutar un sistema operativo y realizar por lo menos el control de movimiento. La segunda combinación de núcleo de procesamiento 62 está configurada para realizar el control de motor y normalmente para no ejecutar el sistema operativo. La memoria caché está acoplada con la primera combinación de núcleo de procesamiento 61 y la segunda combinación de núcleo de procesamiento 62. La memoria compartida mapea sobre la memoria caché. La primera combinación de núcleo de procesamiento 61 y la segunda combinación de núcleo de procesamiento 62 están configuradas para compartir la memoria compartida y, en consecuencia, realizar una transmisión de datos a través de la memoria caché durante los periodos de control de movimiento y control de motor. A diferencia de las formas de realización antes mencionadas, la primera combinación de núcleo de procesamiento 61, hecha funcionar como el primer procesador, comprende núcleos de procesamiento 1 a Nésimo la segunda combinación de núcleo de procesamiento 62, hecha funcionar como el segundo procesador, comprende N+1ésimo a N+késimo núcleos de procesamiento. En la presente memoria, N y K son ambos números enteros positivos.
El dispositivo lógico programable 63 está acoplado con la segunda combinación de núcleo de procesamiento 62 para realizar el control de motor junto con la segunda combinación de núcleo de procesamiento 62. Haciendo referencia a la primera forma de realización, el dispositivo lógico programable 63 puede omitirse también, la segunda combinación de núcleo de procesamiento 62 puede realizar individualmente el control de motor.
Para la primera combinación de núcleo de procesamiento 61, el sistema operativo y la tarea de control de movimiento puede asignarse entre los múltiples núcleos de procesamiento. Para la segunda combinación de núcleo de procesamiento 62, la tarea de control de motor puede asignarse entre los múltiples núcleos de procesamiento.
Otros detalles de la forma de realización pueden referirse a la primera y segunda formas de realización, lo que se omite en la presente memoria.

Claims (7)

REIVINDICACIONES
1. Controlador integrado (40) para control de movimiento y control de motor, comprendiendo el controlador integrado (40):
un primer procesador (41) configurado para ejecutar un sistema operativo y realizar por lo menos un control de movimiento, en el que el control de movimiento comprende calcular unos valores establecidos de pares cinemáticos de un objeto controlado en cada momento;
un segundo procesador (42) configurado para realizar por lo menos un control de motor, en el que el control de motor comprende controlar la rotación de motores según los valores establecidos, que comprende por lo menos cualquiera o una combinación de entre un control de bucle de corriente de motor, un control de bucle de velocidad de motor, y un control de bucle de posición de motor; en el que, el segundo procesador (42) ejecuta el mismo sistema operativo que el primer procesador (41) en el inicio, a continuación, el segundo procesador (42) se desconecta y se reinicia y se reconfigura para ejecutar un sistema operativo diferente al del primer procesador (41) o no ejecutar ningún sistema operativo después del inicio;
una memoria caché (43) acoplada con el primer procesador y el segundo procesador;
una memoria compartida (50), que es un bloque de memoria cacheable dedicado con direcciones fijas especificadas por el sistema operativo ejecutado en el primer procesador; en el que
la memoria compartida (50) mapea sobre la memoria caché;
el primer procesador (41) y el segundo procesador (42) están configurados para compartir la memoria compartida (50) y, en consecuencia, realizar una transmisión de datos a través de la memoria caché durante los periodos de control de movimiento y control de motor;
el primer procesador (41), el segundo procesador (42) y la memoria caché (43) están integrados en un mismo chip.
2. Controlador integrado (40) según la reivindicación 1, caracterizado por que el controlador integrado (40) comprende asimismo un dispositivo lógico programable (44) que está acoplado con el segundo procesador (42) y configurado para realizar el control de motor junto con el segundo procesador (42).
3. Controlador integrado (40) según la reivindicación 2, caracterizado por que el primer procesador (41), el segundo procesador (42), la memoria caché (43) y el dispositivo lógico programable (44) están integrados en el mismo chip.
4. Controlador integrado (40) según una de las reivindicaciones anteriores, caracterizado por que antes del control de movimiento y el control de motor, el controlador integrado (40) está configurado para realizar las siguientes operaciones:
iniciar el primer procesador (41) y el segundo procesador (42) por multiprocesamiento simétrico; ejecutar el sistema operativo en el primer procesador (41) y el segundo procesador (42);
desconectar el segundo procesador (42) y mantener el sistema operativo ejecutándose individualmente en el primer procesador (41);
reiniciar y reconfigurar el segundo procesador (42) para hacer que el segundo procesador (42) no ejecute el sistema operativo después del inicio.
5. Controlador integrado (40) según una de las reivindicaciones anteriores, caracterizado por que el primer procesador (41) está configurado para escribir unos datos de control de movimiento en la memoria caché (43) el segundo procesador (42) está configurado para leer los datos de control de movimiento de la memoria caché (43), comprendiendo los datos de control de movimiento datos de posición, datos de velocidad, datos de aceleración, datos de fuerza, y/o datos de momento de fuerza para los pares cinemáticos o los motores.
6. Controlador integrado (40) según una de las reivindicaciones anteriores, caracterizado por que el segundo procesador (42) está configurado para escribir unos datos de realimentación en la memoria caché (43), el primer procesador (41) está configurado para leer la realimentación de la memoria caché (43), comprendiendo los datos de realimentación unos datos de posición, datos de velocidad, datos de aceleración, datos de fuerza y/o datos de momento de fuerza de los pares cinemáticos o los motores.
7. Controlador integrado (40) según la reivindicación 2 o la reivindicación 3, caracterizado por que un reloj del dispositivo lógico programare (44) y un reloj del segundo procesador (42) están sincronizados; cuando el segundo procesador (42) lee datos del dispositivo lógico programare (44) o los escribe en el mismo, el dispositivo lógico programar e (44) ancla los datos leídos o escritos.
ES18199464T 2018-04-25 2018-10-09 Controlador integrado para control de movimiento y control de motor Active ES2867929T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810380436.6A CN109240191B (zh) 2018-04-25 2018-04-25 集成运动控制和电机控制的控制器和控制系统

Publications (1)

Publication Number Publication Date
ES2867929T3 true ES2867929T3 (es) 2021-10-21

Family

ID=65084114

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18199464T Active ES2867929T3 (es) 2018-04-25 2018-10-09 Controlador integrado para control de movimiento y control de motor

Country Status (6)

Country Link
US (1) US10732601B2 (es)
EP (1) EP3561622B1 (es)
JP (1) JP6864664B2 (es)
CN (1) CN109240191B (es)
DK (1) DK3561622T3 (es)
ES (1) ES2867929T3 (es)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11032905B2 (en) * 2018-01-19 2021-06-08 Ge Aviation Systems Llc Unmanned vehicle control systems
US10942509B2 (en) 2018-01-19 2021-03-09 Ge Aviation Systems Llc Heterogeneous processing in unmanned vehicles
US11029985B2 (en) 2018-01-19 2021-06-08 Ge Aviation Systems Llc Processor virtualization in unmanned vehicles
WO2020010492A1 (zh) * 2018-07-09 2020-01-16 大族激光科技产业集团股份有限公司 数控系统的数据处理方法、计算机设备和存储介质
CN109412468A (zh) * 2018-09-10 2019-03-01 上海辛格林纳新时达电机有限公司 基于安全转矩关断的系统和控制方法
CN110209093A (zh) * 2019-06-19 2019-09-06 上海可驷自动化科技有限公司 一种运动控制硬件架构及系统
CN110842920B (zh) * 2019-11-12 2021-12-07 佛山智能装备技术研究院 一种单处理芯片的控驱一体系统架构
CN110936381A (zh) * 2019-12-13 2020-03-31 珠海格力电器股份有限公司 一种机器人控制装置及机器人
CN111309669B (zh) * 2020-02-10 2022-07-22 宁波中控微电子有限公司 一种可编程电机运动控制片上系统
CN111708329A (zh) * 2020-05-18 2020-09-25 武汉华中数控股份有限公司 一种智能化数控系统及方法
US20220075349A1 (en) * 2020-09-08 2022-03-10 Delta Tau Data Systems, Inc. Method and apparatus for multi-core processor management in a motion control system
CN112953336A (zh) * 2020-12-31 2021-06-11 华中光电技术研究所(中国船舶重工集团公司第七一七研究所) 基于SoC的高功率密度小型驱控一体化装置
JP7472836B2 (ja) * 2021-03-24 2024-04-23 株式会社デンソーウェーブ 産業用制御装置
CN113067527A (zh) * 2021-03-31 2021-07-02 实时侠智能控制技术有限公司 适于执行电机控制的控制器和控制系统
US20220394284A1 (en) * 2021-06-07 2022-12-08 Sony Interactive Entertainment Inc. Multi-threaded cabac decoding
CN115118542B (zh) * 2022-04-28 2023-12-19 广东美的智能科技有限公司 龙门系统的控制装置和龙门系统
CN115065298A (zh) * 2022-06-22 2022-09-16 上海精泰技术有限公司 一种倍捻机控制系统及方法
CN115712253A (zh) * 2022-09-19 2023-02-24 重庆智能机器人研究院 一种易于扩展的驱控一体控制架构

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030230998A1 (en) * 2002-06-17 2003-12-18 Sanyo Electric Co., Ltd., Moriguchi-Shi, Japan Distributed control system and distributed control method
US20080005749A1 (en) * 2006-06-01 2008-01-03 Broadcom Corporation, A California Corporation Hard disk controller having multiple, distributed processors
US20080133844A1 (en) * 2006-12-01 2008-06-05 Srinivasan Ramani Method and apparatus for extending local caches in a multiprocessor system
US9088610B2 (en) * 2008-09-30 2015-07-21 Rockwell Automation Technologies, Inc. Method and apparatus for communications accelerator on CIP motion networks
US8250343B2 (en) * 2009-07-21 2012-08-21 National Instruments Corporation Axial motion control processing by multiple cores respectively executing each of a sequence of functions in parallel for respective portions of a motion system
CN102092354A (zh) * 2009-12-15 2011-06-15 上海工程技术大学 一种基于超声波的小车测距控制系统及其控制方法
CN102495756B (zh) * 2011-11-07 2016-09-14 北京中星微电子有限公司 操作系统在不同的中央处理器之间切换的方法及系统
CN102393656A (zh) * 2011-11-29 2012-03-28 北京邮电大学 一种基于fpga的模块化机器人嵌入式多核主控制器
JP5962020B2 (ja) * 2012-01-17 2016-08-03 セイコーエプソン株式会社 ロボット制御装置、ロボットシステム、ロボット及びロボット制御方法
US20140025930A1 (en) * 2012-02-20 2014-01-23 Samsung Electronics Co., Ltd. Multi-core processor sharing li cache and method of operating same
US9041337B2 (en) * 2012-05-18 2015-05-26 Linestream Technologies Motion profile generator
EP2946253A4 (en) * 2013-01-17 2016-10-12 Abb Technology Ltd EXECUTION CONTROLLER AND ROBOT CONTROL SYSTEM USING THIS ENFORCEMENT CONTROLLER
US9702938B2 (en) * 2015-03-18 2017-07-11 Caterpillar Inc. Method and apparatus for detecting phase imbalance of an electrical component in a machine
JP2018037021A (ja) * 2016-09-02 2018-03-08 オムロン株式会社 制御装置および制御システム

Also Published As

Publication number Publication date
US10732601B2 (en) 2020-08-04
CN109240191A (zh) 2019-01-18
US20190041823A1 (en) 2019-02-07
DK3561622T3 (da) 2021-04-26
US20200272121A9 (en) 2020-08-27
JP6864664B2 (ja) 2021-04-28
EP3561622A1 (en) 2019-10-30
CN109240191B (zh) 2020-04-03
JP2019192200A (ja) 2019-10-31
EP3561622B1 (en) 2021-03-24

Similar Documents

Publication Publication Date Title
ES2867929T3 (es) Controlador integrado para control de movimiento y control de motor
CN110545319A (zh) 一种SoC核系统的设计和核间任务通信的实现方法
US9568970B1 (en) Hardware and software enabled implementation of power profile management instructions in system on chip
US9838498B2 (en) Remote direct non-volatile cache access
US9594718B2 (en) Hardware accelerated communications over a chip-to-chip interface
CN107942797B (zh) 基于sopc的嵌入式双核伺服控制器及其设计方法
CN103180817B (zh) 存储扩展装置及服务器
CN103226344B (zh) 一种运动控制片上系统
WO2020057638A1 (en) Systems, methods and apparatus for storage controller with multi-mode pcie functionality
WO2014110748A1 (en) Motion controller and robot control system using the same
US20140214184A1 (en) Position Control for a Positioning System Comprising Larger Scale and Smaller Scale Positioning Mechanisms
CN106598886B (zh) I/o总线共享存储器系统
CN111581152A (zh) 可重构硬件加速soc芯片系统
US20190086885A1 (en) Motor drive system, motor control system, and self-propelled robot
CN112835329A (zh) 电动机控制装置、数值控制装置、机器人控制器和综合控制器系统
CN113672549B (zh) 一种基于非共享存储多核处理器的微系统架构
Cittadini et al. Supporting AI-powered real-time cyber-physical systems on heterogeneous platforms via hypervisor technology
JP6928280B2 (ja) 情報処理システム
WO2020200246A1 (zh) 数据处理装置及相关产品
JP2000020492A (ja) サブcpuへのプログラムダウンロード方法およびそのnc装置
CN110832410A (zh) 运动控制器及运动控制的方法
CN112740193A (zh) 大数据运算加速系统执行运算的方法
CN214101223U (zh) 一种用于流式荧光的多路电机控制系统
US20230134744A1 (en) Execution State Management
KR20170065432A (ko) 스토리지 장치 및 그것의 동작 방법