Elrz1Nei prossimi anni si prevede un significativo aumento del numero di macchine da caffè, frigoriferi, distributori automatici e altri elettrodomestici dotati di display TFT. Ho notato di recente che in molti negozi, la ricevuta in plastica, solitamente utilizzata per la firma, è stata sostituita da uno schermo TFT da 7 pollici che visualizza pubblicità di prodotti disponibili in negozio. La diffusione della "pubblicità in bagno" da parte di aziende in tutta Europa e nel mondo dimostra che presto non ci sarà più modo di sfuggire ai display TFT.


Quindi, di cosa hai bisogno per la tua applicazione?
Iniziamo esaminando la questione principale. Di cosa hai effettivamente bisogno per controllare un display TFT? La maggior parte dei pannelli TFT odierni utilizza un'interfaccia RGB digitale, RGB888 o RGB565. Il valore RGB è uno standard con cui vengono rappresentati i colori rosso, verde e blu di ciascun pixel, con il corrispondente numero di bit. Pertanto, per l'888, a ciascun colore vengono assegnati 8 bit di dati (per un totale di 24 bit per pixel), mentre nel 565, il rosso e il blu sono rappresentati da 5 bit ciascuno e il verde da 6 bit (per un totale di 16 bit per pixel). In alternativa, invece di una normale interfaccia di visualizzazione digitale, potresti utilizzare un connettore LVDS, che sta diventando sempre più lo standard per i display di grandi dimensioni. In questo caso, i segnali RGB vengono trasferiti tramite un segnale differenziale, ma il formato dei dati rimane lo stesso. Quindi, per iniziare, hai bisogno di un dispositivo che supporti la generazione di un segnale RGB e/o un'interfaccia LVDS.


In secondo luogo, i dati RGB devono provenire da un frame buffer, che di solito è memorizzato nella RAM. Questo frame buffer è un'immagine bitmap memorizzata nel formato desiderato. Pertanto, una risoluzione dello schermo come WVGA (480x800) richiederà poco più di 1 MB di RAM per memorizzare un'immagine RGB888 (480 x 800 x 24 bit = 1,125 MB).


Oltre al frame buffer che contiene l'immagine corrente da visualizzare sullo schermo, un'applicazione tipica dispone di un "back buffer" che contiene l'immagine successiva da visualizzare. Ciò consente alla CPU di elaborare l'immagine successiva senza che l'utente veda un'immagine parzialmente elaborata lampeggiare sullo schermo prima che la CPU abbia completato l'elaborazione. Questo sistema a doppio buffer è molto comune e offre una qualità complessiva superiore all'interfaccia uomo-macchina (HMI), ma implica anche che il display WVGA necessiti di ulteriori 1,125 MB di RAM per memorizzare il buffer.


La storia della RAM, purtroppo, non finisce qui. In una tipica applicazione HMI, non è sempre necessario manipolare l'intero schermo. Ad esempio, se si preme un'icona o un pulsante, questo può animarsi, illuminarsi, ruotare o reagire in qualche modo prima che l'azione venga eseguita. In questo caso, un progettista HMI definirebbe un livello separato dal livello dell'immagine. Ci sarebbe un livello di sfondo che rimarrebbe invariato e l'icona o il pulsante costituirebbero un livello in primo piano che verrebbe animato. Questo, ovviamente, richiede anche RAM aggiuntiva, non la RAM dell'intero schermo, ma una certa quantità. La quantità necessaria dipende dalle dimensioni dell'immagine, ma supponiamo, ad esempio, che si tratti di un pulsante di 200 x 200 pixel. In tal caso, sarebbero necessari 100 KB di RAM aggiuntivi. Sarebbe inoltre necessaria la capacità di combinare tutti questi diversi livelli tra loro e, eventualmente, applicare un livello di trasparenza ad alcune di queste immagini. Questo può essere fatto via software se la CPU è sufficientemente veloce, oppure via hardware, se disponibile.


Elrz2Pertanto, per completare la panoramica dei requisiti di RAM, un'applicazione HMI di dimensioni ragionevoli può utilizzare circa 3 MB di dati immagine per uno schermo WVGA. Se il codice viene eseguito dalla RAM, come accade con la maggior parte dei processori, sono necessari ulteriori 0,5 MB. Di conseguenza, il punto di partenza minimo per un display WVGA dovrebbe essere di 3,5 MB di RAM.


