Tesi magistrale
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

122 lines
6.2 KiB

\chapter{Elettronica di controllo}
\label{app:electronics}
Il sistema elettronico che consente di applicare il ciclo di retroazione
tra le posizioni rilevate delle microsfere nelle trappole e le posizioni di
queste ultime nel campione è reso particolarmente complesso dalla necessità
di operare le correzioni in un tempo estremamente breve, per raggiungere un tempo
di reazione significativamente inferiore al tempo di rilassamento diffusivo
(\SI{100}{\us}, limite inferiore dei tempi di vita osservabili).
Per questo motivo, e per rendere il processo di controllo del ciclo di
retroazione indipendente da eventuali rallentamenti dei computer utilizzati
per il controllo dell'esperimento, si è scelto di utilizzare una scheda FPGA
dedicata.
Una scheda FPGA (\textit{Field Programmable Gate Array}) è un dispositivo
utilizzato in elettronica digitale costituito essenzialmente da una matrice
di \textit{blocchi logici programmabili} interconnessi.
Questi possono essere configurati, in fase di programmazione della scheda,
per eseguire determinate funzioni logiche.
Una volta programmata, la scheda è in grado di eseguire le funzioni logiche
impostate e elaborare segnali proveniente dall'esterno attraverso dei \textit{pin} di input.
Il risultato dell'elaborazione può essere immagazzinato in appositi registri
(code) e letto su richiesta (ad esempio di un computer esterno), oppure
utilizzato per comandare dei \textit{pin} di output presenti sulla scheda.
La programmazione della scheda FPGA consiste nel descrivere e formalizzare
le componenti del circuito logico richiesto e quindi configurare i blocchi
della scheda per \textit{realizzare} le funzioni del circuito integrato
disegnato.
Uno dei principali vantaggi dell'uso di schede FPGA sta nel fatto che
il tempo di esecuzione delle singole operazioni è deterministico e
riproducibile tra iterazioni successive, a differenza di quanto accade
nei PC dove l'accesso di ogni applicazione ai cicli di processore
viene controllato da priorità e schedulatori del sistema operativo.
Per gli scopi di questa tesi è stata programmata una scheda FPGA per leggere
i valori dei fotodiodi a quadrante (da cui si può estrapolare la posizione
relativa delle microsfere rispetto al centro della trappola) e controllare
l'angolo di deflessione dei laser delle trappole (e quindi la loro posizione
nel campione).
Per ottenere questo risultato è stata scelta una scheda FPGA prodotta
da National Instrument (USB-7855), programmabile attraverso
interfaccia USB, dotata di 48 canali digitali configurabili come
output o input e 8 convertitori analogico-digitali (ADC) integrati.
La logica di funzionamento è stata definita utilizzando l'ambiente di
sviluppo LabVIEW FPGA: questo permette di disegnare sotto forma di
diagramma a blocchi la sequenza di funzioni da applicare sui dati in
ingresso. A partire da questo diagramma LabVIEW FPGA è in grado di
generare il circuito logico necessario e descriverlo (secondo le
specifiche del linguaggio VHDL). Un ulteriore passaggio converte il
codice VHDL in istruzioni di programmazione della scheda, che vengono
eseguite attraverso la connessione USB.
\begin{figure}[ht]
\centering
\includegraphics[width=\linewidth]{images/elettr.pdf}
\caption{Schema delle connessioni tra fotodiodi a quadrante (QPD), scheda
FPGA, generatori diretti di segnale (DDS) e deflettori acusto ottici (AOD).}
\label{fig:elettr}
\end{figure}
Nel nostro caso, il segnale in ingresso è la tensione prodotta dagli
amplificatori dei fotodiodi a quadrante. L'uscita di questi viene
collegata direttamente ai convertitori analogico/digitali dell'FPGA.
La differenza tra il segnale misurato in ingresso e il set-point viene
trasformata, attraverso un fattore di conversione determinato in fase di
calibrazione, in una variazione della frequenza del segnale elettronico
inviato ai trasduttori presenti sui deflettori acusto ottici.
La generazione del segnale elettronico alla frequenza richiesta è
delegata a due generatori digitali di segnale (DDS, Direct Digital
Synthetizer), forniti da Analog Devices (AD9852), in grado di
modificare la frequenza generata a un rate di \SI{100}{\MHz}.
L'impostazione della frequenza sui DDS si esegue attraverso
l'immissione di tre \textit{word} di 8 bit in appositi registri su ciascuna
delle schede utilizzate. Le schede presentano due \textit{bus}, uno per la
selezione dell'indirizzo del registro, uno per la lettura o scrittura
di una \textit{word} nel registro selezionato. Una volta impostati indirizzo e
valori su ciascun \textit{bus} è necessario avviare il trasferimento
della \textit{word} nel registro di memoria interno impostando su ON un
ulteriore pin.
La scheda FPGA, una volta determinata la frequenza da inviare a ciascun
AOD, procede alla programmazione simultanea delle due schede Analog
Devices, inviando in sequenza le tre \textit{word} necessarie e
sincronizzandone il trasferimento nei registri di memoria.
Il massimo rate di aggiornamento della frequenza che siamo riusciti a
raggiungere è inferiore sia a quello supportato dai DDS sia al rate
di esecuzione del ciclo di retroazione sulla FPGA.
Infatti, tentando di comandare i DDS alla massima velocità possibile
supportata dalla FPGA, si è osservata la comparsa di anomalie nel
funzionamento dell'apparato in prossimità di certi valori di frequenza.
Il \textit{debugging} di questa problematica non è stato affatto semplice
e ha richiesto un'analisi precisa del segnale trasportato su ciascun
conduttore del bus tra FPGA e DDS.
In ultima analisi si è rilevato come fenomeni di \textit{diafonia} tra
i vari conduttori presenti sul cavo utilizzato per connettore l'FPGA ai DDS
(cavo fornito da National Instrument) portino ad un allungamento del
transiente necessario affinché tutti i bit del bus raggiungano il valore
impostato.
Si è quindi dovuto procedere a rallentare la velocità di scrittura
delle singole \textit{word} sui DDS, inserendo un piccolo tempo morto
(nell'ordine dei nanosecondi) tra la scrittura della \textit{word} e
il trasferimento nel registro di memoria.
In conclusione si è osservata una completa risoluzione dei problemi
osservati con una variazione dei tempi di reazione del sistema
ampiamente trascurabile rispetto al limiti dettati dal rate di
campionamento del segnale dei QPD.