Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Integrado

Compreendendo o pipeline de gráficos heterogêneos de MCUs i.MX RT1170

Neste artigo, aprenda sobre o pipeline de gráficos heterogêneos do MCU i.MX RT1170 e seus três principais mecanismos de aceleração de gráficos.


Os dispositivos embarcados de consumo e profissional modernos estão se tornando cada vez mais capazes de oferecer uma gama crescente de recursos úteis. Essa riqueza de recursos, no entanto, deixa os designers questionando como tornar todas as funções acessíveis aos usuários sem sobrecarregá-los com uma interface complicada.

GUIs do tipo smartphone podem ser uma alternativa eficaz aos botões físicos tradicionais, pois oferecem algumas melhorias em relação aos controles físicos clássicos. O NXP torna o desenvolvimento de interfaces de usuário gráficas e ricas em recursos mais acessível com vários controladores de vídeo integrados e aceleradores gráficos, como os incluídos no MCU de crossover i.MX RT1170.




Figura 1. O MCU i.MX RT1170


Os três motores de exibição do MCU i.MX RT1170


Embora a maioria dos microcontroladores NXP possa oferecer suporte aos periféricos GUI necessários, alguns dispositivos (como o i.MX RT1170 MCU) vêm com interfaces de exibição integradas e aceleradores gráficos projetados para oferecer suporte a aplicativos GUI ricos. Mais concretamente, o i.MX1170 inclui uma GPU de gráficos vetoriais 2D, um acelerador gráfico PxP e suporte para LCDIFV2.

A GPU 2D dedicada com aceleração de gráficos vetoriais ajuda a otimizar o consumo de energia e o desempenho de dispositivos incorporados, apoiando a CPU na renderização de gráficos vetoriais escalonáveis ​​e composição e manipulação de bitmaps. A GPU 2D também pode transformar imagens (escala, rotação por qualquer ângulo arbitrário, reflexos, tesouras) e convertê-las em cores instantaneamente.

O Pixel processing Pipeline (PxP) combina várias operações de transformação de imagem, como dimensionamento, rotação e conversão de espaço de cores em um único mecanismo de processamento eficiente.

O suporte LCDIFV2 permite que designers integrados criem e trabalhem com até oito camadas de exibição, oferecendo recursos de combinação instantânea.


A GPU de gráficos vetoriais 2D


Em comparação com os gráficos de pixel, os gráficos vetoriais não dependem de pixels individuais para formar uma imagem completa. O modelo de gráfico vetorial usa comandos (como mover, linha para, curva para) e coordenadas para descrever formas que serão rasterizadas em uma imagem final.

Cada pixel em um gráfico de pixel, como uma fotografia armazenada como um arquivo JPEG, tem um tamanho constante, o que normalmente significa que transformar um gráfico de pixel sempre resulta em perda de qualidade. Os gráficos vetoriais, por outro lado, são mais flexíveis quando se trata de transformação. É fácil transformar os pontos de uma forma primitiva, por exemplo, e depois redesenhar a imagem sem perda de qualidade, pois as imagens vetoriais operam independentemente da resolução da imagem final.

Portanto, usar gráficos de pixel faz sentido ao capturar imagens com muitos detalhes, como fotografias. Em contraste, os gráficos vetoriais são mais bem usados ​​ao trabalhar com formas simples, como caligrafia, logotipos de empresas e interfaces gráficas de usuário.

A renderização de imagens vetoriais normalmente requer um destino de renderização, dados de caminho, informações de preenchimento, dados de transformação, informações de cores e regras de mesclagem. O destino de renderização é o buffer que contém a imagem renderizada assim que ela for concluída. Os dados do caminho são a parte mais importante de uma imagem vetorial, pois contêm as coordenadas e os segmentos de caminho que descrevem a geometria dos elementos presentes na imagem vetorial. Consiste em pares de um código de operação e os argumentos que acompanham cada operação, respectivamente:




Figura 2. A renderização de imagens vetoriais normalmente requer um alvo de renderização, dados de caminho, informações de preenchimento, dados de transformação, informações de cores e regras de mesclagem.



A regra de preenchimento descreve qual regra aplicar ao determinar qual parte de uma forma fechada preencher com uma cor sólida. Essa propriedade pode assumir um de dois valores possíveis:diferente de zero e ímpar par. Com a regra diferente de zero selecionada, o algoritmo de preenchimento lança um raio do ponto em questão ao infinito em cada direção. Em seguida, ele conta com que freqüência aquele raio passa por outra linha no gráfico vetorial. Se o raio atinge uma linha que vai da esquerda para a direita, ele adiciona um à soma final. Se a linha vai da direita para a esquerda, o algoritmo subtrai um. Se o número final for zero, o ponto fica do lado de fora.

Em contraste, o algoritmo par-ímpar conta cada linha atingida sem levar em conta a direção da linha. Se a soma resultante for par, o ponto em questão está fora da forma. Caso contrário, está do lado de dentro.

A seguir está a transformação, que é feita pela manipulação de matrizes para representar várias operações, como translação, rotação e dimensionamento. As transformações afins são um recurso poderoso da GPU vetorial 2D integrada do MCU i.MX RT1170.

Ao desenhar a forma resultante, o programador pode atribuir informações de cor a cada caminho:




Figura 3. A transformação é feita pela manipulação de matrizes para representar várias operações. Ao desenhar formas, o programador é capaz de atribuir informações de cores a cada caminho.



