Grazie ai prezzi in costante diminuzione e al miglioramento continuo di prestazioni e affidabilità, l'impiego dei display Lcd come elemento chiave delle interfacce uomo-macchina continua a diffondersi attraverso un'ampia gamma di dispositivi elettronici. Interfacce basate su Lcd, molte con funzioni touchscreen, sono molto diffuse non solo nel tradizionale settore dei dispositivi di largo consumo e dei palmari, ma sempre più anche in applicazioni come gli elettrodomestici, i dispositivi di controllo industriale, le apparecchiature di collaudo, i sofisticati sistemi informativi per autoveicoli. Questa crescita nell'impiego di Lcd implica che ai progettisti è richiesto in misura sempre maggiore la realizzazione di componenti e programmi di interfaccia grafica che siano in grado di garantire vantaggi competitivi e offrire un comfort maggiore all'utente. Dopo aver scelto un display Lcd per un dato sistema, il compito successivo del progettista è di sviluppare l'elettronica destinata a pilotare e controllare il display in modo efficace. La complessità circuitale sarà dettata dalla natura intrinseca dell'Lcd e dalla qualità e dal tipo di grafica richiesta - un semplice display a 96 segmenti, ad esempio, richiede una complessità molto inferiore rispetto a un display Vga full-colour 640 x 480 in grado di riprodurre filmati. Ma le esigenze di ridurre al minimo il numero dei componenti, lo spazio su scheda, il consumo di potenza e i tempi di progettazione sono in genere comuni a entrambi i tipi di display. Queste esigenze, pertanto, orientano i progettisti verso soluzioni integrate al silicio e la buona notizia è che i costruttori di semiconduttori rispondono alla sfida - sia integrando nei sistemi a microcontrollore un maggior numero di funzioni di visualizzazione e di grafica, sia sviluppando system-on-chip dedicati ad applicazioni specifiche.
Grafica e microcontrollore
Poiché i sistemi grafici costituiscono, nella maggior parte dei casi, porzioni di sistemi embedded più complessi, era inevitabile che prima o poi i costruttori di semiconduttori decidessero di integrare funzioni di grafica all'interno dei microcontrollori. Questa tendenza ha guadagnato terreno negli ultimi anni e, oggi, funzioni di pilotaggio e di controllo display sono presenti in dispositivi da 8, 16 e 32 bit, consentendo ai progettisti di realizzare, a partire da un singolo chip, moduli Lcd di qualsiasi dimensione, dai più piccoli ai più grandi. Si consideri, ad esempio, il caso di un moderno contatore di energia elettrica. Questo apparecchio possiede in genere un semplice display a segmenti e poche funzioni di elaborazione incorporate per registrare, gestire e visualizzare i dati di misura, pilotare l'Lcd e, eventualmente, interfacciarsi con un collegamento wireless per un monitoraggio da remoto. Microcontrollori a 8 bit, compatti, economici ed efficienti, dotati di driver Lcd su scheda, sono perfetti per questo tipo di applicazione e vi è una gamma sempre più ampia tra cui scegliere il modello più adatto. Combinando un nucleo ad alte prestazioni con periferiche in grado di soddisfare le esigenze di molte applicazioni industriali e domestiche, il microcontrollore comprende un driver Lcd integrato con polarizzazione 1/5 che può pilotare display Lcd a 80 segmenti con un massimo di 2560 pixel.
Microcontrollori e funzioni multimediali avanzate
Le funzionalità e le prestazioni grafiche sono destinate a procedere di pari passo con il miglioramento delle prestazioni del microcontrollore. Questo è evidente per alcune delle più recenti tecnologie a 32 bit che vanno molto oltre il semplice controllo Lcd, offrendo le prestazioni e le caratteristiche richieste dalle funzioni multimediali avanzate integrate nelle odierne applicazioni industriali. Di recente, ad esempio, sono stati annunciati diversi dispositivi basati sul nucleo ARM926EJ-S a 32 bit, un chip appositamente sviluppato per dispositivi embedded destinati a funzioni audio e video avanzate. Lo schema a blocchi per il microcontrollore Toshiba TMPA910CRAXBG a 32 bit, vede il nucleo ARM926EJ-S associato a un controller Lcd che fornisce un'interfaccia a display STN e TFT con risoluzioni fino a Xga (1024 x 1024 pixel). Un elemento chiave di questo dispositivo è l'acceleratore di elaborazione dati Lcd (Data Process Accelerator, LcdDA). L'LcdDA opera in maniera indipendente dal nucleo e dal controller Lcd presente all'interno del microcontrollore e comprende tre funzioni chiave: scala, rotazione e fusione.
La funzione scala consente di aumentare o diminuire la dimensione di un'immagine, che può essere utile per sfruttare al meglio la superficie del display. È un'operazione semplice, ma se le immagini non sono vettoriali può verificarsi una perdita di risoluzione, in particolare nell'ingrandimento. Per risolvere questo problema, sono state sviluppate diverse tecniche, tra cui (in ordine di qualità): algoritmo nearest neighbour; interpolazione bilineare e interpolazione bicubica; ciascuna di queste tecniche opera su singoli pixel. In molti dispositivi palmari, si utilizzano in genere l'algoritmo nearest neighbour oppure l'interpolazione bilineare dal momento che sono metodi che possono essere utilizzati rapidamente e con apparecchiature che richiedono poche capacità di elaborazione. L'interpolazione bicubica impiega tipicamente tempi maggiori ma offre risultati migliori. È il metodo generalmente utilizzato se la capacità di elaborazione non è limitata, ma non è molto comune per i palmari, per via della maggiore potenza e del maggior tempo di elaborazione richiesti.
Il TMPA910CRAXBG, tuttavia, effettua un'interpolazione bicubica senza compromettere altre caratteristiche. Il circuito hardware 'BC_Expander' interno all'LcdDA consente l'avvio dell'elaborazione subito dopo la scrittura di un numero sufficiente di linee dati in una Ram a doppia porta dedicata. L'LcdDA può consentire l'espansione da un minimo di 4x4 pixel fino a un massimo di 256, mentre la Ram a doppia porta da 16 kbyte è divisa in 8 aree da 2 kbyte per l'elaborazione dei dati. Subito dopo la scrittura di 4 linee dati nella Ram, il BC_Expander avvia l'elaborazione, calcolando 4 linee dati di uscita per ogni linea ulteriore che si aggiunge. Vengono anche effettuate un'elaborazione della correzione, nella forma di un'aggiunta automatica correzione bordi (Edge Correction Automatic Addition), e una correzione del campionamento (Sampling Correction). Entrambe consentono la creazione di immagini più naturali nell'ingrandimento o nella riduzione. Altre modalità disponibili dell'LcdDA comprendono combinazioni di rotazione, conversione in monocromatico, inversione e fusione. Ad esempio, è possibile ottenere una fusione con inversione monocromatica. Quest'ultima utilizza la funzione di fusione alfa che, in aggiunta alle componenti rossa, verde e blu per un pixel a colori, aggiunge una componente di trasparenza (il canale alfa). Ciò consente la sovrapposizione di due immagini e, se richiesta, la regolazione contemporanea del colore.
Circuiti integrati per applicazioni specifiche
Mentre i microcontrollori commerciali possono essere utilizzati in un numero sempre maggiore di applicazioni grafiche, esisteranno sempre dei progetti in cui la complessità dei requisiti grafici richiederà una soluzione al silicio dedicata. I costruttori di semiconduttori sviluppano per questo tecnologie system-on-chip che comprendono funzioni ottimizzate per applicazioni specifiche. Un'arena in cui l'approccio SoC dedicato sta diventando particolarmente prevalente è l'industria dell'autoveicolo, in cui tecnologie di elaborazione video integrate possono supportare i sofisticati requisiti dei sistemi di supporto al guidatore. La grafica interna al veicolo coinvolge tipicamente il display del cruscotto che fornisce informazioni e funzioni di intrattenimento e, più recentemente, il quadro strumenti per i dati sulla velocità, la temperatura, il numero dei giri e altri dati operativi e di sicurezza. Anche la richiesta della tecnologia basata sulla proiezione (head-up display) è in aumento. Tutti questi sistemi richiedono una visualizzazione intelligente, affidabile e rapida delle informazioni in un formato che ne consenta la lettura e la comprensione da parte del conducente senza pregiudicare la sicurezza di guida.
L'impiego di SoC integrati è un fattore chiave per ottenere sistemi di visualizzazione efficienti per l'autoveicolo. Un elevata scala di integrazione elimina la necessità di molti componenti esterni - con il vantaggio ulteriore di risparmiare spazio, migliorare l'affidabilità, minimizzare i problemi di compatibilità elettromagnetica associati alle induttanze parassite e abbattere i costi - ma fornisce anche un modo per utilizzare una classica soluzione al silicio su più piattaforme di veicoli e con diversi requisiti di visualizzazione. I nuovi SoC di controllo display per queste applicazioni comprendono un potente nucleo di elaborazione principale un Gdc (Graphic display controller) con acceleratore grafico, e un'elevata memoria grafica. Bus grafici separati garantiscono prestazioni ottimali senza generare conflitti con le funzioni di elaborazione principale, e sono previste periferiche integrate per applicazioni specifiche e blocchi di interfaccia (ad esempio sistemi di controllo e connettività Can). Questo è l'approccio che Toshiba ha intrapreso con la sua famiglia di SoC Capricorn per applicazioni grafiche in autoveicoli con risoluzioni fino a WUXGA e dimensioni del display fino a 14 pollici. Oltre a una Cpu a 64 bit, ciascun dispositivo Capricorn integra un acceleratore grafico Gdc e fino a 8 Mbyte di Dram embedded (eDram). Il Gdc offre, insieme al motore grafico 2D/3D, molte delle funzioni hardware richieste per garantire un funzionamento corretto del display. Esso è in grado di fornire una tavolozza di colori a 24 bit con un modello di uscita a cinque livelli comprendente quattro livelli principali e il livello cursore. L'acceleratore grafico migliora la qualità di visualizzazione offrendo funzioni di fusione della trasparenza, anti-aliasing di alta qualità e compensazione di strobe attiva, richieste per garantire una visualizzazione morbida di oggetti grafici in movimento come lancette e puntatori di strumenti. Il motore grafico fornisce un supporto di visualizzazione aggiuntivo con funzioni di fusione alfa, trasformazione, rotazione e ridimensionamento. Tecniche programmabili di correzione sull'intera gamma di colori garantiscono una rappresentazione reale dei colori sul display dell'autoveicolo.
Tool e supporto per applicazioni multimediali
Sia che i progettisti scelgano un microcontrollore con funzioni grafiche oppure un SoC grafico dedicato, l'accesso a tool e il supporto all'offerta di applicazioni multimediali sono requisiti essenziali. Nel caso dei microcontrollori con funzioni grafiche integrate, ad esempio, i costruttori di semiconduttori sviluppano progetti di riferimento completi che comprendono programmi in grado di semplificare il progetto di interfacce grafiche. Questi programmi possono offrire routine grafiche per la creazione bidimensionale di punti, linee e cerchi, la possibilità di disegnare poligoni e di aggiungere immagini bitmap e tool per animazioni in tempo reale senza sfarfallio, consentendo allo sviluppatore di offrire una visualizzazione uniforme dei movimenti, come avviene nei classici indicatori a quadrante.
Nel caso di processori grafici dedicati come i dispositivi Capricorn di Toshiba, una catena di sviluppo completa può aiutare a colmare il divario tra il grafico, l'esperto HMI (Human-Machine Interface) e il progettista di sistema, combinando gli aspetti tecnici e grafici richiesti nella creazione di un'interfaccia utente efficace. Utilizzando queste catene di sviluppo, i progettisti possono creare rapidamente livelli grafici, costruire elementi visivi come pulsanti, schermate e altri oggetti di interfaccia e integrare gli elementi visuali esistenti nel progetto.