Processori embedded per interfacce grafiche

La famiglia RZ/A di Renesas è una serie tutta nuova di Mpu embedded orientata al mercato Human Machine Interface. I prodotti RZ disponibili da Renesas, sono il risultato di una nuova direzione intrapresa nel mercato dei processori integrati; basati sul core Cortex A9 di Arm a 400MHz e completi di tutte le periferiche necessarie per la creazione di applicazioni di interfaccia uomo-macchina di fascia alta, non impattano sui costi, gli sforzi e i compromessi, che accompagnano lo sviluppo delle applicazioni Hmi odierne.

Embedded Mpu?

Ci si potrebbe chiedere; che cosa vuol dire oggi il termine "Embedded Mpu"? Per rispondere a questa domanda, bisogna dare uno sguardo all'attuale offerta di Mpu/Mcu. Oggi, un microcontrollore, tipicamente esegue il codice direttamente dalla Flash integrata, risultando un po' limitato in termini di prestazioni, specialmente quando si tratta delle applicazioni oggetto della nostra discussione - il livello di prestazioni necessario per un'interfaccia uomo-macchina. L'alternativa oggi è la classica Mpu o sistema a microprocessore che raggiunge il livello di prestazioni necessario e qualche volta lo supera in modo significativo; tuttavia, questo tipo di dispositivi, in genere non hanno alcuna flash e solo una piccola quantità di Ram interna. I microprocessori hanno la loro fetta di mercato come i microcontrollori; su questo non c'è alcun dubbio. Tuttavia, vi è certamente un divario significativo tra le due aree.
Colmare il divario è dove una eMpu può essere utile. Una eMpu, come un Mpu, non ha alcuna Flash integrata e ha un core in grado di raggiungere un grado di performance che non sarebbe possibile con un microcontrollore. Questo livello di prestazioni può (come con le Mpu) essere raggiunto soltanto eseguendo codice da Ram. A differenza che con un sistema a microprocessore, che utilizza Ram esterna, una eMpu contiene tutta la Ram necessaria per l'applicazione.
Come si può vedere negli esempi di sistema qui sotto, una Mcu è ovviamente più semplice, ma una eMpu è un vantaggioso compromesso in grado di offrire le prestazioni di una Mpu senza portarsene dietro le complessità di design.
Al contrario di una Mpu che esegue la procedura di boot da una flash Nor esterna, normalmente una eMpu la esegue da una flash seriale esterna. Questo può avere molteplici vantaggi:
- È possibile utilizzare memorie flash di tipo QuadSpi, le quali possono raggiungere performance più elevate delle memorie flash Nor standard.
- Richiede meno spazio sul Pcb e meno pin della eMpu, rispetto ad una flash Nor parallela a 32-bit. Al contrario di una Mpu che ha bisogno di memorie Ddr o Sdram esterne, una eMpu ha sufficiente Ram interna da non aver bisogno di niente di esterno. Anche questo può avere molteplici vantaggi:

- L'applicazione non risente del mercato delle Ram. Anche se questo probabilmente non è visto positivamente dai progettisti hardware, qualsiasi responsabile degli acquisti tirerà un sospiro di sollievo per essersi liberato di questa incombenza.

- Richiede meno spazio sul Pcb e anche meno pin della eMpu, questo, combinato con l'uso di una flash seriale, permette l'utilizzo di un package più piccolo facendo in modo da poter realizzare un Pcb a 2 strati invece di uno multi strato.

- Elimina la necessità di prevedere un'alimentazione a 1.8 V per le memorie Ddr.

Ovviamente esiste un punto dove le performance di una eMpu non possono raggiungere quelle di un Quad-Core, con velocità nell'ordine dei Gigahertz, di un personal computer, ma non tutte le applicazioni Hmi odierne necessitano di essere realizzate come un Pc. Esiste un'altra strada!

