Espertino Gratis!

Applicazioni video low power con le FPGA lgloo

Come usare le FPGA lgloo per l'acquisizione ed elaborazione di immagini e per il controllo di display LCD.

I continui progressi tecnologici hanno determinato una rapida diffusione delle tecnologie video in molti àmbiti di applicazione, anche nel settore embedded. In questo caso la riduzione dei costi e della potenza dissipata sono requisiti fondamentali; da questo punto di vista le FPGA Igloo di Actel (rinominata in Microsemi SoC Products Group a seguito dell’acquisizione da parte dell’azienda californiana) rappresentano una delle soluzioni più interessanti oggi disponibili sul mercato.

Di seguito sono presentate alcune interessanti applicazioni di esempio in àmbito video. I progetti sono realizzati mediante il kit di sviluppo Igloo Demo Video Kit (figura 1), che consiste in una scheda demo board con FPGA Igloo e un adaptor board per display LCD. Oltre alla FPGA Igloo AGL600-FG256, la demo board include memoria Micron SDRAM da 2 MB x 32, memoria flash SPI Numonyx da 64 MByte e memoria EEPROM da 2 kbit; dispone di interfaccia USB, DVI-D e JTAG (per la programmazione della FPGA), connettore di espansione a 26 pin e RJ45 per 2x4 linee LVDS in uscita, oltre al connettore a 50 pin per l’adaptor board. Questa include, invece, il display LCD, l’inverter per la retroilluminazione dello schermo mediante CCFL (Cold Cathode Fluorescent Lamps) e un circuito di power sequencing. È disponibile nelle due versioni con schermo Toshiba da 7” con risoluzione 800 x 480 pixels o NEC da 5,5” con risoluzione 320 x 240 pixels. Il kit è distribuito presso Avnet; sul sito web di Actel ne sono inoltre rilasciati gli schemi elettrici, utilizzabili come guida nello sviluppo di soluzioni proprie.

Figura 1: il kit di sviluppo Igloo Demo Video.

Figura 1: il kit di sviluppo Igloo Demo Video.

Still Shot Camera

La figura 2 mostra lo schema di principio del progetto per la realizzazione di una camera still shot mediante FPGA Igloo. La testa ottica, disponibile separatamente dal Demo Video Kit presso Avnet, include un sensore CMOS MT9V032 di Aptina, azienda nata nel 2008 da uno spin-off di Microsemi e specializzata nella realizzazione di sensori per imaging; il sensore ha risoluzione 640 x 480 pixel, dispone di filtro di Bayer (vedi figura 3) per l’acquisizione di immagini a colori e supporta frame rate fino a 60 fps. La testa ottica è connessa al Demo Video Kit mediante il connettore a 26 pin. Il progetto di riferimento consente di acquisire immagini dal sensore ottico visualizzandole quindi sullo schermo LCD. A comando (mediante i pulsanti di controllo ENTER e INC presenti sulla demo board) l’immagine acquisita può essere salvata nella memoria SDRAM esterna. Tutte le funzionalità sono integrate nella FPGA Igloo; l’intero progetto, come pure quelli che seguono, è disponibile per il download presso il sito Actel e i diversi moduli sono rilasciati in formato sorgente, con la possibilità per l’utente di modificarli. L’FPGA configura al powerup il sensore mediante l’interfaccia di controllo I2C e quindi acquisisce le immagini provenienti da quello. Il Frame Buffer Controller integra FIFO on-chip e logica per la memorizzazione (a seguito di comando) dell’immagine nel buffer SDRAM esterno, mentre il modulo di conversione dal formato d’ingresso con filtro di Bayer ricostruisce mediante semplice interpolazione le componenti di colore RGB per ogni pixel prima della visualizzazione. Il Video Timing Generator genera i segnali di sincronizzazione e controllo per il display LCD.

Figura 2: schema a blocchi di una camera still shot realizzata con FPGA Igloo

Figura 2: schema a blocchi di una camera still shot realizzata con FPGA Igloo

 

Figura 3: sensori a colori con filtro di Bayer; pixel adiacenti catturano solo una componente di colori.

Figura 3: sensori a colori con filtro di Bayer; pixel adiacenti catturano solo una componente di colori.

Foto Viewer

