DAQ (parte 8) – Design con FPGA

Pubblicato il 15 settembre 2014

In un sistema di acquisizione il flusso di dati può essere gestito da un FPGA che garantisce una notevole trasmissione e una facile riprogrammazione. Analizziamo la FPGA con un esempio di progetto in ambito di un sistema DAQ generale.

figura1

Fig. 1 – Struttura di una FPGA

Field Programmable Gate Array (Fig. 1) o FPGA sono matrici tridimensionali di blocchi logici con interconnessioni programmabili. Le interconnessioni sono costituite da interruttori, che è la ragione del fatto che questi FPGA differiscono dai circuiti integrati (IC) personalizzati.

In un FPGA, blocchi di codice vengono implementati utilizzando più livelli in porte, che gli conferisce un design più compatto rispetto a un’implementazione con due livelli di logica AND-OR. FPGA fornisce ai suoi utenti di configurare: l’intersezione tra i blocchi logici e la funzione di ciascun blocco logico.

figura2

Fig. 2 – SRAM-controlled programmable switcheig. 3 – Schema a blocchi del XEM3010

Il blocco logico di un FPGA può essere configurato in modo tale da fornire una funzionalità semplice come quella del transistor o complesso come quello di un microprocessore; può essere utilizzato per implementare diverse combinazioni e funzioni logiche sequenziali. Inoltre, blocchi logici di una FPGA possono essere implementati da uno dei seguenti modi:

• Coppie di transistor;
• Configurazioni combinatorie come porte NAND di base o porte XOR;
• Multiplexer.

Le FPGA sono state introdotte come soluzioni alternative ai circuiti integrati personalizzati, per l’attuazione dell’intero sistema e fornire flessibilità e riprogrammabilità del dispositivo (Fig. 2).

DAQ high speed con FPGA

Con il rapido sviluppo delle tecnologie dell’informazione, l’acquisizione dati in tempo reale è diventata una parte indispensabile nelle applicazioni quali misura del segnale, elaborazione di immagini, l’elaborazione del segnale audio high speed, misure di alta precisione e la necessità di una raccolta dati ad alte prestazioni.

figura3

Fig. 3 – Schema a blocchi del XEM3010

Sistemi di raccolta dati tradizionali, sono spesso computer single-chip o processore di segnali digitali (DSP). Tuttavia, a causa del ciclo di istruzioni single-chip e la sua frequenza di clock relativamente bassa, è difficile soddisfare sistemi di acquisizione dati e requisiti di sincronizzazione in tempo reale.

figura4

Fig. 4 – Visione 3D della scheda XEM3010

Il sistema di acquisizione dati basato su DSP, anche se con sufficiente velocità di elaborazione, ha un costo elevato, con troppi frequenti interruzioni della CPU che riduce l’efficienza e la velocità di risposta.
L’utilizzo di sistemi logici programmabili garantisce vantaggi di flessibilità nella gestione di un sistema di acquisizione dati. I chip FPGA possono essere utilizzati in elaborazione e controllo dati, e sistemi di controllo.

Supponendo che il blocco relativo al front-end A/D è stato correttamente realizzato, la fase della progettazione del sistema digitale che deve essere realizzata al fine di dialogare con la sezione analogica, comandare correttamente i vari convertitori attraverso un protocollo di comunicazione e, quindi, acquisire in maniera corretta i campioni convertiti in formato digitale.

figura5

Fig. 5 – Schema a blocchi del sistema DAQ con FPGA

L’implementazione dell’architettura digitale, prevede una pre-elaborazione dei campioni che evita un “sovraccarico” di lavoro per il computer associato al processamento dei dati. La scelta del FPGA permetterà l’ottimizzazione di parametri per migliorare il time-to-market e la personalizzazione del prodotto: la possibilità di far comunicare i blocchi logici con il mondo esterno, integrare il sistema con sistemi digitali specifici quali DCM (Digital Clock Master) e moltiplicatori, sono un insieme di fattori che hanno reso indispensabile l’uso del FPGA nei sistemi attuali.

