USD

Aprovechamiento del MCU basado en First Arm® Cortex®-M33 de Market: Parte 1: Administración de potencia y rendimiento

Por Stephen Evanczuk

Colaboración de Editores de Digi-Key de América del Norte

Nota de los editores: En la parte 1 de una serie de 2 partes, este artículo muestra la manera en que los desarrolladores pueden cumplir con una amplia gama de requisitos para el rendimiento y el bajo consumo de energía con una sola familia de microcontroladores de uso general. En la Parte 2, se explica la manera en que las características de seguridad ampliadas que se integran en los microcontroladores LPC55S6x de NXP Semiconductors admiten la seguridad del ciclo de vida, desde el aprovisionamiento y la puesta en marcha hasta las comunicaciones, el arranque seguro y las actualizaciones seguras de firmware.

Los desarrolladores se encuentran permanentemente luchando para equilibrar demandas que suelen ser conflictivas a fin de lograr un mayor rendimiento de las aplicaciones con un menor consumo de energía a lo largo de una amplia gama de funciones y aplicaciones. Estas aplicaciones incluyen internet de las cosas (IoT), automatización industrial, sistemas de uso médico y dispositivos de consumo. El rápido aumento de necesidad de una mayor seguridad en tales aplicaciones incrementa la dificultad de los desarrolladores para encontrar una sola familia de microcontroladores capaz de satisfacer una amplia, diversa y creciente lista de requisitos de diseño conflictivos.

Para abordar estas cuestiones, NXP Semiconductors introdujo la familia de microcontroladores LPC55S6x. Estos dispositivos ayudan a los desarrolladores a resolver problemas mediante la combinación de un potente núcleo de uso general con hardware y procesadores especializados altamente eficientes.

Identificación y cumplimiento de diversos requisitos

Los productos conectados han evolucionado rápido a partir de sistemas relativamente simples en los que los requisitos de diseño más desafiantes normalmente giraban en torno a algún aspecto de las comunicaciones. Ahora, los diseñadores se enfrentan a un entorno cada vez más desafiante que permite un pequeño compromiso a través de un conjunto de requisitos en aumento en cada segmento de la aplicación. Cada aplicación requiere que los desarrolladores cambien el énfasis, según sea necesario, para abordar los desafíos propios de esa aplicación. Sin embargo, la demanda de mayor rendimiento y de menor consumo de energía se ejecuta como un hilo común en la mayoría de las áreas principales de la aplicación.

Por ejemplo, las fábricas inteligentes no solo dependen de los dispositivos de baja latencia y de alto rendimiento que se necesitan para el procesamiento de la señal, sino que también requieren un consumo de energía reducido, ya que los ingenieros de fábrica empacan más de estos dispositivos en espacios reducidos. Los dispositivos portátiles de consumo no solo requieren diseños con un consumo de energía reducido para garantizar una batería de larga duración, sino que también se enfrentan a las crecientes demandas de capacidades de procesamiento de señales capaces de manejar las cargas de trabajo más complejas. En cada segmento de la aplicación, los diseñadores se encuentran con cada vez más presión para responder de manera más efectiva a las preocupaciones reales sobre la vulnerabilidad de estos dispositivos, sus redes y activos empresariales frente a ataques inmediatos o constantes amenazas avanzadas de delincuentes cibernéticos individuales, de organizaciones criminales o incluso de grupos patrocinados por el Estado.

Para cumplir con estos requisitos diversos, los desarrolladores generalmente se enfrentan a tener que elegir a comprometer algún aspecto de su diseño. Pueden renunciar al rendimiento de la aplicación para reducir el consumo de energía al usar un procesador de menor rendimiento, reducir la frecuencia de reloj o reducir el ciclo de trabajo del procesador a favor de los estados de baja potencia. Para cumplir con los estrictos requisitos de rendimiento, es posible que se adopte un enfoque inverso con procesadores más potentes, velocidades de reloj más rápidas y mayores ciclos de trabajo a costa de un consumo de energía mucho mayor. Para aplicaciones más complejas en materia de computación, se puede agregar un dispositivo de procesador de señal digital (DSP) dedicado para acelerar la ejecución del algoritmo, pero con mayor complejidad de diseño, costo y consumo de energía del sistema. Incluso si se alcanzara un equilibrio aceptable de energía y rendimiento, normalmente se necesitaría aceptar un mayor costo de diseño y complejidad para satisfacer los requisitos de seguridad.

Mientras los diseñadores luchan con los requisitos, los usuarios demandan cada vez menos o ningún compromiso para las aplicaciones críticas como los equipos médicos, los sistemas de automatización industrial, los dispositivos de pago minoristas y otros. La familia de microcontroladores LPC55S6x de NXP Semiconductors ayuda a los diseñadores a eliminar los compromisos con una arquitectura que combina la flexibilidad de un procesador de uso general con capacidades especializadas para el procesamiento y la seguridad que se requieren en las aplicaciones emergentes.

