DAQ (parte 9) – Design con FPGA (seconda parte)

Pubblicato il 22 settembre 2014

Un sistema DAQ-FPGA utilizza un chip FPGA per gestire i dati digitali di un ADC. La FPGA può incorporare il proprio microcontrollore e gestire le funzionalità logiche definite opportunamente dall’utente utilizzando un linguaggio di programmazione speciale chiamato HDL come Verilog o VHDL.

figura1

FPGA

L’obiettivo di un sistema DAQ è generalmente quello di prendere un segnale elettrico di qualche tipo e convertirlo in dati digitali. I sistemi DAQ semplici sono costituiti da un microcontrollore con un ADC integrato (convertitore analogico-digitale) e una sorta di interfaccia digitale o dispositivo di memorizzazione. Un esempio potrebbe essere un semplice logger di temperatura con una porta USB o porta di uscita seriale.  Quali sono i vantaggi della tecnologia FPGA su un sistema DAQ?

  • La possibilità di creare interfacce non standard. Può essere difficile o impossibile da interfacciare alcuni di questi direttamente con un microcontrollore.
  • La possibilità di creare molte interfacce standard come I2S, I2C, SPI, I / O seriale. La maggior parte dei microcontrollori hanno un numero limitato di interfacce hardware. Molte applicazioni DAQ richiedono più interfacce.
  • La possibilità di creare interfacce ad altissima velocità. Molte sono le interfacce LVDS che consentono velocità di trasmissione dati superiori a 100 di megabit / s .
  • La capacità di elaborare molti flussi di dati in parallelo. Un FPGA può avere un canale di elaborazione separato per ciascun flusso di convertitore di dati in cui vengono elaborati simultaneamente e indipendentemente dagli altri flussi. Oltre a miglioramenti di velocità, questo può consentire l’attivazione e la trasformazione di diversi canali a frequenze di campionamento differenti.
  • Gestione di eventi: ogni sezione di un FPGA può funzionare indipendentemente dal sistema di distribuzione e può cronometrare un evento appena accade. Un microcontrollore spesso deve attendere un interrupt per cronometrare un evento.
  • La possibilità di creare molti contatori di qualsiasi dimensione. La maggior parte dei microcontrollori sono limitati a 3-6 contatori a 16 bit.
  • La possibilità di implementare più microcontrollori all’interno del chip stesso, invece di utilizzare un grande e veloce microcontrollore per fare tutto il lavoro di elaborazione.
  • Dispositivi I / O in grado di soddisfare molti standard. La maggior parte dei chip FPGA può supportare più di 25 tipi di standard I / O, dove i microcontrollori tendono ad essere limitati a uno o due.
  • Tempi di risposta deterministici: Il codice VHDL è implementato come un disegno hardware creando una risposta deterministica. In alcuni casi, una risposta di segnali di uscita per un segnale di ingresso può essere inferiore al nanosecondo.

In sintesi, un FPGA garantisce la capacità di costruire sottosistemi logici personalizzati che possono operare in parallelo. Ovvero, un sistema basato su FPGA di grande flessibilità e capacità per un sistema di acquisizione dati.

Figura2

Il linguaggio della FPGA: VHDL

VHDL è un acronimo che sta per VHSIC Hardware Description Language. VHSIC è ancora un altro acronimo che sta per Very High Speed ​​Integrated Circuits.

Viene utilizzato per la documentazione, verifica e sintesi di grandi progetti digitali. Questo è in realtà una delle caratteristiche chiavi di VHDL, poiché lo stesso codice può teoricamente raggiungere tutti e tre questi obiettivi. Oltre ad essere utilizzato per ciascuno di questi scopi, VHDL può essere usato in tre diversi approcci per la descrizione hardware: strutturali, flusso di dati e metodi comportamentali di descrizione hardware. Il più delle volte sono impiegati una miscela dei tre metodi appena elencati.

VHDL è uno standard (VHDL-1076) sviluppato da IEEE (Institute of Electrical and Electronics Engineers). Attualmente, la versione più utilizzata è la versione 1987 (std 1076-1987), talvolta indicato come VHDL’87, ma anche solo VHDL. Tuttavia, vi è una revisione più recente del linguaggio denominato VHDL’93. VHDL’93 (adottato nel 1994 ovviamente) è abbastanza nuovo ed è ancora in fase di sostituzione VHDL’87.

