Elettronica Plus

Come realizzare una soluzione basata su FPGA per reti industriali di sensori wirelessERT

Con l’introduzione di standard wireless per apparecchiature da campo – come wirelessHART e SP100.11a – coloro che devono implementare il gateway si trovano costretti a ricercare un difficile compromesso tra il costo di una soluzione e il soddisfacimento delle esigenze di comunicazione con l’impianto utilizzando diversi standard IE (Industrial Ethernet). Poiché buona parte dell’”intelligenza” si sta spostando verso le unità connesse in rete e i gateway, i progettisti devono poter disporre di soluzioni affidabili e collaudate da utilizzare come blocchi base per la realizzazione di soluzioni capaci di soddisfare i requisiti di standard in continua evoluzione. Soluzioni “robuste” in grado di supportare qualsiasi protocollo di rete presente in uno stabilimento possono essere realizzate sfruttando dispositivi FPGA, processori embedded, blocchi IP (Intellectual Property) e stack di protocolli software.

Nella figura 1 viene riportato lo schema di sistema che integra le funzionalità di gateway e di gestione della rete: esso contiene moduli radio per la comunicazione in modalità wireless, un processore di sistema centrale e un co-processore di comunicazione con un processore embedded (soft) interno implementato in un FPGA. Gli FPGA si propongono come una piattaforma flessibile in grado di prendersi carico del processo di comunicazione dell’intera rete di stabilimento, esonerando in tal modo il processore di sistema dallo svolgimento di tutte le attività legate alla gestione della rete e assicurando, tra l’altro, una maggior sicurezza nelle comunicazioni.

Fig. 1 – Schema a blocchi di un sistema gateway e per la gestione della rete wireless

Realizzazione di una soluzione IE universale
Per realizzare una soluzione in grado di supportare i molteplici protocolli IE presenti in uno stabilimento è possibile ricorrere a una serie di schede plug-in, una per ciascun protocollo. In considerazione del gran numero di standard che vengono utilizzati a livello mondiale e della loro continua evoluzione, una soluzione di questo tipo non può garantire tempi di risposta brevi o risultare competitiva in termini economici.

Le attuali CPU potrebbero non garantire – a causa dell’inadeguatezza dell’hardware o dell’insufficienza delle prestazioni – il supporto di nuove funzionalità e/o di nuovi protocolli, oppure potrebbe non essere disponibile uno stack di protocollo standard. L’operazione di re-codifica del software necessaria per garantire il supporto di un nuovo processore o di un nuovo stack, oltre a essere costosa, richiede tempi lunghi. Laddove sono previste nuove CPU o nuovi dispositivi ASIC/ASSP per applicazioni IE, è necessario procedere alla realizzazione di nuove schede. A causa della continua evoluzione degli standard IE, potrebbero essere richiesti nuovi componenti hardware: da qui la necessità di garantire il supporto a molteplici versioni della scheda e di effettuare opportune pianificazioni al fine di affrontare in modo efficace il problema della potenziale obsolescenza dei dispositivi ASIC/ASSP. Una soluzione di questo tipo è difficile da supportare, onerosa in termini di costi e richiede tempi lunghi per l’implementazione di nuove funzionalità.

Per contro la flessibilità intrinseca degli FPGA consente ai progettisti di realizzare una scheda in grado di gestire una molteplicità di standard IE. Gli FPGA possono essere riconfigurati in maniera estremamente semplice, in modo da dare la possibilità a una singola scheda di supportare qualsiasi protocollo IE in ogni momento, fino alla spedizione del prodotto. Nel caso sia richiesto un protocollo differente, è sufficiente riprogrammare l’FPGA. Questa operazione può essere effettuata nel volgere di pochi secondi sfruttando l’apposito file di configurazione dell’FPGA.
Nell’FPGA sono implementate tutte le funzioni Ethernet di livello superiore a quello fisico (livello 1): il MAC (Media Access Controller) è realizzato nella logica dell’FPGA programmabile mentre le funzioni di livello superiore (Livello 3 e successivi) sono implementate mediante software che gira sul core del processore realizzato sfruttando la logica dell’FPGA. L’implementazione di un canale di comunicazione tra il processore dell’applicazione esistente e l’FPGA è un’operazione che non comporta problemi grazie alla programmabilità della logica dell’FPGA, al supporto di molteplici standard da parte dei pin di I/O e alla disponibilità di un’ampia gamma di blocchi IP di interfaccia standard.