Caratteristiche dei dispositivi RZ/A
Un Cortex A9 a 400MHz è il cuore dell'RZ/A; include una unità opzionale a virgola mobile a doppia precisione, secondo le specifiche Ieee754 e l'unità opzionale Neon extension general purpose a 128 bit. Queste estensioni rendono più veloci le operazioni tipiche nelle applicazioni Dsp, multimediali e di visualizzazione. Il core, un Cortex A9 standard, dispone di 32 kB di memoria cache per le istruzioni e 32 kB per i dati. In più dispone di 128 kB di memoria cache L2, facendo si che, anche se il codice viene eseguito da memoria non volatile esterna, questo possa essere eseguito sempre alla massima velocità.
Il core in se stesso, non è niente di inusuale. La caratteristica, unica nel suo genere, di questi dispositivi, è l'inclusione di 10 MB di memoria Ram interna. Questa Ram è divisa in 5 blocchi separati. Ogni blocco ha la dimensione di 2 MB e dispone di un bus dedicato a 128 bit a 133 MHz. Questo vuol dire che ogni blocco può essere indirizzato simultaneamente dalle diverse periferiche del dispositivo. La Cpu può, nello stesso istante, eseguire codice da un blocco, scrivere alcuni dati nel secondo, mentre il terzo blocco può contenere le immagini da visualizzare sul display Tft e l'ultimo blocco può essere usato per qualche accesso Dma o come buffer di comunicazione per lo stack Tcp/IP; tutto questo senza alcuna collisione di bus. Questo, naturalmente, è un'altro dei principali benefici di una architettura eMpu. Mentre una Mpu, tipicamente, dispone di un bus esterno molto veloce, ne ha comunque soltanto uno. Di conseguenza la probabilità di una collisione di bus è alta. Una delle caratteristiche dei 10 MB di Ram di cui dispone la famiglia RZ/A, è quella di essere di tipo low-power. Nel blocco zero della Ram ci sono 128kB di Ram “data-retention”, divisa, a sua volta, in blocchi ancora più piccoli. Questi blocchi possono rimanere alimentati nelle varie modalità a basso consumo, facendo si di poter disporre di un tempo di risveglio estremamente veloce. Si può salvare in questa Ram il codice di startup e persino la prima immagine da visualizzare sullo schermo TFT, così non appena l'utente preme un tasto o fa partire il sistema, è possibile ottenere una accensione quasi immediata dell'applicazione. Questo è chiaramente un altro importante vantaggio rispetto ad un sistema con Mpu, nel quale per poter raggiungere il più basso livello di consumo, deve essere tolta l'alimentazione alla Ram, rendendo di conseguenza necessario il boot completo alla successiva riaccensione.
Un'altra caratteristicha unica della famiglia RZ/A, è la SPI Multi-I/O. Questa periferica può essere vista come un semplice blocco serisale di tipo SPI, ma con alcune caratteristiche extra. La prima caratteristica extra di questo blocco, è che, non solo supporta le modalità SPI standard, ma anche la nuova modalità QSPI. Questa modaltà utilizza quattro linee dati parallele al posto del bus standard a 3 fili. Con questa connessione ad alta velocità, i primi benchmark mostrano un miglioramento delle performance superiori di 9 volte se confrontate con i moduli SPI tradizionali. Inoltre mostrano che è addirittura possibile raggiungere performance migliori (approssimativamente del 3%) rispetto, ad esempio, a quelle ottinibili con una memoria flash NOR ad accesso parallelo. Questo porta come risultato, alla possibilità di ottenere un tempo di boot estremamente veloce, senza dover necessariamente connettere un bus a 32bit. L'altra caratteristica del blocco Spi Multi-I/O, è la funzionalità di esecuzione diretta del codice da memoria Spi esterna. Il blocco permette alla Cpu di accedere alla flash seriale esterna QSPI, come se fosse mappata su un indirizzo lineare esterno. Questa caratteristicha è supportata anche dalla cache L2, quindi il codice può essere eseguito direttamente dalla flash esterna. Il risultato è che parte del codice, quello più critico che deve essere eseguito regolarmente e velocemente, può essere eseguito dalla Ram interna, mentre codice meno prioritario può essere eseguito dalla flash esterna. Così, anche se limitati da soli 10MB di Ram, il codice che può essere scritto dagli sviluppatori, è limitato esclusivamente dalla dimensione delle memorie flash Spi esterne disponibili sul mercato. Infine, dal punto di vista della comunicazione, il dispositivo dispone di tutto ciò che ci si può aspettare. Sono presenti, un modulo Ethernet Mac, due interfacce Usb 2.0, entrambi configurabili sia come Host che come device e fino a 5 canali Can.

Uno sguardo alla periferica grafica