Il VHDL consente, infatti, di descrivere efficacemente sistemi complessi cui corrispondono netlist di centinaia di migliaia o milioni di porte logiche elementari, così come in un programma software ad alto livello è possibile ottenere facilmente programmi in linguaggio macchina costituiti da milioni di istruzioni elementari a partire da un listato di poche centinaia di righe.

High speed DAQ con FPGA

Un possibile progetto di un sistema di acquisizione dati ad alta velocità con FPGA può essere visualizzato in figura 1.

Il design è composto da una scheda ADC (ADS5474EVM) e una scheda FPGA (ML555). La scheda FPGA memorizza i dati grezzi acquisiti dalla scheda ADC nella sua memoria interna. Questi dati vengono successivamente trasmessi e analizzati dal PC host (Fig. 1).

ADS5474EVM è una scheda di valutazione dotata di un ADC ADS5474 prodotto da Texas Instruments. Le sue caratteristiche sono le seguenti:
• Risoluzione: 14 bit
• Maximum sampling rate: 400MSPS

• Banda: 1.4GHz
• Uscita dati: LVDS compatibile
ML555, invece, è una scheda FPGA commerciale prodotta da Xilinx ed è dotato di un Virtex-5 (XC5VLX50T). Le sue caratteristiche sono le seguenti:
• PCI-Express/PCI/PCI-X

• SDRAM  DDR2
• Interfaccia LVDS con SAMTEC e porta USB

Xilinx ISE9.2, uno strumento di sviluppo integrato, è stato utilizzato per la progettazione della logica FPGA visualizzata in figura 2.

Un blocco di memoria Virtex-5 può essere usato per accumulare i dati acquisiti. Ad una frequenza di campionamento di 400 MHz, il blocco di memoria può accumulare dati di circa 327 ms. Il tempo di accumulo dati è controllato dal segnale di trigger esterno.

ML555 è dotato di un USB-UART (Universal Asynchronous Receiver-trasmettitore) per essere collegato alla porta seriale del computer host al momento dell’installazione del software. Un circuito di comunicazione seriale asincrona è utilizzato per ridurre il tempo di sviluppo. Un programma di comunicazione sul PC host può essere progettato utilizzando LabVIEW.

Il sistema di acquisizione dati ad alta velocità è applicato, per esempio, per la misura del campo elettrico del cavo superconduttore STF o altre applicazioni sensoristiche.

Quando si utilizza LabVIEW per programmare un chip FPGA, il codice viene trasformato in firmware per l’hardware, e ciò significa che la velocità di esecuzione è limitata soltanto dai clock e dai ritardi logici dell’elettronica. Utilizzando FPGA, non solo è possibile creare applicazioni che rispondono ad eventi estremamente veloci, ma anche sviluppare loop di controllo a tempi di risposta dell’ordine dei microsecondi (a seconda del codice scritto internamente al loop). Questi possono includere semplici algoritmi PID (Proportional Integral Derivative), algoritmi di trasferimento funzioni e modelli state-space.

Per task di elaborazione critici che non possono provocare rallentamenti di sistema e richiedono determinismo e temporizzazione. La natura parallela dell’hardware FPGA e la mancanza di un driver software per la comunicazione con il dispositivo, permettono alle applicazioni FPGA di risultare più affidabili rispetto al codice CPU corrispondente.

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

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

  • I moduli DRAM industriali di Innodisk per applicazioni FPGA

    Innodisk  ha recentemente presentato i suoi moduli DRAM industriali per applicazioni FPGA che offrono nuove opportunità per gli integratori di sistema e gli operatori di rete. Questi moduli offrono un ampio intervallo di temperature di lavoro, un...

  • Teledyne e2v: nuova piattaforma di data conversion per gli FPGA Xilinx

    Teledyne e2v ha introdotto ulteriori miglioramenti al suo portafoglio di data converter insieme alla tecnologia SERDES ad alta velocità che li supporta. L’azienda ha infatti presentato nuove soluzioni di conversione ADC multicanale altamente ottimizzate e convertitori da...

Scopri le novità scelte per te x