A regra de mesclagem, que determina como mesclar um caminho para o conteúdo do buffer estendido, é a última informação que constitui uma imagem vetorial final. O valor alfa do parâmetro de cor de um caminho e a função de mistura definem o efeito que o alfa terá no próprio caminho do vetor e no buffer de destino.

A API VGLite - uma das opções para acessar o mecanismo de vetor 2D do i-MX RT1170 - implementa várias regras de combinação que a nota do aplicativo NXP AN13075 discute com mais detalhes. Além do pipeline de vetor, a API VGLite também fornece um pipeline para imagens raster. Mais sobre essa parte da API pode ser encontrado na nota de aplicação AN13075.


O acelerador PxP 2D


O Pixel Processing Pipeline (PxP) é um poderoso acelerador 2D que pode processar buffers gráficos ou vídeo composto antes de enviá-lo para um monitor. Ele integra várias operações de processamento de gráficos 2D comumente usadas, como blitting, mistura alfa, conversão de espaço de cores, rotação de ângulo fixo e escala.

Um possível caso de uso desse mecanismo é combinar dois buffers para formar uma única imagem de saída enviada a um LCD. Por exemplo, um dos buffers pode conter uma imagem de plano de fundo, enquanto o outro contém elementos da IU, como rótulos de texto ou botões. As camadas podem ter tamanhos diferentes e o mecanismo PxP também permite escalonamento rápido e fácil. A nota de aplicação AN12110 discute um exemplo de aplicação mais aprofundado em que o PxP dimensiona o buffer interno para caber na tela LCD desse projeto.

Terceirizar operações 2D comuns para um controlador de hardware dedicado, como o PxP, oferece uma gama de benefícios em comparação com a implementação das funções na CPU principal de um microcontrolador incorporado. Os desenvolvedores de software não precisam reinventar a roda, pois as funções mais comuns estão prontamente disponíveis. A CPU principal também não precisa lidar com manipulações 2D complexas várias vezes por segundo, o que significa que pode se concentrar em outros cálculos, o que leva a uma experiência do usuário mais fluente e potencialmente mais eficiência energética.


O controlador de exibição LCDIFV2


A segunda versão da interface de tela de cristal líquido (LCDIF) também ajuda a CPU principal, obtendo os dados de exibição criados anteriormente de um buffer de quadros e exibindo-os em um painel LCD TFT. O buffer de quadros é o espaço na memória onde os dados da imagem a serem exibidos são armazenados. É possível usar dois buffers de forma intercambiável. Isso permite que um dos buffers seja atualizado enquanto o controlador desenha o outro. Além do LCDIFv2, o i.MX RT1170 MCU incorpora um controlador de exibição eLCDIF adicional.

O controlador LCDIFv2 dentro do i.MX suporta até oito camadas para os programadores combinarem e configurarem em tempo de execução. Tudo isso acontece sem o envolvimento de outros módulos aceleradores. Cada camada pode utilizar um formato de cor diferente, tamanho de tela, posição e buscar conteúdo de buffers em qualquer local da memória.

O controlador LCDIFv2 também suporta o formato Index8BPP, que permite aos programadores definir uma imagem de 32 bits por pixel usando uma tabela de pesquisa de cores e uma matriz de índice que a acompanha. Este método torna possível definir um ARGB8888 sem sacrificar memória extra. A nota do aplicativo AN13075 e o SDK oficial fornecem exemplos de como fazer isso.


O MCU i.MX RT1170 Crossover e seus dispositivos compatíveis


O pipeline heterogêneo de gráficos do i.MX RT1170 consiste em três engines, cada um com seu próprio benefício que ajuda a simplificar um projeto e, quando usado em uníssono, melhora seu desempenho enquanto economiza memória. Vários dispositivos NXP já oferecem suporte a alguns dos mecanismos discutidos neste artigo:o i.MX RT1170 oferece suporte a todos os três aceleradores gráficos. Os dispositivos i.MX RT1050 e i.MX RT106x baseados em Cortex-M7 suportam PxP e um controlador LCD. O i.MX RT500 é baseado em um núcleo Cortex-M33 e incorpora uma GPU 2D.

Além do hardware, o NXP permite a criação de dispositivos pequenos e rápidos com todos os recursos, oferecendo suporte a diferentes APIs e ferramentas úteis para o desenvolvimento de GUIs para dispositivos incorporados. O site da NXP fornece uma visão geral das várias APIs e ferramentas com suporte e todos os dispositivos com suporte. Ele também oferece diferentes materiais de treinamento, como notas de aplicação, vídeos, exemplos de SDK e webinars sob demanda.

Artigos do setor são uma forma de conteúdo que permite aos parceiros do setor compartilhar notícias, mensagens e tecnologia úteis com os leitores do All About Circuits de uma forma que o conteúdo editorial não é adequado. Todos os artigos da indústria estão sujeitos a diretrizes editoriais rígidas com a intenção de oferecer aos leitores notícias úteis, conhecimentos técnicos ou histórias. Os pontos de vista e opiniões expressos nos Artigos da Indústria são do parceiro e não necessariamente da All About Circuits ou de seus redatores.

Integrado

  1. Compreendendo o Processo de Fabricação do Eixo
  2. Compreendendo a importância da cultura da nuvem
  3. Compreendendo os benefícios da manutenção preditiva
  4. Protegendo o vetor de ameaça IoT
  5. Noções básicas de fresadora
  6. Aprendizado de máquina em campo
  7. Dica de prototecnologia:a diferença entre arquivos gráficos vetoriais e raster
  8. Entendendo o funcionamento do amortecedor
  9. Entendendo o termo acoplamento
  10. Entendendo a flexibilidade de um material