Como “el alma y el núcleo de la electrónica programable”. Así llama un artículo de la reconocida revista ELE Times al microcontrolador y microprocesador, elementos muy presentes en nuestra vida cotidiana sin que siquiera lo notemos.
En una entrega anterior titulada: Diseño de software embebido – lo básico que debe conocer, presentamos los elementos básicos y pasos iniciales a tener en cuenta, para el diseño de software embebido de un producto electrónico.
Uno de dichos elementos es el hardware que ejecutará al software embebido o firmware que controla el funcionamiento de cualquier dispositivo electrónico, desde la memoria flash que se usa para portar datos o archivos, pasando por los smartphones, hasta el refrigerador inteligente o la lavadora programable.
El elemento de hardware básico de estos dispositivos digitales puede ser un microcontrolador o un microprocesador, y su selección dependerá de varios factores como:
- Capacidad de cómputo requerida por la aplicación
- Arquitectura y periféricos
- Costo
- Herramientas de desarrollo
- Documentación disponible.
En esta entrega se presentarán las principales características de los microcontroladores y microprocesadores, sus similitudes y diferencias, y se darán lineamientos para su selección según los factores mencionados anteriormente.
La sinergia es clave para el éxito de cualquier proyecto
5 ventajas de la tercerización del diseño y prototipado de productos electrónicos
¿Qué es un microprocesador?
De acuerdo con un documento académico de la Universidad de Oviedo, el microprocesador o MPU es un dispositivo electrónico digital, integrado, programable y de actuación secuencial que constituye la base tangible más elemental de un sistema de cómputo, como el ordenador de mesa o la computadora portátil.
El gigante Amazon Web Services (AWS) define al microprocesador como: “una unidad de procesamiento de tamaño diminuto que se alberga dentro de una CPU, tan minúsculo como un solo circuito integrado en el chip de una computadora capaz de realizar funciones lógicas y aritméticas en señales digitales”
Un microprocesador ejecuta programas a partir de instrucciones en lenguaje de máquina y realiza operaciones aritméticas, lógicas y accesos a memoria en tiempos muy cortos, del orden de microsegundos o nanosegundos.
Sus principales componentes son:
1) Una unidad de control
2) La unidad aritmético – lógica (ALU por sus siglas en inglés)
3) Y un conjunto de registros.
A través de los buses de datos, dirección y control, accede a elementos externos como la memoria, de la cual, extrae las instrucciones y datos que componen el programa a ejecutar. Decenas o incluso centenas de microprocesadores pueden trabajar juntos para indicar a las computadoras, servidores y grandes centros de datos cómo computar, almacenar datos e interactuar con otros dispositivos, todo en fracciones de segundo.
¿Qué es un microcontrolador y en qué se diferencia de un microprocesador?
Un microcontrolador o MCU, según la Universidad Nacional Abierta y a Distancia de Colombia (UNAD), es un dispositivo programable capaz de ejecutar operaciones, tareas y procesos a gran velocidad.
Podríamos visualizarlo como un dispositivo de cómputo usado para tareas básicas y puntuales, incluye en su interior, dentro de un mismo encapsulado electrónico, las principales unidades funcionales de un computador convencional:
1) Microprocesador
2) Memoria
3) Periféricos de entrada/salida.
Esto permite su uso en aplicaciones en tiempo real, como sensores, sistemas remotos, automatismos, sistemas de control en máquinas y aplicaciones industriales.
Otro grande, Hewlett-Packard Enterprise (HP) afirma que el fin fundamental de un microcontrolador es, como su nombre indica, controlar una función específica en lugar de manejar los datos de cientos o miles de funciones.
Ya estas definiciones marcan importantes diferencias entre microprocesadores y microcontroladores.
Microprocesadores y microcontroladores son el alma y el núcleo de la electrónica moderna.
Microprocesador Vs. Microcontrolador – Un esquema gráfico
Como se mencionó al comienzo, el software embebido o firmware que define el funcionamiento de cualquier dispositivo electrónico, puede ser ejecutado ya sea por un microcontrolador o por un microprocesador.
La principal diferencia entre microprocesador y microcontrolador radica en que el segundo, combina un microprocesador, memoria y periféricos en un mismo encapsulado, mientras que el microprocesador se conecta a bloques externos de memoria y periféricos, como sucede en el computador personal que usamos a diario.
Gráficamente podemos apreciar estas configuraciones en la Figura 1.
Figura 1. Ejemplo de diferencia entre microcontrolador y microprocesador. Fuente. Cidei.
Dado que un microcontrolador incorpora en su interior los bloques que un computador utiliza de forma externa y escalable para funcionar, el poder de cómputo de los sistemas embebidos basados en microcontrolador suele ser menor que el de los sistemas embebidos basados en microprocesador.
En estos últimos, el hecho de separar los bloques de memoria, almacenamiento y periféricos, y poderlos escalar en capacidad, hace que se logre una mayor capacidad de procesamiento de datos.
Tanto el firmware como el dispositivo donde éste se ejecuta se definen en la etapa del diseño
Conozca las etapas del proceso de desarrollo de productos electrónicos.
Microcontrolador Vs Microprocesador – Comparativa
Tal como aluden los expertos de Hewlett-Packard, no se puede argumentar que uno sea mejor que el otro, ambos tienen funciones separadas y aplicaciones completamente diferentes.
Cada uno tiene sus ventajas y desventajas, pero ambos son herramientas poderosas para el desarrollo de prototipos y productos comerciales.
Muestra de ello, son los productos de empresas como Industrial Shields y Sphera Labs, que desarrollan Controladores Lógicos Programables (PLC) para aplicaciones de automatización industrial, basados en Raspberry Pi, Arduino y ESP32.
Tabla comparativa MCU Vs MPU
A modo comparativo, en la Tabla 1 mostrada más adelante, se toman como referencia dos tarjetas de desarrollo basadas en microcontrolador y una tarjeta de desarrollo basada en microprocesador, ello con el fin de identificar más claramente las diferencias entre microprocesadores y microcontroladores como componentes claves de todo sistema embebido.
Tabla 1. Comparativa entre las tarjetas de desarrollo Raspberry Pi 4 (basada en microprocesador), Arduino Due (basada en microcontrolador) y Adafruit Huzzah 32 (basada en microcontrolador)
Elaboración propia (Cidei) basada en datos disponibles en los sitios web de los fabricantes
Microprocesador Vs. Microcontrolador algunas diferencias prácticas
Si analizamos los detalles de la Tabla 1, podemos concluir que:
1) La velocidad del procesador incorporado en la Raspberry Pi (MPU) es mucho mayor que los otros dos.
2) La tarjeta Raspberry Pi 4 (Microprocesador) incorpora mucha más memoria RAM y almacenamiento, sin embargo, esto mismo causa que su consumo de energía sea también más alto.
3) Las tarjetas basadas en microcontrolador incorporan más periféricos que típicamente se requieren en una aplicación embebida, como por ejemplo:
A. Puertos seriales para comunicaciones con otros dispositivos
B. Convertidor analógico a digital (ADC) y digital a analógico (DAC)
C. Soporte para comunicación CAN para aplicaciones en vehículos, entre otros.
4) Con respecto al soporte para sistemas operativos, la Raspberry Pi utiliza sistemas operativos de propósito general como Linux o Windows, lo que permite programar aplicaciones sobre casi cualquier lenguaje de programación. Sin embargo, este tipo de sistemas operativos no suelen ser recomendables para aplicaciones que requieran de tiempos de ejecución precisos.
5) Los microcontroladores normalmente permiten un acceso mucho más rápido y sencillo a los periféricos, particularmente a los GPIO, y (dependiendo de sus características) pueden incorporar lo que se conoce como un sistema operativo de tiempo real o RTOS por sus siglas en inglés.
Un RTOS montado sobre un microcontrolador, es una potente herramienta para programar aplicaciones multitarea con control estricto en los tiempos de ejecución, ideal para casos críticos como sistemas robóticos remotos, controladores industriales o equipos médicos.
Además, es común que los microcontroladores dispongan de un mayor conteo de pines digitales de propósito general (GPIO), usados mayormente en la lectura de botones y el control de actuadores como motores, relevos, indicadores luminosos y auditivos, entre otros.
De los sistemas operativos utilizados en sistemas embebidos se hablará en detalle en una próxima entrega.
Microcontroladores y microprocesadores son la base física y de cómputo de los circuitos integrados. Aquí una entrega dedicada al análisis de 5 de los mejores software gratuitos para el diseño de circuitos impresos.
Microprocesador Vs Microprocesador ¿Cuál elegir?
La respuesta, no es simple ya que depende de los requerimientos del sistema a desarrollar. Para brindar una guía, se recurrirá a los criterios mencionados al comienzo de este artículo, veamos cada uno.
Capacidad de cómputo requerida
Si la aplicación que se desea desarrollar requiere procesar imágenes, video, audio o almacenar este tipo de archivos dentro del sistema embebido, lo mejor es recurrir a un sistema basado en microprocesador.
Si la aplicación requiere ejecutar y/o controlar funcionalidades con periféricos como sensores analógicos o digitales, realizar tareas de procesamiento de baja complejidad, tiene restricciones estrictas de tiempo o de consumo de energía, será entonces un trabajo más adecuado para un microcontrolador.
Al respecto, Predictable Designs hace referencia a que la capacidad de memoria flash máxima que soportan la mayoría de los microcontroladores es de 2MB, que podría extenderse un poco más vía interfaz serial SPI, pero si el desarrollo realmente requiere de mucha más memoria el camino lo marca el microprocesador.
Pero hay que acotar que el desarrollo de librerías y entornos de trabajo para inteligencia artificial sobre sistemas embebidos, ha avanzado mucho en los últimos años; algo que habilita la ejecución de algoritmos de redes neuronales y otro tipo de procesamiento de relativa complejidad sobre microcontroladores, por lo cual, estos pequeños dispositivos ofrecen cada vez más versatilidad a menor costo y con consumos reducidos de energía.
Arquitectura y periféricos
La arquitectura del sistema a desarrollar, descrita a través de los bloques que la componen y su interconexión (diagrama de bloques del sistema), por sí sola dirá qué tipo de dispositivo es el más adecuado.
Es común que con un microcontrolador se puedan realizar lecturas de diversidad de sensores y realizar control de actuadores de forma simultánea. De tal modo que la selección en este caso suele ser más un tema de velocidad, almacenamiento temporal requerido y, debido al auge de aplicaciones de Internet de las cosas (IoT), se agrega el criterio de comunicación inalámbrica.
Microcontroladores como el ESP32 incorporan comunicación Bluetooth y WiFi, lo que habilita el desarrollo de diversidad de aplicaciones de monitoreo y control remoto, sin hardware adicional de comunicaciones.
No obstante, cuando aparte de la conectividad inalámbrica, se requiere también el almacenamiento temporal de datos que excede la capacidad del microcontrolador, será momento de pensar en un sistema basado en microprocesador.
El costo
Los microcontroladores son típicamente más baratos que los microprocesadores, y existe una gama enorme de fabricantes y características para escoger.
AWS ofrece un argumento de ello al indicar que como el microcontrolador requiere de menos componentes adicionales, resulta en sistemas más baratos. Así por ejemplo una PCB de un aire acondicionado basada en un MCU es mucho más económica que una PCB de una portátil basada en microprocesador.
Entonces, si por ejemplo, lo que se requiere es agregar algo de procesamiento a un sistema existente para procesar un par de entradas digitales y una salida, un microcontrolador de 8 bits puede resolver el asunto por solo medio dólar.
También es importante el punto de vista de negocio. Cuando se desarrollan aplicaciones especializadas, orientadas a un mercado de nicho con altos márgenes de ganancia, el costo del microcontrolador no suele ser un factor significativo. Pero cuando se busca resolver necesidades para un público masivo, sin mucho margen de maniobra por un bajo precio final para el cliente, cualquier centavo que se ahorre en componentes es crucial.
Herramientas de desarrollo
En el ciclo de desarrollo de productos electrónicos, el prototipado generalmente tiene alta relevancia, ya que permite validar la idea, obtener resultados tempranos y reducir incertidumbres a un costo razonable.
En el mercado existen diversidad de herramientas de hardware para microcontroladores y microprocesadores, que permiten validar las capacidades de estos dispositivos para diversidad de aplicaciones.
Estas herramientas suelen venir con proyectos de software embebido de ejemplo, que incluso pueden usarse como plantillas para la construcción de un mínimo producto viable. De tal modo que la disponibilidad de este tipo de recursos, también suele ser un criterio para decidir el microcontrolador o microprocesador a usar.
Adicionalmente, están los entornos integrados de desarrollo (IDE por sus siglas en inglés) de software embebido, que pueden integrar herramientas de configuración de hardware, depuración, simulación, entre otros elementos que facilitan enormemente el desarrollo de firmware.
7 herramientas clave para el diseño de productos electrónicos
Documentación disponible
Otro de los factores que influyen en la selección de un microcontrolador Vs. microprocesador para el desarrollo de un prototipo, es la documentación que se encuentre en internet sobre este.
Dicha documentación puede ser en video, hojas de datos de fabricantes, libros blancos, notas de aplicación, artículos web, trabajos científicos, entre otros.
Este tipo de documentación ayuda por lo general a reducir la curva de aprendizaje del desarrollador y le permite concentrarse rápidamente en la funcionalidad, en lugar de patinar durante días o semanas en el uso del hardware y sus herramientas de desarrollo.
Microcontroladores y Microprocesadores - Principales fabricantes
Finalmente, en lo que respecta a los fabricantes de microcontroladores y microprocesadores, existen varios en el mercado, algunos más conocidos que otros, y todos con una amplia oferta de dispositivos para todo tipo de aplicaciones embebidas.
Los dos más reconocidos entre la comunidad de desarrolladores de hardware hoy en día son los fabricantes estadounidenses Broadcom Inc. y Microchip Technology, debido a que el primero fabrica los procesadores de las tarjetas Raspberry Pi, y el segundo los microcontroladores que se encuentran en la mayoría de las tarjetas Arduino.
No obstante, existen otros fabricantes de gran trayectoria que cuentan además con herramientas de desarrollo y documentación de excelente calidad. A continuación, algunos de ellos:
Texas Instruments:
Texas Instruments Incorporated (TI) es una empresa pionera en la producción de microcontroladores. Fundada hace casi 100 años, cuenta con una famosa línea de microcontroladores llamada MSP430, y también fabrica microcontroladores y microprocesadores de núcleo ARM.
Tiene su propia línea de tarjetas de desarrollo llamada “Launchpad” y sus procesadores se usan también en los computadores de placa sencilla Beaglebone, similares a la Raspberry Pi.
Renesas
Renesas Electronic Corp. No es tan conocida como las demás, sin embargo, esta empresa japonesa fundada hace 20 años es hoy en día uno de los líderes mundiales en microcontroladores. Es producto de una alianza estratégica, nada menos que de Hitachi Ltd. y de Mitsubishi Electric.
Sus chips se usan en tarjetas de desarrollo como las CubeCell de Heltec Automation, bastante versátiles para aplicaciones del internet de la cosas (IoT), y en los más recientes lanzamientos de Arduino, como el Arduino Uno R4 y el Arduino Pro Portenta C33.
STMicroelectronics
En el mercado mundial de microcontroladores Europa también tiene participación, su líder STMicroelectronics. Es una compañía franco-italiana fundada hace 35 años, muy reconocida por la presencia de sus microcontroladores en aplicaciones para automóviles. Cuenta con microcontroladores en casi todas las familias ARM Cortex-M (M0+, M3, M4, M7, M33) y también una línea de microprocesadores ARM.
Tiene su propia línea de tarjetas de desarrollo llamada “Nucleo” y herramientas de software que facilitan la construcción de software embebido, como el STM32CubeMX, que de forma gráfica permite configurar cualquiera de sus microcontroladores y generar automáticamente código fuente en lenguaje C.
Además, el Arduino Pro Nicla Vision, orientado a aplicaciones de visión artificial incorpora un microcontrolador STM32H7 de doble núcleo, un emblema de este fabricante.
NXP Semiconductors
Otra firma europea con fuerte presencia en el mercado de microprocesadores.
NXP Semiconductors se fundó en 2006 a partir de la división de semiconductores de Philips, que es mucho más conocida en el mundo tecnológico por sus productos Mifare, presentes en la mayoría de tarjetas sin contacto que circulan en el mundo, principalmente en sistemas de transporte público y controles de acceso.
No obstante, cuenta también con una línea de microcontroladores que potenció tras la adquisición que realizó en el año 2015 de Freescale Semiconductor.
Cuenta con líneas propias de tarjetas de desarrollo (Freedom e i.MX) y sus chips se encuentran también en las tarjetas Arduino Pro Portenta X8, orientadas a aplicaciones industriales.
Espressif
Espressif System es el fabricante más joven de los mencionados en este artículo, fundado en el 2008 en China y con instalaciones también en Europa.
Espressif es una empresa especializada en microcontroladores que integran comunicación Bluetooth y WiFi, se ha popularizado por el bajo costo y facilidad de uso de sus microcontroladores.
El más famoso de estos hoy en día es el ESP32, producto insignia del fabricante, que cuenta con una amplia línea de tarjetas de desarrollo, es soportado por el IDE de Arduino y se encuentra presente en tarjetas de desarrollo producidas por una gran variedad de empresas como Arduino, Adafruit, SparkFun, Seeed Studio, Pycom, Particle, entre otros.
Cada uno de estos fabricantes desarrollan y prueban sus tecnologías e innovaciones bajo la metodología conocida como TRL: Descubra qué son y su importancia
Microprocesador Vs. Microcontrolador - Conclusión
Como se pudo ver en esta entrega, la selección del microprocesador Vs un microcontrolador adecuado para un sistema embebido no es una labor trivial y depende de diversidad de factores.
Los elementos mencionados pretenden ser una guía útil para llevar a cabo una selección objetiva de las herramientas y componentes de hardware en el proceso de diseño y prototipado de productos electrónicos uno de los pilares de servicio de Cidei.
En próximas entregas se desarrollarán otros temas de interés alrededor de los sistemas embebidos, como metodologías y herramientas de diseño, sistemas operativos de tiempo real (RTOS), herramientas de desarrollo (hardware y software), entre otros.
De manera que le invitamos a suscribirse a nuestro blog.
Si desea estudiar a fondo alguna tecnología en particular, consulte por nuestros servicios de Vigilancia e Inteligencia Competitiva, o si está listo para apropiar tecnologías emergentes y agregar valor a sus productos y servicios, agende una cita.
¡Cidei transformando conocimiento en desarrollo!