La figura 4 mostra invece lo schema a blocchi di principio del progetto di riferimento per la realizzazione di un viewer di immagini mediante FPGA Igloo. Alcune delle funzionalità, in particolare per quanto concerne il buffering dell’immagine e la visualizzazione su schermo, sono evidentemente identiche a quelle incluse nel progetto precedente. L’immagine da visualizzare è memorizzata sulla memoria flash esterna presente sulla demo board e può esservi caricata mediante la porta USB disponibile su questa utilizzando il software IVDK (scaricabile dal sito Actel). L’FPGA, al power-up, procede a leggere dalla flash mediante interfaccia SPI l’immagine da visualizzare e quindi la invia all’LCD.

Figura 4: schema a blocchi di un viewer di immagini realizzato con FPGA Igloo.

Figura 4: schema a blocchi di un viewer di immagini realizzato con FPGA Igloo.

DVI monitor

In figura 5 è mostrato infine lo schema di principio del progetto di riferimento per la realizzazione di un monitor con ingresso DVI. In questo caso il frame grabber consente di bufferizzare le immagini in ingresso nella memoria SDRAM esterna per inviarle all’LCD con la corretta sincronizzazione; implementa anche una funzionalità di riduzione del frame rate per adattare la frequenza di immagini in ingresso al rate sostenuto dal display adottato. Come sorgente DVI, ove non si disponga di segnali di questo tipo, può essere utilizzata ad esempio l’uscita secondaria del PC, opportunamente configurata. Non si devono utilizzare invece sorgenti non true-DVI, come ad esempio convertitori VGA-DVI.

Figura 5: schema a blocchi di un monitor con ingresso DVI realizzato con FPGA Igloo.

Figura 5: schema a blocchi di un monitor con ingresso DVI realizzato con FPGA Igloo.

Image scaling

Modificando opportunamente la logica del frame grabber dell’esempio precedente ma lasciando inalterate le altre funzionalità, il progetto del monitor DVI può essere esteso introducendo funzionalità accessorie di elaborazione di immagini. In particolare, nell’esempio fornito sul sito web di Actel, il frame grabber è dotato di una funzionalità di scaling che, se abilitata, consente di acquisire una regione d’interesse dell’immagine in ingresso, posizionata intorno al centro di questa e di risoluzione 400 x 240; viene quindi applicato un algoritmo di up-scaling di un fattore 2 mediante interpolazione (per ridurre evidentemente gli effetti di aliasing legati a tale zoom) prima di visualizzare l’immagine sull’LCD. L’occupazione di risorse è solo il 6% superiore a quella del progetto del monitor DVI, il che dovrebbe in qualche modo dare l’idea della flessibilità delle architetture basate su FPGA, mostrando la possibilità concreta, grazie alla riprogrammabilità di tali dispositivi, di introdurre le funzionalità richieste dalla propria applicazione senza necessità di modificare il circuito della scheda.

Le FPGA Igloo

Igloo (figura 6) è la serie di dispositivi FPGA single-chip riprogrammabili in tecnologia Flash, realizzati con processo CMOS a 130 nm e 7 piani di metallizzazione, sviluppati da Actel per applicazioni a bassa dissipazione di potenza. La famiglia include dispositivi di capacità fino a 3 milioni di system gate e con fino a 504 kbit di memoria SRAM true dual-port integrata, 6 PLL embedded e 620 I/O utente con supporto per standard differenziali e operazioni mixed-voltage. La serie M1, inoltre, è distribuita con soft IP core preprogrammato per CPU Cortex-M1. Basati su tecnologia proprietaria Flash Freeze – che consente di forzare l’FPGA in modalità ultra low power pur mantenendo l’integrità del contenuto di SRAM e registri e il valore delle porte di I/O – i dispositivi Igloo consentono di ridurre la dissipazione di potenza fino a soli 2µW, in tutte le applicazioni power- conscious, assicurando tipicamente una vita delle batterie fino a 10 volte superiore di quanto garantito da dispositivi concorrenti equivalenti. Le FPGA Igloo operano con tensione di core di 1,2 - 1,5 V e sono disponibili in package chip-scale e quad-flat di dimensioni fino a 3 x 3 mm, a costi inferiori a 1 dollaro.

Figura 6: le FPGA Igloo.

Figura 6: le FPGA Igloo.

Abbonati Ora!

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend