La nuova dimesione ultra-embedded dell’Hmi

INTERFACCE UOMO-MACCHINA –

L’interfaccia uomo-macchina rappresenta oggi il sottosistema più critico per qualsiasi applicazione relativamente a dimensioni, costo, consumo energetico e real-time

L'interfaccia uomo-macchina sta assumendo un ruolo determinante nello sviluppo dei sistemi embedded di nuova generazione ove una nuova serie di requisiti applicativi molto stringenti e ad alte prestazioni rappresentano la sfida che i progettisti devono vincere per cavalcare l'onda dell'innovazione tecnologica.
L'interfaccia uomo-macchina nei sistemi embedded di nuova generazione rappresenta il sottosistema più critico per qualsiasi applicazione relativamente ai principali requisiti funzionali, in particolare le dimensioni, il costo, il consumo energetico e le prestazioni real-time. Per soddisfare in maniera ottimale questi requisiti e non sovraccaricare il processore host dell'oneroso compito di gestire il livello funzionale dell'Hmi, ma solo il livello applicativo dell'interfaccia, è necessario un salto tecnologico rispetto all'attuale stato dell'arte, in particolare spostando la parte dell'intelligenza necessaria all'interfaccia Hmi sul livello hardware dell'interfaccia stessa. Ciò significa portare a livello di system-on-chip (SoC) tutta la logica necessaria a gestire la Hmi a tutti i livelli della multimedialità comunicativa (audio/visuale/multisensoriale). Si tratta dunque di un nuovo paradigma di progettazione che è ben oltre quello del display intelligente e che si configura nel nuovo paradigma della Hmi intelligente integrata a livello di SoC. Grazie a questo nuovo paradigma della progettazione della Hmi, i requisiti per lo sviluppo dei sistemi embedded di nuova generazione, soprattutto quelli indossabili, possono essere pienamente soddisfatti.

La tecnologia Embedded Video Engine

FTDI Chip ha recentemente introdotto una tecnologia per il miglioramento della HMI chiamata Eve (Embedded Video Engine). Si tratta di una tecnologia ad elevatissima integrazione di natura SoC che rende disponibile in un solo chip tutta la funzionalità necessaria alla gestione ad alto livello della Hmi. FT800 non è un semplice controller video, ma un vero e proprio sistema intelligente su chip per il controllo dell'interfaccia uomo-macchina che include le tre principali funzioni di interazione, quella visuale, quella audio e quella tattile, con una risoluzione di 1/16 di pixel.
La recente introduzione del FT801 ha ulteriormente aumentato le possibilità di questa Hmi on-chip relativamente alla tecnologia touchscreen (capacitiva) che ha consentito di ottenere una maggiore sensibilità del tocco con conseguente accuratezza nell'interazione e possibilità di operare in modalità multi-touch e gestuale. La HMI FT801 si caratterizza soprattutto per il supporto di touchscreen capacitivi con rivelazione fino a 5 tocchi e gesti, per il motore hardware che riconosce touch tags e traccia il movimento del tocco (fino a 255 touch tags) e per l'architettura ad oggetti avanzata. Grazie a queste caratteristiche, il chip FT800/801 consente di rendere disponibile un livello di Hmi molto elevato anche per Mcu particolarmente semplici (anche a 8 bit), mantenendo in tal modo particolarmente bassi i costi di Cpu, il consumo di potenza e le dimensioni del sistema embedded. Il video engine EVE realizzato da FTDI, oltre a integrare on-chip la capacità di elaborazione necessaria a gestire la comunicazione viusale ad alto livello, integra anche la capacità di elaborazione dell'informazione audio e tattile, superando in tal modo il concetto tradizionale di display controller a favore del nuovo concetto di HMI controller.

Audio engine per la riproduzione dei suoni

