Questo lavoro di laurea si inquadra all’interno di un ampio progetto di ricerca finalizzato alla realizzazione di un sistema di rivelazione di eventi gamma a basso rate in un range energetico esteso. L’intero progetto è patrocinato dall’ESA (European Space Agency) ed ha come scopo lo sviluppo di uno spettrometro per osservatori di astrofisica su satellite. L’intero sistema è composto dalle seguenti parti fondamentali: l’apparato di rivelazione, il circuito ASIC di front-end e la scheda di acquisizione digitale (DAQ). Il sensore è formato da rivelatori a deriva allo stato solido (SDD – Silicon Drift Detectors) con risoluzione millimetrica. Il sistema di rilevazione è costituito da uno scintillatore Bromuro di Lantanio (LaBr3) il quale è accoppiato ad una matrice di rivelatori. La matrice è suddivisa in 9 quadranti da 9 rivelatori ciascuno. Il front-end è affidato a 3 ASICs, collegati a 3 quadranti ciascuno, i quali misurano l’energia della radiazione incidente su ogni SDD del detector. A fronte di un evento in arrivo sul sensore un sistema di trigger fotografa il valore energetico misurato da ciascuno degli 81 SDD. Le uscite degli ASICs vengono inviate alla scheda di acquisizione ed elaborazione l’uscita della quale deve essere inviata al PC host del sistema tramite interfaccia ethernet. Le attività principali del mio lavoro hanno riguardato tutti gli aspetti hardware e firmware della scheda di acquisizione digitale. Ho realizzato il firmware VHDL per il dispositivo FPGA che si occupa di tre funzioni principali. Generare i segnali di controllo per gli ASIC, controllare gli ADC raccoglierne i dati e inviare i dati acquisiti al microprocessore (un AP700 della ATMEL). Il driver del microprocessore organizza i dati in arrivo dall’FPGA in pacchetti e li invia al PC via Ethernet. La comunicazione Ethernet che ho implementato è quella standard ma con alcune specifiche particolari che hanno richiesto da parte mia un design custom dell’architettura firmware. In particolare sono stati posti come vincolanti le seguenti specifiche: 1) garanzia di alta velocità di trasferimento “error-free” fino a 150 kframes/sec; 2) elevata affidabilità tramite utilizzo di protocolli “safe” (TCP/IP); 3) architettura modulare con disaccoppiamento fisico scheda-sistema di acquisizione. Al fine di sfruttare a pieno le potenzialità della rete Ethernet, di è optato per l’utilizzo di un dispositivo temporal computing, cioè un microprocessore AP7000, in grado di eseguire una distribuzione embedded di Linux. Dal lato FPGA sono presenti due moduli: il frame manager e il control manager. Il frame manager si occupa della realizzazione dei pacchetti da inviare all’AP7000 organizzando i frames in gruppi di elementi. Viene utilizzata una tecnica di buffer a ping-pong. Due memorie vengono utilizzate una in lettura e una in scrittura. Mentre una memoria viene riempita coi frame provenienti dal sistema di acquisizione, l’altra memoria viene collegata all’AP7000 affinche’ possa essere letta attraverso un bus di comunicazione parallelo chiamato EBI. Ciascuna memoria possiede un control byte che serve a riconoscere lo stato in cui essa si trova (nuova, già letta, bloccata perchè in scrittura). La natura parallela del bus EBI permette trasferimenti ad alta velocità (nell’ordine di 30 MB/s). A livello del dispositivo AP7000 ho sviluppato un device driver per gestire il bus EBI e due applicazioni, una per l’invio dei frames e l’altra per la gestione dei parametri di configurazione del register file. Come in ogni moderno sistema operativo la memoria utente è virtualizzata e a livello utente non è possibile accedere allo spazio di indirizzamento fisico. E’ stato quindi necessario sviluppare un device driver in grado di permettere alle applicazioni di interfacciarsi con le periferiche fisiche. Il driver da me sviluppato si occupa di fare da ponte tra il dispositivo FPGA e l’applicazione che si occupa della comunicazione via ethernet con il PC. In particolare il driver, a fronte di una richiesta GET FRAMES controlla il control byte sulla FPGA. Appena esso è posto ad uno significa che sono disponibili almeno 100 frames da scaricare. Il driver legge i frames accedendo al base address a cui è mappata l’FPGA e ne copia il contenuto nella memoria USER. L’applicazione per la trasmissione dei frames via rete crea un server sulla porta 8008 TCP e attende una connessione da un client. Appena si istaura una connessione il server entra in modalità streaming e continua a richiedere frames al server ed ad inviarli (se disponibili) al client. In modo simile l’applicazione di controllo inizializza un server telnet-style al fine di attendere i comandi di configurazione dal PC.

Implementazione di un sistema di acquisizione ed elaborazione digitale con logica configurabile per applicazioni di imaging e spettroscopia gamma

CUSIMANO, ALBERTO
2011/2012

Abstract