Amplias capacidades con núcleos de procesamiento dedicados

Los microcontroladores LPC55S66 de un solo núcleo y los de doble núcleo LPC55S69 de NXP Semiconductors, los primeros MCU de uso general basados en Arm® Cortex®-M33 del mercado, se construyen sobre el rendimiento determinístico de baja latencia incorporado en la arquitectura de la serie M de Arm. Entre las mejoras arquitectónicas, los dispositivos LPC55S6x de NXP incluyen el acelerador DSP PowerQuad de alto rendimiento de la empresa, el motor criptográfico CASPER (acelerador criptográfico y motor de procesamiento de señalización con RAM) y un subsistema de seguridad integral. Junto con hasta 640 Kbytes de flash, hasta 320 Kbytes de SRAM y 128 Kbytes de ROM, los dispositivos LPC55S6x integran un amplio conjunto de elementos funcionales que generalmente se requieren en cualquier diseño de sistema integrado (Figura 1).

Diagrama de la arquitectura del microcontrolador NXP LPC55S6xFigura 1: La arquitectura del microcontrolador LPC55S6x amplía las capacidades de procesamiento de uso general del núcleo Arm Cortex-M33 con bloques de hardware especializados para el procesamiento de señales, criptografía, almacenamiento seguro y administración de claves, al mismo tiempo que proporciona un complemento total de los periféricos que se usan en los típicos diseños embebidos. (Fuente de la imagen: NXP Semiconductors)

Entre esos elementos, los dispositivos LPC55S6x incluyen un subsistema de temporizador completo, múltiples interfaces seriales, controladores seguros de acceso directo a memoria (DMA) y hasta 64 pines de entrada y salida de uso general (GPIO). Junto con estos subsistemas digitales, los dispositivos LPC55S6x integran un convertidor que pasa de analógico a digital (ADC), un comparador analógico y un sensor de temperatura de un registro de aproximaciones sucesivas (SAR) de 16 bits de canales múltiples. Además, una unidad lógica programable (PLU) en el chip permite que los desarrolladores creen una lógica combinatoria o secuencial personalizada, incluidas las máquinas de estado, a partir de la matriz de 26 elementos de una tabla de consulta de cinco entradas (LUT). Los desarrolladores pueden acceder a los registros de PLU para programar el PLU directamente para pequeñas redes lógicas o usar herramientas NXP para implementar una red más grande descrita en el nivel de transferencia de registro (RTL) de Verilog.

Para evitar los obstáculos al acceder a los múltiples subsistemas, los dispositivos LPC55S6x incluyen una matriz de bus de múltiples capas construida con la arquitectura de bus de alto rendimiento (AHB) de la arquitectura de bus del microcontrolador avanzada (AMBA) de Arm. La matriz de bus AHB proporciona una conexión directa entre los maestros del bus y los periféricos o memoria. Este enfoque permite que las transferencias DMA, por ejemplo, procedan a toda velocidad sin comprometer el rendimiento del acceso del procesador a la memoria. De hecho, la capacidad de maximizar la eficiencia del procesador en medio de diversos requisitos de diseño se encuentra en la base de la arquitectura LPC55S6x.

En la arquitectura del LPC55S6x, el núcleo Cortex-M33 ofrece múltiples características diseñadas para ayudar a los diseñadores a tratar diversos requisitos de diseño. Al igual que con otros dispositivos de su clase, el procesador LPC55S6x admite varios modos de bajo consumo de energía. Durante períodos prolongados de inactividad, los desarrolladores pueden poner el dispositivo en modo de apagado, lo que proporciona una retención total de SRAM mientras consume solo 15.4 microamperios (µA), o el modo de apagado profundo, que mantiene la energía en una porción de 4 Kbyte de SRAM mientras consume alrededor de 0,59 µA. El modo de suspensión y los modos de suspensión profunda apagan el procesador al mismo tiempo que proporcionan diferentes niveles de operación para los periféricos y la memoria: El modo de suspensión proporciona un funcionamiento completo y consume alrededor de 2.7 miliamperios (mA), mientras que los periféricos de modo de suspensión profunda controlan el consumo de energía por debajo de aproximadamente 110 µA.

Capacidades aumentadas