Fino ad adesso abbiamo imparato che la famiglia RZ/A è un dispositivo estremamente veloce che raggiunge alte prestazioni, grazie ai 10 MB di memoria Ram interna e all'ampio numero di bus che impediscono la collisione. Inoltre dispone di una quantità di periferiche a supporto di tutte le interfacce standard che ci si può aspettare e, allo stesso tempo, permette ai progettisti di sviluppare sistemi a basso costo senza comprometterne le performance.Tutto questo è molto interessante, ma non arriva ancora al vero punto cruciale dell'applicazione. Come gestire lo schermo? L'RZ/A dispone di due caratteristiche che rendono la gestione dello schermo molto semplice, arrivando ad ottenere una Gui impressionante. La prima di queste caratteristiche è la Vdc5. Il Vdc5 è la quinta generazione del video display controller di Renesas, in grado di gestire schermi fino a un massimo di 1999 pixels x 2035 linee, rendendoli i più impressionanti del loro genere. Il Vdc5 attualmente supporta fino a 2 canali, quindi è possibile gestire due schermi simultaneamente. Il Vdc5, inoltre supporta le interfacce digitali standard, inclusa la Lvds, venendo così incontro alla tendenza di dover gestire schermi sempre più grandi. La prima porzione del Vdc è il controllore di ingresso, il quale può ricevere fino a due segnali di input video fino alla massima dimensione di 1440 x 1024. Il controllore di ingresso supporta sia la compensazione di fase che la correzione del rumore orizzontale e la correzione del contrasto. Il segnale di ingresso viene quindi trasferito al blocco scalare.
Il blocco scalare (del quale ne esistono due per ogni canale Vdc5) può essere usato per scalare i due segnali video in ingresso, sia in su che in giu, per creare una imagine corretta per lo schermo. L'immagine può anche essere ruotata e i due ingressi video possono essere sovrapposti tramite l'”alpha-blending” e una “colour-look-up-table”. Le immagini finali (se i due ingressi vengono trattati separatamente) o l'immagine (se viene utilizzato solo un ingresso oppure i due ingressi vengono sovrapposti) è, quindi, memorizzata all'interno di un frame buffer in Ram e passati al sintetizzatore d'immagine. Il sintetizzatore di immagine combina fino a 4 layer individuali per creare una immagine singola. Quando vengono utilizzati solo uno o nessun ingresso video, questi layer sono liberi di essere usati per altre parti della Gui come layer separati o icone. Attraverso il processo di alpha blending e il Clut, l'immagine finale viene creata e trasferita al controllore d'uscita. Infine, il controllore di uscita, prende l'immagine generata e la trasferisce allo schermo Tft, attraverso l'intarfaccia Lvds o l'uscita digitale, in uno dei tanti formati supportati: RGB888 (uscita parallela a 24-bit), RGB666 (uscita parallela a 18 bit), RGB565 (uscita parallela a 16-bit) oppure RGB888 (uscita seriale a 8 bit). L'operazione di alphablending e la combinazione di layers multipli non implicano l'utilizzo della Cpu. La seconda periferica dei dispositivi RZ/A, utile nello sviluppo di applicazioni Hmi, è il motore grafico Open-VG compatibile, un accelleratore grafico vettoriale 2D. Questo accellera gli stadi dal 2 all'8 della coda OpenVG, facendo uso di hardware dedicato e di librerie. Il motore OpenVG può essere usato per riempire il frame buffer e il Vdc5 può quindi essere utilizzato per inviare i dati dell'immagine allo schermo. Il vantaggio nell'uso di OpenVG sta nel fatto che permette di utilizzare grafica vettoriale, la quale può migliorare enormemente sia l'efficienza che il “look and feel” di una Gui. Possono essere usati due semplici esempi: quando un'immagine deve essere ruotata, il modo più semplice con una bitmap è quello di salvarla 360 volte, ognuna ruotata di 1 grado, quindi mostrare semplicemente le immagini in sequenza una dopo l'altra. Questo porta chiaramente a un carico significativo in termini di memoria e anche in termini di utilizzo del tempo di Cpu, mentre tramite una implementazione vettorizzata può essere semplicemente ruotata e il supporto per questa rotazione è incluso nell'hardware dei dispositivi RZ. Il secondo esempio è quello dello scaling e in questo caso un'immagine vale più di cento parole, quindi lascio l'immagine sotto senza commento
.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome