Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Incrustado

Comprensión de la canalización de gráficos heterogéneos de las MCU i.MX RT1170

En este artículo, aprenda sobre la canalización de gráficos heterogéneos de la MCU i.MX RT1170 y sus tres motores principales de aceleración de gráficos.

Los dispositivos integrados modernos de nivel profesional y de consumo son cada vez más capaces de ofrecer una gama cada vez mayor de funciones útiles. Sin embargo, esta riqueza de funciones hace que los diseñadores se pregunten cómo hacer que todas las funciones sean accesibles para los usuarios sin abrumarlos con una interfaz complicada.

Las GUI similares a los de un teléfono inteligente pueden ser una alternativa eficaz a los botones físicos tradicionales, ya que ofrecen algunas mejoras con respecto a los controles físicos clásicos. NXP hace que el desarrollo de interfaces de usuario gráficas y ricas en funciones sea más accesible con varios controladores de pantalla integrados y aceleradores de gráficos, como los incluidos en el MCU cruzado i.MX RT1170.

Figura 1. El i.MX RT1170 MCU

Los tres motores de pantalla del MCU i.MX RT1170

Si bien la mayoría de los microcontroladores NXP pueden admitir los periféricos GUI necesarios, algunos dispositivos (como el i.MX RT1170 MCU) vienen con interfaces de pantalla integradas y aceleradores de gráficos diseñados para admitir aplicaciones GUI enriquecidas. Más concretamente, el i.MX1170 incluye una GPU de gráficos vectoriales 2D, un acelerador de gráficos PxP y compatibilidad con LCDIFV2.

La GPU 2D dedicada con aceleración de gráficos vectoriales ayuda a optimizar el consumo de energía y el rendimiento de los dispositivos integrados al admitir la CPU para representar gráficos vectoriales escalables y componer y manipular mapas de bits. La GPU 2D también puede transformar imágenes (escala, rotación en cualquier ángulo arbitrario, reflejos, cizallas) y convertirlas en color sobre la marcha.

La canalización de procesamiento de píxeles (PxP) combina varias operaciones de transformación de imágenes como escalado, rotación y conversión del espacio de color en un único motor de procesamiento eficiente.

La compatibilidad con LCDIFV2 permite a los diseñadores integrados crear y trabajar con hasta ocho capas de pantalla, ofreciendo capacidades de mezcla sobre la marcha.

La GPU de gráficos vectoriales 2D

En comparación con los gráficos de píxeles, los gráficos vectoriales no se basan en píxeles individuales para formar una imagen completa. El modelo de gráficos vectoriales utiliza comandos (como mover, línea hacia, curva hacia) y coordenadas para describir formas que luego se rasterizarán en una imagen final.

Cada píxel de un gráfico de píxeles, como una fotografía almacenada como un archivo JPEG, tiene un tamaño constante, lo que normalmente significa que la transformación de un gráfico de píxeles siempre da como resultado una pérdida de calidad. Los gráficos vectoriales, por otro lado, son más flexibles cuando se trata de transformar. Es fácil transformar los puntos de una forma primitiva, por ejemplo, y luego volver a dibujar la imagen sin perder calidad, ya que las imágenes vectoriales funcionan independientemente de la resolución de la imagen final.

Por lo tanto, el uso de gráficos de píxeles tiene sentido al capturar imágenes con muchos detalles, como fotografías. Por el contrario, los gráficos vectoriales se utilizan mejor cuando se trabaja con formas simples, como caligrafía, logotipos de empresas e interfaces gráficas de usuario.

La representación de imágenes vectoriales generalmente requiere un destino de representación, datos de ruta, información de relleno, datos de transformación, información de color y reglas de mezcla. El objetivo de renderizado es el búfer que contiene la imagen renderizada una vez que está terminada. Los datos de la ruta son la parte más crucial de una imagen vectorial, ya que contienen las coordenadas y los segmentos de la ruta que describen la geometría de los elementos presentes en la imagen vectorial. Consiste en pares de un código de operación y los argumentos que acompañan a cada operación, respectivamente:

Figura 2. La representación de imágenes vectoriales generalmente requiere un destino de representación, datos de ruta, información de relleno, datos de transformación, información de color y reglas de fusión.

La regla de relleno describe qué regla aplicar al determinar qué parte de una forma cerrada rellenar con un color sólido. Esta propiedad puede tomar uno de dos valores posibles:distinto de cero y par-impar. Con la regla distinta de cero seleccionada, el algoritmo de relleno proyecta un rayo desde el punto en cuestión hasta el infinito en cada dirección. Luego cuenta la frecuencia con la que ese rayo pasa otra línea en el gráfico vectorial. Si el rayo golpea una línea que va de izquierda a derecha, agrega una a la suma final. Si la línea va de derecha a izquierda, el algoritmo resta uno. Si el número final es cero, el punto está en el exterior.

Por el contrario, el algoritmo par-impar cuenta cada línea impactada sin tener en cuenta la dirección de la línea. Si la suma resultante es par, el punto en cuestión está fuera de la forma. De lo contrario, está en el interior.

La siguiente es la transformación, que se realiza manipulando matrices para representar varias operaciones como traslación, rotación y escalado. Las transformaciones afines son una característica poderosa de la GPU vectorial 2D incorporada de la MCU i.MX RT1170.

Al dibujar la forma resultante, el programador puede asignar información de color a cada ruta:

Figura 3. La transformación se realiza manipulando matrices para representar varias operaciones. Al dibujar formas, el programador puede asignar información de color a cada ruta.