Además de los modos de bajo consumo, la arquitectura del LPC55S6x amplía la compatibilidad con diversos requisitos de diseño con características integradas para mejorar el rendimiento y la seguridad. Estas capacidades integradas están incorporadas en el núcleo principal de Cortex-M33 e incluyen extensiones de seguridad Arm TrustZone (SECEXT), unidad de protección de memoria (MPU), unidad de punto flotante estándar IEEE 754 (FPU) y macrocélula de traza integrada (ETM). Además, el núcleo principal incluye el motor de criptografía CASPER y el acelerador PowerQuad para el DSP, y las operaciones de instrucción única y datos múltiples (SIMD).

Nota: Estas capacidades adicionales no están incluidas en el segundo núcleo Cortex-M33 provisto en el microcontrolador LPC55S69 de doble núcleo.

Cada uno de estos subsistemas integrados y características arquitectónicas proporciona un amplio conjunto de capacidades con descripciones detalladas que se encuentran más allá del alcance de este artículo. Por ejemplo, el acelerador del DSP PowerQuad es un coprocesador sofisticado en sí mismo, capaz de calcular de forma independiente las funciones de procesamiento de señales mientras accede a la memoria como un bus maestro.

Internamente, el acelerador PowerQuad combina múltiples registros e interfaces con una batería de motores de hardware para las funciones de procesamiento de señales clave, incluyendo la transformada rápida de Fourier (FFT), la transformada de coseno discreta (DCT), la respuesta de impulso infinito (IIR), la respuesta de impulso finito (FIR) y el algoritmo de Computación Digital de Coordinación de Coordenadas (CORDIC) utilizado para calcular de manera eficiente las funciones trigonométricas (Figura 2).

Diagrama de la familia de microcontroladores NXP Semiconductors LPC55S6xFigura 2: La familia de microcontroladores LPC55S6x de NXP Semiconductors integra el coprocesador PowerQuad de la empresa y utiliza motores especializados para acelerar la ejecución de algoritmos que generalmente se requieren en las aplicaciones de procesamiento de señales. (Fuente de la imagen: NXP Semiconductors)

Al usar el acelerador PowerQuad, los desarrolladores pueden ejecutar complejas operaciones de procesamiento de señales sin comprometer la capacidad del procesador host para responder a eventos en tiempo real o para completar una amplia serie de operaciones. El procesador host simplemente establece los registros de PowerQuad con la función de procesamiento de señales que se requiere y especifica las direcciones de memoria para las regiones de origen, destino y memoria de trabajo. Una vez que se solicita, el acelerador PowerQuad funciona como un verdadero coprocesador, y utiliza la matriz AHB para transferir memoria de 128 bits en su rol como maestro de bus. Mientras tanto, el procesador host puede volver inmediatamente a sus principales tareas de procesamiento, contar regularmente a bits de PowerQuad más ocupados o simplemente responder a una interrupción de la finalización de PowerQuad para acceder a los resultados.

Para los desarrolladores, sin embargo, las operaciones de PowerQuad son, en gran medida, transparentes. Los desarrolladores usan la interfaz de programación de aplicaciones (API) estándar para la biblioteca del DSP del Estándar de Interfaz del Software del Microcontrolador Arm Cortex (CMSIS). La versión compatible de PowerQuad de NXP de la biblioteca incluida en el kit de desarrollo del software (SDK) MCUXpresso de NXP Semiconductors reemplaza las funciones matemáticas de bajo nivel que se implementan en el software con llamadas a la API de PowerQuad.

Por ejemplo, para calcular una FFT compleja, los desarrolladores usan la función estándar CMSIS-DSP, arm_cfft_q31 (), con datos en formato Q, que representa un número de punto fijo de 32 bits con un bit para el signo y 31 para el exponente. En una implementación de software puro, una llamada a la función arm_cfft_q31 () a su vez solicita la función de software de mariposa CMSIS DSP FFT, arm_radix4_butterfly_q31 () y la función final, arm_cfft_radix4by2_q31 () o sus versiones inversas para las FFT complejas e inversas.

Sin embargo, al usar la biblioteca DSP de NXP y PowerQuad, la llamada normal a arm_cfft_q31 (), en cambio, solicita a PQ_TransformCFFT (), que maneja los mismos cálculos en el hardware. El resultado final no es solo una carga de procesamiento reducida en el núcleo de Cortex-M33, sino también una ejecución más rápida de las funciones DSP (Figura 3).

Gráfico del kit de desarrollo de software MCUXpressoFigura 3: El kit de desarrollo del software MCUXpresso acelera significativamente la ejecución de algoritmos DSP comunes mientras mantiene la compatibilidad con las llamadas de alto nivel a la biblioteca DSP estándar de Arm CMSIS al reemplazar de manera transparente las funciones de bajo nivel de CMSIS-DSP con llamadas al acelerador PowerQuad. (Fuente de la imagen: NXP Semiconductors)