La progettazione del sistema digitale viene realizzata attraverso uno specifico linguaggio, il VHDL: ossia un “linguaggio di descrizione”, attraverso il quale è possibile descrivere il comportamento del sistema digitale non in termini circuitali, ma in termini di funzionalità di alto livello.

La realizzazione del codice VHDL segue la mappatura, nonché il routing, attraverso un pacchetto software (ISE) in grado di tradurre il codice ad alto livello in un insieme di blocchi digitali opportunamente configurati, realizzando la specifica applicazione del FPGA.

Per far fronte a diverse esigenze relative alla riduzione del tempo di progettazione, la necessità di memoria RAM e la possibilità di comunicare attraverso semplici host (vedi USB), un possibile modello commerciale che può essere utilizzato per lo sviluppo di un progetto è XEM3010 (Figg. 3 e 4), prodotta dalla Opal Kelly: una scheda di sviluppo che integra una FPGA Xilinx Spartan-3 con diverse periferiche.

Esempio di progetto

L’acquisizione dei dati è il processo di raccolta e misura dei segnali in tempo reale. I dati acquisiti vengono utilizzati dal computer per un’ulteriore elaborazione. L’idea di progetto è quella di implementare un sistema utilizzando porte seriali RS-232 e il protocollo SPI in un FPGA. Questa implementazione potrebbe costituire una base per ulteriori progetti scientifici.

Lo schema a blocchi del sistema di acquisizione dati è costituito da un generatore di funzioni, ADC e un amplificatore programmabile come mostrato in figura 5.

L’ADC seriale utilizzato è LTC1407A-1 14 bit e l’amplificatore è LTC6912-1. In applicazioni reali, un circuito di condizionamento dovrà essere utilizzato per convertire i segnali analogici in segnali elettrici che possono essere applicati all’ADC.

LTC1407A-1 è un ADC 14-bit 3Msps, con due ingressi differenziali a campionamento simultaneo. LTC6912, invece, è un amplificatore a doppio canale, basso rumore, a guadagno programmabile digitalmente, facili da usare e dimensioni ridotte. I guadagni per entrambi i canali sono indipendenti, programmabili tramite un’interfaccia SPI a 3 fili per selezionare il relativo guadagno di tensione.

figura6

Fig. 6 – Spartan 3A/3AN

Il sistema è costituito da due parti principali. Modulo di acquisizione dati e il modulo RS-232 di serie, entrambi questi moduli vengono implementati in un FPGA quale, per esempio, Spartan 3A/3AN (Fig. 6), utilizzando lo strumento Xilinx ISE 12.3i. Il sistema utilizza due protocolli di comunicazione: il protocollo di comunicazione seriale viene utilizzato per comunicare in modo asincrono tra FPGA e PC, il protocollo di comunicazione SPI, invece, è usato come master e slave che comunica in modo sincrono tra ADC e FPGA.

La funzione principale del sistema è quello di acquisire segnali analogici e convertirli in forma digitale equivalente, per poi inviare i dati al PC per un ulteriore utilizzo. Xilinx ha molti prodotti commerciali dove le FPGA trovano applicazione, per esempio nel settore automotive e industriale. Altre applicazioni di FPGA includono elaborazione del segnale digitale, software-defined radio, sistemi di difesa aerospaziale e, prototipazione ASIC, imaging medicale, visione artificiale, riconoscimento vocale, la crittografia, la bioinformatica, l’emulazione hardware, radioastronomia e una gamma crescente di altre aree.

Leggi gli articoli precedenti

DAQ (parte 1) – Sistemi di acquisizione dati: generalità di progettazione

DAQ (parte 2) – Il condizionamento dei segnali e digitalizzazione

DAQ (parte 3) – Timing system e filtering