Questo lavoro di laurea si inquadra all’interno di un ampio progetto di ricerca finalizzato alla realizzazione di un sistema di rivelazione di eventi gamma a basso rate in un range energetico esteso. L’intero progetto è patrocinato dall’ESA (European Space Agency) ed ha come scopo lo sviluppo di uno spettrometro per osservatori di astrofisica su satellite. L’intero sistema è composto dalle seguenti parti fondamentali: l’apparato di rivelazione, il circuito ASIC di front-end e la scheda di acquisizione digitale (DAQ). Il sensore è formato da rivelatori a deriva allo stato solido (SDD – Silicon Drift Detectors) con risoluzione millimetrica. Il sistema di rilevazione è costituito da uno scintillatore Bromuro di Lantanio (LaBr3) il quale è accoppiato ad una matrice di rivelatori. La matrice è suddivisa in 9 quadranti da 9 rivelatori ciascuno. Il front-end è affidato a 3 ASICs, collegati a 3 quadranti ciascuno, i quali misurano l’energia della radiazione incidente su ogni SDD del detector. A fronte di un evento in arrivo sul sensore un sistema di trigger fotografa il valore energetico misurato da ciascuno degli 81 SDD. Le uscite degli ASICs vengono inviate alla scheda di acquisizione ed elaborazione l’uscita della quale deve essere inviata al PC host del sistema tramite interfaccia ethernet. Le attività principali del mio lavoro hanno riguardato tutti gli aspetti hardware e firmware della scheda di acquisizione digitale. Ho realizzato il firmware VHDL per il dispositivo FPGA che si occupa di tre funzioni principali. Generare i segnali di controllo per gli ASIC, controllare gli ADC raccoglierne i dati e inviare i dati acquisiti al microprocessore (un AP700 della ATMEL). Il driver del microprocessore organizza i dati in arrivo dall’FPGA in pacchetti e li invia al PC via Ethernet. La comunicazione Ethernet che ho implementato è quella standard ma con alcune specifiche particolari che hanno richiesto da parte mia un design custom dell’architettura firmware. In particolare sono stati posti come vincolanti le seguenti specifiche: 1) garanzia di alta velocità di trasferimento “error-free” fino a 150 kframes/sec; 2) elevata affidabilità tramite utilizzo di protocolli “safe” (TCP/IP); 3) architettura modulare con disaccoppiamento fisico scheda-sistema di acquisizione. Al fine di sfruttare a pieno le potenzialità della rete Ethernet, di è optato per l’utilizzo di un dispositivo temporal computing, cioè un microprocessore AP7000, in grado di eseguire una distribuzione embedded di Linux. Dal lato FPGA sono presenti due moduli: il frame manager e il control manager. Il frame manager si occupa della realizzazione dei pacchetti da inviare all’AP7000 organizzando i frames in gruppi di elementi. Viene utilizzata una tecnica di buffer a ping-pong. Due memorie vengono utilizzate una in lettura e una in scrittura. Mentre una memoria viene riempita coi frame provenienti dal sistema di acquisizione, l’altra memoria viene collegata all’AP7000 affinche’ possa essere letta attraverso un bus di comunicazione parallelo chiamato EBI. Ciascuna memoria possiede un control byte che serve a riconoscere lo stato in cui essa si trova (nuova, già letta, bloccata perchè in scrittura). La natura parallela del bus EBI permette trasferimenti ad alta velocità (nell’ordine di 30 MB/s). A livello del dispositivo AP7000 ho sviluppato un device driver per gestire il bus EBI e due applicazioni, una per l’invio dei frames e l’altra per la gestione dei parametri di configurazione del register file. Come in ogni moderno sistema operativo la memoria utente è virtualizzata e a livello utente non è possibile accedere allo spazio di indirizzamento fisico. E’ stato quindi necessario sviluppare un device driver in grado di permettere alle applicazioni di interfacciarsi con le periferiche fisiche. Il driver da me sviluppato si occupa di fare da ponte tra il dispositivo FPGA e l’applicazione che si occupa della comunicazione via ethernet con il PC. In particolare il driver, a fronte di una richiesta GET FRAMES controlla il control byte sulla FPGA. Appena esso è posto ad uno significa che sono disponibili almeno 100 frames da scaricare. Il driver legge i frames accedendo al base address a cui è mappata l’FPGA e ne copia il contenuto nella memoria USER. L’applicazione per la trasmissione dei frames via rete crea un server sulla porta 8008 TCP e attende una connessione da un client. Appena si istaura una connessione il server entra in modalità streaming e continua a richiedere frames al server ed ad inviarli (se disponibili) al client. In modo simile l’applicazione di controllo inizializza un server telnet-style al fine di attendere i comandi di configurazione dal PC.
ABBA, ANDREA
ING V - Scuola di Ingegneria dell'Informazione
23-apr-2012
2011/2012
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
Tesi definitiva Alberto Cusimano.pdf

Open Access dal 28/03/2013

Descrizione: Implementazione di un sistema di acquisizione ed elaborazione digitale con logica configurabile per applicazioni di imaging e spettroscopia gamma
Dimensione 5.59 MB
Formato Adobe PDF
5.59 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/50402