L'FT800 integra un processore audio detto Audio Engine che consente la generazione una grande varietà di suoni utilizzando la tecnica delle forme d'onda a tabella memorizzata. I suoni sono memorizzati in una Rom da cui sono richiamabili tramite un registro di tipo (Reg_Sound) e un registro di esecuzione (Reg_Play). I suoni possono essere eseguiti singolarmente o sequenzializzati, possono essere controllati relativamente al volume (Reg_Vol_Sound). I suoni possono essere controllati relativamente all'altezza tramite la codifica Midi della frequenza, quindi è possibile eseguire sequenze audio musicali controllando in maniera opportuna la durata e il volume (intensità). A questa capacità di riprodurre semplici suoni e sequenze musicali con la simulazione di strumenti musicali di varia natura (pianoforte, organo, tromba, arpa, ecc.) il chip consente anche di eseguire sequenze audio campionate. La Ram interna (256 kByte) viene utilizzata come memoria audio digitale per contenere i campioni di qualsiasi sequenza audio capionata a frequenze tra 8000 e 48000 Hz. Tale capacità può essere raddoppiata adottando alcuni formati di compressione nel dominio del tempo come la Ima-Adpcm a 4 bit. Ogni byte contiene due campioni Adpcm, quindi la durata del suono campionato nella Ram è doppia rispetto al Pcm a 8 bit.

Graphic engine

L'FT800 integra un processore grafico che esegue la lista di display per ogni linea orizzontale, esegue le primitive degli oggetti da visualizzate e costruisce il buffer della linea di display. Le primitive degli oggetti grafici sono linee, punti, rettangoli, bitmap, testi, grafici a barre, ecc. Il processore grafico implementa anche operazioni per creare effetti di ombreggiatura, transizione, ecc. Agli oggetti viene applicato un processo anti-aliasing che consente di conferire a questi un effetto smoothing. Il processore grafico implementa anche applicativi e funzionalità custom che consentono di eseguire operazioni come la decodifica Jpeg, lo screen saver, la calibrazione, ecc. I comandi dalla Mpu arrivano attraverso una Fifo da 4 kbyte direttamente in Ram. La Mpu (host) scrive nella Fifo e il processore grafico legge ed esegue i comandi. Esegue anche operazioni basate sulle trasformazioni bitmap che consentono la traslazione, la scalatura e la rotazione. Oggetti grafici come bottoni, orologi, chiavi, testi barre di avanzamento, sliders, interruttori toggle, ecc. sono disponibili come singoli comandi. È disponibile anche una funzione di cattura snapshot dell'immagine grafica visualizzata sul display. I font dei caratteri sono memorizzati come font metrics nella Rom interna (in totale 16 Rom fonts). È possibile definirne altre 16 custom in Ram. Ogni font ha 148 byte di parametrizzazione.

Touch-Screen engine
per una nuova tattilità

Il Touch-Screen Engine è il terzo motore computazionale integrato del FT800/1. Questo legge comandi dai registri mappati in memoria ed esegue i segnali di controllo richiesti verso gli axis-switch, gli inputs mux e l'Adc. Dall'Adc vengono acquisiti i dati e conseguentemente aggiornati i registri su cui si interfaccia la Mcu. Il touchscreen engine cattura le coordinate X e Y e le trascrive in un registro. La pressione del tocco è misurata come proporzionale alla resistenza, rendendo in tal modo possibile stabilire una soglia di sensibilità che consente di accettare un tocco solo quando questo supera una certa soglia.

Progettazione rapida