Otro coprocesador, el motor criptográfico CASPER, alivia de manera similar al procesador principal de la pesada carga computacional asociada con los algoritmos de criptografía asimétrica. El criptográfico del motor CASPER ejecuta Rivest – Shamir – Adleman (RSA), Diffie-Hellman, criptografía de curva elíptica (ECC) y el algoritmo de firma digital de curva elíptica (ECDSA) hasta ocho veces más rápido que el software criptográfico equivalente que se ejecuta en el núcleo Cortex-M33.

Para acelerar la ejecución de algoritmos simétricos, el LPC55S6x también integra bloques de hardware para el estándar de cifrado avanzado de 256 bits (AES-256) y el algoritmo de Hash seguro 2 (SHA-2).

La combinación de estos bloques de hardware y el motor CASPER les proporciona a los desarrolladores un soporte basado en hardware para los algoritmos criptográficos que comúnmente se usan para la autenticación y el cifrado de datos necesarios para proteger el intercambio de datos en los productos conectados.

Como se discutió en la Parte 2 de esta serie de dos partes, el soporte de la familia LPC55S6x para la seguridad se extiende más allá del soporte para los algoritmos de criptografía fundamentales a fin de proporcionar la funcionalidad de seguridad basada en hardware que se requiere para la seguridad de todo el ciclo de vida.

Desarrollo del sistema

Los desarrolladores pueden explorar rápidamente los motores de cifrado, los DSP y las capacidades de procesamiento de uso general de los microcontroladores LPC55S6x por medio del EVK LPC55S69 de NXP. Diseñado para acelerar el desarrollo con estos dispositivos, el EVK LPC55S69 comprende un microcontrolador LPC55S69 de doble núcleo, el acelerómetro MMA8652FCR1 de NXP, luces LED, botones, interfaz de depuración y soporte para múltiples opciones de expansión, lo que incluye Arduino UNO, MikroElektronica Click y hardware adicional Digilent PMod.

Los puentes y las cabeceras múltiples permiten que los desarrolladores definan fácilmente las diferentes configuraciones del hardware y examinen de cerca los detalles de rendimiento (Figura 4). Por ejemplo, los desarrolladores preocupados por el consumo de energía pueden medir la corriente de suministro de LPC55S69 simplemente con un voltímetro para medir la caída de voltaje en la cabecera P12.

Imagen de EVK LPC55S69 de NXP Semiconductors (haga clic para ampliar)Figura 4: Construido alrededor de un microcontrolador LPC55S69 de doble núcleo de NXP Semiconductors, el EVK LPC55S69 de NXP Semiconductors ofrece múltiples puentes y cabeceras que permiten que los desarrolladores establezcan configuraciones y examinen los detalles de rendimiento, como el consumo actual del microcontrolador. (Fuente de la imagen: NXP Semiconductors)

Para el desarrollo, los diseñadores usarían la placa con el entorno completo de desarrollo integrado (IDE) MCUXpresso y el SDK, que usa un hardware especializado LPC55S6x como la funcionalidad PowerQuad mencionada anteriormente. Por otra parte, el LPC55S69-EVK es compatible con IAR y los IDE de Keil. Además, NXP proporciona paquetes de software gratuitos con un código de muestra que exhibe los patrones de diseño de software clave para usar las características de LPC55S6x.

Conclusión

Los desarrolladores buscan equilibrar el rendimiento, el bajo consumo y la seguridad en una amplia gama de aplicaciones que incluyen IoT, automatización industrial, sistemas de uso médico y dispositivos de consumo. Tal como se describe, el potente núcleo de uso general de la familia de microcontroladores LPC55S6x con hardware especializado y motores de procesamiento proporciona un camino para que estos desarrolladores puedan satisfacer más fácilmente las demandas de las funciones especializadas de alto rendimiento, al mismo tiempo que ahorran en el consumo de energía.

La parte 2 de esta serie muestra cómo la seguridad a lo largo del ciclo de vida de un dispositivo se puede administrar usando la familia LPC55S6x.

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de Digi-Key Electronics o de las políticas oficiales de Digi-Key Electronics.

Acerca de este autor

Stephen Evanczuk

Stephen Evanczuk tiene más de 20 años de experiencia escribiendo para y sobre la industria de electrónica en un amplio rango de temas, entre ellos hardware, software, sistemas y aplicaciones, que incluyen IoT. Se doctoróen neurociencias (redes neuronales) y trabajó en la industria aeroespacial en sistemas seguros con distribución masiva y métodos de aceleración de algoritmos. Actualmente, cuando no escribe artículos sobre tecnología e ingeniería, trabaja en aplicaciones de aprendizaje profundo sobre sistemas de reconocimiento y recomendaciones.

Acerca de este editor

Editores de Digi-Key de América del Norte