Naturalmente, anche la velocità di accesso alla RAM è molto importante. Come avrete probabilmente notato, la RAM viene letta e scritta simultaneamente da diverse fonti. Ad esempio, il buffer frontale (i dati originali dell'immagine) viene letto dal blocco IP per inviare i dati allo schermo. Allo stesso tempo, il buffer posteriore potrebbe essere aggiornato dalla CPU o tramite un trasferimento DMA di un'immagine diversa. Contemporaneamente, la CPU potrebbe manipolare l'icona menzionata in precedenza e leggere il proprio codice dalla RAM. Questo esercita una forte pressione sulla larghezza di banda del bus RAM. Questo bus è spesso il collo di bottiglia dell'applicazione, quindi è necessaria una buona architettura del bus per mitigare il rischio di sovraccarico, che potrebbe comportare la visualizzazione da parte dell'utente di immagini incomplete o, peggio, un'interfaccia utente grafica non funzionante.


Occorre prestare particolare attenzione anche alla capacità della CPU. Un sistema in grado di visualizzare 24 fotogrammi al secondo sullo schermo dovrà elaborare e creare dati (nel nostro esempio, uno schermo WVGA) a una velocità superiore a 24 MB al secondo. Questo può essere fatto interamente tramite software o parzialmente tramite hardware, ma in entrambi i casi la CPU deve essere sufficientemente veloce per soddisfare questi requisiti.


Poiché ora stiamo chiaramente parlando di una soluzione basata su processore, che probabilmente non disporrà di memoria flash integrata, il requisito successivo è la connessione a una memoria flash esterna. Il metodo tipico oggi prevede l'utilizzo di una memoria flash NOR parallela esterna per memorizzare il codice e quindi, durante l'avvio, trasferire tale codice nella RAM per consentire un'esecuzione rapida. Tuttavia, i dispositivi più moderni supportano altre tecnologie di memoria, permettendo agli architetti di sistema di ridurre i costi senza l'ingombro di una costosa memoria flash NOR integrata nel PCB.


La maggior parte di queste applicazioni in genere fa molto di più che controllare un display. Devono anche essere connesse al resto del sistema. Le applicazioni per il settore automobilistico sono solitamente connesse a un bus CAN o MOST. I dispositivi industriali e di consumo ora richiedono connessioni Ethernet e USB. Queste connessioni implicano anche che il prodotto più adatto non solo dovrà integrare IP hardware, ma anche avere prestazioni sufficienti per gestire il proprio funzionamento e spazio di codice a sufficienza per supportare i suoi stack.


Elrz3Informazioni su RZ/A:
La famiglia RZ/A è una soluzione MPU embedded basata su un core ARM Cortex A9 che offre numerosi vantaggi per il mercato delle applicazioni HMI. RZ/A offre fino a 10 MB di SRAM on-chip, risultando la RAM on-chip più grande disponibile. La famiglia comprende tre varianti: RZ/A1H, con tutti i 10 MB di RAM; RZ/A1M, con soli 5 MB di RAM; e RZ/A1L, il dispositivo più piccolo con 3 MB di RAM.


Pertanto, sulla base della discussione precedente, in cui si è calcolato che l'applicazione HMI necessiterebbe di circa 3,5 MB di RAM, l'RZ/A1M sembra ideale per soddisfare questi requisiti. Naturalmente, sul mercato sono disponibili altre soluzioni che utilizzano RAM esterna, sia DDR SDRAM che quantità maggiori, ma la famiglia RZ/A è l'unico prodotto di cui l'autore sia a conoscenza che offre questo elevato livello di RAM interna.


Il sistema RZ/A1H offre al progettista di sistemi la possibilità di aumentare o diminuire le dimensioni dello schermo in base alle proprie esigenze e di creare una versione economicamente vantaggiosa per prodotti a risoluzione inferiore.


Le prestazioni della CPU a 400 MHz sono più che sufficienti per eseguire una semplice applicazione HMI e mantenere la comunicazione tramite qualsiasi protocollo richiesto dal sistema, poiché tutte le versioni della famiglia RZ/A includono CAN (fino a 5 canali), Ethernet, USB (fino a 2 canali) e supportano persino MOST per applicazioni automotive.


Elrz4In realtà, la CPU da 400 MHz è più che sufficiente grazie a due caratteristiche uniche dell'RZ/A. La prima è il VDC (Video Display Controller). Il controller video di Renesas fornisce supporto hardware per molte delle funzioni necessarie a creare l'immagine finale sullo schermo. Il VDC supporta fino a quattro livelli grafici diversi, due dei quali possono essere input da una telecamera esterna. Dispone inoltre di hardware per supportare l'alpha blending. L'alpha blending è un processo mediante il quale a ciascun pixel viene assegnato un valore alfa aggiuntivo a 8 bit. Questo valore alfa determina la trasparenza del pixel, consentendone la sovrapposizione su un altro pixel per creare l'immagine risultante. Il VDC supporta anche le operazioni di chroma key, il cui utilizzo più noto è nella videografia per gli effetti "green screen", in cui un particolare colore viene definito come trasparente in modo che un oggetto possa essere sovrapposto a un'altra immagine. In alcuni sistemi, tutto ciò verrebbe eseguito tramite software, ma l'RZ/A lo fa tramite hardware; pertanto, i 400 MHz si traducono in un livello di prestazioni nettamente superiore. Il VDC supporta non solo la connessione RGB digitale a un display TFT, ma anche LVDS.


Il secondo fattore che contribuisce all'aumento delle prestazioni della CPU nella famiglia RZ/A è l'eliminazione del problema di larghezza di banda di cui abbiamo parlato in precedenza. Un processore quad-core a terahertz è veloce solo quanto la sua capacità di accedere ai dati e, quando i dati vengono memorizzati in un singolo blocco di RAM accessibile tramite un unico bus, ciò costringe il core a rallentare. L'RZ/A, invece, dispone di cinque banchi di RAM separati.
Ogni banco è collegato al proprio bus dedicato a 128 bit, quindi è effettivamente possibile scrivere nel back buffer, leggere dal front buffer, manipolare un'icona e completare un trasferimento DMA, il tutto mentre si esegue codice dalla RAM interna. Ciò si traduce in un significativo aumento delle prestazioni.


Naturalmente, come accennato in precedenza, è necessaria anche una connessione alla memoria flash esterna, e l'RZ/A è compatibile con tutte le normali connessioni di memoria non volatile, come NOR, NAND, SDIO, MMC, ecc., ma dispone anche di una speciale connessione seriale flash SPI Multi-I/O che supporta il nuovo protocollo quad SPI.


Questa QSPI può raggiungere prestazioni simili o superiori a quelle di una memoria flash parallela, ma con i vantaggi economici di una memoria flash seriale, come il risparmio di pin del microprocessore e la riduzione delle dimensioni del PCB.


Elrz5In breve: l'RZ/A è semplice. 
Il dispositivo RZ/A, lanciato di recente da Renesas, è stato progettato specificamente per il mercato delle interfacce uomo-macchina. Questo mercato presenta diversi requisiti che, pur non essendo unici di per sé, nel complesso rendono molto difficile la sua realizzazione con i sistemi tradizionali. La necessità di RAM è significativa, ma non quanto quella di un microprocessore con 128 MB di RAM DDR3. I requisiti operativi sono bassi, a condizione che il dispositivo sia supportato da un controller di visualizzazione, ma non sono così bassi
da poter essere soddisfatti da un microcontrollore che opera, ad esempio, a 100 MHz.


Il modello RZ/A offre un'ampia connettività per tutte le applicazioni HMI, prestazioni più che sufficienti e una generosa quantità di RAM per la massima flessibilità. Si tratta di una soluzione dedicata e ottimizzata in termini di costi, che non solo andrà a vantaggio del fiorente mercato delle tecnologie di visualizzazione, ma contribuirà anche a stimolarne la crescita.

Autore: Robert Kalman. Responsabile marketing di prodotto,
Business Group Comunicazioni Industriali, Renesas Electronics Europe GmbH

Maggiori informazioni o un preventivo