El documento presenta el análisis de tres arquitecturas para el control de velocidad de un motor DC implementado en una plataforma Zynq SoC de Xilinx. La Arquitectura 1 implementa todas las tareas en la sección de lógica programable. La Arquitectura 2 utiliza un enfoque de codiseño HW-SW con tareas en tiempo real en la lógica programable y tareas secuenciales en el procesador. La Arquitectura 3 implementa todas las tareas en el procesador ARM manejando interrupciones.
1. 1
UNIVERSIDAD DE LAS FUERZAS
ARMADAS
DEPARTAMENTO DE ELÉCTRICA, ELECTRÓNICA Y
TELECOMUNICACIONES
MATERIA: SISTEMAS EMBEBIDOS
TEMA: Trabajo Extra
DOCENTE: Ing. Byron Navas Ph.D.
ESTUDIANTE:
Luis Camacho
NRC: 5611
FECHA: 04/10/2021
QUITO – ECUADOR
2. 2
Tema: Estado del Arte – SoC + RTOS + Control y medición de velocidad de motor
Objetivo:
Investigar una publicación de los últimos años sobre el diseño o aplicación sobre: SoC
basados en FPGA con RTOS, con control y medición de velocidad de motor, mediante
fuentes de consulta confiables el correcto análisis del paper, revista o conferencia escogida.
Desarrollo:
1. Nombres y afiliaciones de los autores de la publicación
Sheetal Bhandari, Pimpri Chinchwad College of Engineering, Savitribai Phule University of Pune,
Pune, India.
Shashank Pujari, Pimpri Chinchwad College of Engineering, Savitribai Phule University of Pune,
Pune, India.
2. Título
HW-SW co-design on Zynq SoC Case Study: Simple Miniature DC Motor Speed Control System.
3. Estructura del Abstracto. Divida las partes e indique su propósito de acuerdo a la guía de
escritura científica vista en el curso
En el artículo escogido, los autores investigan la aplicabilidad del enfoque de co-diseño de hardware y
software utilizando la plataforma Zynq de Xilinx, basándose en un caso en particular que es de un
sistema de control de velocidad de bucle cerrado de un motor de CC. Los resultados experimentales
obtenidos muestran que el co-diseño HW-SW con una partición de las tareas compartidas entre las
secciones de procesador y lógica del SoC Zynq, conduce a un diseño óptimo en términos de recursos,
potencia y constantes de reloj.
4. Estructura de la Introducción. Divida las partes e indique su propósito de acuerdo a la guía
de escritura científica vista en el curso
En el artículo nos menciona sobre el diseño de sistemas embebidos en los que se suele requerir una
combinación de tareas paralelas y secuenciales como lo se estudió en clase, siendo el flujo de datos
predominantemente paralelo y las estructuras de control predominantemente secuenciales. El artículo
presenta el diseño basado en procesadores que maneja tareas secuenciales. Las tareas en tiempo real
requieren un RTOS que se ejecute en el procesador para lograr el procesamiento paralelo de las tareas.
El procesamiento en tiempo real, al igual que el sistema basado en RTOS, también puede lograrse sin
mucha sobrecarga en el tiempo de la CPU.
El diseño basado en procesadores tiene la ventaja de disponer de la mano de obra de software,con una
multitud de recursos de biblioteca, una amplia gama de ofertas de proveedores de procesadores y un
corto plazo de comercialización del diseño de productos integrados, en comparación con la lógica
programable, que requiere una larga curva de aprendizaje, una costosa personalización del producto y
un largo plazo de comercialización.
La decisión de compartir las tareas entre el SW y el HW se realiza de forma juiciosa teniendo en
cuenta las características de las tareas y este proceso se denomina codiseño hardware-software, como
se muestra en la Fig. 1
3. 3
Fig. 1 Co-diseño de Microcontrolador, FPGA y SoC HW-SW. (Bhandari & Pujari, 2018)
En el artículo escogido los autores han estudiado un sistema de control de velocidad de un motor DC
en lazo cerrado en un entorno de laboratorio. El alcance incluye el desarrollo de un modelo prototipo
de laboratorio con componentes disponibles utilizando un motor DC con codificador de velocidad y la
implementación de la metodología de co-diseño HW y SW en la placa Zed de Xilinx All
Programmable SoC.
El artículo está organizado de la siguiente manera: la sección II cubre el sistema de control de
velocidad del motor de corriente continua, la sección III cubre la partición de las tareas del sistema de
control de velocidad del motor, la sección IV describe la plataforma de diseño Zynq SoC, la sección V
cubre la traducción de las tareas a la arquitectura y la sección VI cubre el análisis del mapeo de la
arquitectura.
5. Importancia. (conforme lo indicado en el abstracto o introducción)
La importancia del artículo viene dada por un enfoque global que se presenta del diseño de sistemas
integrados hacia el desarrollo de productos se basa en conocimientos sólidos, habilidades y práctica de
una variedad de lenguajes informáticos, herramientas de software y plataformas de hardware. Con lo
cual se estudió el codiseño de hardware-software utilizando la plataforma Zynq del sistema todo
programable en chip (SoC) de Xilinx. Con los resultados obtenidos se muestra que el codiseño HW-
SW con una partición juiciosa del reparto de tareas entre las secciones de procesador y lógica del SoC
Zyn, conduce a un diseño óptimo en términos de recursos, potencia y constantes de reloj.
4. 4
6. Contribuciones del trabajo. Presente listado y descripción breve (obs. esto debería estar en
el mismo artículo)
6.1. En el artículo se presenta el diseño de SoC con procesador de núcleo integrado implica tanto
el diseño de software en la sección de procesador (PS) como el diseño de hardware en la
sección de lógica programable (PL). Para migrar a un diseño de SoC completo, algunas de
las funciones implementadas en lógica programable en código RTL se pueden transferir a la
sección del procesador.
6.2. El estudio de caso abordado es un sistema de control de velocidad de circuito cerrado de
motor de CC en miniatura simple. El alcance incluye el desarrollo de un modelo de prototipo
de laboratorio con Components Off the Self (COTS) disponibles utilizando un motor de CC
con codificador de velocidad y la implementación de la metodología de codiseño HW y SW
en la placa Xilinx All Programmable SoC Zed.
6.3. Un elemento clave de la etapa de diseño del sistema es dividir la funcionalidad deseada de
manera adecuada entre el software y el hardware, y definir las interfaces entre las dos
secciones. Es posible que esta partición se ajuste posteriormente a medida que los
diseñadores iteran hacia el diseño óptimo del sistema. Una vez dividido el sistema, el
desarrollo de software y hardware puede progresar en paralelo. En términos de desarrollo de
hardware, la tarea es identificar los bloques funcionales necesarios para lograr el diseño y
luego ensamblarlos mediante alguna combinación de reutilización del diseño y desarrollo de
nuevas IP, y hacer las conexiones adecuadas entre los bloques. De manera similar, el aspecto
de software del proyecto se puede realizar mediante el desarrollo de código personalizado o
reutilizando software preexistente. Se requerirá la verificación tanto del software como del
hardware, y esto forma una parte integral e importante del proceso.
7. Metodología utilizada. (e.g., modelamiento, diseño, implementación, herramientas de diseño,
HW, SW)
En el artículo los autores presentan la arquitectura Zynq que consta de dos partes principales, como se
muestra en la Fig. 2, un sistema de procesamiento (PS) formado alrededor de un procesador ARM
Cortex-A9 de doble núcleo, y una lógica programable (PL), que es equivalente a la de un FPGA.
También cuenta con memoria integrada, una variedad de periféricos e interfaces de comunicaciones
de alta velocidad.
Fig. 2 Sistema Zynq SoC. (Bhandari & Pujari, 2018)
La sección PL es ideal para implementar subsistemas de flujo de datos, aritmética y lógica de alta
velocidad, mientras que PS admite rutinas de software y sistemas operativos, lo que significa que la
funcionalidad general de cualquier sistema diseñado puede dividirse adecuadamente entre hardware y
software.
El proceso de diseño de un sistema Zynq se basa en el entorno de desarrollo integrado (IDE) de Xilinx
Vivado. El entorno IP de Vivado IDE se utiliza para la generación de un diseño de procesador Zynq y
se implementa en ZedBoard. El kit de desarrollo de software (SDK) se utiliza para crear la aplicación
5. 5
de software que se ejecuta en el sistema de procesamiento ARM (PS) de Zynq para controlar el
hardware que se implementa en la lógica programable (PL).
ANÁLISIS DE MAPEO DE ARQUITECTURA
Arquitectura 1: - La sección de lógica programable maneja las cinco tareas. En el diseño de lógica
programable, todas las tareas pueden ejecutarse simultáneamente a la velocidad del reloj del sistema,
mientras que las tareas secuenciales pueden ser manejadas por la máquina de estado. El requisito de
recursos FPGA para esta lógica de control de motor experimentada es de solo 165 cortes funcionales
y 59 registros, que pueden caber en un CPLD de tamaño pequeño.
Arquitectura 2: - Esta es una metodología de codiseño HW-SW. Las tareas en tiempo real son
manejadas por el MCP en la sección de Lógica Programable mientras que las tareas secuenciales en
tiempo no real son manejadas por el procesador ARM.
Arquitectura 3: - El procesador ARM maneja las cinco tareas,es decir, dos tareas en tiempo real y tres
tareas en tiempo no real. Las tareas en tiempo real son manejadas por la interrupción que genera los
temporizadores periféricos integrados y el controlador PWM del procesador ARM integrado. Esta
arquitectura equivale a un diseño basado en microcontroladores.
8. Resultados. (Resuma los resultados, de importancia si hay indicadores)
Como resultados se tiene que el diseño del sistema en chip programable es una ruta de migración
sencilla del diseño basado en procesador al diseño de sistemas integrados basado en FPGA. El
procesador integrado en FPGA es muy útil para implementar un procesamiento basado en
instrucciones secuenciales similar al diseño basado en microcontroladores. La sección de lógica
programable puede manejar tareas concurrentes de tiempo crítico de manera efectiva. La partición
juiciosa de las tareas conduce al co-diseño de HW-SW en la plataforma Zynq SoC, que es óptimo en
términos de recursos, potencia y tiempo, en comparación con el diseño de solo hardware o solo
software.
9. Relevancia de acuerdo a su experiencia en el curso. Relevancia a nivel internacional.
Para abordar las necesidades de los sistemas embebidos cada vez más complejos, los proveedores de
semiconductores están ofreciendo una cartera de soluciones System-on-Chip en rápido crecimiento
con arquitecturas heterogéneas. Xilinx SDSoC es uno de esos IDE que comprende las herramientas
Vivado, HLS y SDK para el diseño de SoC. El trabajo que se realiza en el artículo, se basa en Xilinx
XC7Z020-1CLG484CES Zynq-7000 AP SoC Zed Board.
El sistema de control de accionamiento del motor de CC industrial, los variadores industriales tienen
sistema de control PID. El sistema de control tiene dos bucles, un bucle de velocidad externo y un
bucle de corriente interno. El bucle de velocidad mantiene la velocidad del motor en diversas
condiciones de carga. El lazo de velocidad es un control integral proporcional (PI). El control PI de
velocidad trabaja sobre la diferencia de error entre la velocidad de referencia deseada y la velocidad
de retroalimentación real del motor de CC. La salida de control PI se utiliza como referencia de
corriente para el siguiente controlador de corriente. El bucle de corriente es control proporcional
derivado (PD). El control de corriente diferencial trabaja sobre la diferencia de error entre la corriente
de referencia generada por el controlador PI de velocidad y la realimentación de corriente de inducido
real del variador de frecuencia para motor de CC. La salida de control de DP se suministra al siguiente
circuito de activación de la etapa del variador de potencia, que podría ser un tiristor o MOSFET o un
rectificador de puente múltiple IGBT con alimentación de CA alta. Tanto el sistema de control PI
como el PD tienen protección de límite de sobretensión y sobrecorriente, incluida una Etapa de
suicidio automático para mitigar la falla de control en condición de emergencia.
6. 6
10. Debilidades. Indique los errores, debilidades, o mejoras que usted pudo observar en el
diseño o aplicación.
Dentro de la Arquitectura 1, se tiene las cinco tareas y las interfaces de señales están completamente
implementadas en la sección PL. Este diseño es simplemente un diseño de HW de lógica programable
con la coexistencia de un procesador ARM inactivo sin ninguna contribución. Este enfoque no tiene
relevancia práctica y es costoso, excepto para ganar experiencia en el entorno de diseño de SoPC para
hacer un IP de control de motor (MCP) viable.
En lo que tiene que ver con la Arquitectura 2, es el co-diseño de HW y SW. Las tareas parciales y las
interfaces de señales se transfieren a la sección GPIO de ARM. Las interfaces HMI de hardware a
través de GPIO están disponibles como funciones de software en la sección del procesador y son
utilizadas por el MCP. Este enfoque tiene una introducción mínima del entorno SDK en términos de
función HMI simple implementada en software. Las dos tareas en tiempo real, es decir, el
muestreador de velocidad y el controlador de velocidad, se conservan en el MCP. La velocidad
establecida decidida por la selección del interruptor y la velocidad real muestreada por el muestreador
de velocidad se pasan a la sección del procesador a través de la interfaz AXI para el control de
velocidad y la pantalla HMI. Este enfoque tiene relevancia práctica como una solución viable para el
diseño del sistema de control de motores.
Para la Arquitectura 3, no hay MCP. Todas las tareas son manejadas por el procesador ARM. Este
enfoque tiene un uso máximo del procesador ARM en un entorno de software único con manejo de
interrupciones. Todas las señales se distribuyen entre tres periféricos GPIO conectados al procesador
ARM. Hay dos temporizadores. El temporizador de un segundo se usa para la velocidad de muestreo
en un intervalo de 1 segundo y el segundo temporizador se usa para generar PWM. Las dos tareas en
tiempo real, es decir, el muestreador de velocidad y el controlador de velocidad, son manejadas por
las dos interrupciones del temporizador.