Consideremos primeiro a origem desses aspectos. Tomemos como exemplo a deteção de toque capacitivo. Quando as teclas sensíveis ao toque foram introduzidas, os designers rapidamente perceberam que não era tão simples como implementar os botões tradicionais. As teclas de toque devem ser tratadas da mesma forma que os sensores analógicos. O ruído irradiado, ou ruído que pode ser conduzido por fontes ambientais como eletrodomésticos, lâmpadas fluorescentes compactas, fontes de alimentação, telemóveis e motores, requer uma gestão cuidadosa. Para obter teclas robustas e funcionais, devem ser aplicadas técnicas de software como a deteção de contornos, filtragem, filtros de debounce e controlo da taxa de variação, bem como um bom encaminhamento de aquisição de sinal. Atualmente, a necessidade de regenerar um LCD segmentado ou gráfico quando a entrada do utilizador é recebida deve ser adicionada a este sistema de interface humano. Recriar construções gráficas, como formas geométricas ou texto, num display TFT ou OLED exigiu historicamente a largura de banda de um processador. É também importante considerar aplicações de interface humana que incorporem entradas de ecrã táctil, para além do visor gráfico e das teclas tácteis, como no termóstato da Figura 1. Por fim, uma interface de comunicação, como o USB, será geralmente também necessária.
O desafio, portanto, é permitir o processamento em tempo real da entrada do utilizador a partir de teclas tácteis, um sensor de ecrã táctil e comunicação de dados USB, bem como atualizações do ecrã. A solução divide-se em duas categorias fundamentais para o hardware e software subjacentes.
Implementação de Hardware:
Alguns microcontroladores combinam um controlador LCD e periféricos de deteção de toque num único chip, mas o controlador LCD gere normalmente um ecrã segmentado em vez de um LCD gráfico.
A última geração de microcontroladores, como o PIC24FJ256DA210 apresentado na Figura 2, eleva a integração a um novo patamar, combinando um controlador de ecrã gráfico, um periférico USB 2.0 On-The-Go e um periférico analógico especial que pode ser utilizado para deteção de toque. Para suportar os ecrãs gráficos, o PIC24FJ256DA210 incorpora uma tabela de consulta de cores (CLT), 96 KB de RAM, uma unidade de processamento gráfico (GPU) e uma interface direta para os ecrãs STN, TFT e OLED. A grande quantidade de RAM integrada permite o armazenamento de dados gráficos de 256 cores a 8 bits por pixel, possibilitando um display QVGA de 320x240 dentro da RAM integrada do chip. As paletas de cores utilizadas na tabela de consulta de cores também podem ser alteradas para utilizar diferentes conjuntos de retângulos, texto ASCII e descompressão de imagens PNG para recriação com um único comando. Isto reduz o uso da CPU a 0%.
A Figura 2 mostra também a Unidade de Medição do Tempo de Carga (CTMU), um periférico analógico. A deteção de toque capacitivo é uma das muitas aplicações oferecidas pela CTMU. A CTMU fornece uma fonte de corrente constante com um temporizador que pode ser utilizado para carregar um painel de sensores. A tensão do painel pode ser medida através do conversor analógico-digital (ADC). Quando o utilizador coloca o dedo no painel, a alteração da capacitância é registada como uma alteração de tensão pelo ADC. Na sua implementação mais simples, cada canal do ADC pode ser ligado a uma entrada de tecla táctil. Com 24 canais de ADC, o PIC24FJ256DA210 fornece canais de toque capacitivo suficientes para satisfazer as necessidades da maioria das aplicações.
Outra consideração de hardware é necessária. Se a aplicação possuir uma entrada de ecrã táctil resistiva e teclas tácteis, o LCD gráfico é sobrecarregado com um sensor de toque resistivo para um acesso rápido ao menu. Se o controlador do ecrã táctil estiver integrado no microcontrolador principal, as saídas do sensor táctil, que normalmente possuem 4 ou 5 fios, podem ser ligadas aos canais analógicos do microcontrolador. Neste caso, as capacidades do conversor A/D do microcontrolador são partilhadas entre as funções de tecla táctil e ecrã táctil. As medições do conversor A/D são utilizadas para estimar as coordenadas XY detetadas no ecrã tátil.
Implementação de Software:
Geralmente, o firmware para os controladores do ecrã gráfico e para o sensor de toque capacitivo estará disponível como bibliotecas separadas. A integração eficaz destas bibliotecas requer uma rotina principal que funcione essencialmente como um Sistema Operacional de Tempo Real (RTOS) para estabelecer as prioridades e a frequência de serviço para cada tarefa. Para tarefas que partilham recursos de hardware comuns, a rotina principal também necessita de estabelecer um mecanismo para atualizar, de forma não destrutiva, os registos de controlo e de dados do recurso partilhado antes de alternar entre tarefas. No exemplo anterior, tanto os sensores do ecrã táctil como as teclas tácteis alimentam o conversor A/D. A taxa de amostragem do conversor A/D, os canais a amostrar e o número de amostras necessárias variam consoante o sensor do ecrã táctil e as teclas. Portanto, a rotina principal precisa de guardar estes parâmetros antes de alternar entre as duas tarefas.
Uma vez que o utilizador pode fornecer entrada tanto através do ecrã táctil como das teclas tácteis a qualquer momento, a rotina principal pode precisar de estabelecer uma divisão de tempo para permitir que ambos os sensores façam leituras com frequência suficiente. O visor pode exigir atualizações periódicas se, por exemplo, a aplicação estiver a renderizar gráficos animados no ecrã.
Se o visor for atualizado apenas quando o utilizador fizer seleções de menu, não haverá disputa pelas características da CPU entre as funções de deteção de toque e de controlo do visor. O dispositivo de exemplo (PIC24FJ256DA210) possui hardware dedicado para aceleração gráfica, pelo que a divisão de tempo entre as funções de toque e gráficas já não é um problema. Neste dispositivo, a renderização de uma caixa, uma linha ou um texto ASCII requer apenas um comando gerado pela CPU. Está disponível um projeto de demonstração, mostrando a integração entre as teclas tácteis, o sensor do ecrã táctil e o visor gráfico utilizando as bibliotecas de software subjacentes. Pode ser descarregado gratuitamente com a biblioteca mTouch™ Capacitive-Touch e pode ser executado na placa de desenvolvimento PIC24FJ256DA210 apresentada na Figura 3.
Existem outras funções que podem ser integradas num único chip, para além da deteção de toque. Por exemplo, o periférico CTMU pode ser utilizado para medição de temperatura em instrumentos médicos, cronometragem e outras funções. Numa aplicação como um termóstato, o periférico CTMU pode ser utilizado tanto para medição de temperatura como para deteção de toque, utilizando um díodo externo. Como a medição da temperatura só é necessária ocasionalmente, este periférico pode ser utilizado para ambas as funções.
Comunicações USB
A integração de USB e deteção de toque é relativamente simples se forem seguidas algumas regras básicas. Quando a aplicação se liga a um host USB, passa por uma fase de enumeração durante a qual a largura de banda da CPU é dedicada em grande parte à execução da função USB. As funções de deteção de toque devem ser reiniciadas em poucos minutos após a conclusão da fase de enumeração. Uma vez concluída a enumeração, as funções USB consomem uma quantidade muito pequena de largura de banda da CPU, normalmente menos de 2%. Neste ponto, a rotina principal pode optar por atender à função de recetor USB periodicamente, aproximadamente a cada milissegundo, ou mudar para um método mais orientado para interrupções.
Muitas aplicações com interfaces sensíveis ao toque começaram a incorporar feedback háptico. Integrar a tecnologia háptica numa aplicação é mais do que apenas um desafio mecânico. O feedback háptico requer normalmente um periférico de Modulação por Largura de Pulso (PWM) simples para controlar um pequeno vibrador ou motor. É provável que, em algumas aplicações, o periférico PWM integrado também seja utilizado para acionar um altifalante. Nestes casos, uma integração eficaz pode exigir bases de tempo separadas para o canal PWM que controla o motor háptico e para o que controla o altifalante.
Conclusão:
Embora a integração das funções de visualização gráfica e de deteção de toque num único chip reduza os custos do sistema, a complexidade do software pode ter um impacto significativo no tempo de lançamento no mercado. A implementação é simplificada pela seleção de uma plataforma de microcontrolador que suporte bibliotecas gráficas, USB e software de deteção de toque, concebida e testada para interoperabilidade e integração robusta comprovada.
Autor: Rishi Vasuki, Director de Marketing de Produto
da Divisão de Arquitectura Avançada de Microcontroladores da Microchip Technology.