La regla de combinación, que establece cómo combinar una ruta al contenido del búfer extendido, es la última información que forma una imagen vectorial final. El valor alfa del parámetro de color de una ruta y la función de mezcla definen el efecto que tendrá la alfa en la ruta del vector en sí y en el búfer de destino.

La API de VGLite, una de las opciones para acceder al motor vectorial 2D del i-MX RT1170, implementa varias reglas de combinación que la nota de aplicación NXP AN13075 analiza con más detalle. Además de la canalización de vectores, la API de VGLite también proporciona una canalización para imágenes ráster. Puede encontrar más información sobre esa parte de la API en la nota de aplicación AN13075.

El acelerador PxP 2D

Pixel Processing Pipeline (PxP) es un potente acelerador 2D que puede procesar búferes de gráficos o video compuesto antes de enviarlo a una pantalla. Integra varias operaciones de procesamiento de gráficos 2D de uso común, como blitting, fusión alfa, conversión de espacio de color, rotación de ángulo fijo y escalado.

Un posible caso de uso de este motor es combinar dos búferes para formar una única imagen de salida enviada a una pantalla LCD. Por ejemplo, uno de los búferes podría contener una imagen de fondo, mientras que el otro contiene elementos de la interfaz de usuario, como etiquetas de texto o botones. Las capas pueden tener diferentes tamaños y el motor PxP también permite un escalado rápido y fácil. La nota de aplicación AN12110 analiza una aplicación de ejemplo más detallada en la que el PxP escala el búfer interno para adaptarse a la pantalla LCD de ese proyecto.

La subcontratación de operaciones 2D comunes a un controlador de hardware dedicado, como el PxP, ofrece una variedad de beneficios en comparación con la implementación de las funciones en la CPU principal de un microcontrolador integrado. Los desarrolladores de software no tienen que reinventar la rueda, ya que las funciones más comunes están disponibles. La CPU principal tampoco tiene que lidiar con manipulaciones 2D complejas varias veces por segundo, lo que significa que puede enfocarse en otros cálculos en su lugar, lo que conduce a una experiencia de usuario más fluida y potencialmente más eficiencia energética.

El controlador de pantalla LCDIFV2

La segunda versión de la interfaz de pantalla de cristal líquido (LCDIF) también ayuda a la CPU principal al obtener los datos de pantalla creados previamente de un búfer de cuadros y mostrarlos en un panel LCD TFT. El búfer de fotogramas es el espacio en la memoria donde se almacenan los datos de la imagen que se mostrarán. Es posible utilizar dos búferes indistintamente. Hacerlo permite que uno de los búferes se actualice mientras el controlador dibuja el otro. Además de LCDIFv2, la MCU i.MX RT1170 incorpora un controlador de pantalla eLCDIF adicional.

El controlador LCDIFv2 dentro del i.MX admite hasta ocho capas para que los programadores combinen y configuren en tiempo de ejecución. Todo esto sucede sin la participación de otros módulos de aceleración. Cada capa puede utilizar un formato de color diferente, tamaño de lienzo, posición y recuperar contenido de búferes en cualquier ubicación de memoria.

El controlador LCDIFv2 también admite el formato Index8BPP, que permite a los programadores definir una imagen de 32 bits por píxel mediante una tabla de búsqueda de colores y una matriz de índices que la acompaña. Este método permite definir un ARGB8888 sin tener que sacrificar memoria adicional. La nota de aplicación AN13075 y el SDK oficial dan ejemplos de cómo lograr esto.

La MCU cruzada i.MX RT1170 y sus dispositivos compatibles

El conjunto de gráficos heterogéneos del i.MX RT1170 consta de tres motores, cada uno con su propio beneficio que ayuda a simplificar un proyecto y, cuando se utiliza al unísono, mejora su rendimiento y ahorra memoria. Varios dispositivos NXP ya son compatibles con algunos de los motores descritos en este artículo:el i.MX RT1170 admite los tres aceleradores de gráficos. Los dispositivos i.MX RT1050 e i.MX RT106x basados ​​en Cortex-M7 son compatibles con PxP y un controlador LCD. El i.MX RT500 se basa en un núcleo Cortex-M33 e incorpora una GPU 2D.

Además del hardware, NXP permite crear dispositivos pequeños y rápidos con todas las funciones al admitir diferentes API y herramientas útiles para desarrollar GUI para dispositivos integrados. El sitio web de NXP proporciona una descripción general de las diversas API y herramientas compatibles y todos los dispositivos compatibles. También ofrece diferentes materiales de capacitación, como notas de la aplicación, videos, ejemplos de SDK y seminarios web bajo demanda.

Los artículos de la industria son una forma de contenido que permite a los socios de la industria compartir noticias, mensajes y tecnología útiles con los lectores de All About Circuits de una manera que el contenido editorial no es adecuado. Todos los artículos de la industria están sujetos a estrictas pautas editoriales con la intención de ofrecer a los lectores noticias útiles, experiencia técnica o historias. Los puntos de vista y las opiniones expresados ​​en los artículos de la industria son los del socio y no necesariamente los de All About Circuits o sus redactores.


Incrustado

  1. Comprensión del proceso de fabricación del eje
  2. Comprender la importancia de la cultura de la nube
  3. Comprender los beneficios del mantenimiento predictivo
  4. Protección del vector de amenazas de IoT
  5. Comprensión de los conceptos básicos de la fresadora
  6. Aprendizaje automático en el campo
  7. Consejo técnico de Proto:la diferencia entre los archivos gráficos vectoriales y de trama
  8. Entendiendo el funcionamiento del amortiguador
  9. Comprender el término acoplamiento
  10. Comprender la flexibilidad de un material.
  11. Entendiendo las aplicaciones del motor diesel