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.
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.
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.
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.
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.
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.
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