Inicio Artículos ¿Proceso o control?

¿Proceso o control?

Cada nuevo diseño de aplicación requiere un microcontrolador o un microprocesador. Y cuando hay que elegir entre uno de los dos, existen unos cuantos factores a tener muy en cuenta. Por ello, aquí se ofrece una reseña del microprocesador, del microcontrolador y de las arquitecturas heterogéneas.
Al decidir entre un microprocesador (MPU) y un microcontrolador (MCU), el tipo de aplicación suele ser un factor crítico. La selección final, por el otro lado, depende de criterios como el sistema operativo y la memoria. Sin embargo, en algunas ocasiones, tiene sentido decantarse por una combinación de los dos, lo que se conoce como arquitectura heterogénea.
El sistema operativo
Para un gran número de aplicaciones industriales y de consumo computer- intensive que se basan en sistemas operativos como Linux o Android y requieren múltiples conexiones de alta velocidad o interfaces de usuario con un amplio alcance funcional, un microprocesador es la mejor opción. Esto se debe a que, en lugar de un sistema operativo, muchos microcontroladores sólo cuentan con una programación bare metal que ejecuta los programas prácticamente sin intervención humana, gracias a los bucles de procesamiento secuencial y las máquinas de estado. Sin embargo, muchos microcontroladores de elevado rendimiento pueden soportar un sistema operativo en tiempo real (RTOS), como FreeRTOS, con la misión de responder a los procesos en tiempo real de una manera determinística para aquellas aplicaciones que necesitan un buen comportamiento en tiempo real. Como un sistema operativo universal con gran cantidad de software gratuito, soporte de hardware extensivo y un ecosistema en crecimiento, Embedded Linux ha disfrutado de un gran éxito. Otra ventaja adicional reside en que no existen tasas de usuario ni de licencia. No obstante, una aplicación que se ejecuta con Embedded Linux requiere, al menos, entre 300 y 400 DMIPS (ARM-Dhrystone MIPS), lo que hace que un microprocesador sea la mejor alternativa. En esta aplicación,
¿Proceso o control?
un microcontrolador no genera la suficiente potencia informática ni está equipado con la suficiente memoria. Si se trata de un sistema de control complejo o time-critical, entonces un RTOS resulta útil, pero necesita un microcontrolador de alto rendimiento que ofrezca, al menos, 50 DMIPS. Esto es muchos menos de lo requerido por Embedded Linux; los RTOS tradicionales han sido diseñados para ser austeros, por lo que operan en un microcontrolador. Esto tiene sentido cuando se trata de hardware informático en tiempo real, como un sistema antibloqueo de frenos (ABS) en vehículos, donde una elevada latencia en la respuesta puede tener terribles consecuencias. Incluso si hay que soportar un gran número de funciones, fuentes de interrupción e interfaces de comunicaciones estándares, se recomienda el uso de un microcontrolador con RTOS.
La memoria
Otra gran diferencia entre los microprocesadores y los microcontroladores suele consistir en el hecho de que los microprocesadores confían en una memoria externa a la hora de guardar o ejecutar el programo y no – como sucede en el caso de los microcontroladores – en una memoria flash embebida. En los microprocesadores, el programa normalmente se almacena en una memoria no volátil como eMMC o Serial Flash, por citar algunos ejemplos. Durante el arranque, se carga en una DRAM externa y se ejecuta ahí. Tanto la DRAM como la memoria no volátil pueden tener cientos de megabytes o incluso gigabytes. Esto implica que los microprocesadores casi nunca están limitados por la capacidad de memoria. Una desventaja potencial es que el diseño de la distribución de la PCB puede ser más compleja debido a la memoria externa. Los actuales microcontroladores de alto rendimiento, como los modelos STM32H7 producidos por STMicroelectronics, ofrecen una memoria de programa de hasta 2 MB, que puede ser insuficiente en muchas aplicaciones. Dado que el programa confía en una memoria On-Chip, su ventaja se encuentra en que lleva a cabo los procesos de arranque y reinicio de una manera considerablemente más rápida.
La potencia informática
La potencia informática es un criterio de selección clásico. Sin embargo, las líneas entre los microprocesadores y los microcontroladores se han vuelto borrosas en este sentido. Esto parece obvio, por ejemplo, si usted mira a la arquitectura ARM como una de la más ampliamente distribuidas en el mercado del microcontrolador y el microprocesador. ARM ofrece varias arquitecturas de procesador para los diferentes requisitos: Cortex-A proporciona el máximo rendimiento de todas ellas y ya está optimizada para sistemas operativos completos. Se ha desplegado principalmente en dispositivos “potentes” como teléfonos móviles inteligentes y en servidores. Cortex-M posee menores dimensiones con una periferia On-Chip y, sin embargo, tiene menor consumo de energía y, por lo tanto, resulta idónea en aplicaciones embebidas. Dhrystone se usa como el estándar de comparación del rendimiento de los diferentes procesadores. Basándose en esta referencia, la diferencia entre un microcontrolador económico típico con 30 DMIPS y otro con el máximo rendimiento disponible actualmente en el mercado, incluyendo una memoria flash de programa embebida, es de 1027 DMIPS. Por el contrario, los microprocesadores no comienzan hasta casi los 1000 DMIPS.
El consumo de energía
Los microcontroladores puntúan alto en lo que se refiere al consumo de energía, que es un poco más bajo que el de los microprocesadores. Aunque los microprocesadores tienen un modo energy-savings, su consumo es considerablemente mayor al de un microcontrolador típico. Además, la memoria externa dificulta que un microprocesador pase a un modo de ahorro de energía. Para las aplicaciones de ultrabajo consumo en las que una larga duración de la batería es un factor crítico y donde una interfaz de usuario tiene un uso escaso o nulo, los microcontroladores se convierten en la mejor opción, particularmente en electrónica de consumo o contadores inteligentes.
La conectividad
La mayoría de los microcontroladores y los microprocesadores se presenta equipada con todas las interfaces de periféricos estándares. Sin embargo, si se requiere la presencia de dispositivos periféricos ultrarrápidos, entonces los usuarios no encontrarán las interfaces relevantes, como Gigabit Ethernet, en los microcontroladores. Por el contrario, se han convertido prácticamente en un estándar en los microprocesadores. Esto tiene mucho sentido porque los microcontroladores apenas pueden procesar el volumen de datos generado. Aquí hay que preguntarse si hay el suficiente ancho de banda y los canales disponibles para gestionar el tráfico de datos emergente.
El rendimiento en tiempo real
Si se trata de rendimiento en tiempo real, un microcontrolador es definitivamente el componente a elegir. Gracias a su núcleo procesador, la memoria flash embebida y el software (RTOS o Bare Metal OS), el microcontrolador realiza un trabajo excelente a la hora de cumplir con sus tareas en tiempo real. Dado que los microprocesadores Cortex-A son maestros de los canales, los usuarios pueden esperar una mayor profundidad del canal con tiempos de latencia más largos durante saltos e interrupciones. El tiempo real duro es difícil de cumplir debido a las multitareas del sistema operativo con microprocesadores.
Los CI base de sistema
Los microcontroladores ya integran una fuente de alimentación, sólo necesitan un carril de tensión. Los microprocesadores, por su parte, requieren numerosos carriles para proporcionar energía al núcleo y al resto de componentes. La energía se suministra, por ejemplo, a través de circuitos integrados (CI) especiales, llamados chip base de sistema, que sólo tienen que configurarse.
La arquitectura heterogénea
Aún así, la línea entre el microprocesador y el microcontrolador se está comenzando a hacer visiblemente más borrosa. Con la introducción del STM32MP1 con uno o dos núcleos Cortex-A7 para un microprocesador y un núcleo Cortex-M4 como un representante del microcontrolador, STMicroelectronics ha incorporado a su oferta un microcontrolador potente para aplicaciones basadas en software de código abierto que demandan rendimiento y recursos. Esto abre la posibilidad de combinar las ventajas de ambos mundos. Por ejemplo, un OpenST Linux se puede ejecutar en los núcleos del microprocesador, mientras que el núcleo M4 ejecuta un FreeRTOS con la intención de cumplir los requisitos de tiempo real y seguridad, según sea necesario en la monitorización del proceso. Debido a esta separación, todas las características del sistema operativo, como HMI con control táctil y comunicación de red, se pueden usar sin entrar en los requisitos de seguridad de toda la aplicación. Las arquitecturas heterogéneas también aportan un beneficio en lo que se refiere a la latencia durante el arranque de sistema o al consumo de energía al poder utilizarse el procesador más adecuado en cualquier momento. Por ejemplo, con la ayuda de su RAM de retención, el M4 puede “despertarse” en milisegundos, en tanto que el A7 tarda hasta un segundo en tiempo de latencia para despertarse. Este puede ser posible a la hora de mantener el microprocesador en modo Stop, mientras el componente del microcontrolador lleva a cabo una conversión A/D que, en comparación con la configuración run-run, ahorra tres cuartas partes de la energía.
El diseño de referencia para el STM32MP1
El STM32MP1 se encuentra disponible con la Evaluation Board (STM32MP157C-EV1) y el Discovery Kit (STM32MP157C-DK2) como un diseño de referencia. Los desarrolladores se benefician del soporte con el diseño de sistema. Se basa en la combinación del STM32MP1 y de las tecnologías de socios probados como Nanya. Consta de una DDR3L SDRAM de 4 Gbits, una e-MMC de 4 GB de Kioxia (anteriormente Toshiba) y un CI de gestión de potencia optimizado STMPIC1 como un chip de soporte.
Conclusión
Resulta complicado decir cuándo un microprocesador o un microcontrolador es la mejor opción, pero la “regla de oro” que usted debe seguir es sopesar los pros y los contras. A continuación, se indica lo que puede se puede usar como una pauta:

  • Los microcontroladores son ideales para aplicaciones más asequibles y móviles en las que el consumo de energía es un aspecto primordial, así como para sistemas con requisitos en tiempo real.
  • Los microprocesadores están especialmente indicados para aplicaciones informáticas intensivas que se ejecutan con un sistema operativo y requieren interfaces de alta velocidad. Los juegos y otras aplicaciones gráficas se conectan en red usando microprocesadores especiales.