Uno dei principali vantaggi di un controller intelligente come FT800/1 è quello di consentire la progettazione rapida dell'interfaccia Hmi, considerando la molteplicità delle problematiche non solo di natura grafica, ma anche di natura audio e sensoriale che l'interfaccia uomo-macchina implica. Il controller FT800/1 consente di programmare l'interfaccia Hmi con un approccio a oggetti, quindi tramite una serie di comandi ad alto livello più vicini alla natura dell'applicazione che alla natura del sistema cui si fa riferimento. Dopo la prima fase di configurazione del dispositivo, tutta l'attività di controllo dell'interfaccia da parte della Mcu host si riduce alla creazione di liste di visualizzazione (che includono anche la parte audio e il controllo tattile) e alla sequenzializzazione verso il controller. Le sequenze di controllo non sono orientate alla natura hardware del controller ma alla natura logica, cioè come sistema di interfaccia Hmi multimediale. L'FT800/1 utilizza due tipologie di controllo, una di display list (primitive) e l'altra di command (per disegnare immagini complesse con un minimo di comandi e di elaborazione da parte della Mcu). La display list viene gestita tramite una porzione lineare della memoria Ram (Ram_G) di 256 kbyte in modalità swap. I command sono invece gestiti tramite Ram in un buffer circolare di 4 kbyte. Il controller FT800/1 è in grado di eseguire un'applicazione multimediale (grafica/audio/tattile) con un impegno minimo da parte della Mcu. Per esempio, l'implementazione e il controllo di uno strumento musicale (un pianoforte) viene ottenuto con una sequenza di codice C di poche centinaia di righe. Grazie ai comandi di scrittura e lettura della display list e della command è possibile ottenere la sintesi di suoni molto complessi come quello di un pianoforte scrivendo in pochi registri i relativi codici di controllo. Anche la funzionalità grafica, per esempio la tastiera, i bottoni di controllo, le eventali animazioni, vengono controllate tramite semplici sequenze di comandi ad alto livello, mantenedo in tal modo il livello computazionale della Mcu estremamente basso, malgrado l'elevato livello computazionale dell'applicazione.

Prototipazione rapida

La prototipazione rapida è un'importate opportunità che lo sviluppatore ha di pervenire alla realizzazione di una versione preindustrializzata dell'applicazione in tempi relativamente brevi. Ciò è possibile quando i componenti chiave dell'applicazione sono disponibili su schede facilmente assemblabili e configurabili dallo sviluppatore. Nel caso del FT800/1 sono disponibili due tipologie di schede di prototipazione rapida, una che implementa l'intero sottosistema Hmi controllabile tramite link seriale, l'altra che implementa l'intero sistema applicativo, incluso la Mcu e le necessarie periferiche. La scheda di prototipazione rapida VM800C consente di collegare a qualsiasi processore host un sistema di interfaccia Hmi semplicemente tramite una connessione seriale Spi. Il sistema host può essere anche un Pc, utilizzando un convertitore di interfaccia Usb-Spi per connettersi al VM800C. Grazie a questa soluzione, è possibile utilizzare la modalità Hardware-In-the-Loop dei sistemi di modellazione e simulazione basati su Pc. Il sistema di prototipazione rapida VM800P è una soluzione completa capace di ospitare un'applicazione che utilizza una Hmi e di funzionare in modo indipendente dal sistema di sviluppo, come funzionerebbe il prodotto finale industrializzato dopo la produzione. Si tratta dell'integrazione del FT800 interfacciato con la Mcu ATMEGA328P operante a 5V/16 MHz in modalità compatibile Arduino. Oltre alla funzionalità combinata Mcu-Hmi, il modulo di prototipazione rapida integra un amplificatore audio di potenza, un microaltoparlante, un real-time clock dotato di batteria di backup, uno shifter di tensione 3.3v/5v, una opzione e-Flash IC build e un soket per Micro-SD. La prototipazione rapida tramite VM800P e il modulo di programmazione VA800A_Prog sono i due soli dispositivi hardware che lo sviluppatore deve avere a disposizione per prototipare l'applicazione dotata di interfaccia Hmi in maniera praticamente immediata. Il VM800P è infatti un sistema completo di Mcu e di tutto quanto serve a configurarlo in accordo con l'applicazione in modalità finale. Il modulo di programmazione si interfaccia via Usb host Pc al VM800P utilizzando l'interfaccia Spi e consente di accedere alla Mcu al fine della programmazione. Quando il codice applicativo è pronto per essere eseguito in modalità boot dalla Mcu on board, il sistema è completamente configurato come applicazione. Il codice Arduino può essere scaricato dall'ambiente Ide Arduino sulla Mcu ATMEGA328P attraverso la connessione Usb (connettore CN2) a Pc. Tramite questa connessione è possibile visualizzare le informazioni di debug provenienti dalla Mcu utilizzando un'applicazione Pc terminal.

Pubblica i tuoi commenti