DAQ (parte 4) – Power management e bus interface

DAQ (parte 5) – Design hardware (parte prima)

DAQ (parte 6) – Design hardware (parte seconda)

Maurizio Di Paolo Emilio



Contenuti correlati

  • Lattice Semiconductor diventa un nuovo associato di CLPA

    Lattice Semiconductor è entrata come membro nella rete di vendor, system integrator e utenti finali di CC-Link Partner Association (CLPA). Questa nuova collaborazione contribuirà allo sviluppo di applicazioni interconnesse per l’automazione industriale con l’obiettivo di migliorarne l’efficienza...

  • Lattice ha presentato la piattaforma FPGA Avant

    Avant è il nome della nuova piattaforma FPGA di fascia media a basso consumo di Lattice Semiconductor. Questa piattaforma, progettata ex novo, amplierà significativamente l’offerta di Lattice dato che si affiancherà alla precedente piattaforma Nexus, raddoppiando di...

  • Le innovative applicazioni dei dispositivi programmabili FPGA-SoC

    Questo articolo è una panoramica sulle nuove funzionalità FPGA e le risorse SoC in applicazioni come il posizionamento indoor, l’ottimizzazione di algoritmi utilizzando sistemi operativi, codici di ottimizzazione, reti definite da software e nuove piattaforme di elaborazione...

  • Bilanciamento tra consumi e prestazioni nei sistemi embedded

    Questo articolo mette in evidenza l’importanza degli FPGA come elementi in grado di supportare l’evoluzione delle tecnologie di prossima generazione, capaci di garantire prestazioni efficienti dal punto di vista energetico in molte nuove applicazioni caratterizzate da alti...

  • I principali vantaggi degli FPGA rispetto alle MCU

    Nel momento in cui si accingono a sviluppare un nuovo sistema elettronico, i progettisti devono prendere una miriade di decisioni; una delle più cruciali è quella riguardante l’architettura del sistema e i dispositivi a semiconduttore impiegati per...

  • Il nuovo stack di soluzioni sensAI di Lattice per i client di nuova generazione

    Lattice Semiconductor ha annunciato una road map per lo sviluppo di soluzioni a basso consumo di potenza abilitate per IA/ML che migliorino la durata delle batterie e rendano possibili esperienze dell’utente innovative in applicazioni alla periferia della...

  • Gli FPGA Lattice Certus-NX ottimizzati per applicazioni automotive

    Lattice Semiconductor ha rilasciato le versioni della famiglia di FPGA Lattice Certus-NX ottimizzate per impianti di infotainment, sistemi avanzati di ausilio alla guida (ADAS, Advanced Driver Assistance Systems) e applicazioni focalizzate sulla sicurezza. Creati utilizzando la piattaforma...

  • I nuovi FPGA general purpose CertusPro-NX di Lattice Semiconductor

    Lattice Semiconductor ha presentato la famiglia di FPGA general purpose Lattice CertusPro-NX. Questa quarta famiglia di dispositivi basata sulla piattaforma Lattice Nexus segue gli stessi obbiettivi delle versioni precedenti in termini di efficienza energetica, larghezza di banda...

  • BittWare amplia la linea di acceleratori basati su FPGA Intel Agilex

    BittWare ha annunciato l’ampliamento della serie di acceleratori IA con FPGA Intel Agilex. Questi acceleratori di BittWare sono progettati per aiutare i clienti a sviluppare e implementare applicazioni edge e cloud di nuova generazione, offrendo una maggiore...

  • Analog Devices: soluzione DAQ μModule di precisione e ad alta velocità

    La soluzione per l’acquisizione dati (DAQ) µModule a 16 bit e 15 MSPS di Analog Devices permette la digitalizzazione di segnali transitori veloci nelle applicazioni di power analysis e per l’abilitazione del loop di controllo digitale a...

Scopri le novità scelte per te x