In generale, un progettista è in grado di utilizzare una funzione di comunicazione presente nel processore (ad esempio I2C, SPI o un altro bus parallelo locale) o nel sistema (PCI, PCI Express, CANopen e così via) per la comunicazione con l’FPGA. Un approccio di questo tipo richiede tempi brevi di elaborazione e minime modifiche del software applicativo che gira sul processore esistente.
All’interno di un FPGA, un progettista può creare con estrema semplicità un sistema contenente due o più core di microprocessori soft, in modo da portare l’elaborazione dell’applicazione all’interno dell’FPGA (Fig. 2). Un’integrazione di questo tipo permette di ridurre numero di componenti, costi e dissipazione di potenza. Poiché un progetto di questo tipo è completamente basato su IP viene assicurata la protezione contro l’obsolescenza, grazie alla lunga durata degli FPGA e alla possibilità di effettuare la migrazione del progetto sugli FPGA di nuova generazione.
La flessibilità che contraddistingue gli FPGA consente l’implementazione di nuove interfacce nel sistema, da quelle più semplici alle più complesse, capaci di supportare i più recenti standard di memorie (DDR2/DDR3) o le più attuali tecnologie di comunicazione (PCI express e via dicendo).

Fig. 2 – I progettisti possono integrare l’elaborazione dell’applicazione in un sistema IE a due canali basato su FPGA

Flusso di progettazione FPGA
I file di configurazione dell’FPGA sono generati da tool come ad esempio il software di sviluppo Quartus II di Altera. Questo software integra tutte le risorse necessarie per progettare, modificare e generare configurazione di FPGA (Fig. 3) utilizzando le più diverse metodologie di progetto (linguaggi VHDL e Verilog, schemi circuitali, metodi di tipo grafico o basati su blocchi). Questo ambiente di design consente di ottenere elevati livelli di produttività rispetto ai tradizionali flussi di progetto FPGA grazie a caratteristiche quali interfacce verso tool di simulazione hardware e ai tool per il debug dell’hardware in run time e alla possibilità di ottimizzare consumi e prestazioni del sistema.

Fig. 3 – Flusso di progetto del software Quartus II

Realizzazione di un progetto hardware basato su FPGA
Grazie alla possibilità di utilizzare processori già disponibili e componenti IP per il livello MAC di Ethernet, la generazione di un progetto di un processore custom e del controllore MAC mediante il tool SOPC (System On a programmable Chip) Builder (integrato nell’ambiente Quartus II) non presenta problemi. Questo tool basato su un’interfaccia utente grafica (GUI) permette di creare con facilità sistemi basati su IP oltre ad accelerare ed automatizzare le fasi di configurazione, integrazione e generazione di tali sistemi. Il tool genera il codice HDL necessario per la realizzazione di un sistema perfettamente funzionante e non richiede la scrittura manuale di codice, in quanto il blocco IP è già generato e collaudato: le interconnessioni del sistema sono g
enerate dalla macchina, per cui il progetto risulta corretto per costruzione. Una volta generato il sistema, esso viene compilato in modo da creare il file di configurazione che viene successivamente trasferito nell’FPGA.

Nel caso si desideri creare un nuovo progetto o modificarne uno esistente, è possibile effettuare le variazioni utilizzando la GUI: il sistema a questo punto può essere ricreato e ricompilato. Per realizzare un progetto hardware in grado di supportare un nuovo protocollo IE è sufficiente acquistare il relativo blocco IP, integrarlo nel progetto del sistema esistente e generarlo di nuovo. Dopo la ricompilazione, effettuata con un solo click, il progetto hardware è pronto.

Componenti hardware per IE e IP software
Al momento attuale sono disponibili package IP per una molteplicità di protocolli IE, tra cui Modbus IDA, EtherNet/IP, PROFINET, Ethernet Powerlink, SERCOS III, Varan ed EtherCAT. I blocchi IP hardware sono generalmente forniti sotto forma di componenti di SopC Builder che contiene il controllore MAC e la logica aggiuntiva richiesta. il blocco IP software è disponibile sotto forma di libreria o interfacce API scritte in C per il processore embedded Nios II.

Un kit per iniziare
Il modo più semplice per avviare un progetto è utilizzare un kit di sviluppo per IE: sono oramai parecchi i costruttori che propongono schede di sviluppo e progetti di riferimento per applicazioni IE. Le schede integrano un FPGA a basso costo e l’hardware di comunicazione per il livello 1 di Ethernet (IEEE802.3), garantendo in tal modo l’indipendenza dal protocollo IE. La scheda può anche prevedere transceiver per altri tipi di interfacce quali CAN, USB,UART e LVDS.
La disponibilità di FPGA flessibili e a basso costo, blocchi IP di microprocessori soft, hardware per IE già pronto all’uso e blocchi IP software ha permesso lo sviluppo di un’unica soluzione programmabile in grado di interfacciare sistemi wireless con qualsiasi rete IE presente nell’impianto.

Gli FPGA sono in grado di supportare qualsiasi protocollo di comunicazione industriale basato su Ethernet utilizzando il medesimo hardware e garantendo nel frattempo i vantaggi tipici dei dispositivi programmabili in termini di integrazione, flessibilità e protezione contro l’obsolescenza.
Ulteriori benefici legati a una realizzazione mediante FPGA derivano dalla possibilità di utilizzare tool di sviluppo integrati all’interno di un singolo ambiente che permettono di creare un progetto basato su IE con estrema semplicità.