PROGETTO E REALIZZAZIONE DI UN CIRCUITO PER IL ......Figura 4.15 Schema a blocchi del circuito...
Transcript of PROGETTO E REALIZZAZIONE DI UN CIRCUITO PER IL ......Figura 4.15 Schema a blocchi del circuito...
UNIVERSITÀ DEGLI STUDI DI PERUGIA
FACOLTÀ DI INGEGNERIA
CORSO DI ELETTRONICA E DELLE TELECOMUNICAZIONI
PROGETTO E REALIZZAZIONE DI UN CIRCUITO PER IL
CONTROLLO DI UN SENSORE PER APPLICAZIONI DI
RADIOPROTEZIONE NELLA RADIOLOGIA INTERVENTISTICA
TESI DI LAUREA MAGISTRALE
LAUREANDA: RELATORE:
Michela Siena Dott. Ing. Pisana Placidi
CORRELATORI:
Ing. Elia Conti
Ing. Daniel Megalotti
ANNO ACCADEMICO 2011/2012
Indice
Introduzione 1
Capitolo 1 La Radiologia Interventistica e la radioprotezione
3
1.1 Radiologia Interventistica ...................................................................................3
1.2 Radioprotezione e grandezze dosimetriche.............................................6
1.3 Interazione particelle-materia................................................................10
1.3.1 Interazione dei fotoni con la materia............................................................... 11
1.3.2 Importanza relativa dei vari tipi di interazioni................................................ 17
1.3.3 Materiali equivalenti dal punto di vista dell’attenuazione dei fotoni.............. 18
Capitolo 2 Dosimetri commerciali 20
2.1 Dosimetri passivi...................................................................................23
2.1.1 Dosimetri a film sottile (film badge)............................................................... 18
2.1.2 Dosimetri a termoluminescenza (TLD) .......................................................... 26
2.2 Dosimetri attivi ......................................................................................28
2.2.1 Dosimetri a semiconduttore e dosimetri DIS .................................................. 28
2.2.2 Esempi di APD commerciali .......................................................................... 29
2.3 Il progetto RAPID .................................................................................35
Capitolo 3 Architettura 37
3.1 I blocchi costitutivi ................................................................................37
3.2 Il sensore ........................................................................................................... 40
3.3 CC430 e CC1111.......................................................................................47
Indice
II
Capitolo 4 Circuito di elaborazione 51
4.1 Algoritmo di clustering..........................................................................51
4.2 Implementazione del circuito di elaborazione ......................................63
4.3 Descrizione del circuito di elaborazione ...............................................67
4.4 Descrizione del circuito di emulazione del sensore MT9V011 ............71
4.4.1 Circuito di emulazione: versione 1 ................................................................. 72
4.4.2 Circuito di emulazione: versione 2 ................................................................. 81
Capitolo 5 Verifica del circuito di elaborazione 87
5.1 EMU_SENSOR_SEL = 1 ....................................................................87
5.2 EMU_SENSOR_SEL = 0 ....................................................................93
5.3 Occupazione delle risorse logiche su CPLD........................................96
5.4 Modello temporale dei CPLD MAX 7000 di Altera per il calcolo dei
ritardi ..........................................................................................................97
5.5 Verifica sperimentale su FPGA..........................................................100
Conclusioni 105
Appendice A 107
Bibliografia 112
Elenco delle figure
Figura 1.1 Nell’ordine, angiografia cerebrale (a) e angiografia degli arti inferiori (b) con
DSA 4
Figura 1.2 Angiogafo digitale con DSA 5
Figura 1.3 Sezione d’urto dei singoli meccanismi di interazione 12
Figura 1.4 Sezione d’urto in funzione dell’energia dei fotoni nel carbonio (a) e nel piombo
(b) 13
Figura 1.5 Lunghezza di assorbimento dei fotoni in materiali a vario Z [10] 14
Figura 1.6 Illustrazione dell’effetto fotoelettrico 14
Figura 1.7 Coefficiente di attenuazione massico per effetto fotoelettrico 15
Figura 1.8 Illustrazione del processo Compton 16
Figura 1.9 Illustrazione della generazione di una coppia 16
Figura 1.10 Coefficiente di attenuazione massico per acqua e piombo 17
Figura 1.11 Coefficiente di attenuazione massico per il silicio [10] 18
Figura 2.1 Posizionamento delle diffrenti tipologie di dosimetri [15] 21
Figura 2.2 Esempio di dosimetro total body e relativo posizionamento [16] 21
Figura 2.3 Esempio di dosimetro ad anello e relativo posizionamento [16] 21
Figura 2.4 Riproduzione grafica di un dosimetro a film 23
Figura 2.5 Schema di funzionamento di un densitometro [17] 24
Figura 2.6 Un esempio di grafico H-D [17] 25
Figura 2.7 Meccanismo fisico della termoluminescenza [17] 26
Figura 2.8 Esempio di curva di luminescenza [17] 27
Figura 2.9 Principio di funzionamento di un dosimetro a semiconduttore [18] 28
Figura 2.10 Camera di ionizzazione e cella di memoria MOSFET [18] 29
Figura 2.11 Unfors EDD-30 [20] 30
Figura 2.12 Il sistema DoseAware [23] 31
Figura 2.13 Il dosimetro Dosilab EDM- III 32
Figura 2.14 Il dosimetro TermoScientific EPD-MK2+ [26] 32
Figura 2.15 Il sistema dosimetrico RaySafe i2 [27] 33
Figura 2.16 Schema del sistema dosimetrico in base al progetto RAPID 36
Figura 3.1 I blocchi costitutivi del sistema 37
Figura 3.2 Diagramma a blocchi del sensore 40
Indice delle figure
II
Figura 3.3 Configurazione di default del sensore 41
Figura 3.4 Disposizione dei pin nel chip 42
Figura 3.5 Struttura della matrice di pixel attivi 43
Figura 3.6 Il modello di colori RGB 43
Figura 3.7 Illustrazione spaziale della lettura dell’immagine 44
Figura 3.8 Diagramma temporale dei dati forniti dal pixel 44
Figura 3.9 Andamento temporale relativo dei segnali master clock e pixel clock 45
Figura 3.10 Andamento temporale relativo dei segnali FRAME_VALID e LINE_VALID
45
Figura 3.11 Diagramma a blocchi funzionale della famiglia CC430F61xx [29] 48
Figura 3.11 Diagramma a blocchi funzionale della famiglia CC430F61xx [29] 48
Figura 3.12 Vista dall’alto del package della famiglia CC1111Fx [30] 49
Figura 3.13 Diagramma a blocchi delle famiglie CCF1110Fx/CCF1111Fx [30] 50
Figura 4.1 Visualizzazione dei fotoni che colpiscono la matrice di pixel del sensore [37] 52
Figura 4.2 Visualizzazione dei pixel in un cluster [37] : il pixel contrassegnato in giallo
non è topologicamente connesso al centro (S, in rosso). Degli 8 pixel topologicamente
connessi solo i due in arancio hanno un segnale superiore alla seconda soglia T2 e pertanto
fanno parte del cluster 53
Figura 4.3 (a) Distribuzione statistica del numero di fotoni in un frame e (b) correlazione
tra numero di fotoni e la relativa incertezza [37] 54
Figura 4.4 (a) Distribuzione statistica del segnale totale ricostruito e (b) correlazione tra il
segnale totale ricostruito e la relativa incertezza [37] 54
Figura 4.5 Distribuzione sperimentale del rumore dei singoli pixel del sensore 56
Figura 4.6 Distribuzione integrale del rumore dei singoli pixel del sensore 56
Figura 4.7 Distribuzione sperimentale dei piedistalli dei singoli pixel del sensore 57
Figura 4.8 Distribuzione integrale dei piedistalli dei singoli pixel del sensore 57
Figura 4.9 (a) Numero di pixel normalizzati sopra soglia in funzione del valore di soglia;
(b) numero di pixel sopra soglia in conteggi ADC in funzione del valore di soglia 58
Figura 4.10 (a) Errore relativo del numero di pixel normalizzati sopra soglia in funzione
del valore di soglia; (b) errore relativo del numero di pixel sopra soglia in conteggi ADC in
funzione del valore di soglia 59
Figura 4.11 (a) Integrale di carica in un frame in funzione del valore di soglia;
(b) somma dei segnali dei pixel sopra soglia in conteggi ADC in funzione del valore di
soglia 60
Indice delle figure
III
Figura 4.12 (a) Errore relativo dell’integrale di carica in un frame in funzione del valore di
soglia;
(b) errore relativo della somma dei segnali dei pixel sopra soglia in conteggi ADC in
funzione del valore di soglia 61
Figura 4.13 (a) Correlazione tra il numero di pixel sopra soglia e il tasso di dose misurato
dal dosimetro commerciale Unfors EDD-30; (b) correlazione tra la somma dei segnali dei
pixel sopra soglia e il tasso di dose misurato dal dosimetro commerciale Unfors EDD-30 62
Figura 4.14 (a) Correlazione tra il numero di pixel sopra soglia e il tasso di dose misurato
dai TLD;
(b) correlazione tra la somma dei segnali dei pixel sopra soglia e il tasso di dose misurato
dai TLD 63
Figura 4.15 Schema a blocchi del circuito complessivo realizzato su CPLD 64
Figura 4.16 Realizzazione circuitale del blocco di confronto e incremento 67
Figura 4.17 Circuito di confronto e incremento: simulazione behavioral 68
Figura 4.18 Effetti della transizione di LINE_VALID sul circuito di confronto e
incremento 68
Figura 4.19 Dato corrente maggiore della soglia: il contatore è abilitato al conteggio 69
Figura 4.20 Dato corrente minore della soglia: il contatore non incrementa
NUMPIX_MICRO 69
Figura 4.21 Risultato della simulazione timing del blocco di confronto e incremento 70
Figura 4.22 Simulazione timing: ritardi nel circuito di confronto e incremento 70
Figura 4.23 Porzione di sensore emulato 71
Figura 4.24 Macchina a stati del circuito di emulazione del sensore MT9V011 73
Figura 4.25 Il sincronizzatore MealySinc 74
Figura 4.26 MealySinc: simulazione behavioral 75
Figura 4.27 Versione del sincronizzatore con 2 FF 76
Figura 4.28 Versione sincronizzatore con 2 FF: simulazione behavioral 76
Figura 4.29 Versione del sincronizzatore con 3 FF 77
Figura 4.30 Versione del sincronizzatore con 3 FF: simulazione timing 77
Figura 4.31 Realizzazione circuitale del blocco di emulazione del sensore MT9V011 nella
sua versione 1 78
Figura 4.32 Prima versione del circuito di emulazione del sensore MT9V011: simulazione
behavioral 78
Figura 4.33 Transizione da 0 a 1 di START_SEQ: la scansione è abilitata. Prima versione
Indice delle figure
IV
del circuito di emulazione 79
Figura 4.34 Comportamento di LINE_VALID_EMU quando FRAME_VALID_EMU è
alto. Prima versione del circuito di emulazione 80
Figura 4.35 Scansione della matrice terminata: LINE_VALID_EMU e
FRAME_VALID_EMU tornano bassi. Prima versione del circuito di emulazione 80
Figura 4.36 STOP_SEQ interviene e la scansione si arresta. Prima versione del circuito di
emulazione 80
Figura 4.37 Realizzazione circuitale del blocco di emulazione del sensore MT9V011 nella
sua seconda versione 81
Figura 4.38 Macchina a stati del circuito di emulazione del sensore MT9V011 nella sua
seconda versione 83
Figura 4.39 Seconda versione del circuito di emulazione: simulazione behavioral 84
Figura 4.40 Comportamento di FRAME_VALID_EMU, LINE_VALID_EMU e
DOUT_EMU, quando START_SEQ interviene. Seconda versione del circuito di
emulazione 84
Figura 4.41 Transizione da 0 a 1 di END_COUNT_ROW: scansione terminata. Seconda
versione del circuito di emulazione 85
Figura 4.42 Intervento di STOP_SEQ nel corso di un frame e successivo nuovo intervento
di START_SEQ. Seconda versione del circuito di emulazione 85
Figura 4.43 Seconda versione del circuito di emulazione: simulazione timing 86
Figura 4.44 Ritardo tra il fronte di salita del clock e la transizione di LINE_VALID_EMU.
Seconda versione del circuito di emulazione 86
Figura 5.1 Realizzazione circuitale del circuito complessivo realizzato su CPLD che
prevede la prima versione del circuito di emulazione 88
Figura 5.2 Circuito di elaborazione complessivo, prima versione del circuito di
emulazione, EMU_SENSOR_SELECT = 1: simulazione behavioral 89
Figura 5.3 Ritardo rispetto al fronte di salita del clock con cui sale
FRAME_VALID_MICRO 90
Figura 5.4 Ritardo tra la commutazione di OUT_AND_MONITOR, e la transizione di
DOUT al dato maggiore della soglia 90
Figura 5.5 Realizzazione circuitale del circuito complessivo realizzato su CPLD che
prevede la seconda versione del circuito di emulazione 91
Figura 5.6 Circuito di elaborazione complessivo, seconda versione del circuito di
emulazione, EMU_SENSOR_SELECT = 1: simulazione behavioral 92
Indice delle figure
V
Figura 5.7 Ritardo tra LINE_VALID_MON e fronte di salita del clock 93
Figura 5.8 Ritardo tra la transizione da 0 a 1 di OUT_AND_MON e OUT_COMP_MON,
e quella di DOUT_MON al dato maggiore della soglia 93
Figura 5.9 Circuito complessivo su CPLD, prima versione del circuito di emulazione
EMU_SENSOR_SEL = 0: simulazione behavioral 94
Figura 5.10 Analisi dei ritardi tra LINE_VALID_S e LINE_VALID_MON, e tra
DOUT_S e DOUT_MON 95
Figura 5.11 Ritardo di OUT_AND_MON e OUT_COMP_MON rispetto al fronte di salita
del clock 95
Figura 5.12 Ritardo tra il fronte di discesa di LINE_VALID_S e OUT_AND_MON 95
Figura 5.13 Circuito complessivo su CPLD, seconda versione del circuito di emulazione
EMU_SENSOR_SEL = 0: simulazione behavioral 96
Figura 5.14 Il modello temporale per il calcolo dei tardi nei CPLD Altera [42] 98
Figura 5.15 Modello circuitale per il calcolo di tCO [42] 99
Figura 5.16 Starter Kit Board dell’FPGA Spartan 3 di Xilinx 100
Figura 5.17 Schema a blocchi del circuito di emulazione del microcontrollore CC430 101
Figura A.1 Architettura di un PLD [39] 107
Figura A.2 Architettura di un CPLD [39] 108
Figura A.3 Architettura della famiglia MAX 7000 dell’Altera [40] 109
Figura A.4 Architettura di un LAB della famiglia MAX 7000 dell’Altera [40] 110
Figura A.5 Architettura di una macrocella in un LAB della serie MAX 7000 [40] 111
Elenco delle tabelle
Tabella 1.1 Parametri di lavoro dell’angiografo nelle procedure di RI [4] 6
Tabella 1.2 Valori di wr al variare del tipo di radiazione e del range di energia 7
Tabella 1.3 Valori di wt al variare del tipo di tessuto o organo colpito 8
Tabella 1.4 Tipiche dosi relative a singole procedure di arteriografia e drenaggio biliare 9
Tabella 1.5 Limiti di esposizione fissati dalla legge 9
Tabella 1.6 Importanza relativa dei tre processi in acqua 18
Tabella 2.1 Livelli di allarme impostati dalla casa costruttrice [20] 30
Tabella 2.2 Schema riassuntivo delle specifiche dei sensori Unfors EDD-30, Philips
DoseAware, Dosilab EDM-III , ThermoScientific EPD-Mk2+ e RaySafe i2 34
Tabella 2.3 Schema riassuntivo sui vantaggi e svantaggi di dosimetri attivi e passivi 35
Tabella 5.1 Risorse occupate sul CPLD nei due differenti casi di impiego della prima o
della seconda versione del circuito di emulazione 96
Tabella 5.2 Dettaglio delle macrocelle occupate dalle singole istanze che compongono il
cicuito complessivo nei due casi di utlizzo della prima e della seconda versione del circuito
di emulazione 97
Introduzione
Lo sviluppo di nuove e sofisticate tencologie ha reso l’impiego delle radiazioni
ionizzanti in medicina un’applicazione in continua evoluzione. La Radiologia
Interventistica rappresenta in tal senso uno degli ambiti di maggiore interesse, in cui si
fondono progresso tecnologico delle metodiche diagnostiche e soprattutto prestazioni
terapeutiche mini-invasive, volte alla graduale sostituzione dei trattamenti chirurgici
convenzionali.
In questo contesto si inserisce il tema della Radioprotezione degli operatori sanitari,
chiamati ad operare a stretto contatto con il paziente e dunque soggetti ad un’elevata
esposizione ai raggi X. Il monitoraggio della dose cui sono sottoposti i lavoratori è
condotto mediante l’utilizzo di dosimetri individuali, vale a dire opportuni dispositivi che
consentono la determinazione dell’esposizione del singolo individuo alle radiazioni
ionizzanti. I dosimetri certificati ed attualmente tipicamente impiegati sono dosimetri
passivi, quali dosimetri a film e dosimetri a termoluminescenza (TLD), che, pur basandosi
su tecnologie consolidate, non consentono la determinazione della dose in tempo reale. Le
fasi di misura e lettura dello strumento avvengono separatamente, e i tempi di risposta sono
dell’ordine dei giorni. La necessità di disporre di uno strumento più efficace ed efficiente
adatto allo scopo ha portato allo sviluppo di dosimetri attivi, basati su tecnologie a
semiconduttore ed in grado di fornire misure in tempo reale.
Il progetto RAPID (Real Time Active Pixel Dosimetry) nasce da una collaborazione tra
l’Istituto Nazionale di Fisica Nucleare (INFN) di Perugia, l’Università degli Studi di
Perugia, il Servizio di Fisica Sanitaria dell’ASL3 dell’Umbria presso l’Ospedale di Foligno
e il Servizio di Fisica Sanitaria dell’ASL1 dell’Umbria presso l’Ospedale di Città di
Castello. Il progetto è finalizzato alla realizzazione di un dosimetro individuale real time
con tecnologia wireless per il monitoraggio dell’effettiva dose cui sono soggetti gli
Introduzione
2
operatori nelle procedure di Radiologia Interventistica, attraverso l’impiego di un sensore a
matrice di pixel attivi (Active Pixel Sensor, APS). L’eliminazione dei tempi di attesa
consentirà la creazione di un archivio remoto delle dosi assorbite da ciascun operatore,
semplificando la pianificazione delle procedure e favorendo una gestione più efficace del
lavoro.
Il presente lavoro di tesi si inserisce nella progettazione e realizzazione del circuito
preposto al controllo del sensore di immagine per la rivelazione delle radiazioni. La
trattazione si articola nelle sezioni di seguito riassunte.
Il Capitolo 1 introduce la Radiologia Interventistica e fornisce i principi teorici e le
nozioni fisiche necessarie per la comprensione del funzionamento di un dispositivo per la
rivelazione di radiazioni in tale ambito applicativo.
Il Capitolo 2 presenta una panoramica generale sui principali dosimetri attualmente
commercializzati, distinguendo fra dosimetri attivi e passivi, e sottolineando i relativi
vantaggi e svantaggi. Ciò fornisce di fatto le motivazioni alla base della nascita del
progetto RAPID.
Il Capitolo 3 illustra l’architettura pensata per la realizzazione del sistema dosimetrico.
Viene descritto il ruolo di ciascun blocco costitutivo, con particolare riferimento al sensore
di radiazione.
Il Capitolo 4 descrive i dettagli relativi all’implementazione su CPLD della logica di
controllo e elaborazione per il sensore preposto alla rivelazione della radiazione. Vengono
in particolare descritti gli elementi funzionali e le specifiche del circuito dedicato
all’elaborazione dei dati provenienti dalla matrice di pixel attivi e di un circuito in grado di
emulare le funzionalità del sensore per scopi di test.
Il Capitolo 5 approfondisce la verifica del circuito di controllo complessivo
implementato su CPLD. Il corretto funzionamento del circuito implementato, in attesa
della realizzazione della scheda che ospita il CPLD, è stato verificato mappando la logica
progettata su di un dispositivo programmabile di tipo FPGA.
Le Conclusioni riassumono l’iter progettuale seguito e focalizzano l’attenzione sui
possibili sviluppi futuri.
Capitolo 1
La Radiologia Interventistica e la radioprotezione
Il Capitolo 1 introduce le problematiche connesse alla radioprotezione con particolare
riferimento allo scenario della Radiologia Interventistica (RI) e fornisce le basi fisiche per
la comprensione del principio di funzionamento di un dispositivo per la rivelazione di
radiazioni.
1.1 Radiologia Interventistica
La Radiologia è la branca della medicina che si occupa di fornire immagini (vere,
ricostruite o virtuali) dell’interno del corpo umano, con lo scopo di ottenere informazioni
utili alla diagnosi [1], sfruttando in primo luogo tecniche di imaging con raggi X, ma anche
ultrasuoni e risonanza magnetica. La Radiologia Interventistica (RI) rappresenta, a sua
volta, una moderna branca della Radiologia, ad altissimo contenuto tecnologico, che si
occupa della gestione mini-invasiva di problematiche cliniche: utilizzando immagini
prodotte con tecniche quali radioscopia, ecografia, tomografia, talvolta anche associate tra
loro, gli strumenti vengono guidati ai distretti corporei d’interesse senza la necessità di un
accesso chirurgico ed invasivo, vale a dire agendo per via percutanea. Ciò consente
notevoli vantaggi sia in termini di una minimizzazione dei rischi per il paziente sottoposto
alla procedura, permettendo spesso di operare in anestesia locale, sia per quanto riguarda
aspetti più prettamente logistici e di organizzazione, riducendo in tal senso i tempi di
ricovero, che diventano estremamente brevi e riconducibili spesso a prestazioni
ambulatoriali.
L’ angiografia è l’esame radiologico in grado di evidenziare i vasi sanguigni dei
La Radiologia Interventistica e la radioprotezione Capitolo 1
4
diversi distretti corporei al fine di studiarne morfologia ed eventuali alterazioni. Questa
metodica è resa possibile grazie all’utilizzo di particolari cateteri estremamente sottili che
consentono di raggiungere per via endovascolare il distretto da esaminare, anche con il
supporto di un mezzo di contrasto iodato che viene somministrato per visualizzare e
studiare in modo selettivo i vasi con le loro diramazioni [2]. Gli esami angiografici
vengono perciò comunemente eseguiti tramite l’utilizzo di raggi X e del suddetto mezzo di
contrasto, anche detto radio-opaco, in quanto reso necessario dal fatto che il sangue ha lo
stesso coefficiente di attenuazione per le radiazioni in questione dei tessuti circostanti. Si
possono essenzialmente individuare le varianti che seguono nelle tecniche di angiografia
classica:
- fluoroscopia digitale, caratterizzata da acquisizione di studi dinamici in bassa e
media risoluzione, bassa dose, con fascio pulsato o continuo;
- Digital Acquisition, caratterizzata da acquisizioni ad alta risoluzione e alta dose,
- Digital Subtraction Acquisition (DSA), in cui si acquisiscono immagini in
sottrazione digitale: alle immagini evidenziate dal mezzo di contrasto ne viene
sottratta una ottenuta prima dell'introduzione dell'agente di contrasto stesso, per
rimuovere la contaminazione di strutture statiche, che appariranno con la stessa
intensità prima e dopo l'introduzione del mezzo di contrasto. Vengono così esaltati i
condotti vascolari contrastati sottraendo i tessuti molli e scheletrici circostanti
precedentemente acquisiti.
Le immagini riportate in Figura 1.1 mostrano i risultati di angiografie eseguite su
differenti parti del corpo, in particolare angiografia cerebrale e agli arti inferiori, con DSA.
(a)
(b)
Figura 1.1 Nell’ordine, angiografia cerebrale (a) e angiografia degli arti inferiori (b) con DSA
La Radiologia Interventistica e la radioprotezione Capitolo 1
5
La procedura d’intervento sul paziente è normalmente svolta dal radiologo
interventista, o angiografista, in genere affiancato da altre figure professionali quali quella
del cardiologo, dell’infermiere e del tecnico sanitario di radiologia medica (TSRM).
L’apparecchiatura radiologica è in primo luogo rappresentata da un angiografo digitale,
costituito da un tubo radiogeno posto sotto al lettino su cui viene fatto accomodare il
paziente, che consente la realizzazione di proiezioni multiple dei diversi distretti vascolari
opacizzati, in tutta la loro estensione e in tempi molto brevi. Altre attrezzature necessarie
sono iniettori di contrasto, stent vascolari, cateteri a palloncino, ecc. In Figura 1.2 è
riportata la fotografia di un classico angiografo digitale che effettua la DSA.
Figura 1.2 Angiogafo digitale con DSA
Per ottimizzare l’immagine prodotta è possibile agire, variandoli in modo opportuno, su
alcuni parametri che influiscono sulle prestazioni fornite dall’angiografo, fra i quali
differenza di potenziale (in kV) applicata al tubo radiogeno, corrente (in mA) sull’anodo,
frequenza e durata degli impulsi nel caso di fascio impulsato. Valori tipici dei parametri
suddetti relativamente a procedure angiografiche svolte presso la ASL3 Umbria, Ospedale
San Giovanni Battista di Foligno sono sintetizzati nella Tabella 1.1.
Il principale svantaggio nelle procedure di Radiologia Interventistica è legato ad una
potenziale eccessiva esposizione ai raggi X da parte non solo del paziente, ma anche e
soprattutto dell’operatore, chiamato a lavorare a distanze molto ridotte dal paziente, con
La Radiologia Interventistica e la radioprotezione Capitolo 1
6
prolungati tempi di esposizione e spesso in assenza di adeguate schermature (guanti anti X,
schermi mobili, ecc.) [3]
Tabella 1.1
Parametri di lavoro dell’angiografo nelle procedure di RI [4]
Radiography
(Mean Values/procedure)
Radioscopy
(Mean Values/procedures) Procedures
No exposure/
procedure kV mA/mAs Time (s)
kV mA Time (min)
Pace maker 80 30 2-5
PercutaneousTransluminal
Angioplasty
14 76 400 4 80 30 10-45
Endoscopic Retrograde
Cholangio-
Pancreotography
8 74 160 0.5 80 30 10-30
Percutaneous
Transluminal Coronary
Angioplasty
15-30 fps-10
exposition
320 6 80 30 15-60
1.2 Radioprotezione e grandezze dosimetriche
La Radioprotezione è la disciplina che ha il compito fondamentale di “assicurare la
protezione degli individui esposti, della loro progenie e del genere umano nel suo insieme,
dagli eventuali danni che potrebbero derivare dallo svolgimento delle attività con rischio
da radiazioni ionizzanti”[5]. Le fonti principali di esposizione sono, in ordine di
importanza per quanto concerne il contributo, il fondo naturale (2.4 mSv/anno) e le
applicazioni mediche di diagnostica e terapia.
Quando un materiale è attraversato da una radiazione elettromagnetica si produce
ionizzazione ed eccitazione degli atomi bersaglio; qualora il mezzo colpito sia un tessuto
biologico, l’interazione fra atomi e molecole può produrre un’alterazione della struttura
elettronica, causandone danneggiamenti nei termini di un’alterazione della loro
funzionalità. Esistono attualmente diversi organismi internazionali che si occupano della
quantificazione e della caratterizzazione dei danni biologici prodotti in base al tipo di
radiazione ionizzante e del tessuto colpito, quali l’International Commission on
Radiological Units and Measurements (ICRU), l’International Commition on Radiological
Protection (ICRP) e la U.S. National Commission on Radiation Protection (NCRP) [6]. I
La Radiologia Interventistica e la radioprotezione Capitolo 1
7
parametri di riferimento definiti sono:
1. Dose assorbita (D): rappresenta il rapporto tra il valor medio dell’energia dε che
colpisce la materia in un volume infinitesimo di massa dm e la massa stessa. L’unità di
misura definita dal Sistema Internazionale è il gray (Gy), dove 1 Gy corrisponde a 1
Joule di radiazione assorbita da 1 kg di massa:
dm
dD
ε= (1.1)
2. Dose equivalente (H): tiene conto della diversa pericolosità dei vari tipi di radiazione.
Uno stesso tessuto, a parità di dose assorbita, risponde infatti in modo differente a
seconda della radiazione incidente. La dose equivalente si ricava allora pesando la dose
assorbita tramite un fattore adimensionale wr:
DwH r= (1.2)
La Tabella 1.2 mostra un quadro riassuntivo dei valori assunti da wr al variare del tipo
di particella incidente e dell’energia trasportata.
Tabella 1.2
Valori di wr al variare del tipo di radiazione e del range di energia
Radiation and energy range Radiation weighting factor ωR
Photons, all energies 1
Electrons and muons, all energies 1
Neutrons En < 10 keV 5
10 keV < En < 100 keV 10
100 keV < En < 2 MeV 20
2 MeV < En < 20 MeV 10
En > 20 MeV 5
Protons, except recoil photons, E > 2 MeV 5
α particles, nuclear fragments, heavy nuclei 20
L’unità di misura definita dal SI è il sievert (Sv): 1 Sv, a differenza di 1 Gy, produce gli
La Radiologia Interventistica e la radioprotezione Capitolo 1
8
stessi effetti biologici indipendentemente dal tipo di radiazione considerata. I fotoni
vengono trattati come la radiazione di riferimento e, analogamente agli elettroni, hanno
wr unitario; per fasci di neutroni il valore oscilla fra 3 e 11 a seconda dell’energia del
fascio, mentre per i raggi alfa sale a 20 e così via.
3. Dose efficace (E): misurata anch’essa in sievert, pondera la dose equivalente sul tipo di
tessuto investito grazie al fattore adimensionale wt, che tiene conto della diversa
radiosensibilità dei tessuti irraggiati:
∑=t
tt HwE (1.3)
La Tabella 1.3 riporta alcuni valori di wt in corrispondenza dell’organo o tessuto
colpito.
Tabella 1.3
Valori di wt al variare del tipo di tessuto o organo colpito
Organ or tissue Tissue weighting factor ωT
Gonads 0.20
Red bone marrow 0.12
Colon 0.12
Lung 0.12
Stomach 0.12
Bladder 0.05
Chest 0.05
Liver 0.05
Oesophagus 0.05
Thyroid gland 0.05
Skin 0.01
Bone Surface 0.01
Other organs or tissue 0.05
Con riferimento alle procedure di RI di arteriografia e drenaggio biliare svolte presso
l’Ospedale di Foligno, le dosi caratteristiche espresse in mSv relativamente a diverse zone
di esposizione, sono di seguito riassunte:
La Radiologia Interventistica e la radioprotezione Capitolo 1
9
Tabella 1.4
Tipiche dosi relative a singole procedure di arteriografia e drenaggio biliare
Angiografia arti inferiori Hp(10)(mSv) Drenaggio biliare Hp(10)(mSv)
POLSO DX 0.07 0.18
POLSO SIN 0.30 1.33
CRISTALLINO 0.11 0.07
SOTTO CAMICE 0.00 0.02
ARCO ALTEZZA
LETTINO
0.19 0.14
SOTTO PAZIENTE 8.94 289.97
La legge stabilisce i limiti di esposizione nei Decreti Legislativi
− 230/95 “Attuazione delle direttive 89/618/Euratom, 90/641/Euratom, 92/3/Euratom e
96/29/Euratom in materia di radiazioni ionizzanti”
− 187/00 “Attuazione della direttiva 97/43/EURATOM in materia di protezione
sanitaria delle persone contro i pericoli delle radiazioni ionizzanti connesse ad
esposizioni mediche
e successive modifiche ed integrazioni, che rappresentano i riferimenti normativi per
l’attività di radioprotezione.
Tabella 1.5
Limiti di esposizione fissati dalla legge
Lavoratori non esposti Lavoratori esposti
Cat. B Cat. A
ESPOSIZIONE ESTERNA mS/anno
Globale 1 6 20
Cristallino 15 50 150
Pelle 50 150 500
Estremità 50 150 500
I dati mostrano l’importanza crescente del monitoraggio dell’esposizione alle radiazioni
per il rispetto dei limiti massimi oltre i quali si potrebbe incorrere in danni alla salute. Ciò è
testimoniato anche dalle numerose pubblicazioni in tal senso [7], [8].
La Radiologia Interventistica e la radioprotezione Capitolo 1
10
1.3 Interazione particelle-materia
La rivelazione della radiazione è resa possibile dalla sua interazione con la materia,
perciò ogni sistema di rivelazione si basa sullo stesso meccanismo, per il quale il risultato
dell’interazione delle particelle con il mezzo è convertito in un segnale elettrico, che può
quindi essere letto, memorizzato ed elaborato.
Quando una particella energetica attraversa un mezzo, il campo elettrico associato alla
carica in movimento e quello generato dalla struttura elettronica del mezzo, determinano
un trasferimento di energia: in particolare la carica perde parte della sua energia a favore
del mezzo, e viene quindi convertita in portatori (coppie elettrone-lacuna, ioni, fotoni), i
quali sono a loro volta raccolti per la rivelazione della radiazione incidente. I principali
meccanismi di interazione variano con l’energia, le caratteristiche del target, la massa e la
carica della particella incidente e sono collisioni anaelastiche con la struttura atomica del
materiale, scattering elastico dai nuclei, reazioni nucleari, emissione della radiazione di
Cherenkov e radiazione di frenamento (o Bremsstrahlung); i primi due meccanismi di
interazione sono i più rilevanti, specialmente per particelle pesanti come protoni o ioni,
mentre gli altri risultano più importanti per particelle leggere, come elettroni o positroni ad
elevate energie [9].
Le collisioni avvengono prevalentemente con gli elettroni e raramente con i nuclei; in
tutti i casi, a causa del suddetto trasferimento di energia, esse portano gli atomi del mezzo
colpito ad uno stato eccitato e, se l’energia è sufficientemente elevata, determinano la
formazione di ioni (ionizzazione primaria). A sua volta uno ione altamente energetico può
innescare la generazione di nuovi ioni (ionizzazione secondaria). È bene sottolineare che
parlando di collisioni non si deve necessariamente pensare alle masse di due corpi che
entrano in contatto, ma in senso più generale all’interazione elettromagnetica fra particelle
cariche, che può avvenire perciò anche quando particella ed elettrone non entrano in
contatto; si parla in questo caso di collisioni a distanza.
Il processo di collisione è caratterizzato dalla sezione d’urto. Considerando un fascio
di particelle, con una distribuzione uniforme e F particelle per unità di tempo, che incide su
un dato target, chiamando Ns in numero medio di particelle diffuse nell’angolo solido dΩ
nell’unità di tempo, si può definire la sezione d’urto differenziale:
( )Ω
=ΩΩ d
dN
FE
d
d s1,
σ (1.4)
La Radiologia Interventistica e la radioprotezione Capitolo 1
11
La sezione d’urto totale può quindi essere ricavata come l’integrale su tutto l’angolo
solido:
∫ ΩΩ
=Ω dd
dE
σσ ),( (1.5)
Questa quantità ha le dimensioni di un’area ed è definita come la sezione normale alla
direzione del fascio al di fuori della quale la particella non viene deviata; tale definizione è
in realtà solo un’astrazione. Più precisamente σ può essere considerata come una misura
della probabilità d’interazione: maggiore è σ, maggiore è la probabilità di avere
un’interazione. Sulla base di questa ultima definizione σ può essere riferita non solo alle
collisioni ma anche ad altri tipi di interazioni.
1.3.1 Interazione dei fotoni con la materia
In base alla loro energia e alla natura del materiale, i fotoni subiscono nella materia
una grande varietà di processi, tra i quali quelli di maggiore rilevanza sono:
- effetto fotoelettrico
- effetto Compton
- creazione di coppie
rispettivamente per le basse, medie e alte energie.
Analizzando questi tipi di interazione si spiegano le principali caratteristiche dei
raggi X, in primo luogo la loro capacità di penetrare la materia molto maggiore rispetto alle
particelle cariche; ciò è dovuto al fatto che le sezioni d’urto che caratterizzano questi
processi sono molto più piccole rispetto a quelle associate ai processi relativi alle particelle
cariche. L’importanza relativa dei meccanismi di interazione è mostrata in Figura 1.3.
Ciascun processo può essere rappresentato con la sua sezione d'urto, che varia con
l’energia dei fotoni e con il numero atomico del materiale assorbente. La sezione d'urto
totale si ottiene sommando le sezioni d’urto relative ai singoli processi (in ordine,
rispettivamente, all’effetto fotoelettrico, all’effetto Compton, e alla creazione di coppie).
πστσ ++= ctot (1.6)
Quando, inoltre, un fotone interagisce con il mezzo colpito, esso viene assorbito o
comunque completamente rimosso dal fascio incidente; in altre parole un fascio di fotoni
La Radiologia Interventistica e la radioprotezione Capitolo 1
12
che attraversa un target è soltanto attenuato in intensità e non ridotto in termini di energia.
Figura 1.3 Sezione d’urto dei singoli meccanismi di interazione
L’attenuazione dell’intensità (I) di un fascio di fotoni che interagisce con la materia,
viene descritta da una legge di tipo esponenziale e dipendente dallo spessore (x) del mezzo
attraversato:
( ) ( )lxeIxI
µ−= 0 (1.7)
dove I0 è l’intensità del fascio incidente e µl è il coefficiente di assorbimento del materiale,
a sua volta definito come:
totAl n σµ = (1.8)
in cui σtot rappresenta la somma di tutte le σ delle interazioni sopra citate e nA è il numero
di atomi per unità di massa. La Figura 1.4 mostra l’andamento di σtot in funzione
dell’energia dei fotoni, nei casi di carbonio e piombo.
La lunghezza di assorbimento lµρλ /= , con ρ densità del mezzo, per alcuni materiali
a differente numero atomico, è riportata in Figura 1.5 al variare dell’energia dei fotoni
incidenti. La lunghezza di assorbimento lµρλ /= , con ρ densità del mezzo, per alcuni
La Radiologia Interventistica e la radioprotezione Capitolo 1
13
materiali a differente numero atomico, è riportata in Figura 1.5 al variare dell’energia dei
fotoni incidenti.
(a)
(b)
Figura 1.4 Sezione d’urto in funzione dell’energia dei fotoni nel carbonio (a) e nel piombo (b)
In un sensore di silicio (ρSi = 2.42 g/cm3), per fotoni nel range 1 – 100 keV, si ha
λ = (0.001 – 4) g/cm2, da cui un coefficiente di attenuazione µl = (2.42·103 – 0.6) cm-1.
Calcolando lo spessore di silicio ζ necessario ad attenuare il fascio incidente di un fattore e,
La Radiologia Interventistica e la radioprotezione Capitolo 1
14
tale che I(x) = I0/e ~ 30% I0 , si ottiene ζ = (4 – 1.5·104) µm. Per un sensore con spessore
inferiore ai 100 µm la radiazione non viene completamente assorbita nel mezzo; ci si
aspetta dunque di misurare solo parzialmente l'energia dei fotoni incidenti.
Figura 1.5 Lunghezza di assorbimento dei fotoni in materiali a vario Z [10]
Di seguito vengono descritti in sintesi i tre processi sopra citati.
L’effetto fotoelettrico consiste nell’urto tra un fotone e un atomo, con conseguente
assorbimento del fotone ed emissione di un elettrone dall’atomo, generalmente
appartenente ad una delle orbite più interne (Figura 1.6).
Figura 1.6 Illustrazione dell’effetto fotoelettrico
La Radiologia Interventistica e la radioprotezione Capitolo 1
15
Risulta, infatti, che un quanto ha maggiore probabilità di produrre effetti fotoelettrici
sugli elettroni degli strati atomici più legati. Perché siano rispettate le leggi di
conservazione dell’energia e dell’impulso, il fotone non può cedere tutta la sua energia ad
un elettrone libero: condizione necessaria affinché avvenga la cessione è che l’elettrone sia
legato ad un nucleo.
L’energia cinetica dell’elettrone emesso, detto fotoelettrone, è pari alla differenza tra
l’energia del fotone e l’energia di legame dell’orbita di appartenenza.
La sezione d’urto diminuisce molto rapidamente con l’energia dei fotoni incidenti; per
energie dei quanti inferiori a 1 MeV, la sezione d’urto è inversamente proporzionale a
(hν)3, dove hν è l’energia trasportata da un quanto, mentre per energie superiori la
diminuzione è più lenta. In corrispondenza delle energie di soglia del processo, inoltre,
presenta improvvise discontinuità per i differenti orbitali (M, L, K), come evidenziato dalla
traiettoria spezzata di µm (Figura 1.7).
Figura 1.7 Coefficiente di attenuazione massico per effetto fotoelettrico
Nell’ effetto Compton (Figura 1.8) il fotone interagisce con un elettrone atomico
considerato come un elettrone libero. Quando ci si riferisce ad un elettrone libero si intende
un elettrone la cui energia di legame è molto minore dell’energia del fotone che lo
colpisce. Pertanto mentre l’effetto fotoelettrico diventa molto probabile quando l’energia
La Radiologia Interventistica e la radioprotezione Capitolo 1
16
del fotone incidente è confrontabile con quella di legame, quando l’energia del fotone
cresce oltre il valore dell’energia di legame, l’effetto fotoelettrico decresce rapidamente e il
processo Compton diventa sempre più importante.
A seguito dell’urto, l’elettrone riceve parte dell’energia del fotone e viene emesso ad
un angolo θ, mentre il fotone, con energia ridotta, subisce una deflessione di un angolo φ.
Figura 1.8 Illustrazione del processo Compton
Se λ0 è la lunghezza d’onda del fotone incidente e λ quella del fotone scatterato,
studiando il processo Compton come urto tra due particelle e imponendo la conservazione
di energia e quantità di moto, si ricava:
)cos1(0 ϕλλλλ −=−=∆ c (1.9)
in cui λc è la lunghezza d’onda Compton.
La creazione di coppie (Figura 1.9) si verifica quando il fotone interagisce fortemente
solo con il campo elettromagnetico di un nucleo atomico, rilasciando tutta la sua energia
nel processo di creazione di una coppia, costituita da un elettrone e da un positrone.
Figura 1.9 Illustrazione della generazione di una coppia
La Radiologia Interventistica e la radioprotezione Capitolo 1
17
Il processo può avvenire solo se l’energia trasportata dai fotoni è sufficientemente elevata;
in particolare, essendo la massa a riposo dell’elettrone di 0.51 MeV, l’energia minima del
fotone per generare questo processo deve essere di 1.02 MeV.
1.3.2 Importanza relativa dei vari tipi di interazioni
Il coefficiente di attenuazione (calcolato dividendo la sezione d’urto per la densità del
mezzo massico ρ) viene utilizzato per valutare l’occorrenza dei vari tipi di interazione ed è
ampiamente utilizzato in radioprotezione perché consente di mettere a confronto materiali
con densità molto differenti. La Figura 1.10 e la Figura 1.11 mostrano rispettivamente
l’andamento per acqua e piombo, rappresentativi per materiali a basso Z, e silicio.
Per testare gli effetti prodotti dai raggi X sulla materia viene generalmente utilizzato
un fantoccio in materiale acqua equivalente; l’importanza dei vari tipi di interazione nel
fantoccio si evince dalla Tabella 1.6, in cui sono riassunte le percentuali di interazione in
base all’energia dei fotoni incidenti.
Figura 1.10 Coefficiente di attenuazione massico per acqua e piombo
La Radiologia Interventistica e la radioprotezione Capitolo 1
18
Figura 1.11 Coefficiente di attenuazione massico per il silicio [10]
Tabella 1.6
Importanza relativa dei tre processi in acqua
Relative Number of Interactions (%) Photon Energy (MeV)
σ Τ π
0.01 95 5 0
0.026 50 50 0
0.060 7 93 0
0.150 0 100 0
4.00 0 94 6
10.00 0 77 23
24.00 0 50 50
100.00 0 16 81
1.3.3 Materiali equivalenti dal punto di vista dell’attenuazione dei fotoni
Due materiali si dicono equivalenti per una determinata energia dei fotoni incidenti, se
in essi avvengono lo stesso numero e lo stesso tipo di interazioni, in volumi che
contengono masse uguali dei materiali confrontati. Il coefficiente di attenuazione massico
di un composto è ottenuto come somma dei contributi dei singoli elementi che lo
costituiscono, ciascuno moltiplicato per la relativa frazione di massa p:
∑=
=
N
i
ii
composto i
p1 ρ
µρµ
(1.10)
La Radiologia Interventistica e la radioprotezione Capitolo 1
19
dove N è il numero di elementi del composto. Utilizzando una composizione in tipo e
percentuale di atomi molto prossima a quella del materiale da emulare, è possibile
raggiungere una situazione molto vicina a quella ideale di composti perfettamente
equivalenti.
Capitolo 2
Dosimetri commerciali
Nella radioprotezione degli operatori il monitoraggio individuale riveste un ruolo
importante in quanto consente di programmare in modo sicuro ed efficiente le esposizioni,
al fine di mantenere la dose ricevuta quanto più bassa possibile e comunque al di sotto dei
limiti stabiliti dalle normative vigenti [11]-[13]. La valutazione della dose cui sono
sottoposti i lavoratori è condotta mediante l’utilizzo di dosimetri individuali, vale a dire
opportuni dispositivi che consentono la determinazione dell’esposizione del singolo
individuo alle radiazioni ionizzanti. L’importanza dell’accuratezza nelle misure di dose
assorbita per scopi di radioprotezione è anzitutto legata alla necessità di non sottovalutare
gli effetti e le conseguenze per la salute umana che possono verificarsi. Inoltre un adeguato
livello di accuratezza nella dosimetria è necessario anche per evitare indebiti costi
economici per interventi preventivi o di rimedio non realmente necessari; vale a dire la
possibilità di avere a disposizione misure affidabili di dose consente di attuare
esclusivamente gli interventi strettamente necessari per la protezione degli operatori
esposti, in un’ottica di efficacia ed efficienza [14].
In base alle modalità di utilizzo dello stesso, il dosimetro può essere essenzialmente di
tipo total body (a corpo intero), da indossare a livello del torace e sopra l’eventuale camice
protettivo piombato, ad anello alle dita, al cristallino, o presentarsi come bracciale al
polso (Figura 2.1, Figura 2.2, Figura 2.3). Ogni dispositivo viene tarato su un fantoccio
equivalente tenendo conto della posizione in cui sarà posto e pertanto è indispensabile che,
a seconda della taratura, il dosimetro venga posto esclusivamente sulla parte del corpo di
interesse, altrimenti la misura fornita non potrebbe essere correlabile alla dose assorbita.
Dosimetri commerciali Capitolo 2
21
Figura 2.1 Posizionamento delle diffrenti tipologie di dosimetri [15]
Figura 2.2 Esempio di dosimetro total body e relativo posizionamento [16]
Figura 2.3 Esempio di dosimetro ad anello e relativo posizionamento [16]
Talvolta, nel caso di operatori particolarmente esposti, viene fornito un secondo dosimetro
Dosimetri commerciali Capitolo 2
22
total body da indossare sotto al camice piombato, [15]; ciò al fine di garantire che la
misura complessiva di dose sia affidabile e corrispondente all’effettiva esposizione anche
nel caso di massicce quantità di radiazioni ionizzanti. Le principali caratteristiche di un
dosimetro cui fare riferimento per caratterizzarne le prestazioni riguardano: sensibilità e
risoluzione, range e soglia di rivelazione, risposta lineare con la dose, omogeneità e
riproducibilità.
Le istruzioni per l’utilizzo dei dosimetri personali da parte del personale medico sono
dettate dall’articolo 68 del decreto legislativo 230/95, che sancisce le seguenti direttive
comportamentali:
− il dosimetro è personale e non può quindi essere ceduto o prestato ad altre persone;
− il dosimetro deve essere portato per tutto il tempo di permanenza nei locali interessati
dall’esposizione alle radiazioni ionizzanti e non può, salvo diversa indicazione, essere
trasportato all’esterno della Struttura d’appartenenza;
− il dosimetro total body deve essere sempre portato all’altezza del petto sul risvolto del
colletto o sul taschino del camice avendo cura che non sia schermato da alcun oggetto;
− quando viene indossato un indumento protettivo (grembiule e/o camice in gomma
piombifera), il dosimetro total body deve essere portato sotto tale indumento;
− il dosimetro a bracciale deve essere indossato al polso prima di effettuare ogni
manipolazione che comporti esposizioni a radiazione ionizzante;
− il dosimetro a bracciale deve essere sempre portato sotto eventuali guanti protettivi;
− al termine del lavoro, il dosimetro deve essere riposto in un luogo ove non sussista
alcuna possibilità d’esposizione alle radiazioni ionizzanti;
− il dosimetro non deve essere esposto di proposito a sorgenti di radiazioni ionizzanti;
− è obbligo del lavoratore l’accurata conservazione del dosimetro: in particolare, il
dosimetro non deve mai né venire a contatto di liquidi, né essere posto vicino a fonti di
calore, né essere aperto o manomesso in alcun modo;
− è obbligo del lavoratore consegnare, secondo la periodicità stabilita, il dosimetro alla
persona incaricata di effettuarne regolarmente il cambio;
− è fatto obbligo di segnalare tempestivamente l'eventuale deterioramento o smarrimento
del dosimetro al Servizio di Fisica Sanitaria, che provvederà alla sua sostituzione;
nell’attesa, l’operatore non può svolgere l’attività che lo espone a rischio da radiazioni
ionizzanti.
In questo capitolo verranno illustrate le diverse tipologie di dosimetri attualmente
Dosimetri commerciali Capitolo 2
23
disponibili, descrivendone i principi teorici di funzionamento ed evidenziando i relativi
vantaggi e svantaggi applicativi.
2.1 Dosimetri passivi
I dispositivi certificati ed attualmente tipicamente sfruttati per la misura individuale
della dose sono dosimetri passivi, quali dosimetri a film e dosimetri a termoluminescenza
(TLD).
2.1.1 Dosimetri a film sottile (film badge)
Sono essenzialmente costituiti da un contenitore in cui è inserita una pellicola
fotografica. Una rappresentazione grafica è fornita in Figura 2.4.
Figura 2.4 Riproduzione grafica di un dosimetro a film
La pellicola è formata da un supporto, normalmente acetato di cellulosa, su cui è
depositata l'emulsione, vale a dire un sottile strato di gelatina (da un millimetro a qualche
centinaia di micron) contenente piccoli granuli di bromuro di argento (AgBr). Sotto
l'azione della radiazione un granulo di AgBr viene ionizzato, e durante i processi di
sviluppo e fissaggio il bromo viene asportato, lasciando solo l'argento. Di conseguenza sul
fondo di gelatina trasparente si passa dalla cosiddetta immagine latente (sviluppo),
costituita dall'argento metallico, all'annerimento della pellicola (fissaggio) proprio nei
punti dove è fissato l'argento. Il processo di sviluppo costituisce una fase estremamente
delicata in quanto un errore di 2°C nella temperatura di sviluppo porta ad un errore del
10% sulla lettura, mentre l'errore di 1 minuto sulla durata conduce a un errore del 20%; è
Dosimetri commerciali Capitolo 2
24
perciò necessario agire con attenzione per la determinazione di temperatura e durata
ottimali per il processo.
La misura dell'annerimento della pellicola viene effettuata mediante il densitometro
(Figura 2.5). Un densitometro è un dispositivo messo a punto per misurare la densità ottica,
cioè il potere di assorbimento di luce, di un’immagine fotografica o stampata.
Figura 2.5 Schema di funzionamento di un densitometro [17]
Il fascio di luce prodotto da una sorgente di intensità I0 incide sul dosimetro con
intensità I, dopo aver attraversato un diaframma e la pellicola stessa. Una cellula
fotoelettrica libera a questo punto un numero di elettroni proporzionali all'intensità della
luce incidente, generando una corrente misurabile con un microamperometro in un circuito
esterno. Questo strumento richiede una taratura preventiva per il controllo dello zero del
circuito della cella: in assenza di film interposto, la lettura della corrente deve essere nulla,
mentre si deve avere corrente quando viene esaminata una pellicola esposta.
In base alla definizione di densità ottica (d0), un'emulsione ha densità ottica 1 se
trasmette un decimo della luce incidente:
=
I
Id 0
100 log (2.1)
Poiché la densità ottica in un punto dipende dall'energia ceduta nel punto dalle radiazioni,
essa è in diretta relazione con la dose, purché si abbia l'avvertenza di sottrarre prima il
fondo della pellicola. In particolare è possibile stabilire una ralazione lineare fra d0 e la
Dosimetri commerciali Capitolo 2
25
fluenza di particelle Ф, attraverso cui risulta proporzionale alla dose assorbita. Pertanto,
indicando con S la sezione di un granulo, con n il numero di grani anneriti per cm2 e con N
il numero totale di grani per cm2 di superficie, si può scrivere
( ) eeSNd S
100 log1 Φ−−= (2.2)
che per piccole fluenze, ovvero SФ<<1, diventa
eNSd 102
0 logΦ= (2.3)
in accordo con quanto anticipato sopra.
Le emulsioni sono utilizzate negli intervalli di linearità fra la densità ottica e la fluenza.
Questi intervalli sono ricavabili dai grafici H-D, così chiamati dal nome degli autori Hurter
e Driffield, che mostrano l’andamento di d0 in funzione di Ф. Un esempio di grafico H-D è
riportato in Figura 2.6,in cui è evidenziato il tratto di caratteristica lineare.
Figura 2.6 Un esempio di grafico H-D [17]
Prima del suo impiego una pellicola deve essere tarata, per avere la curva di densità ottica
netta in funzione della grandezza dosimetrica da misurare (esposizione, dose, ecc.).
Si parla di fading per indicare la perdita d’informazione nel tempo; nei dosimetri a film
questa si attesta intorno al 20÷30% mensile, per cui è consigliabile sostituirli al personale
ogni 1÷2 mesi, mentre la lettura può essere ripetuta in ogni momento. Per questo motivo
sono ancora oggi spesso preferiti ai TLD. I dosimetri a film sottile sono impiegati per
fotoni e particelle β [17].
Dosimetri commerciali Capitolo 2
26
2.1.2 Dosimetri a termoluminescenza (TLD)
Il fenomeno fisico sul quale si basa il funzionamento dei TLD è la termoluminescenza,
che si manifesta in alcune sostanze isolanti (ad esempio CaF2, LiF o BeO), dette fosfori,
sotto forma di una debole luce emessa per riscaldamento a seguito di una esposizione a
radiazione. Il meccanismo del fenomeno si spiega con la presenza di livelli energetici nel
gap proibito del materiale, originati dalla presenza di attivatori, come impurità o difetti
reticolari, nella struttura cristallina. L'energia ceduta dalla radiazione incidente produce il
passaggio di alcuni elettroni dalla banda di valenza V alla banda di conduzione C (Figura
2.7), con la conseguente formazione di lacune nella banda di valenza. Alcuni elettroni e
lacune si ricombinano immediatamente, mentre altri sono catturati in questi livelli
energetici metastabili e vi possono rimanere intrappolati a lungo, a meno che non
intervengano fenomeni in grado di fornire loro l’energia necessaria per sfuggire alle
trappole. In questo caso, alcuni elettroni passano nella banda di conduzione e ricadono,
esaurito il rispettivo tempo di vita medio, nella banda di valenza, dove possono
ricombinarsi con le lacune. È in questo processo, detto di termoluminescenza, che si
verifica l'emissione di luce visibile (Figura 2.7).
Figura 2.7 Meccanismo fisico della termoluminescenza [17]
Man mano che viene trasferito calore al cristallo, aumenta lo svuotamento delle
trappole, finché a una determinata temperatura tutte le trappole di un determinato livello
energetico risultano vuote. Il grafico dell'intensità della luce emessa in funzione della
temperatura, o del tempo di riscaldamento, presenta una successione di picchi,
corrispondenti alla completa liberazione delle trappole di un dato livello, preceduti da lente
risalite, legate all’inizio dello svuotamento di ogni nuovo livello. Ciascun picco successivo
Dosimetri commerciali Capitolo 2
27
è piu intenso del precedente, in quanto i livelli sono man mano più energetici,
conseguentemente ogni nuova discesa è più ripida della precedente. Tale curva, graficata in
Figura 2.8, è caratteristica di ogni sostanza ed è detta curva di luminescenza (glow curve).
L’area di ogni picco è proporzionale alla dose assorbita.
Figura 2.8 Esempio di curva di luminescenza [17]
I TLD sono perciò realizzati sfruttando cristalli che esibiscono il fenomeno della
termoluminescenza; questi dispositivi “accumulano” la radiazione assorbita per un fissato
periodo temporale e periodiamente vengono sottoposti alla lettura tramite un processo di
riscaldamento a circa 400°C. La frequenza con cui avvengono i salti energetici è legata alla
frequenza della radiazione incidente; si può, quindi, risalire alla misura della dose di
radiazione ionizzante cui è stato esposto l’operatore nell’arco temporale considerato. Prima
di essere usato, il TLD deve essere azzerato, attraverso una preventiva fase di annealing,
allo scopo di svuotare le trappole e di renderle stabili, secondo procedimenti diversi per
ogni sostanza. Esempi di TLD sono quelli riportati in Figura 2.2 e Figura 2.3.
I TLD sono sensibili nel range energetico compreso tra 10 keV e 3 MeV. Le misure non
avvengono in tempo reale e i tempi di risposta sono lunghi, circa qualche giorno, visto che
le fasi di misura e di lettura del dispositivo sono separate e spesso affidate a servizi sanitari
differenti. La misura fornita, inoltre, è relativa alla dose integrale, non permettendo quindi
di ottimizzare istante per istante l'esposizione nelle procedure, e, poiché la periodicità di
sostituzione è mensile, si perde l'informazione sull'esposizione nei singoli interventi.
Dosimetri commerciali Capitolo 2
28
2.2 Dosimetri attivi
Accanto ai dosimetri passivi sono disponibili in commercio dosimetri attivi (Active
Personal Dosimeters, APD), che sfruttano tecnologie a semiconduttore e si basano su
sistemi di rivelazione che forniscono una risposta diretta e istantanea della dose [18]. Il
passo avanti rispetto ai dosimetri passivi è proprio quello di fornire delle valutazioni in
tempo reale dell’esposizione alle radiazioni, talvolta anche grazie alla dotazione di segnali
acustici che allertano l’operatore nel caso di raggiungimento dei limiti previsti,
consentendo di intervenire tempestivamente ed efficacemente nella riorganizzazione delle
attività lavorative.
2.2.1 Dosimetri a semiconduttore e dosimetri DIS
Nei dosimetri a semiconduttore (diodi al silicio) la radiazione ionizzante interagisce
nella regione di svuotamento determinando la produzione di coppie elettrone-lacuna; le
particelle cariche generate vengono quindi separate e raccolte per effetto della differenza di
potenziale applicata Figura 2.9. Ciò produce nel diodo un impulso che viene a sua volta
processato dall’elettronica di elaborazione prevista.
Figura 2.9 Principio di funzionamento di un dosimetro a semiconduttore [18]
Generalmente utilizzati per raggi X e gamma, possono talvolta essere sfruttati per la
rivelazione di neutroni grazie all’utilizzo di materiali che convertono il flusso neutronico in
Dosimetri commerciali Capitolo 2
29
particelle cariche [18].
Il dosimetro Direct Ion Storage (DIS) nasce dall’accoppiamento tra una camera a
ionizzazione e una cella di memoria non volatile che utilizza la tecnologia MOSFET
(Metal Oxide Semiconductor Field Effect Transistor), consentendo di rivelare raggi X,
raggi gamma, raggi beta e neutroni. La radiazione incidente induce la ionizzazione del
dispositivo, provocando un’alterazione della carica sul floating gate; la variazione della
carica è quindi direttamente correlabile con la dose assorbita e ciò consente di effettuare la
misura. Le prestazioni del dispositivo possono essere ottimizzate tramite la scelta più
opportuna del materiale che costituisce le pareti e il gas.
Figura 2.10 Camera di ionizzazione e cella di memoria MOSFET [18]
L’utilizzo del floating gate del MOSFET come uno degli elettrodi della camera a
ionizzazione permette la miniaturizzazione del dispositivo, evita la necessità di
un’alimentazione durante la fase di accumulazione della dose e consente che la lettura
avvenga senza distruzione dell’informazione dosimetrica [19]. La lettura della carica
immagazzinata, inoltre, viene svolta senza “disturbare” la carica stessa, misurando la
conducibilità del transistore.
2.2.2 Esempi di APD commerciali
Il presente paragrafo illustra alcuni esempi di dosimetri attivi attualmente
commercializzati, quali Unfors EDD-30, Philips DoseAware, Dosilab EDM-III,
ThermoScientific EPD-MK2+ e RaySafe i2, sottolineando le peculiarità di ciascuno.
− Unfors EDD-30
L’Unfors EDD-30 (Figura 2.11) è un semplice dosimetro formato da un piccolo rivelatore
a stato solido posto su un cavo collegato a un display. Il sensore può misurare la dose e il
Dosimetri commerciali Capitolo 2
30
rateo di dose per una specifica parte del corpo, per esempio gli occhi, mani, piedi, o per il
corpo intero. Viene misurato, inoltre, anche il tempo totale di esposizione. Una volta
posizionati sensore e display si accende lo strumento e la dose viene automaticamente
misurata in accumulazione.
Figura 2.11 Unfors EDD-30 [20]
Raggiunto il livello impostato di dose o di rateo di dose si attiva un allarme sonoro che
avverte in tempo reale l’operatore del superamento dei limiti. La casa costruttrice imposta
livelli di allarme nominati body, eye e hand per produrre un segnale acustico di modo che
l’operatore venga stimolato a correggere il proprio comportamento e i propri metodi
durante l’esecuzione di una data procedura.
Tabella 2.1
Livelli di allarme impostati dalla casa costruttrice [20]
Set Up Livello di allarme 1
Rateo di Dose
Livello di allarme 2
Rateo di Dose
Livello di allarme 3
Rateo di Dose
Body 0.1 mSv/h 0.5 mS/h 2.5 mSv/h
Eye 0.3 mSv/h 1.5 mSv/h 7.5 mSv/h
Hand 1.0 mSv/h 5.0 mSv/h 25 mSv/h
FrEE 0.3 mSv/h 1.5 mSv/h 7.5 mSv/h
Il dosimetro opera su una banda di 10 Hz, alimentato con due batterie alcaline e si spegne
automaticamente dopo due ore di inattività o in assenza di radiazioni rilevate; il sensore ha
inoltre una risposta di rivelazione sferica, permettendo la misura della dose
indipendentemente dall’angolo incidente della radiazione [22].
Dosimetri commerciali Capitolo 2
31
− Philips DoseAware
DoseAware consente di ottenere informazioni in tempo reale sulla dose assorbita,
fornendo un rapido accesso alla storia di esposizione di ciascun operatore. Il sistema si
compone di uno schermo touch screen (base station) che visulizza le informazioni relative
a ciascun lavoratore memorizzato (è prevista la possibilità di creare una rete con
molteplici base stations i cui dati sono elaborati da un apposito software), e di un piccolo
dosimetro personale (Personal Dose Meter) che rileva la radiazione e trasmette le
informazioni alla base station, consentendone la visualizzazione real time. Sono poi
forniti oggetti accessori utilizzati per riporre i dispositivi quando non in uso. La dotazione
è mostrata in Figura 2.12.
Figura 2.12 Il sistema DoseAware [23]
La stazione base viene posizionata nella stanza in cui vengono effettuate le procedure, in
modo che sia visibile a tutto il personale impegnato; gli operatori, ciascuno dei quali
indossa il dosimetro personale, possono controllare in tempo reale la rispettiva situazione,
grazie a tre livelli di attenzione crescente, vale a dire verde, giallo e rosso.
Il range di dose relativamente al sensore è compreso fra 1µSv e 10Sv, con una risoluzione
di 1µSv e un’incertezza con cui vengono fornite le misure che si attesta al 5%, [23].
− Dosilab EDM-III
Il dosimetro Dosilab EDM-III esibisce un un energy range di misura compreso fra 20 keV
e 6 MeV, di cui l’intervallo da 20 keV e 1.5 MeV per la rivelazione di fotoni (raggi X e
Gamma), e quello da 1.5 MeV a 6 MeV per radiazioni beta. Il display di cui è fornito il
dispositivo (Figura 2.13) permette di visualizzare i valori di corrente alternativamente per
misure di deep dose, con una profondità di 10 mm (Hp10), shallow dose, con una
profondità di 0.07 mm (Hp0.07), deep dose rate (Hp10/h) e shallow dose rate (Hp0.07/h).
Dosimetri commerciali Capitolo 2
32
Lo stesso display informa relativamente a situazioni di allerta, come il raggiungimento dei
limiti di esposizione fissati per gli operatori o un basso livello di batteria. È possibile
immagazzinare fino a 50 esposizioni con almeno un minuto di intervallo fra due
esposizioni consecutive; qualora avvengano due esposizioni nell’arco di uno stesso
minuto, il dosimetro le considera come fossero una soltanto, sommando i risultati di
misura di ciascuna [24].
Figura 2.13 Il dosimetro Dosilab EDM- III
− ThermoScientific EPD-Mk2+
Nato come evoluzione del progetto originale Mk2, si tratta di un dispositivo utilizzabile
sia come dosimetro stand alone, che come elemento di un più complesso sistema
dosimetrico, grazie agli strumenti hardware e software messi a disposizione dalla casa
produttrice. Il dosimetro EPD-Mk2+ si presenta come mostrato in Figura 2.14.
Figura 2.14 Il dosimetro TermoScientific EPD-MK2+ [26]
Risulta sensibile ai raggi X, gamma e alle particelle beta, offrendo prestazioni avanzate nel
range tra 15 keV e 10 MeV. È prevista la possibilità di configurare un allarme acustico che
avverta il raggiungimento dei limiti di esposizioni, mentre display e funzioni sono
controllabili per mezzo di un singolo pulsante posizionato sul pannello frontale dell’unità,
opportunamente “incassato” per evitare operazioni indesiderate. È inoltre possibile
Dosimetri commerciali Capitolo 2
33
eseguire dei controlli di integrità prima dell’utilizzo, quali test sulla batteria e sul detector,
o lettura della tensione fornita dalla batteria stessa [26].
− RaySafe i2
Il dispositivo RaySafe i2 fornisce informazioni accurate, real time e di facile lettura sulla
dose assorbita dagli operatori impegnati nelle procedure di RI. Il sistema dosimetrico nel
suo complesso (Figura 2.15) si compone in primo luogo di un dosimetro attivo (i2
Dosimeter), per la lettura e memorizzazione della dose secondo per secondo; i dati raccolti
sono quindi inviati con tecnologa wireless ad un display touch screen (i2 real time
display), che visualizza le informazioni provenienti da tutti i dosimetri collegati in tempo
reale; barre che possono essere di colore verde, giallo e rosso sono utilizzate per fornire
un’informazione qualitativa immediata del livello di pericolosità cui è giunto ciascun
opratore. Selezionando inoltre uno qualsiasi degli operatori memorizzati e presenti in lista
si accede alla storia personale di ciascuno. Accanto alla strumentazione hardware sono
infine forniti i software RaySafe i2 dose viewer e RaySafe i2 dose manager, per analisi
avanzate di dati, operazioni di archivio e gestione di display multipli [27].
Figura 2.15 Il sistema dosimetrico RaySafe i2 [27]
La Tabella 2.2 schematizza le pricipali caratteristiche dei dosimetri attivi descritti nel
paragrafo, consentendo un rapido confronto delle relative specifiche.
Nonostante i notevoli vantaggi sottolineati relativamente all’utilizzo dei sistemi
dosimetrici attivi, questi non sono ancora in grado di fornire le stesse prestazioni dei
dosimetri passivi con il tipo di raggi X utilizzati durante le procedure; la loro risposta è
infatti più scarsa rispetto ai TLD e l’energy range in cui lavorano ha un limite inferiore
maggiore (14-48 keV contro i 10 keV dei TLD).
Dos
imet
ri c
omm
erci
ali
C
apit
olo
2
34
Tab
ella
2.2
Sch
ema
rias
sunt
ivo
dell
e sp
ecif
iche
dei
sen
sori
Unf
ors
ED
D-3
0, P
hili
ps D
oseA
war
e, D
osil
ab E
DM
-III
, T
herm
oSci
enti
fic
EP
D-M
k2+
e R
ayS
afe
i2
U
nfo
rs E
DD
-30
[2
1]-
[22
]
Ph
ilip
s D
ose
Aw
are
[2
3]
D
osi
lab
ED
M-I
II [
25
] T
he
rmo
Sci
en
tifi
c E
PD
-Mk
2+
[2
6]
Ra
yS
afe
i2
[2
7]
Tip
olo
gia
di
sen
sore
se
mic
on
du
tto
re
sem
ico
nd
utt
ore
se
mic
on
du
tto
re
sem
ico
nd
utt
ore
se
mic
on
du
tto
re
Ap
pli
cazi
on
e
pri
nci
pa
le
do
sim
etr
ia o
pe
rato
ri
do
sim
etr
ia o
pe
rato
ri
do
sim
etr
ia o
pe
rato
ri
do
sim
etr
ia o
pe
rato
ri
do
sim
etr
ia o
pe
rato
ri
Co
nn
ett
ivit
à
wir
ed
(se
nso
re c
oll
eg
ato
ad
un
'un
ità
di
visu
ali
zza
zio
ne
po
rta
tile
)
wir
ele
ss
–
inte
rfa
ccia
IR
fin
o a
1 m
wir
ele
ss r
ad
io c
om
mu
nic
ati
on
con
i d
osi
me
tri
– p
ort
e
eth
ern
et
10
/10
0 M
bit
/s
con
ne
ssio
ne
de
l d
ose
ma
na
ge
r
All
arm
e
si
–
–
si
si
Dim
en
sio
ni
sen
sore
6
x 1
1 x
22
mm
–
–
8
5 x
63
x 1
9 m
m
30
0 x
25
0 x
60
mm
Dim
en
sio
ni
alt
ri
dis
po
siti
vi
un
ità
di
visu
ali
zza
zio
ne
: 8
2 x
98
x 2
1 m
m l
un
gh
ezz
a c
avo
: 1
.5 m
–
–
–
–
En
erg
y r
an
ge
0
.01
4 –
0.1
20
Me
V (
±1
0%
) 0
.04
8 –
0.1
00
Me
V (
±3
0%
) 0
.02
– 6
Me
V
0.0
15
– 1
0 M
eV
N
-40
– N
-10
0 (
33
– 8
4 k
eV
)
N-1
00
– N
-12
0 (
84
– 1
01
ke
V)
Do
se r
an
ge
1
0 n
Sv
– 9
99
9 S
v –
1
μS
v –
1 S
v 0
μS
v –
16
Sv
1 μ
Sv
– 1
0 S
v
Do
se r
ate
ra
ng
e
0.0
3 m
Sv/
h –
2 S
v/h
4
0 µ
Sv/
h –
30
0 m
Sv/
h
0.5
μS
v/h
– 1
Sv/
h
0 μ
Sv/
h –
4 S
v/h
4
0 μ
Sv/
h –
15
0 m
Sv/
h (
±1
0%
)
15
0 m
Sv/
h –
30
0 m
Sv/
h (
±2
0%
)
Te
mp
o e
spo
sizi
on
e
10
ms
– 9
99
9 s
–
–
–
–
Ris
po
sta
sf
eri
ca (
v. d
ett
ag
li i
n [
22
])
–
–
an
iso
tro
pa
(v.
de
tta
gli
in
[2
6])
–
Se
nsi
bil
ità
–
–
–
–
–
Ca
lib
razi
on
e
N-8
0 (
80
Kvp
, 2
mm
Cu
an
d
4m
m A
l)
–
–
–
N-4
0,
N-1
00
, N
-12
0
Du
rata
ba
tte
rie
1
30
ore
(2
pil
e A
A)
–
–
1.5
V a
lca
lin
e:
45
– 5
0 c
on
tin
uo
,
~ 1
0 m
esi
in
OF
F m
od
e
3.6
V l
ith
ium
: 5
me
si c
on
tin
uo
, ~
10
me
si O
FF
mo
de
3 –
5 a
nn
i (d
ipe
nd
en
tem
en
te
da
ll’u
tili
zzo
qu
oti
dia
no
)
Dosimetri commerciali Capitolo 2
35
La Tabella 2.3 riassume i principali vantaggi e svantaggi nell’impiego di sistemi
dosimetrici attivi e passivi.
Tabella 2.3
Schema riassuntivo sui vantaggi e svantaggi di dosimetri attivi e passivi
Vantaggi Svantaggi
Dosimetri
passivi
Facilmente gestibili in termini
di posizionamento
Determinazione non real time
della dose
Tempi di risposta lunghi (giorni)
Misura e lettura separati
Forniscono una misura di dose
integrale
Dosimetri
attivi
Determinazione real time della
dose
Possibilità di definizione di
opportuni livelli di intervento
Più efficace pianificazione
delle procedure di RI
Prestazioni inferiori con i raggi
X utilizzati nelle procedure
Energy range inferiore
Risposta più scarsa
2.3 Il progetto RAPID
Il progetto RAPID (Real Time Active Pixel Dosimetry) nasce da una collaborazione tra
l’Istituto Nazionale di Fisica Nucleare (INFN) di Perugia, l’Università degli Studi di
Perugia, il Servizio di Fisica Sanitaria dell’ASL3 dell’Umbria presso l’Ospedale di Foligno
e il Servizio di Fisica Sanitaria dell’ASL1 dell’Umbria presso l’Ospedale di Città di
Castello. Obiettivo del progetto è lo sviluppo di un nuovo approccio per effettuare il
monitoraggio degli operatori attraverso l’uso di rivelatori a matrice di pixel attivi (Active
Pixel Sensors, APS), che consenta essenzialmente di:
− effettuare un monitoraggio in tempo reale della dose assorbita dagli operatori;
− creare un archivio remoto delle dosi assorbite da ciascun operatore per ottimizzare la
pianificazione delle procedure e minimizzare le code, contribuendo ad una gestione più
efficace del lavoro.
La possibilità di comunicare il dato dosimetrico in tempo reale, infatti, favorisce una
Dosimetri commerciali Capitolo 2
36
maggior consapevolezza dell’esposizione a radiazioni ionizzanti e, conoscendo
l'esposizione, si potrà agire, istante per istante, su tutte le variabili che determinano la dose
finale, come modalità di acquisizione (pulsata, continua, alta o bassa risoluzione), utilizzo
degli ingrandimenti, posizione del rivelatore d’immagine, angolazione del fascio
radiogeno, distanza dal paziente. L’attività di sorveglianza radioprotezionistica risulta in tal
modo nettamente agevolata, poiché la conoscenza del dato dosimetrico permette di
intervenire immediatamente nel caso di superamento dei limiti di esposizione
dell'operatore. L’idea è inoltre che, fornendo dati già in formato digitale, la gestione degli
stessi risulta notevolmente semplificata, con l’ulteriore possibilità di creare database per
valutazioni volte a migliorare l'operatività dei lavoratori, delle procedure interventistiche e
dell'attività di radioprotezione in generale.
Per gli scopi elencati il dispositivo che si vuole progettare deve essere anzitutto portabile,
pratico da indossare, ad esempio come bracciale o fascia, naturalmente sensibile ai raggi X
utilizzati nelle procedure di RI, vale a dire dai 5keV in su, e fornire una misura accurata
della dose, del 10% circa.
La Figura 2.16 schematizza il sistema dosimetrico real time finale che si intende realizzare,
a partire dal monitoraggio della dose effetiva ricevuta dall’operatore (sensore), fino
all’elaborazione digitale dei dati e all’interfaccia wireless con un PC remoto.
Figura 2.16 Schema del sistema dosimetrico in base al progetto RAPID
Capitolo 3
Architettura del sistema
Nel Capitolo 3 verrà descritta l’architettura del sistema sviluppato nell’ambito del
progetto RAPID, individuando le pricipali funzioni e peculiarità dei singoli blocchi
costitutivi. In particolare, nel Paragrafo 3.2, verrà condotta un’analisi dettagliata del
sensore di immagine utilizzato come rivelatore di radiazione, omettendo il riferimento
bibliografico al manuale ed evitando di indicare in modo esplicito il nome del dispositivo
per motivi di riservatezza.
3.1 I blocchi costitutivi
Lo schema a blocchi del sistema è riportato in Figura 3.1.
Figura 3.1 I blocchi costitutivi del sistema
Si può distinguere un blocco funzionale dedicato all’acquisizione, elaborazione e
Architettura del sistema Capitolo 3
38
trasmissione dati (sensore, Complex Programmable Logic Device (CPLD) e
microcontrollore (CC430)) e un blocco di ricezione (costituito da un CC1111, un System-
On-Chip (SoC) direttamente connesso al PC remoto). Il protocollo di trasmissione e
ricezione dati è proprietario di Texas Instruments ed è denominato SimpliciTI.
Di seguito verranno forniti maggiori dettagli sui singoli blocchi costitutivi.
− SENSORE
Il sensore utilizzato è un sensore di immagine commerciale a matrice di pixel attivi (Active
Pixel Sensor, APS), che si occupa della rivelazione della radiazione incidente. Si tratta
essenzialmente di un trasduttore, che converte la grandezza fisica che interessa misurare in
un segnale elettrico, a sua volta digitalizzato tramite un ADC a 10 bit integrato nel sensore
(per i dettagli si rimanda al paragrafo 3.2).
− CPLD
Il CPLD è un dispositivo programmabile la cui architettura è costituita da una
combinazione di una matrice di porte AND/OR completamente programmabili e un banco
di macrocelle. Le porte AND/OR sono programmabili in modo da realizzare una
moltitudine di funzioni logiche. Le macrocelle sono dei blocchi funzionali in grado di
performare logica combinatoria o sequenziale [28]. Il modello di CPLD impiegato nel
progetto è MAX 7000S, che appartiene alla famiglia MAX 7000 dell’ALTERA.
Nel CPLD è stata implementata la logica che si occupa dell’estrazione dai dati acquisiti
dell’informazione relativa al numero di fotoni incidenti attraverso una misura del numero
di pixel il cui segnale è maggiore di un determinato valore di soglia. Tale soglia, in questa
versione del sistema, non viene memorizzata nel CPLD ma può essere definita
esternamente attraverso un banco di 10 switch. La logica implementata consta
essenzialmente di un comparatore, per confrontare il segnale fornito dai pixel con la
soglia, e un contatore, che viene incrementato per il conteggio dei pixel sopra soglia. Si
prevede, inoltre, la possibilità di emulare internamente al chip il funzionamento del
sensore, per le fasi di test del dispositivo.
− CC430
Si tratta di un microcontrollore SoC (System On Chip) della Texas Instruments, che integra
al suo interno un core della famiglia MSP430, un transceiver RF e numerose ulteriori
periferiche in grado di performare molteplici applicazioni [29].
Il CC430 è in comunicazione sia con il sensore, attraverso il protocollo I2C, che con il
CPLD; ad ogni frame di dati, generato dal sensore ed elaborato dal CPLD, il
microcontrollore accede alle informazioni del contatore e lo azzera. Il CC430 si occupa
Architettura del sistema Capitolo 3
39
quindi della trasmissione dei dati al PC remoto e dell’esecuzione dei comandi remoti, della
lettura/scrittura dei registri del sensore e della trasmissione del relativo contenuto.
Sensore e CC430 sono alloggiati su schede dedicate, denominate rispettivamente
SensorBoard e DemoBoard, mentre la scheda che consente l’interfacciamento fra i due
dispositivi è chiamata RapidBoard. Oltre al sensore, la SensorBoard ospita due regolatori
di tensione per l’alimentazione e un oscillatore al quarzo per la generazione del clock; la
scheda è alimentata a 5 V, mentre il sensore necessita di 2.8 V. È eventualmente possibile
montare il solo sensore direttamente sulla scheda d’interfaccia. La DemoBoard ospita il
CC430 insieme a tutta la circuiteria necessaria per l’adattamento d’impedenza dell’uscita
RF del chip con quella standard di 50 Ω del connettore SMA utilizzato per collegare
l’antenna; è inoltre possibile connettere un portabatteria per alimentare la scheda con due
pile AA e funziona a 3.3 V. SensorBoard e DemoBoard vengono entrambe connesse con la
RapidBoard, che ingloba cinque isolatori digitali e dei connettori, grazie ai quali è
possibile eseguire il debug del firmware e le misure sul rumore introdotto dalla parte RF, e
un connettore per le connessioni utilizzate sulla DemoBoard. È possibile selezionare due
diverse sorgenti di alimentazione, che sono:
• step-up DC/DC per generare la tensione di 5 V a partire dai 3.3 V di una cella
Li-Ion,
• alimentazione esterna a 5 V AC o DC.
È inoltre presente una serie di LDO (Low-dropout regulator) per generare tutte le tensioni
necessarie al corretto funzionamento dei sensori montati sulla scheda. Una matrice di
jumper consente di scegliere quale delle 2 possibili tensioni di alimentazione utilizzare.
− CC1111
Il CC1111 integra al suo interno un core appartenente alla famiglia 8051, un transceiver
RF CC1101; il modello utilizzato è il CC1111F32, che presenta una memoria flash
programmabile di 32 kB e una RAM di 4 kB, in un piccolo package di 6 x 6 mm [30].
Direttamente connesso al PC remoto, consente la ricezione dei dati dal CC430 e la
ricezione del contenuto dei registri del sensore; rappresenta inoltre un ponte per i comandi
remoti.
− Protocollo di trasmissione: TI SimpliciTI
La Texas Instruments fornisce una Application Programming Interface (API) in linguaggio
C chiamata SimpliciTI. Si tratta di un insieme di semplici librerie, composte da 5 funzioni
principali, che permettono di realizzare un protocollo di rete wireless con tutti i dispositivi
Architettura del sistema Capitolo 3
40
che contengano un transceiver analogo a quelli utilizzati dal CC430 e dal CC1111.
3.2 Il sensore
Il sensore utilizzato nel sistema è un sensore di immagine commerciale con formato
Video Graphics Array (VGA), costituito da una matrice 668 x 496 (668 righe e 496
colonne, di cui solo 649 x 489 formano l’area attiva) di pixel attivi. Il sensore è
programmabile tramite un semplice bus seriale a due fili (two-wire bus) simile al
protocollo I2C, ed esibisce un consumo di potenza molto basso (70 mW a 2.8 V e 27
MHZ). Può operare in una modalità definita di default, o può essere programmato
dall’utente impostando i parametri d’interesse tramite registri dedicati; nel primo caso
viene fornita un’immagine in formato VGA a 30 fps. Nel chip è, inoltre, presente un ADC
che digitalizza il segnale di ciascun pixel con 10 bit. La Figura 3.2 e la Figura 3.3 mostrano
rispettivamente il diagramma a blocchi e la configurazione di default del sensore, con le
connessioni suggerite dalla casa costruttrice per un buon funzionamento del dspositivo.
Figura 3.2 Diagramma a blocchi del sensore
I blocchi costitutivi fondamentali e la relativa funzione sono sinteticamente di seguito
riassunti:
− VGA APS Array => si tratta della matrice 668 x 496 complessiva di pixel attivi;
− Analog Processing => i pixel convertono la radiazione di luce incidente in un segnale;
elettrico analogico. Questo viene processato dal blocco in esame prima del suo
Architettura del sistema Capitolo 3
41
ingresso nell’ADC, al fine di filtrare le componenti di rumore e adattarne la dinamica
al range dell’ADC, per la massimizzazione del rapporto segnale-rumore di
quantizzazione (SQNR);
− ADC => esegue la conversione analogico-digitale del segnale prodotto dalla matrice di
pixel attivi. La codifica è effettuata su 10 bit;
− Timing and Control => fornisce la temporizzazione e la logica di controllo al sistema;
− Control Register => si tratta dei registri dedicati programmabili; insieme al Timing
and Control costituisce la parte digitale del dispositivo.
Figura 3.3 Configurazione di default del sensore
Con riferimento alla Figura 3.4 di seguito verranno elencati i segnali in ingresso/uscita che
consentono di definire il funzionamneto del sensore e di accedere ai dati acquisiti dal
sensore stesso.
− VAA, VAAPIX, VDD => rispettivamente alimentazione analogica (2.8 V),
alimentazione del pixel (2.8 V), alimentazione digitale (2.8 V);
− DGND, AGND => rispettivamente ground digitale e analogico;
− CLK_IN => master clock con una frequenza massima di 27 MHz, input;
− SCLK => segnale di clock seriale utilizzato dal protocollo I2C, input;
− OE_BAR => Output_Enable_Bar, quando alto disabilita i driver d’uscita del pixel,
input;
Architettura del sistema Capitolo 3
42
− RESET_BAR => reset asincrono del sensore, quando basso ripristina la
configurazione di default, input;
− SCAN_EN => collegamento alla massa digitale, input;
− STANDBY => quando alto disabilita il sensore, input;
− SDATA => segnale di I/O che trasporta i dati seriali del protocollo I2C, bidirezionale;
− DOUT, i => con i che va da 0 a 9, trasporta il bit i-esimo in uscita dal pixel, output;
− FRAME_VALID => alto durante un frame di dati validi in uscita dal pixel, output;
− LINE_VALID => alto durante una linea di dati validi in uscita dal pixel, output;
− PIXCLK => pixel clock, segnale di clock di frequenza pari alla metà di quella del
master clock, utilizzato per temporizzare i dati in uscita dal sensore sincronizzandoli
con il suo fronte di salita, output.
Figura 3.4 Disposizione dei pin nel chip
Nel dettaglio, la matrice di pixel presenta le prime 18 colonne, contate da destra verso
sinistra, e le prime 6 righe, contate dall’alto verso il basso, otticamente nere. Tali pixel
vengono utilizzati per monitorare il livello del colore nero. In modo analogo anche l’ultima
colonna e l’ultima riga sono otticamente nere. Restano perciò 649 x 489 pixel attivi, di cui
altri 81 sono sfruttati per fornire una cornice spessa 4 pixel, con lo scopo di evitare effetti
di contorno durante l’interpolazione e la correzione del colore, mentre un’ulteriore riga
Architettura del sistema Capitolo 3
43
aggiuntiva e un’ulteriore colonna aggiuntiva sono usate per consentire alle letture in uscita
specchiate orizzontalmente e verticalmente di partire dallo stesso colore. La restante
matrice di pixel attivi, che consente perciò la rivelazione vera e propria dell’immagine, è
un array 640 x 480, come mostrato in Figura 3.5.
Figura 3.5 Struttura della matrice di pixel attivi
Il sensore utilizza lo schema di colori RGB di Bayer per la rivelazione dell’immagine.
Si tratta di un modello additivo in cui rosso (Red), verde (Green) e blu (Blue) sono
sommati insieme in diversi modi per riprodurre un array di colori differenti. In particolare
l’array di filtri di colore di Bayer è un popolare formato per l’acquisizione digitale di
immagini colorate [31]; lo schema è mostrato in Figura 3.6, in cui si nota come metà del
numero totale di pixel è verde, mentre al blu e al rosso è assegnato un quarto ciascuno.
Figura 3.6 Il modello di colori RGB
Più nel dettaglio le righe pari contengono pixel di colore verde e rosso, mentre quelle
Architettura del sistema Capitolo 3
44
LINE_VALID
PIXCLK
blanking Valid Image Data blanking
DOUT9-DOUT0 P0 (9:0) P1 (9:0) P2 (9:0) P3 (9:0) P4 (9:0) P5 (9:0) Pn (9:0)
dispari blu e verde; ed ancora alle colonne pari corrispondono i colori verde e blu, mentre
alle dispari verde e rosso. La Figura 3.6 mette anche in evidenza le direzioni in cui
avvengono le scansioni della matrice di pixel per la lettura di righe e colonne.
I dati immagine validi forniti da ciascuna scansione dell’array sono circondati da righe e
colonne di zeri (blanking, vuoti), il cui numero è programmabile tramite opportuni registri.
Il segnale LINE_VALID è alto quando vengono forniti dati immagine validi, vale a dire
per tutta la zona celeste di Figura 3.7.
Figura 3.7 Illustrazione spaziale della lettura dell’immagine
In particolare i dati validi forniti dai pixel sono sincronizzati con il segnale PIXCLK: per
tutto il tempo in cui LINE_VALID è alto un dato costituito da 10 bit viene generato in
uscita ad ogni periodo del PIXCLK (Figura 3.8). Il periodo del pixel clock è due volte
quello del master clock (CLK_IN) ed è tale per cui i fronti di salita del pixel clock
avvengano a metà di un periodo del master clock (Figura 3.9), dopo i fronti del segnale
DOUT. PIXCLK rimane alto per un intero periodo di CLK_IN e basso per un altro intero
periodo, ed è abilitato anche durante i blanking.
Figura 3.8 Diagramma temporale dei dati forniti dal pixel
Architettura del sistema Capitolo 3
45
Figura 3.9 Andamento temporale relativo dei segnali master clock e pixel clock
Inoltre il segnale FRAME_VALID va alto 6 cicli di pixel clock prima che LINE_VALID
vada alto per la prima volta. Ciò è schematizzato in Figura 3.10.
Figura 3.10 Andamento temporale relativo dei segnali FRAME_VALID e LINE_VALID
I registri del sensore sono scritti e letti tramite il bus seriale a due fili. In tal senso il
sensore è un’interfaccia seriale che svolge la funzione di slave, ed è controllato dal clock
seriale SCLK, a sua volta pilotato dal master. I dati sono trasferiti da e verso il sensore
grazie al segnale seriale SDATA. La resistenza da 1.5 Ω di Figura 3.3 fa da pull up,
portando SDATA a VDD, mentre la funzione di pull down può essere svolta sia dal
dispositivo master che da quello slave; ciò è determinato, ad ogni istante assegnato, dal
protocollo di interfaccia seriale.
I registri sono a 16 bit, ed è possibile accedervi tramite il bus seriale a due fili con
sequenze di 8 o 16 bit. Una tipica sequenza di lettura o scrittura inizia con l’invio da parte
del master di uno start bit, al quale segue l’invio dell’indirizzo a 8 bit del dispositivo di
slave: l’ultimo bit dell’indirizzo determina il tipo di richiesta, 0 nel caso di scrittura e 1 in
quello di lettura. A sua volta lo slave risponde al master inviando un bit di ackowledgment
come conferma del proprio indirizzo.
In caso di scrittura il master trasferisce l’indirizzo a 8 bit del registro in
corrispondenza del quale deve avvenire la scrittura, con conseguente invio del bit di
ackowledgment da parte dello slave, a conferma dell’avvenuta ricezione dell’indirizzo. A
questo punto il master trasferisce i dati 8 bit alla volta, e al termine di ogni sequenza da 8
bit lo slave invia un nuovo bit di ackowledgment. Come detto il sensore utilizza registri a
16 bit, pertanto per completare la scrittura è necessario il trasferimento di due sequenze da
CLK_IN
PIXCLK
FRAME_VALID
LINE_VALID 6 cicli di clock pixel
Architettura del sistema Capitolo 3
46
8 bit, dopo le quali l’indirizzo del registro viene incrementanto automaticamente, in modo
che la successiva scrittura avvenga all’indirizzo adiacente. Il termine della fase di scrittura
è sancito dall’invio di uno stop bit da parte del master.
Anche nel caso in cui la richiesta sia di lettura, il master invia dapprima l’indirizzo a 8
bit del registro, quindi, a seguito del segnale di ackowledgment da parte dell slave, lo start
bit e l’indirizzo di lettura, ad indicare che è prossima una sequenza di lettura. A questo
punto il master preleva sequenze di 8 bit alla volta (sono ancora sufficienti due sole
sequenze per leggere il registro, essendo questo a 16 bit), inviando un bit di
ackowledgment al termine di ciascuna di esse. Il registro viene autoincrementato ogni volta
che sono letti 16 bit, e il trasferimento si arresta quando il master invia un bit di not-
acknowledgment.
Per una più semplice e immediata comprensione delle fasi di lettura\scrittura dei
registri, si riassumono sinteticamente i pricipali passaggi.
Scrittura
− La procedura si avvia quando il master invia lo start bit
− Il master invia l’indirizzo a 8 bit del registro che si vuole scrivere
− Il sensore risponde con il bit di acknowledgment
− Si esegue la scrittura: il master trasferisce 8 bit alla volta e ad ogni 8 bit ricevuti lo
slave invia un bit di acknowledgment
− Trasferiti 16 bit la procedura si arresta con lo stop bit del master
Lettura
− La procedura si avvia quando il master invia lo start bit
− Il master scrive l’indirizzo del registro
− Il sensore risponde con il bit di acknowledgment
− Il master invia l’indirizzo di lettura
− Il sensore risponde con un nuovo bit di acknowledgment
− Il master legge 8 bit alla volta e al termine di ogni sequenza invia un bit di
ackowledgment
− Il trasferimento si arresta quando il master invia un bit di no-ackowledgment
Il dispositivo presenta numerosi registri programmabili per il controllo dei differenti
aspetti funzionali e comportamentali del sensore:
− Window Control => questi registri controllano le dimensioni e le coordinate iniziali
Architettura del sistema Capitolo 3
47
della finestra e consentono di specificare un qualsiasi formato pari o inferiore al VGA
− Blanking Control => si tratta di registri per il controllo delle dimensioni della
porzione di blanking in una riga (blanking orizzontale) e tra i frame (blanking
verticale); il blanking orizzontale è specificato in temini di clock del pixel, mentre
quello verticale in termini del tempo di lettura di riga
− Pixel Integration Control => si occupano del controllo del tempo di integrazione dei
pixel; definiscono il numero di righe d’integrazione e il numero di cicli del master
clock che la logica di temporizzazione e controllo (timing and control di Figura 3.2)
deve attendere prima di asserire il reset per una data riga
− Pixel Clock Speed => il periodo del pixel clock si calcola come il numero assegnato
tramite il registro dedicato a cui vanno sommati due cicli di clock del master; il valore
di default è zero, vale a dire due cicli del master clock. PIXCLK può anche essere
opportunamente ritardato rispetto a DOUT tramite un ulteriore registro dedicato
− Reset => si tratta del registro utilizzato per il ripristino del sensore alla sua
configurazione di default, realizzato scrivendo prima 1 e poi 0 nel bit 0 del registro
− Digital Zoom => in modalità zoom la data rate del pixel è ridotta di un fattore 2 o 4 e
vengono aggiunte 1 o 3 ulteriori righe di blanking; lo scopo è quello di fornire alla
logica di controllo tempo a sufficienza per ripetere i dati, in modo da riempire una
finestra di dimensioni doppia o quadrupla
− True Decimation Mode => la decimazione viene eseguita nel caso di sensori privi di
filtraggio di colore. Esistono tre modalità con differenti fattori di decimazione: 2x, 4x e
8x, in cui per ogni riga/colonna letta vengono rispettivamente saltate una riga/colonna,
3 righe/colonne e 7 righe/colonne
− Real Mode => si tratta di registri che consentono di: invertire l’ordine di lettura delle
colonne (Column Mirror Image), invertire l’ordine di lettura delle righe (Row Mirror
Image), saltare la lettura di un numero predefinito di righe e colonne (Column and Row
Skip), cambiare il formato del segnale LINE_VALID (Line Valid), impostare
separatamente il guadagno per i pixel a seconda del colore verde, blu o rosso, oppure
definire un unico guadagno comune (Gain Setting)
3.3 CC430 e CC1111
Il dettaglio delle modalità di funzionamento del CPLD e del suo interfacciamento con
Architettura del sistema Capitolo 3
48
il sensore e il microcontrollore verranno meglio approfonditi nel corso del Capitolo 4,
mentre lo studio e la caratterizzazione ulteriore della parte di ricezione e del CC430 non
sono oggetto del presente lavoro di tesi. Per tale motivo il paragrafo 3.3 fornisce una
generale descrizione dei dispositivi CC430 e CC1111 precedentemente introdotti.
CC430
La famiglia CC430 della Texas Instruments include due serie: la CC430F61xx e la
CC430F513x. Il dispositivo impiegato nel progetto appartiene alla serie CC430F61xx ed è
il CC430F6137, che comprende: MSP430 a 16 bit, transceiver RF CC1101, memoria flash
programmabile fino a 32 kB, RAM fino a 4kB, due timer a 16 bit, ADC a 12 bit, interfaccia
di comunicazione USCI (Universal Serial Communication Interface), DMA (Direct
Memory Access), modulo per il clock in tempo reale, e fino a 44 pin di I/O. Tipiche
applicazioni per questi dispositivi includono sistemi di sensori wireless analogici e digitali,
termostati, e ripartitori di calore. In Figura 3.11 è mostrato il diagramma a blocchi
funzionale della famiglia d’interesse CC430F61xx, che mette in evidenza tutti i circuiti
implementati sul chip e i bus di connessione.
Figura 3.11 Diagramma a blocchi funzionale della famiglia CC430F61xx [29]
Architettura del sistema Capitolo 3
49
L’elenco completo dei pin disponibili e le rispettive modalità d’utilizzo sono reperibili
in [29], ed include: pin di I/O per applicazioni generali (general purpose digital I/O), pin di
I/O analogici, pin per massa e alimentazione analogiche e digitali, pin per il clock esterno,
pin per il reset del sistema alla configurazione inziale, e porte dedicate per le fasi di test.
CC1111
Le famiglie di dispositivi CCF1110Fx e CCF1111Fx della Texas Instruments vengono
impiegate per applicazioni wireless a basso consumo di potenza alle frequenze
315/433/868/915 MHz, nelle bande ISM (Industrial Scientific Medical) e SRD (Short
Range Devices), nei sistemi di sicurezza e nelle reti di sensori wireless, nel monitoraggo e
controllo industriale, ma anche nei campi dell’automazione domestica e della telemetria a
bassa potenza.
Per quanto riguarda il package e i pin disponibili (36 totali) si rimanda alla Figura
3.12. I pin si dispongono sui quattro lati del package e sono: porte per alimentazione e
massa analogiche e digitali, porte analogiche per l’oscillatore in cristallo presente sul chip,
pin d’ingresso all’LNA (Low Noise Amplifier) a RF, connessione USB e pin per il reset
del sistema alla configurazione di default [30].
Figura 3.12 Vista dall’alto del package della famiglia CC1111Fx [30]
Architettura del sistema Capitolo 3
50
La Figura 3.13 mostra il diagramma a blocchi del sistema in esame, distinguendo fra
componenti anlogici, digitali o misti (si faccia riferimento alla legenda accanto
all’immagine). Si possono inoltre individuare tre categorie di circuiti: moduli connessi alla
CPU, moduli connessi alla sezione RF e moduli connessi all’area di distribuzione del clock
e dell’alimentazione.
Figura 3.13 Diagramma a blocchi delle famiglie CCF1110Fx/CCF1111Fx [30]
Capitolo 4
Circuito di elaborazione digitale e di emulazione
del funzionamento del sensore
Il Capitolo 4 descrive le specifiche e i blocchi costitutivi del circuito dedicato
all’elaborazione dei dati provenienti dal sensore e di un circuito in grado di emulare le
funzionalità del sensore stesso al fine di fornire uno strumento flessibile ed utile nella fase
di test. Entrambi i circuiti sono stati progettati per essere implementati su CPLD e, di
seguito, verranno illustrati i dettagli relativi alla modalità e ai criteri utilizzati nella
progettazione e nella verifica del loro funzionamento. In questo capitolo viene anche
riportata la descrizione dell’algoritmo di clustering implementato in linguaggio C e
attualmente utilizzato nella elaborazione dei dati. Nella versione finale del sistema si
intende sostituire tale elaborazione (effetuata mediante software) con l’elaborazione
effettuata dal circuito proposto.
4.1 Algoritmo di clustering
L’elaborazione dei dati prodotti dal sensore attraverso un opportuno algoritmo di
clustering permette di utilizzarlo come dispositivo dosimetrico. A questo scopo vengono
sfruttate essenzialmente due osservabili: il numero di fotoni rilevati e l’integrale di carica
in un frame. Un fascio di fotoni che interagisce con il volume sensibile del sensore genera
una nuvola di coppie elettrone-lacuna che vengono raccolte soltanto da alcuni pixel (Figura
4.1). L’entità della raccolta del singolo pixel può essere valutata misurando la caduta di
tensione ai capi del fotodiodo dovuta a tale interazione. L’implementazione dell’algoritmo
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
52
attualmente utilizzato richiede : i) il calcolo dei valori di piedistallo (Vped(i,j)) e rumore
(σ(i,j)) per ogni pixel (i,j); ii) la scelta di due valori di soglia, rispettivamente T1 e T2.
Figura 4.1 Visualizzazione dei fotoni che colpiscono la matrice di pixel del sensore [37]
Vped(i,j) e σ(i,j) rappresentano rispettivamente il valore medio della tensione e la
deviazione standard di ogni pixel misurati in condizioni di buio, vale a dire in assenza di
luce e di sorgenti di radiazione. La scelta delle soglie T1 e T2 viene, invece, effettuata
cercando allo stesso tempo di massimizzare il numero di fotoni rilevati (ovvero
massimizzare l’efficacia) e di minimizzare il numero di falsi fotoni, rilevati a causa delle
fluttuazioni di rumore (ovvero minimizzare i falsi positivi). Sottraendo il valore di
piedistallo a ogni pixel e normalizzando per il corrispondente valore di rumore, si ottiene:
(4.1)
dove Vpix(i,j) è il segnale del pixel di posizione (i,j) in conteggi ADC. Il segnale
normalizzato S(i,j) viene confrontato con la soglia T1: ogni segnale maggiore della soglia
viene classificato come candidato centro (seed). Segue la verifica dell’isolamento
topologico del seed, ossia del fatto che il valore del segnale del seed sia un massimo
relativo e quindi un candidato fotone. Si procede quindi con il calcolo della prima
osservabile: il numero totale di fotoni in un frame [37].
La seconda osservabile, vale a dire l’integrale di carica, si ottiene invece ricostruendo
il segnale complessivo prodotto dai fotoni sommando quelli dei pixel appartenenti a un
raggruppamento (cluster): il segnale del pixel centrale viene sommato a quelli dei pixel
topologicamente connessi al centro e maggiori della seconda soglia T2, come viene
),(
),(),(),(
ji
jiVjiVjiS
pedpix
σ
−=
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
53
mostrato in Figura 4.2. Un qualsiasi pixel si dice topologicamente connesso al pixel
centrale quando ha in comune con esso uno spigolo o un vertice. L’integrale della carica
generata dai fotoni su tutta la matrice del sensore si ottiene quindi sommando i segnali dei
cluster presenti in un frame (vale a dire dei candidati fotoni) [37].
Figura 4.2 Visualizzazione dei pixel in un cluster [37] : il pixel contrassegnato in giallo non è
topologicamente connesso al centro (S, in rosso). Degli 8 pixel topologicamente connessi solo i due in
arancio hanno un segnale superiore alla seconda soglia T2 e pertanto fanno parte del cluster
Per valutare se le due osservabili, ottenute dal sensore tramite l’applicazione
dell’algoritmo ora descritto, possano essere utilizzate come grandezze dosimetriche è stata
condotta un’analisi dei dati acquisiti in diverse sessioni di misura. Durante le sessioni sono
stati variati alcuni parametri del sensore (guadagno, tempo d’integrazione), dell’angiografo
(modalità grafia e scopia, e per la scopia modalità continua e pulsata al variare della
tensione, corrente, durata dell’impulso, numero di impulsi al secondo) e del setup di misura
(distanza dal fantoccio, angolo di incidenza della radiazione) [37]. L’analisi dei dati ha
consentito di ricavare la distribuzione statistica e l’incertezza relativa per ciascuna delle
due osservabili relativamente alle differenti condizioni operative messe in atto. La Figura
4.3 e la Figura 4.4 mostrano un esempio di distribuzione statistica del numero di fotoni
sopra la soglia T1 in un frame e la correlazione di questa osservabile con la sua incertezza
relativa, rispettivamente per la prima e la seconda osservabile [37].
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
54
(a)
(b)
Figura 4.3 (a) Distribuzione statistica del numero di fotoni in un frame e (b) correlazione tra numero di
fotoni e la relativa incertezza [37]
(a) (b)
Figura 4.4 (a) Distribuzione statistica del segnale totale ricostruito e (b) correlazione tra il segnale totale
ricostruito e la relativa incertezza [37]
Le grandezze dosimetriche finora considerate sono ottenute attraverso una sofisticata
analisi offline, che prevede l'identificazione dei singoli fotoni attraverso l’algoritmo di
clustering descritto. Le incertezze nella misura del numero di fotoni e nella somma delle
energie misurate sono dell'ordine del 4-10% a seconda delle condizioni di funzionamento
dell'angiografo, della distanza del sensore dal fantoccio e dell'orientamento del sensore
rispetto alla direzione di diffusione dei fotoni. Questo algoritmo si basa sulla trasmissione
dell'intero frame di dati al PC per la successiva analisi offline; una simile procedura non è
facilmente praticabile in un dispositivo wireless a causa della banda passante molto grande
che viene richiesta al sistema (6 MB/s) per la trasmissione, e quindi a causa del consumo di
potenza che ne limiterebbe significativamente l’autonomia.
Al fine di ridurre la complessità computazionale dell’algoritmo è stata introdotta come
grandezza dosimetrica il numero di pixel il cui valore normalizzato S(i,j) superi la soglia T2
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
55
in un frame [38]. In questo modo si è tenuto conto del comportamento del singolo pixel
mediante la sottrazione del piedistallo e la normalizzazione rispetto al rumore senza
effettuare considerazioni sul valore dei pixel a livello topologico. Malgrado ciò
l’implementazione di questo algoritmo risulta onerosa dal punto di vista di occupazione di
memoria poiché richiede la costruzione di due matrici aggiuntive oltre a quella di pixel del
sensore: una dei piedistalli e una dei valori di rumore. Anche dal punto di vista
computazionale rimane piuttosto gravoso, in quanto prevede non solo un semplice
confronto, ma un’operazione di normalizzazione per ciascun segnale associato a un pixel.
Per questo motivo, nel blocco di elaborazione del sistema RAPID è stato introdotto un
algoritmo online semplificato che viene direttamente applicato ai segnali digitali dei pixel
espressi in conteggi ADC; tale algoritmo inoltre non individua cluster poiché utilizza una
sola soglia anziché due. In questo modo l’unica operazione che viene eseguita è il
confronto con il valore di soglia assoluto, espresso in conteggi ADC e ricavabile con la
seguente relazione inversa:
pedT VTV +⋅= )( σ (4.2)
dove σ e Vped
sono le medie aritmetiche di rumore e piedistallo calcolate su tutti i pixel
della matrice e T un fattore moltiplicativo opportunamente scelto. Con questo algoritmo
semplificato la quantità di dati coinvolta è notevolmente inferiore e la complessità
computazionale viene significativamente ridotta. Per quanto riguarda le osservabili in
esame, la prima non sarà più il numero dei fotoni rilevati ma il numero di pixel sopra
soglia, mentre in luogo della seconda si utilizzerà la somma dei segnali di tali pixel sopra
soglia.
È stato verificato che per tutte le modalità di acquisizione dati si può utilizzare un
valore di T pari a 15. Infatti, se si considera la distribuzione sperimentale del rumore dei
singoli pixel del sensore (Figura 4.5), si può determinare un valore medio del rumore di
circa 0.9 conteggi ADC. Da un’ispezione della distribuzione integrale del rumore dei
singoli pixel (Figura 4.6) si può notare che la percentuale di pixel della matrice avente
rumore superiore ai 2 conteggi ADC è trascurabile. Per quanto riguarda i valori dei
piedistalli, da un’analisi della distribuzione dei piedistalli dei singoli pixel (Figura 4.7) si
ottiene un valor medio di 52 conteggi ADC, mentre la distribuzione integrale (Figura 4.8)
mostra che a partire da circa 65 conteggi ADC solo lo 0.1% dei pixel della matrice supera
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
56
tale soglia. Sostituendo dunque a VT1 65 e a σ e Vped
0.9 e 52, rispettivamente, si ricava T
= 15.
Figura 4.5 Distribuzione sperimentale del rumore dei singoli pixel del sensore
Figura 4.6 Distribuzione integrale del rumore dei singoli pixel del sensore
Per giustificare la validità della scelta delle due nuove variabili dosimetriche (numero
di pixel sopra soglia e somma dei segnali dei pixel sopra soglia) si esegue il confronto tra il
comportamento di ciascuna con la corrispondente che si ricava nell’algoritmo di analisi
dati offline. In Figura 4.9 sono riportati gli andamenti in funzione del valore di soglia del
numero di pixel il cui valore normalizzato S(i,j) supera la soglia T2 in un frame (a) e del
numero di pixel che si trovano sopra la soglia VT in conteggi ADC. In entrambi i casi si
può notare un andamento decrescente con la soglia, con barre di errore che diminuiscono.
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
57
Il numero assoluto è leggermente inferiore nel secondo caso, perché alcuni elementi che
venivano inclusi con l'algoritmo offline, che effettua una normalizzazione per ogni pixel,
adesso non vengono più selezionati inoltre T2 risulta essere minore di T. In Figura 4.10
sono messi a confronto gli errori relativi di ciascuna osservabile: l'algoritmo offline (a)
riesce a raggiungere una incertezza inferiore al 4%, mentre quello online (b) riesce
comunque a stare molto vicino al 4%, appena superiore. Ciò significa che il deterioramento
delle prestazioni non è rilevante.
Figura 4.7 Distribuzione sperimentale dei piedistalli dei singoli pixel del sensore
Figura 4.8 Distribuzione integrale dei piedistalli dei singoli pixel del sensore
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
58
(a)
(b)
Figura 4.9 (a) Numero di pixel normalizzati sopra soglia in funzione del valore di soglia;
(b) numero di pixel sopra soglia in conteggi ADC in funzione del valore di soglia
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
59
(a)
(b)
Figura 4.10 (a) Errore relativo del numero di pixel normalizzati sopra soglia in funzione del valore di soglia;
(b) errore relativo del numero di pixel sopra soglia in conteggi ADC in funzione del valore di soglia
Per quanto riguarda la seconda osservabile, in Figura 4.11 sono messi a confronto
l’integrale di carica in un frame (a) e la somma dei segnali dei pixel che si trovano sopra la
soglia VT in conteggi ADC (b), entrambe in funzione del valore di soglia. Anche in questo
caso l'andamento è molto simile. Gli errori relativi (riportati in Figura 4.12) anche in
questo caso si trovano appena sopra il 4%. Ciò corrisponde a un valore accettabile di
incertezza nella misura.
Le due osservabili sono state infine correlate con il tasso di dose misurato dall’APD
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
60
Unfors EDD-30 (Figura 4.13) e dai TLD (Figura 19): ne è risultato che le variabili sono
linearmente correlate.
(a)
(b)
Figura 4.11 (a) Integrale di carica in un frame in funzione del valore di soglia;
(b) somma dei segnali dei pixel sopra soglia in conteggi ADC in funzione del valore di soglia
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
61
(a)
(b)
Figura 4.12 (a) Errore relativo dell’integrale di carica in un frame in funzione del valore di soglia;
(b) errore relativo della somma dei segnali dei pixel sopra soglia in conteggi ADC in funzione del valore di
soglia
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
62
(a)
(b)
Figura 4.13 (a) Correlazione tra il numero di pixel sopra soglia e il tasso di dose misurato dal dosimetro
commerciale Unfors EDD-30; (b) correlazione tra la somma dei segnali dei pixel sopra soglia e il tasso di
dose misurato dal dosimetro commerciale Unfors EDD-30
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
63
(a)
(b)
Figura 4.14 (a) Correlazione tra il numero di pixel sopra soglia e il tasso di dose misurato dai TLD;
(b) correlazione tra la somma dei segnali dei pixel sopra soglia e il tasso di dose misurato dai TLD
4.2 Implementazione del circuito di elaborazione
Il circuito dedicato all’elaborazione dei dati provenienti dal sensore e un circuito in grado
di emulare le funzionalità del sensore sono stati progettati per essere implementati sul
CPLD descritto nel Capitolo 3. In particolare il CPLD utilizzato è l’EPM7256SQC208-10,
che appartiene alla famiglia MAX 7000S dell’ALTERA. In Figura 4.15 è riportato lo
schema a blocchi esemplificativo del circuito complessivo messo a punto.
Cir
cuit
o di
ela
bora
zion
e di
gita
le e
di e
mul
azio
ne d
el f
unzi
onam
ento
del
sen
sore
C
apit
olo
4
64
F
igu
ra 4
.15
Sch
ema
a bl
occh
i del
cir
cuit
o co
mpl
essi
vo r
eali
zzat
o su
CP
LD
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
65
Si individuano due blocchi funzionali fondamentali:
o un blocco di confronto e incremento (il circuito di elaborazione vero e proprio)
costituito da un comparatore a 10 bit, e da un contatore a 14 bit, che implementano
l’algoritmo per il conteggio del numero di pixel sopra soglia;
o un blocco di emulazione del sensore MT9V011 che replichi il comportamento del
sensore nelle fasi di test.
Sono inoltre previsti tre multiplexer atti alla selezione dei segnali provenienti dal sensore o
dall’emulatore, consentendo pertando, in qualunque momento, di stabilire la modalità di
funzionamento del circuito.
Complessivamente il circuito riceve in ingresso i segnali:
− PIXCLK => segnale di clock con periodo 74.074 ns;
− START_SEQ => segnale che abilita il funzionamento dell’emulatore;
− STOP_SEQ => segnale che disabilita il funzionamento dell’emulatore;
− RESET_SINCRO => segnale di reset dei sincronizzatori, attivo basso;
− FRAME_VALID_S => segnale in uscita al sensore che abilita la scansione della
matrice di pixel;
− LINE_VALID_S => segnale in uscita al sensore che abilita la scansione di una riga
valida;
− EMU_SENSOR_SEL => segnale di controllo dei multiplexer che stabilisce se il
segnale d’uscita è prelevato dal sensore o dal suo emulatore: quando basso vengono
selezionati i segnali provenienti dal sensore, quando alto quelli dell’emulatore;
− DOUT_S => dati forniti dal sensore codificati su 10 bit;
− MAN_THR => soglia stabilita manualmente dall’esterno alla quale deve far
riferimento il comparatore per il confronto (banco di 10 bit);
− RESET_COUNTER => segnale di reset del contatore, attivo alto;
Il circuito restituisce in uscita i segnali:
− FRAME_VALID_MICRO => segnale FRAME_VALID inviato al microcontrollore.
Può essere quello proveniente dall’emulatore o quello prodotto dal sensore;
− LINE_VALID_MON => segnale LINE_VALID che può essere utilizzato per il
monitoraggio esterno. In modo analogo a FRAME_VALID, si può trattare del
LINE_VALID prodotto dell’emulatore o di quello generato dal sensore ;
− DOUT_MON => segnale di dati di 10 bit proveniente dal sensore o dall’emulatore,
prelevato dal circuito e utilizzato per il monitoraggio esterno;
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
66
− OUT_COMP_MON => segnale prelevato all’uscita del comparatore, utilizzato per il
monitoraggio esterno;
− OUT_AND_MON => segnale prelevato in uscita all’AND che abilita il conteggio del
contatore, utilizzato per il monitoraggio esterno;
− NUMPIX_MICRO => numero di pixel sopra soglia conteggiato dal contatore, inviato
al microcontrollore;
Il blocco di confronto e incremento implementa il cuore della logica del CPLD, che si
occupa del conteggio del numero di pixel sopra soglia. Il comparatore esegue il confronto
tra il dato corrente (il segnale interno DOUT in Figura 4.15) e la soglia (entrambi di 10
bit), e restituisce un’uscita logica alta (1 logico) se il pixel è maggiore o uguale alla soglia
(MAN_THR), altrimenti restituisce un’uscita logica bassa (0 logico). Se l’uscita del
comparatore ha un valore logico alto, viene abilitato il contatore, che è sincrono con il
PIXCLK del sensore. In questo modo l’uscita del contatore corrisponde al numero di pixel
sopra soglia. Va sottolineata la presenza di una porta AND tra il comparatore e il
contatore: poiché non tutti i pixel della matrice corrispondono ad un dato valido, viene
eseguito un AND logico tra il risultato del confronto e il segnale LINE_VALID (si faccia
riferimento al paragrafo 3.2 del Capitolo 3).
Adottando la stessa notazione utilizzata nel paragrafo 4.1, si denoti con VT la soglia, e
con Vpix(i,j) il segnale del pixel di posizione (i,j). Se
Tpix VjiV ≥),( (4.3)
e contemporanemante LINE_VALID = 1, il contatore incrementa di un’unità il numero di
pixel sopra la soglia stabilita. Al termine della scansione della matrice, vale a dire quando
sono stati letti i pixel di tutte le righe, indicizzate da j, e di tutte le colonne, indicizzate da i,
l’uscita del contatore fornisce la quantità di pixel sopra soglia in un frame.
Un primo multiplexer, sulla base del segnale EMU_SENSOR_SEL che lo pilota,
stabilisce se la sequenza di dati DOUT in ingresso al comparatore provenga dal sensore
(DOUT_S) o dal circuito di emulazione (DOUT_EMU). In modo analogo un secondo
multiplexer è preposto alla selezione del segnale LINE_VALID (LINE_VALID_S o
LINE_VALID_EMU) in ingresso alla porta AND. Un terzo ed ultimo multiplexer
seleziona il segnale FRAME_VALID (FRAME_VALID_S o FRAME_VALID_EMU) da
inviare al microcontrollore.
Nei paragrafi 4.3 e 4.4 che seguono verrà approfondita la trattazione dei due blocchi
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
67
funzionali fondamentali presentati. Per ciascuno di essi verrà descritta la realizzazione
circuitale e i risultati delle simulazioni behavioral, post-sintesi e timing. Sono stati
impiegati i software Quartus II e ModelSim (per la guida all’utilizzo dei software e per le
procedure di esecuzione delle simulazioni si rimanda a [32], [33], [34], [35], [36]).
4.3 Descrizione del circuito di elaborazione
La Figura 4.16 mostra la realizzazione circuitale del blocco di confronto e incremento.
Figura 4.16 Realizzazione circuitale del blocco di confronto e incremento
La verifica del corretto funzionamento è stata effettuata mediante la progettazione di un
opportuno testbench per le simulazioni behavioral, post-sintesi e timing. Gli stimoli forniti
al circuito e la durata delle simulazioni devono essere tali da consentire l’osservazione e la
verifica di tutte le possibili configurazioni di lavoro dello stesso. Nel dettaglio il testbench
messo a punto impone
− PIXCLK: segnale di clock con periodo 74.074 ns;
− LINE_VALID: inizialmente basso, commuta a 93.111 ns (con riferimento al circuito
di elaborazione complessivo, si può trattare del segnale prodotto dal sensore o dal suo
emulatore, ed è pertanto l’uscita del multiplexer che si occupa di questa selezione);
− RESET_COUNTER: inizialmente alto, va basso a 10 ns;
− DOUT: sequenza di dati di 10 bit specificati in un file dout.txt (anche in questo,
con riferimento al circuito complessivo di elaborazione, si può trattare dei dati generati
dal sensore o dal blocco di emulazione);
− MAN_THR: soglia fissata a 0000111100 (che in decimale corrisponde a 60).
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
68
La durata della simulazione è stata fissata pari a 2 µs al fine di testare tutte le possibili
modalità di funzionamento del circuito. La Figura 4.17 mostra il risultato della simulazione
behavioral, testimoniando il corretto funzionamento del circuito a livello logico. Un’analisi
più dettagliata dei risultati ottenuti può essere condotta focalizzando l’attenzione sugli
effetti provocati dalle singole transizioni degli stimoli. In Figura 4.18 si può osservare che,
finché LINE_VALID assume valore logico 0 l’uscita DOUT fornita dal sensore è
anch’essa costituita da una sequenza di 10 zeri; quando LINE_VALID passa da 0 a 1
DOUT inizia a commutare ad ogni periodo di clock. La prima commutazione si ha con un
ritardo di 5 ns rispetto al fronte di salita di LINE_VALID. Il contatore non è ancora
abilitato al conteggio e non incrementa NUMPIX_MICRO.
Figura 4.17 Circuito di confronto e incremento: simulazione behavioral
Figura 4.18 Effetti della transizione di LINE_VALID sul circuito di confronto e incremento
Quando il dato corrente diventa maggiore della soglia stabilita (Figura 4.19), l’uscita del
comparatore (OUT_COMP_MON) va a 1, ed essendo ancora LINE_VALID alto, anche
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
69
l’uscita dell’AND (OUT_AND_MON) va alta nello stesso istante. In corrispondenza del
successivo fronte di salita del clock, NUMPIX_MICRO commuta e si incrementa ad ogni
succesivo ciclo di clock. Se la soglia diventa maggiore del dato, OUT_COMP_MON e
OUT_AND_MON tornano bassi (Figura 4.20) e il contatore mantiene il valore di
NUMPIX_MICRO fisso a quello precedente fino alla prossima commutazione di
OUT_AND_MON. Quando poi LINE_VALID va basso, indipendentemente dall’uscita del
comparatore, il conteggio non è più abilitato (OUT_COMP_MON basso, ad indicare che il
dato corrente non è valido). In qualunque istante se RESET_COUNTER va alto provoca
l’azzeramento del contatore.
Figura 4.19 Dato corrente maggiore della soglia: il contatore è abilitato al conteggio
Figura 4.20 Dato corrente minore della soglia: il contatore non incrementa NUMPIX_MICRO
I risultati della simulazione post-sintesi sono in accordo con quanto ottenuto dalla
behavioral, e non vengono pertanto ulteriormente trattati. La simulazione timing (Figura
4.21), invece, consente di ricavare informazioni aggiuntive sui reali ritardi nel circuito.
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
70
Figura 4.21 Risultato della simulazione timing del blocco di confronto e incremento
In particolare: quando il dato valido corrente diventa maggiore della soglia,
OUT_COMP_MON e OUT_AND_MON non commutano istantaneamente, ma con un
ritardo di 5.6 ns. Il contatore, inoltre, non inizia ad incrementare NUMPIX_MICRO in
corrispondenza del successivo fronte di salita del clock, ma lo fa con un ritardo di 3.1 ns.
La presenza di tali ritardi è ben visibile in Figura 4.22.
Figura 4.22 Simulazione timing: ritardi nel circuito di confronto e incremento
Negli ultimi istanti della simulazione LINE_VALID torna ad assume valore logico 0;
anche in questo caso la commutazione di OUT_AND_MON non avviene istantaneamente,
ma con un ritardo di 29.908 ns rispetto al fronte di discesa di LINE_VALID.
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
71
4.4 Descrizione del circuito di emulazione del sensore MT9V011
L’idea è di introdurre nel CPLD un circuito che funga da emulatore del sensore
MT9V011, vale a dire un circuito che, a tutti gli effetti, si comporti come il sensore,
fornendo lo stesso andamento dei segnali. Nella pratica, per semplicità, si riproduce il
comportamento di una parte soltanto della matrice del sensore (Figura 4.23); il motivo
verrà meglio esplicato nel seguito di questo paragrafo.
Figura 4.23 Porzione di sensore emulato
Si consideri la Figura 3.10, che mostra l’andamento relativo dei segnali
FRAME_VALID (alto durante la scansione delle righe valide della matrice) e
LINE_VALID (alto durante la scansione dei pixel validi di una riga): LINE_VALID va
alto 6 cicli di pixel clock dopo la transizione di FRAME_VALID, e torna basso 6 cicli di
pixel clock prima. La scansione di una riga valida dura 640 cicli di pixel clock, che,
moltiplicati per il periodo di clock, pari a 74.074 ns, corrispondono a circa 47.407 µs. Al
termine di tale intervallo, si ha la scansione dei pixel non validi del blanking orizzontale, in
cui LINE_VALID è basso. Terminata la scansione dei pixel del blanking orizzontale si
passa alla scansione della successiva riga di pixel validi e LINE_VALID torna alto, fino a
quando non si giunge all’ultima riga valida (si ricordi che la scansione parte dal primo
pixel in alto a destra e procede verso il basso percorrendo le righe da sinistra verso destra).
In tutto questo intervallo FRAME_VALID resta alto. A questo punto inizia la scansione
delle righe non valide del blanking verticale, in cui sia LINE_VALID che
FRAME_VALID sono bassi. È in questa fase (FRAME_VALID basso) che avviene la
trasmissione dei dati al microcontrollore contenuto nel SoC, ed è perciò essenziale che la
sua durata sia esattamente quella reale che si ha utilizzando il sensore MT9V011, in modo
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
72
tale da poter verificare che questo intervallo sia sufficiente per la completa trasmissione del
frame. Viceversa, la durata del blanking orizzontale, è uguale per tutte le righe scansionate.
Si può perciò ragionevolmente pensare di analizzare soltanto una parte di queste (a patto
che si tratti delle righe precedenti la zona di blanking verticale), senza perdere
informazioni importanti per gli scopi di emulazione. Per comodità si è scelto di
rappresentare un numero di righe tale per cui la durata della fase FRAME_VALID = 1 sia
circa il doppio di quella in cui FRAME_VALID = 0, che coincide con 62 righe esaminate.
Sono state messe a punto due differenti versioni per un circuito di emulazione che sia
in grado di offrire il comportamento illustrato. Le due versioni verranno descritte nei
sottoparagrafi 4.4.1 e 4.4.2.
4.4.1 Circuito di emulazione: versione 1
La Figura 4.24 mostra la macchina a stati descrittiva del comportamento del circuito di
emulazione del sensore MT9V011 nella sua prima versione. L’emulatore è pilotato, oltre
che dal segnale di clock, dai segnali START_SEQ e STOP_SEQ, che ne abilitano o
disabilitano il funzionamento. Sono presenti le seguenti variabili contatore:
• CYCLECOUNT: utilizzata per contare il numero di cicli di clock durante il quale si
rimane su uno stato;
• COUNT_DATA: usata per i dati in uscita;
• ROWCOUNT: usata per le righe valide della matrice da scandire;
Le variabili interne PresentState e NextState sono inoltre utilizzate per tenere traccia dello
stato presente e di quello successivo. Lo stato successivo viene assegnato in
corrispondenza del fronte di salita del clock.
Viene ora illustrata la codifica degli stati adottata.
S0 – IDLE
È lo stato iniziale della macchina, in cui FRAME_VALID e LINE_VALID sono entrambi
a zero. Il circuito di emulazione non è abilitato.
S1 – START OF FRAME
Il segnale START_SEQUENCER va alto e si passa dallo stato S0 allo stato S1. Ciò abilita
l’emulatore e dunque la scansione della matrice: FRAME_VALID va alto, mentre
LINE_VALID rimane basso per atri 6 cicli di clock.
S21 – SCANSIONE RIGA VALIDA
Dopo 6 cicli di clock (CYCLECOUNT = 6) anche LINE_VALID va alto: ha inizio la
scansione di una riga valida della matrice. La scansione dei pixel validi in una riga richiede
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
73
640 cicli di clock, pari a 640 x 74.074 = 47.407 µs.
Figura 4.24 Macchina a stati del circuito di emulazione del sensore MT9V011
S22 – BLANKING ORIZZONTALE
Al termine della scansione di ciascuna riga di pixel validi (CYCLECOUNT = 640),
avviene la scansione dei pixel non validi (blanking orizzontake), per 244 cicli di clock, pari
a 244 x 74.074 = 18.074 µs circa. In questa fase LINE_VALID = 0, ad indicare che non si
sta scansionando una riga valida. Ogni volta che COUNT_VAL_LV = 244 si passa dallo
stato S22 allo stato S21, vale a dire si passa dalla scansione della riga successiva. Quando
CYCLECOUNT = 640, ci si trova nuovamente nel blanking orizzontale, e si passa a S22.
Questo comportamento viene ripetuto finchè tutte le 61 righe non sono scansionate.
S3 – END OF FRAME
Esaurita la scansione delle 62 righe (ROWCOUNT = 61 in quanto il conteggio parte da 0),
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
74
si commuta dallo stato S21 allo stato S3: LINE_VALID = 0, mentre FRAME_VALID = 1
per 6 cicli di clock (6 x 74.074 = 444.44 ns circa).
S4 – BLANKING VERTICALE
Dopo 6 cicli di clock (CYCLECOUNT = 6), si passa alla scansione dei pixel non validi del
blanking verticale, in cui sia LINE_VALID che FRAME_VALID sono a zero. Questa fase
richiede 25868 cicli di clock, pari a 1.9161 ms circa; tale dato è equivalente al tempo reale
del sensore in cui FRAME_VALID = 0, e corrisponde all’intervallo in cui i dati vengono
trasferiti al microcontrollore. Quando CYCLECOUNT = 25868, si ritorna allo stato di
START OF FRAME, per l’inizio di una nuova scansione della matrice.
È utile fare alcune precisazioni:
− in un qualunque stato diverso da S0, una transizione da basso a alto del segnale
STOP_SEQ, comporta un ritorno allo stato di IDLE;
− i pixel in uscita al sensore sono ottenuti tramite una variabile contatore a 10 bit, che
viene incrementata soltanto quando LINE_VALID = 1;
− i due segnali di controllo START_SEQ e STOP_SEQ sono sincronizzati con il clock
tramite due circuiti sincronizzatori.
Sono state originariamente pensate tre possibili versioni per implementare la funzione
svolta dai sincronizzatori: il circuito MealySinc, una versione con due flip flop (che per
comodità verrà indicata con 2FF) ed una terza con tre flip flop (indicata con 3FF).
o MealySinc
In Figura 4.25 è mostrata la realizzazione circuitale del componente MealySinc (si fa
riferimento al solo sincronizzatore relativo al segnale START_SEQ, ma le medesime
considerazioni valgono per STOP_SEQ).
Figura 4.25 Il sincronizzatore MealySinc
Si vuole che il circuito sincronizzi l’ingresso asincrono START_SEQ al segnale PIXCLK,
restituendo pertando l’uscita sincrona START_SINCRO. È previsto un segnale per il reset
del sincronizzatore (RESET_SINCRO), che, in questa versione, è attivo basso. Il testbench
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
75
realizzato stabilisce gli stimoli:
− PIXCLK: segnale di clock con periodo 74.074 ns;
− START_SEQ: inizialmente basso, commuta a 301 ns;
− RESET_SINCRO: inizialmente basso, assume valore logico 1 a 201 ns.
La simulazione ha durata pari ad 1 µs. Le simulazioni behavioral (Figura 4.26), post-
sintesi e timing testimoniano il corretto comportamento del componente. L’uscita sincrona
START_SINCRO va alta in corrispondenza del primo fronte di salita del clock successivo
alla transizione di START_SEQ, e scende in corrispondenza del primo fronte di salita del
clock successivo alla transizione da alto a basso dell’ingresso asincrono. Come già
anticipato il reset è attivo basso. Dalla simulazione timing è inoltre possibile trarre le
informazioni sui ritardi. Nel dettaglio l’uscita sincrona mantiene un ritardo di 2.8 ns
rispetto al fronte di salita del clock.
Figura 4.26 MealySinc: simulazione behavioral
o Versione con 2 FF
Questa seconda versione prevede la presenza di due FF di tipo D (Figura 4.27). A
differenza della precedente il reset è attivo alto, pertanto si utilizza un testbench che
impone gli stessi stimoli impiegati per MealySinc, ma con un RESET_SINCRO avente
andamento complementare.
Dalle simulazioni condotte (Figura 4.28) si evince che, ancora una volta, l’uscita
sincrona commuta da 0 a 1 in corrispondenza del primo fronte di salita del clock
successivo alla transizione dell’ingresso asincrono. Diversamente dalla precedente
versione, però, indipendentemente dalla durata dell’intervallo in cui START_SEQ resta
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
76
alto, START_SINCRO rimane alto per un solo ciclo di clock, e scende in corrispondenza
del fronte di salita del clock. Il ritardo con cui l’uscita sincrona commuta rispetto al fronte
di salita del clok rimane di 2.8 ns.
Figura 4.27 Versione del sincronizzatore con 2 FF
Figura 4.28 Versione sincronizzatore con 2 FF: simulazione behavioral
o Versione con 3 FF
La terza versione con 3 FF (Figura 4.29) presenta nuovamente un reset attivo basso.
Per le simulazioni sono previsti gli stimoli:
− PIXCLK: consueto segnale di clock con periodo 74.074 ns;
− RESET_SINCRO: inizialmente basso, commuta definitivamente assumendo valore
logico 1 a 10 ns;
− START_SEQ: assume valore logico 1 negli intervalli tra 300 e 305 ns, e tra 595 e
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
77
605 ns, mentre è a 0 nei restati istanti.
Figura 4.29 Versione del sincronizzatore con 3 FF
Dall’analisi dei risultati di simulazione (Figura 4.30) emerge che l’uscita sincrona va
alta non più in corrispondenza del primo fronte di salita del clock successivo alla
transizione dell’ingresso asincrono, ma al presentarsi di quello ancora seguente, e resta alta
per due cicli di clock, indipendentemente dall’intervallo in cui l’ingresso asincrono rimane
alto. Questa diversità di comportamento rispetto alla precedente versione è dovuta alla
maggiore latenza legata alla presenza di un ulteriore flip flop nel circuito. L’uscita sincrona
commuta con un ritardo di 2.8 ns rispetto al fronte di salita del clock.
Figura 4.30 Versione del sincronizzatore con 3 FF: simulazione timing
A seguito dell’analisi delle tre differenti versioni proposte si è scelto di utilizzare due
sincronizzatori di tipo MealySinc. In questo modo il blocco complessivo di emulazione del
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
78
sensore MT9V011 risulta essere quello mostrato in Figura 4.31.
Figura 4.31 Realizzazione circuitale del blocco di emulazione del sensore MT9V011 nella sua versione 1
Il testbench per il circuito di emulazione complessivo prevede gli stimoli
− PIXCLK: segnale di clock con periodo 74.074 ns, in ingresso sia ai sincronizzatori,
per la sincronizzazione dei segnali START/STOP_SEQ, che al sensorEmulator;
− START_SEQ: inizialmente basso, va alto tra 701 e 1201 ns;
− STOP_SEQ: viene chiamato dopo lo START_SEQ quando è in corso la scansione del
secondo frame, e cioè tra 8.001201 e 8.001701 ms;
− RESET_SINCRO: inizialmente basso, va alto a 201 ns. È attivo basso;
Il circuito viene simulato per 9 ms, per consentire l’osservazione di tutte le transizioni. In
Figura 4.32 è mostrato il risulato della simulazione behavioral. La post-sintesi e la timing
forniscono lo stesso andamento complessivo dei segnali.
Figura 4.32 Prima versione del circuito di emulazione del sensore MT9V011: simulazione behavioral
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
79
Quando START_SEQ va alto (Figura 4.33) esso abilita il funzionamento del circuito di
emulazione. FRAME_VALID_EMU (che abilita la scansione della matrice) va alto
298.999 ns dopo la transizione di START_SEQ, vale a dire circa 4 cicli di clock dopo. A
sua volta LINE_VALID_EMU (che abilita la scansione di una riga valida) va alto con un
ritardo di 6 cicli di clock rispetto al fronte di salita di FRAME_VALID_EMU (in accordo
con le informazioni fornite dal manuale del sensore). A questo punto, a partire dal
successivo fronte di salita del clock, il sensorEmulator fornisce in uscita un dato valido di
10 bit ogni ciclo di clock (DOUT_EMU infatti commuta ogni 74.074 ns).
Figura 4.33 Transizione da 0 a 1 di START_SEQ: la scansione è abilitata. Prima versione del circuito di
emulazione
Dopo la sua prima transizione, LINE_VALID_EMU resta alto per il tempo necessario alla
scansione di una riga valida, vale a dire per 640 cicli di clock, quindi torna basso per 244
cicli di clock (scansione dei pixel del blanking) e nuovamente alto per atri 640 cicli di
clock (). La sequenza di eventi descritta si ripete per 62 volte, dato che il circuito è
progettato per la scansione di 62 righe. Terminata la scansione delle 62 righe
LINE_VALID_EMU torna basso fino all’inizio del successivo frame.
FRAME_VALID_EMU scende 6 cicli di clock dopo (Figura 4.35). Per tutta la fase in cui
FRAME_VALID_EMU = 0 avviene la lettura dei pixel del blanking verticale, che richiede
25868 cicli di clock, esauriti i quali FRAME_VALID_EMU torna alto e 6 cicli di clock
dopo si avvia una nuova scansione della matrice. Infine, durante la scansione del secondo
frame, interviene STOP_SEQ (Figura 4.36). La scansione si interrompe, e i segnali
FRAME_VALID_EMU e LINE_VALID_EMU tornano insieme a 0 dopo circa 4 cicli di
clock (309.517 ns) il fronte di salita di STOP_SEQ.
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
80
Figura 4.34 Comportamento di LINE_VALID_EMU quando FRAME_VALID_EMU è alto. Prima versione
del circuito di emulazione
Figura 4.35 Scansione della matrice terminata: LINE_VALID_EMU e FRAME_VALID_EMU tornano
bassi. Prima versione del circuito di emulazione
Figura 4.36 STOP_SEQ interviene e la scansione si arresta. Prima versione del circuito di emulazione
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
81
È sempre necessario sottolineare il fatto che sia la simulazione behavioral che la post-
sintesi non consentono di valutare i ritardi reali presenti nel circuito. Per tale scopo è
indispensabile eseguire una simulazione timing. I risultati ottenuti in tal senso permettono
di capire che, a seguito della commutazione da 0 a 1 di START_SEQ,
FRAME_VALID_EMU non va alto esattamente in corrispondenza del fronte di salita del
clock, ma lo fa con un ritardo di 5 ns. Lo stesso ritardo è mantenuto nelle commutazioni di
LINE_VALDI_EMU.
4.4.2 Circuito di emulazione: versione 2
La seconda versione del circuito di emulazione del sensore MT9V011 (Figura 4.37)
prevede, essenzialmente, un contatore (counter) e l’elemento di emulazione vero e proprio,
vale a dire una nuova versione del sensorEmulator. I segnali d’ingresso e d’uscita del
circuito sono analoghi a quelli già visti nel sottoparagrafo 4.4.1 per la prima versione, fatta
eccezione per l’ulteriore segnale END_COUNT_ROW, il quale permette di stabilire
quando è terminata la scansione della matrice di pixel validi (alto quando l’ultima riga
valida è stata letta, basso altrimenti).
Figura 4.37 Realizzazione circuitale del blocco di emulazione del sensore MT9V011 nella sua seconda
versione
Counter e sensorEmulator sono connessi grazie ad alcuni segnali interni:
− reset -> reset_counter: il sensorEmulator produce in uscita il segnale reset_counter
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
82
che viene quindi riportato in ingresso al counter (reset) per la reinizializzazione del
contatore (attivo alto);
− enable -> enable_counter: il segnale enable_counter in uscita al sensorEmulator
viene riportato in ingresso al counter (enable) per abilitarne (enable alto) o meno
(enable basso) il conteggio;
− end_count_6: quando alto indica che ci si trova nella fase della scansione della
matrice in cui frame_valid = 1 e line_valid = 0, per la quale sono infatti richiesti 6 cicli
di clock in base al manuale del sensore;
− end_count_640: quando alto identifica la fase di lettura di una riga di pixel validi
della matrice. Tale fase richiede 640 cicli di clock;
− end_count_244: quando alto identifica la fase di lettura dei pixel non validi del
blanking orizzontale. Sono necessari 244 cicli di clock;
− end_count_25868: quando alto indica che ci si trova nella fase in cui sia line_valid
che frame_valid sono bassi, vale a dire la fase di scansione dei pixel non validi del
blanking verticale. Richiesti 25868 cicli di clock;
− reset_counter_row, enable_counter_row: non connessi.
La macchina a stati descrittiva del comportamento di questa versione del circuito di
emulazione (Figura 4.38) prevede la stessa codifica degli stati già vista nella prima
versione, con la differenza che in questo caso i segnali che definiscono le transizioni da
uno stato all’altro sono i segnali end_count_6/640/244/25868 e END_COUNT_ROW
appena descritti.
Il counter produce dunque i segnali end_count_6/640/244/25868 che pilotano il
sensorEmulator e definiscono in quale degli stati riportati della macchina a stati ci si trova;
per la generazione dei suddetti segnali, a sua volta il counter viene pilotato dai segnali
enable e reset prodotti dal sensorEmulator. Il counter, inoltre, genera i segnali
end_count_6/640/244/25868 grazie ad una variabile a 15 bit chiamata int_count;
quest’ultima si incrementa con cadenza data dal segnale di clock contando il numero di
cicli di clock trascorsi, e determinando in questo modo quale dei segnali
end_count_6/640/244/25868 viene portato alto. Il conteggio è abilitato soltanto quando
enable = 1.
Per verificare il corretto funzionamento del blocco di emulazione descritto, è stato
realizzato un testbench che impone il seguente andamento ai segnali d’ingresso:
− PIXCLK: segnale di clock con periodo di 74074 ns;
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
83
− START_SEQ: inizialmente basso, viene mandato alto a 501 ns per 500 ns. A
6002501 ns si alza nuovamente per avviare una seconda scansione della matrice;
− STOP_SEQ: si alza a 6001001 ns per 500 ns, interrompendo la scansione in corso;
− END_COUNT_ROW: inizialmente basso, commuta a 4001001 ns, ad indicare che è
stata scansionata l’ultima riga valida;
Figura 4.38 Macchina a stati del circuito di emulazione del sensore MT9V011 nella sua seconda versione
La durata della simulazione è stata scelta pari a 8 ms per osservare tutte le transizioni. Il
risultato della simulazione behavioral (Figura 5.4) testimonia il corretto funzionamento del
circuito come emulatore del sensore MT9V011.
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
84
Figura 4.39 Seconda versione del circuito di emulazione: simulazione behavioral
In analogia con l’approccio finora adottato è utile analizzare nel dettaglio le singole
transizioni. In particolare: a seguito della prima transizione del segnale START_SEQ,
FRAME_VALID_EMU sale in corrispondenza del fronte di salita del clock
immediatamente successivo, mentre LINE_VALID_EMU commuta 6 cicli di clock dopo
(Figura 4.40). A questo punto, in corrispondenza del successivo fronte di salita del clock,
DOUT_EMU inizia a commutare ad ogni periodo di clock, fintantoché
LINE_VALID_EMU resta alto. LINE_VALID_EMU resta alto per tutto il tempo
necessario alla scansione di una riga valida, vale a dire 640 cicli di clock; tra la scansione
di una riga valida e l’altra LINE_VALID_EMU va basso per 244 cicli di clock, necessari
per il blanking orizzontale. In tutte queste fasi frame_valid resta alto.
Figura 4.40 Comportamento di FRAME_VALID_EMU, LINE_VALID_EMU e DOUT_EMU, quando
START_SEQ interviene. Seconda versione del circuito di emulazione
Quando END_COUNT_ROW va alto la scansione della matrice termina; ultimata la
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
85
lettura dell’ultima riga valida LINE_VALID_EMU va basso, e 6 cicli di clock dopo
commuta anche FRAME_VALID_EMU (Figura 4.41).
Figura 4.41 Transizione da 0 a 1 di END_COUNT_ROW: scansione terminata. Seconda versione del
circuito di emulazione
Dopo 25868 cicli di clock in cui FRAME_VALID_EMU resta a zero per la scansione del
blanking verticale, riparte una nuova scansione della matrice. La lettura viene interrotta
dalla transizione da basso a alto del segnale STOP_SEQ (Figura 4.42): al successivo fronte
di salita del clock, infatti, sia FRAME_VALID_EMU che LINE_VALID_EMU tornano
bassi. L’inizio di una nuova scansione è infine forzato mandando ancora alto
START_SEQ. Come ci si aspetta, ancora una volta, LINE_VALID_EMU sale con 6 cicli
di clock di ritardo rispetto a FRAME_VALID_EMU.
Figura 4.42 Intervento di STOP_SEQ nel corso di un frame e successivo nuovo intervento di START_SEQ.
Seconda versione del circuito di emulazione
Circuito di elaborazione digitale e di emulazione del funzionamento del sensore Capitolo 4
86
Le simulazioni post-sintesi e timing (Figura 4.43) confermano il corretto comportamento
riscontrato con la behavioral, consentendo, come già visto, di fare ulteriori considerazioni
sui reali ritardi necessariamente presenti nel circuito.
Figura 4.43 Seconda versione del circuito di emulazione: simulazione timing
Terminata la scansione della matrice di pixel validi LINE_VALID_EMU e
FRAME_VALID_EMU tornano bassi con il consueto ritardo reciproco di 6 cicli di clock,
ma le transizioni non avvengono simultaneamente al fronte di salita del clock, bensì dopo
5 ns. Tale ritardo è ben visibile eseguendo uno zoom della simulazione complessiva, come
mostrato in Figura 4.44.
Figura 4.44 Ritardo tra il fronte di salita del clock e la transizione di LINE_VALID_EMU. Seconda versione
del circuito di emulazione
Al circuito di emulazione costituito dal counter e dal sensorEmulator vanno poi
aggiunti, anche in questa seconda versione, i due sincronizzatori MealySinc.
Capitolo 5
Verifica del circuito di elaborazione
Il Capitolo 4 ha presentato l’analisi dei singoli blocchi circuitali funzionali
all’implementazione della logica per il controllo del sensore di immagine. In questo
Capitolo verranno valutate le prestazioni complessive del circuito realizzato su CPLD. A
tale scopo sono stati utilizzati due testbench, che valutano separatamente il caso in cui sia
abilitato il circuito di emulazione del sensore, e quello in cui siano prelevati i reali segnali
prodotti dal sensore MT9V011. Nel primo caso, illustrato nel Paragrafo 5.1, si avrà
EMU_SENSOR_SEL = 1, mentre nel secondo (Paragrafo 5.2) EMU_SENSOR_SEL = 0.
Per ciascuna delle due condizioni verranno considerate entrambe le versioni del circuito di
emulazione per la valutazione dei risultati complessivi. In attesa della realizzazione della
scheda che ospita il CPLD il corretto funzionamento del circuito implementato è stato,
inoltre, verificato mappando la logica progettata su di un dispositivo programmabile di tipo
FPGA.
5.1 EMU_SENSOR_SEL = 1
Il circuito complessivo realizzato su CPLD nel caso in cui sia previsto il circuito di
emulazione nella sua prima versione, è riportato in Figura 5.1.
In questo caso il testbench prevede
− START_SEQ: inizialmente basso, va alto tra 450 e 1050 ns;
− STOP_SEQ: viene chiamato durante la scansione del secondo frame, per 500 ns;
− RESET_SINCRO: inizialmente basso, va alto a 50 ns;
− FRAME_VALID_S: fisso a 0, visto che interessa valutare l’emulatore;
Ver
ific
a de
l cir
cuit
o di
ela
bora
zion
e
C
apit
olo
5
88
F
igu
ra 5
.1 R
eali
zzaz
ione
cir
cuit
ale
del c
ircu
ito
com
ples
sivo
rea
lizz
ato
su C
PL
D c
he p
reve
de la
pri
ma
vers
ione
del
cir
cuit
o di
em
ulaz
ione
Verifica del circuito di elaborazione Capitolo 5
89
− LINE_VALID_S: fisso a 0, visto che interessa valutare l’emulatore;
− DOUT_S: sequenza di 0, visto che interessa valutare l’emulatore;
− RESET_COUNTER: viene chiamato tra il primo e secondo frame per resettare il
contatore, attivo alto;
− MAN_THR: soglia su 10 bit fissa a 0000111100;
con un tempo di simulazione pari a 9 ms. Le simulazioni behavioral (Figura 5.2), post-
sintesi e timing mostrano il corretto funzionamento del circuito nella modalità selezionata.
Figura 5.2 Circuito di elaborazione complessivo, prima versione del circuito di emulazione,
EMU_SENSOR_SELECT = 1: simulazione behavioral
I segnali FRAME_VALID_MICRO e LINE_VALID_MON riportano in uscita il
frame_valid e il line_valid generati dal sensorEmulator, ad indicare che i multiplexer
rispondono correttamente al segnale di controllo EMU_SENSOR_SEL. Quando, fra il
primo e il secondo frame, RESET_COUNTER va alto, il contatore viene istantaneamente
resettato, e il conteggio riparte da zero (banco di 14 zeri). Per quanto concerne l’analisi
delle singole transizioni, la trattazione, a livello logico, è analoga a quella già condotta nel
sottoparagrafo 4.4.1 per il blocco di emulazione preso singolarmente. Nel caso sotto
esame, però, le informazioni sui ritardi tengono conto degli elementi circuitali aggiunti.
Nel dettaglio: FRAME_VALID_MICRO sale, a seguito della commutazione di
START_SEQ, con un ritardo di 12 ns rispetto al fronte di salita del clock (Figura 5.3). Lo
stesso ritardo rispetto al fronte di salita del clock, viene mantenuto sia nelle transizioni di
LINE_VALID_MON, sia in quelle di DOUT_MON, che inizia a commutare al fronte di
salita del clock successivo alla commutazione di LINE_VALID_MON. Anche l’inizio del
conteggio del numero di pixel sopra soglia quando il dato diventa maggiore o uguale alla
Verifica del circuito di elaborazione Capitolo 5
90
soglia mantiene il ritardo di 12 ns. OUT_COMP_MON e OUT_AND_MON hanno una
transizione da basso ad alto 7.8 ns dopo la commutazione di DOUT_MON al presentarsi di
un dato maggiore della soglia (Figura 5.4).
Figura 5.3 Ritardo rispetto al fronte di salita del clock con cui sale FRAME_VALID_MICRO
Figura 5.4 Ritardo tra la commutazione di OUT_AND_MONITOR, e la transizione di DOUT al dato
maggiore della soglia
Tale ritardo viene mantenuto anche quando i due segnali tornano bassi dopo che
LINE_VALID_MON è andato a zero. Quando RESET_COUNTER va alto tra un frame e
l’altro per il reset del contatore, l’azzeramento del conteggio avviene con un ritardo di
10 ns rispetto al fronte di salita del reset.
Si consideri ora il caso in cui il circuito di emulazione introdotto nel CPLD sia quello
relativo alla seconda versione illustrata. Il circuito complessivo su CPLD è riportato in
Figura 5.5.
Ver
ific
a de
l cir
cuit
o di
ela
bora
zion
e
C
apit
olo
5
91
Fig
ura
5.5
Rea
lizz
azio
ne c
ircu
ital
e de
l cir
cuit
o co
mpl
essi
vo r
eali
zzat
o su
CP
LD
che
pre
vede
la s
econ
da v
ersi
one
del c
ircu
ito
di e
mul
azio
ne
Verifica del circuito di elaborazione Capitolo 5
92
Il testbench impone lo stesso andamento dei segnali d’ingresso di quello già trattato in
questo paragrafo per la configurazione in Figura 5.1, fatta eccezione per il segnale
END_COUNT_ROW prima non presente, che, per semplicità, viene mantenuto fisso a 0.
In questo modo la scansione della matrice non viene interrotta, in quanto non viene
comunicata l’avvenuta lettura dell’ultima riga di pixel validi. Eseguendo la simulazione su
8 ms, sia la behavioral (Figura 5.6), che la post-sintesi e la timing, testimoniano un
comportamento in accordo con la precedente versione.
Figura 5.6 Circuito di elaborazione complessivo, seconda versione del circuito di emulazione,
EMU_SENSOR_SELECT = 1: simulazione behavioral
Quando START_SEQ va alto, infatti, l’emulatore è abilitato, e i segnali
FRAME_VALID_MICRO e LINE_VALID_MON riportano correttamente in uscita
FRAME_VALID_EMU e LINE_VALID_EMU. L’intervento di STOP_SEQ, viceversa,
disabilita l’emulatore, e i segnali FRAME_VALID_MICRO, LINE_VALID_MON,
OUT_AND_MON e OUT_COMP_MON tornano a 0 al successivo fronte di salita del
clock. Il conteggio del numero di cicli di clock necessario per ciascuna delle fasi nel corso
della scansione della matrice, fornisce risultati in accordo con la descrizione
precedentemente fornita della macchina a stati dell’emulatore. Per quanto riguarda l’analisi
dei ritardi, anche da questo punto di vista si confermano i risultati già ottenuti.
FRAME_VALID_MICRO e LINE_VALID_MON mantengono, infatti, un ritardo nelle
transizioni di 12 ns rispetto al fronte di salita del clock (Figura 5.7). OUT_AND_MON e
OUT_COMP_MON transiscono da 0 a 1 con un ritardo di 7.8 ns rispetto all’istante in cui
DOUT_MON commuta al dato maggiore della soglia (Figura 5.8).
Verifica del circuito di elaborazione Capitolo 5
93
Figura 5.7 Ritardo tra LINE_VALID_MON e fronte di salita del clock
Figura 5.8 Ritardo tra la transizione da 0 a 1 di OUT_AND_MON e OUT_COMP_MON, e quella di
DOUT_MON al dato maggiore della soglia
5.2 EMU_SENSOR_SEL = 0
Si faccia ancora riferimento al circuito in Figura 5.1, ma questa volta si supponga che
i segnali siano prelevati dal sensore. Il testbench per la valutazione delle prestazioni
prevede l’andamento di seguito descritto per i segnali d’ingresso.
− START_SEQ: fisso a zero (il circuito di emulazione non è mai abilitato);
− STOP_SEQ: fisso a zero;
− RESET_SINCRO: attivo basso, è mantenuto fisso a 1;
− FRAME_VALID_S: fisso a 1 (è in corso la scansione di un frame);
− LINE_VALID_S: è mandato alto a 93.111 ns, e torna basso a 1856.85 ns;
− RESET_COUNTER: attivo alto, è mantenuto a zero (il contatore non viene resettato);
Verifica del circuito di elaborazione Capitolo 5
94
− DOUT_S: sequenza di dati su 10 bit in uscita al sensore che vengono importati da un
file dout.txt nel testbench. I dati commutano alla frequenza del PIXCLK;
− MAN_THR: soglia impostata manualmente e pari a 0000111100.
La simulazione è fatta su 2 µs (Figura 5.9). Come ci si aspetta, LINE_VALID_MON
replica l’andamento di LINE_VALID_S, a conferma del corretto funzionamento del
multiplexer preposto alla selezione del segnale proveniente, in tal caso, dal sensore.
Figura 5.9 Circuito complessivo su CPLD, prima versione del circuito di emulazione
EMU_SENSOR_SEL = 0: simulazione behavioral
In modo analogo DOUT_MON replica DOUT_S. OUT_COMP_MON e
OUT_AND_MON si alzano nell’istante in cui il dato diventa maggiore o uguale alla soglia
impostata; il contatore inizia quindi a conteggiare il numero di pixel sopra soglia al
successivo fronte di salita del clock. Quando la soglia torna maggiore del dato esaminato
OUT_COMP_MON e OUT_AND_MON tornano bassi, mentre il contatore mantiene il
valore della commutazione immediatamente precedente. Quando, infine, LINE_VALID_S
torna basso, anche se il dato continua ad essere maggiore della soglia, la porta AND
restituisce OUT_AND_MON = 0, e il contatore non incrementa più il numero di pixel
conteggiati. La simulazione timing conferma l’andamento complessivo ottenuto con la
behavioral e la post-sintesi, ma, ancora una volta, aggiunge informazioni sui ritardi
temporali. Il segnale LINE_VALID_MON replica, infatti, LINE_VALID_S, ma con un
ritardo di 9 ns, mentre DOUT_S inizia a commutare con un ritardo di 5 ns rispetto al fronte
di salita di LINE_VALID_S. DOUT_MON replica in uscita la sequenza di dati DOUT_S
con un ritardo di 9 ns (Figura 5.10). OUT_AND_MON e OUT_COMP_MON salgono 3 ns
dopo il fronte di salita del clock (Figura 5.11), e, quando LINE_VALID_S torna basso,
OUT_COMP_MON scende con un ritardo di 9.8 ns (Figura 5.12).
Verifica del circuito di elaborazione Capitolo 5
95
Figura 5.10 Analisi dei ritardi tra LINE_VALID_S e LINE_VALID_MON, e tra DOUT_S e DOUT_MON
Figura 5.11 Ritardo di OUT_AND_MON e OUT_COMP_MON rispetto al fronte di salita del clock
Figura 5.12 Ritardo tra il fronte di discesa di LINE_VALID_S e OUT_AND_MON
Essendo EMU_SENSOR_SEL = 0 l’emulatore non è abilitato, pertanto il
coportamento del circuito in Figura 5.5 (in cui è presente la seconda versione del circuito
di emulazione) è del tutto analogo a quello ora esaminato. Si riporta per completezza la
Verifica del circuito di elaborazione Capitolo 5
96
simulazione behavioral in questo secondo caso (Figura 5.13), ma, per quanto detto, non si
procede oltre con l’analisi dei risultati.
Figura 5.13 Circuito complessivo su CPLD, seconda versione del circuito di emulazione
EMU_SENSOR_SEL = 0: simulazione behavioral
5.3 Occupazione delle risorse logiche su CPLD
Il Paragrafo 5.1 ha messo in evidenza come l’impiego della prima o della seconda
versione del circuito di emulazione non influisca sui ritardi finali che caratterizzano il
circuito. Lo studio del circuito complessivo implementato si conclude ora con l’analisi
delle risorse logiche occupate sul CPLD da ciascuna delle due versione di emulatore
progettate. La Tabella 5.1 riassume il grado di occupazione e la percentuale di utilizzo di
alcune delle principali risorse relative ad un CPLD (si faccia riferimento all’Appendice A
per le informazioni relative all’architettura del CPLD Altera MAX7000).
Tabella 5.1
Risorse occupate sul CPLD nei due differenti casi di impiego della prima o della seconda versione del circuito di emulazione
Risorse CPLD Emulatore (versione I) Emulatore (versione II)
Celle logiche 138/256 (54%) 109/256 (43%)
Registri 68/256 (27%) 62/256 (24%) Pin I/O 60/164 (37%) 61/164 (37%) Fan-out totale 1736 1182 Fan-out medio 8.15 6.72 Segnali globali 2 2
Come si può notare, nel caso di impiego della prima versione del circuito di emulazione, il
fun-out medio e complessivo risulta maggiore rispetto al caso in cui si scelga la seconda
Verifica del circuito di elaborazione Capitolo 5
97
versione. Quest’ultima presenta un pin di I/O (input/output) in più, associato al segnale
aggiuntivo END_COUNT_ROW. Per quanto riguarda, invece, il numero di macrocelle e di
registri occupati, l’utilizzo della prima versione richiede 29 macrocelle e 6 registri in più
rispetto all’impiego della seconda. La Tabella 5.2 mostra il dettaglio delle macrocelle
occupate dalle singole istanze che compongono ciascun circuito. Il maggior numero di
macrocelle è dunque imputabile al sensorEmulator, che, nella sua seconda versione,
richiede soltanto 28 macrocelle, contro le 76 occupate dalla prima. Complessivamente,
pertanto, la prima versione del circuito di emulazione, comprensivo dei due Mealy_Sinc e
del sensorEmulator, occupa 78 macrocelle, mentre la seconda versione, che si compone
dei due Mealy_Sinc, del nuovo sensorEmulator e del counter, ne occupa soltanto 49.
Tabella 5.2 Dettaglio delle macrocelle occupate dalle singole istanze che compongono il cicuito complessivo
nei due casi di utlizzo della prima e della seconda versione del circuito di emulazione
Nome istanza Emulatore (versione I) Emulatore (versione II)
Mealy_Sinc 1 1 Mealy_Sinc 1 1 counter14bit 28 28 lpm_mux0 1 1 lpm_mux0 2 2 lpm_mux1 10 10 sensorEmulator 76 28 wordComparator10bit 17 17 Counter - 19
5.4 Modello temporale dei CPLD MAX 7000 di Altera per il calcolo
dei ritardi
L’architettura generale dei CPLD (Appendice A) rende possibile la predizione dei
ritardi prima ancora che questi vengano ricavati con la simulazione. Pertanto, prima di
programmare un dispositivo, è possibile determinare i ritardi nel progetto nel caso
peggiore. I ritardi temporali in un CPLD Altera della famiglia MAX 7000 sono predicibili
sfruttando il modello temporale fornito dalla casa costruttrice nel manuale della serie
([41]), insieme ai parametri temporali riportati per ciascun dispositivo (MAX 7000S nel
caso in questione).
All’interno di un dispositivo i ritardi temporali cui contribuiscono i singoli elementi
circuitali vengono chiamati parametri temporali interni, forniti dal costruttore per il
dispositivo di interesse. I parametri temporali esterni, invece, rappresentano i ritardi pin-
Verifica del circuito di elaborazione Capitolo 5
98
to-pin, ognuno dei quali consiste di una combinazione di differenti parametri temporali
interni. L’elenco dettagliato dei parametri (interni ed esterni) ed il rispettivo significato è
riportato in [42], mentre il corrispondente valore numerico per ciacun componente della
famiglia MAX 7000 è rintracciabile nel manuale della serie [41]. Tutti i parametri sono
forniti con riferimento al caso peggiore.
Il modello temporale per la predizione dei ritardi nei dispositivi Altera è un
diagramma a blocchi semplificato che illustra la propagazione dei ritardi nel circuito,
mostrato in Figura 5.14. Per il calcolo dei ritardi di propagazione attraverso il dispositivo è
possibile seguire diversi percorsi che implementino la logica desiderata, sommando lungo
il cammino i corrispondenti parametri temporali interni.
Figura 5.14 Il modello temporale per il calcolo dei tardi nei CPLD Altera [42]
Come esempio di calcolo si faccia riferimento alla versione del sincronizzatore
implementata utilizzando 2 FF (Figura 4.27), e si supponga di voler calcolare il Clock-to-
Output Delay (tCO).
Il tCO è definito come il tempo necessario per ottenere un segnale valido in
corrispondenza del pin d’uscita di un registro a seguito della transizione del clock che
temporizza il registro stesso [43]. Nel caso sotto esame esso rappresenta pertanto il ritardo
tra il primo fronte di salita del clock successivo alla transizione dell’ingresso asincrono, e
la transizione da 0 a 1 dell’uscita sincrona, pari a 2.8 ns sulla base delle simulazioni
eseguite. Con riferimento allo schema a blocchi di Figura 5.14, in base alle informazioni in
[42] e al circuito in Figura 5.15, andremo a stimare il tCO utilizzando l’espressione (4.2).
Verifica del circuito di elaborazione Capitolo 5
99
Figura 5.15 Modello circuitale per il calcolo di tCO [42]
Pertanto
ODRDGLOBINCO ttttt +++= (5.2)
dove tIN rappresenta il tempo necessario ai pin dedicati per pilotare gli ingressi, tGLOB il
ritardo che intercorre fra i pin d’ingresso e ogni funzione di controllo globale in una
macrocella, tRD il ritardo associato al registro, e tOD il ritardo legato al buffer d’uscita e alle
pad. Lo Speed Grade impostato nel progetto è pari a 10; pertanto, considerando i
corrispondenti valori per i parametri temporali interni mensionati, relativamente alla
famiglia di CPLD EPM7256S ([41]) d’interesse, si ottiene un ritardo stimato di 5 ns. È da
ricordare che tale risultato rappresenta una stima di caso peggiore.
Lo stesso ragionamento può essere adotatto per stimare il ritardo complessivo
attraverso il circuito considerato relativamente all’uscita. Si faccia ancora riferimento alla
versione con 2 FF del sincronizzatore. Sulla base delle simulazioni il ritardo tra la prima
commutazione da basso a alto dell’ingresso asincrono e quella dell’uscita sincrona vale
34.8 ns. Una volta stabilito un percorso valido tra l’ingresso e l’uscita, grazie al diagramma
in Figura 5.14, si procede sommando i parametri temporali interni che si incontrano lungo
il cammino stabilito. Nel caso in questione, in particolare, partendo dal blocco a sinistra
Input Delay si passa per i blocchi Global Control Delay, Global Control Delay, Register
Delay, e Output Delay, quindi, per tener conto dei ritardi associati alla presenza del
secondo FF, al blocco I/O Delay che è connesso al PIA Delay e si segue nuovamente il
percorso ora specificato. Pertanto
nstttttttttttttt ODRDLADPIAIOODRDLACPIAIOODRDGLOBIN 5.36=+++++++++++++
(5.3)
e 36.5 ns rappresenta il ritardo complessivo stimato per l’uscita asincrona nel caso
peggiore. TPIA indica il ritardo associato alla matrice di interconnessione programmabile
Verifica del circuito di elaborazione Capitolo 5
100
(Programmable Interconnection Array, PIA. Si rimanda all’Appendice A per i dettagli
sull’architettura dei CPLD).
In modo analogo si può stimare il ritardo complessivo nella versione del
sincronizzatore in cui si utilizzano 3 FF (Figura 4.29), per la quale le simulazioni
forniscono circa 60 ns. Tenendo conto della presenza di un ulteriore FF si ha:
nstttttttt
tttttttttttt
ODRDGLOBPIAIOODRDGLOB
PIAIOODRDICPIAIOODCOMBLADPIAIN
5.49=++++++++
++++++++++++
(5.4)
Ancora una volta 49.5 ns rappresenta il ritardo stimato nel caso peggiore.
5.5 Verifica sperimentale su FPGA
In attesa che la scheda che ospiterà il CPLD e le connessione necessarie per
interfacciarsi con il sensore e il CC430 vengano realizzati, la logica implementata è stata
testata sull’FPGA di Xilinx Spartan 3 XC3S1000. In Figura 5.16 è mostrata la Starter Kit
Board utilizzata vista dall’alto. Per il ruolo svolto da ciascuno dei componenti
contrassegnato da un numero si rimanda al manuale della scheda ([44]).
Figura 5.16 Starter Kit Board dell’FPGA Spartan 3 di Xilinx
Verifica del circuito di elaborazione Capitolo 5
101
I file VHDL precedentemente realizzati in Quartus II per il CPLD sono stati pertanto
importati nel software Xilinx ISE, in modo da implementare la stessa logica su FPGA, ed è
stata eseguita un’opportuna riassegnazione dei pin. L’obiettivo primario è stato quello di
verificare la corretta comunicazione tra il circuito di elaborazione (l’FPGA in questo caso)
che svolge l’operazione di confronto tra i dati forniti dal sensore e la soglia stabilita, il
microcontrollore CC430 e il PC remoto, tramite il protocollo TI SimpliciTI. Il test è stato
condotto in assenza del sensore reale, ottenendo pertanto i dati di 10 bit dal blocco di
emulazione del sensore implementato sull’FPGA. Per testare la correttezza della logica è
stato inoltre implementato un ulteriore blocco preposto all’emulazione del
microcontrollore (EMU_MICRO in Figura 5.17).
Figura 5.17 Schema a blocchi del circuito di emulazione del microcontrollore CC430
Il blocco di emulazione del microcontrollore consente di:
o generare il segnale di reset (RESET_COUNT_MICRO) del contatore a 14 bit che
fornisce il numero di pixel sopra soglia (NUMPIX_MICRO), grazie al segnale
d’ingresso FRAME_VALID. Tale segnale resta alto per tutta la durata di un frame ed
è basso tra un frame e l’altro. Il contatore viene resettato tra un frame e il successivo
mandando alto RESET_COUNT_MICRO. Quando il CC430 è connesso, la
transizione da alto a basso di FRAME_VALID provoca la richiesta di un interrupt al
microcontrollore per ricevere il numero di pixel sopra soglia e inviare il reset al
contatore a 14 bit. Si ricorda che l’emulatore del sensore prevede la scansione
soltanto di una parte della reale matrice di pixel (62 righe) tale da avere
FRAME_VALID alto per il doppio del tempo in cui è basso. L’emulatore, inoltre,
genera i dati tramite un contatore a 10 bit, il quale viene incrementato solo in
corrispondenza di un pixel valido della matrice (LINE_VALID alto) e viene resettato
tra un frame e l’altro per ripartire da zero;
o visualizzare il numero di pixel sopra soglia (sequenza di 14 bit) sui 4 display a 7
Verifica del circuito di elaborazione Capitolo 5
102
segmenti presenti sulla Starter Kit Board. Per lo scopo è necessario che il circuito di
emulazione del microcontrollore generi i segnali DISP (a 6 bit) e AN (a 4 bit) come
segnali di comando dei display (i display sono contrassegnati dal numero 10 in
Figura 5.16, mentre i principi di funzionamento sono illustrati in [44]). La frequenza
di refresh di ciascun display è compresa fra 60 e 120 Hz; è pertanto necessaria una
frequenza di pilotaggio pari almeno a 4 volte un valore compreso fra il limite
inferiore e superiore per una corretta visualizzazione. I 50 MHz della scheda sono
stati opportunamente ridotti tramite un divisore di frequenza a circa 380 Hz.
Il resto della circuiteria implementata sulla scheda è stata pilotata con un clock a
12.5 MHz, ottenuto implementando un ulteriore divisore di frequenza che dividesse la
frequenza fornita dall’oscillatore al quarzo per 4, in modo da avvicinarsi ai 13.5 MHz del
CPLD.
Si elencano ora i test eseguiti e i risultati ottenuti per ciascuno di essi.
− Test 1
Prima di collegare il CC430 è stato verificato che i display visualizzassero correttamente le
cifre desiderate imponendo degli ingressi statici (si tenga conto del fatto che i display
visualizzano valori in esadecimale). Nel dettaglio gli 8 switch disponibili sulla scheda
(numero 11 in Figura 5.16) sono stati sfruttati per impostare manualmente 8 dei 14 bit da
visualizzare, mentre i restanti 7 più significativi sono stati forzati a 0. I 4 display sono in
grado di fornire al massimo il numero FFFF (65535 in decimale), mentre con gli switch a
disposizione si arriva a 255. Pertanto ciò che ci si attende è che i due display relativi agli 8
bit più significativi rimangano a 0, mentre gli altri due riportino un numero compreso tra 0
e 255 (FF in esadecimale).
− Test 2
Un secondo test prevede il collegamento del CC430 all’FPGA tramite la scheda di
interfaccia, ed ancora l’utilizzo di ingressi statici, ma generati in modo differente dal
precedente test. L’idea è stata quella di utilizzare uno shift register per generare un segnale
di 14 bit da inviare al microcontrollore fatto da 13 zeri e da un uno che si propaga.
L’evento che fa propagare l’uno è una transizione da alto a basso di FRAME_VALID, che
viene forzata manualmente tramite un pulsante sulla scheda dell’FPGA. Una volta stabilita
la connessione fra il CC430 e il CC1111, il programma di interfaccia con l’utente caricato
sul PC consente di avviare la ricezione dei dati. Ciò che ci si aspetta è una sequenza di
potenze del 2 da 1 a 8192, a conferma che tutti i collegamenti funzionano correttamente.
− Test 3
Verifica del circuito di elaborazione Capitolo 5
103
Dagli ingressi statici si è passati quindi alla trasmissione dei dati generati dall’emulatore
del sensore. La soglia viene impostata tramite gli 8 switch, forzando i due bit meno
significativi restanti a 0 (la soglia arriva pertanto ad un massimo di 1020), mentre i segnali
di START e STOP che abilitano o disabilitano l’emulatore del sensore sono attivabili
manualmente. L’emulatore del sensore genera i dati tramite un contatore a 10 bit, e i valori
assunti vanno pertanto da 0 a 1023. Fissata la soglia, il numero di pixel sopra soglia ad
ogni frame deve essere lo stesso. In una prima fase è stato prolungato il tempo per il quale
FRAME_VALID resta basso a circa 10 s (nel sensore reale tale intervallo vale circa 2 ms)
in modo tale da avere sufficiente tempo per stabilizzare il numero di pixel sopra soglia sui
display, lasciando che l’emulatore del microcontrollore si occupasse della generazione del
segnale di reset del contatore. In queste condizioni è possibile fare un confronto tra il
numero sui display e quello ricevuto dal PC remoto. Successivamente sono state ristabilite
le tempistiche originarie, lasciando che fosse il CC430 a resettare il contatore fra un frame
e l’altro. In questo modo non è possibile effettuare il confronto con i display a causa dei
tempi troppo accelerati, mentre al PC remoto arriva un dato ogni circa 10 ms.
L’emulatore del sensore genera dati di 10 bit incrementando un contatore in
corrispondenza dei pixel validi, vale a dire quando LINE_VALID è alto. La durata di una
riga valida è di 640 cicli di clock, e il totale di righe scansionate è 62; pertanto il numero di
pixel scansionati in un frame è pari a 39680. Il contatore, però, essendo a 10 bit non può
contare fino a tale valore, ma arriverà di volta in volta a 1023 e ricomincerà da capo. Ne
deriva la necessità di un algoritmo che consenta, fissata la soglia, di predire il numero di
pixel sopra soglia che ci si aspetta di ottenere. L’algoritmo è di seguito descritto:
( ) ( )( ) ( ) ( )TTTNUMPIXTSe
TTNUMPIXTSe
−+−=⇒<
−=⇒≥
768102438768
102438768 (5.5)
, dove T è la soglia impostata e NUMPIX è il numero di pixel sopra soglia. Va tenuto
presente, inoltre, il fatto che la soglia, per i test fatti, arriva fino a 1020. Ne segue che il
numero di pixel che ci si aspetta di ottenere, fissata la soglia al suo minimo e massimo
valore, vale rispettivamente:
• T = 0 (soglia minima) ⇒ NUMPIX(T)=39680
• T = 1020 (soglia massima) ⇒ NUMPIX(T)=152
Al fine di ottenere risultati attendibili dall’esecuzione dei test elencati, è necessario
Verifica del circuito di elaborazione Capitolo 5
104
seguire i passi di un’opportuna procedura nell’ordine di seguito riportato. La procedura fa
riferimento al test numero 3.
Collegare la Spartan 3 al CC430 tramite la schedina d’interfacciamento e
alimentare l’FPGA.
Programmare l’FPGA: dal software Xilinx ISE, una volta generato il file di
programmazione (con estensione .bit), fare doppio click su ‘Manage
Configuration Project (iMPACT)’ nella finestra dei processi per aprire il
corrispondente pacchetto software. Da qui seguire i passi: ‘File’ -> ‘New
Project’ -> selezionare ‘Configure devices using boundary scan (JTAG)’,
quindi ‘Ok’ -> selezionare il file .bit generato precedentemente e saltare
(‘Bypass’) la parte relativa alla programmazione della PROM -> click con il
tasto destro sul dispositivo, quindi ‘Program’.
Una volta collegata l’alimentazione il led sulla scheda del CC430 inizia a
lampeggiare, ad indicare che è in cerca di una connessione. Collegare il
CC1111 al PC in modo tale da stabilire la connessione; quando ciò avviene il
led smette di lampeggiare. (N.B. Il sistema al momento non funziona
correttamente se il CC1111 viene connesso al PC prima).
Dal PC lanciare il programma di interfaccia grafica e selezionare il file in cui si
intendono salvare i risultati del test corrente. Ciccare ‘START’ per avviare la
ricezione dei dati.
A questo punto sulla scheda dell’FPGA: resettare la scheda premendo il
pulsante collegato al ‘reset’ globale (L13), quindi per avviare il conteggio dei
pixel sopra soglia pigiare lo ‘start’ (M13). Per disabilitare l’emulatore del
sensore e terminare il conteggio premere ‘stop’ (M14). Per impostare la soglia
muovere gli switch (il pin F12 corrisponde al bit meno significativo, mentre il
K12 a quello più significativo).
Dal PC, per terminare la ricezione dei dati, cliccare ‘STOP’ nel programma di
interfaccia grafica. A questo punto è possibile aprire il file contenente la lista e
le tempistiche dei dati ricevuti.
Per programmare il CC430 viene utilizzato il software IAR Embedded Workbench. I passi
da eseguire sono: dal menu ‘Project’ -> ‘Download and Debug’, quindi dal menu ‘Debug’
-> ‘Go’.
Conclusioni
Il massiccio impiego delle radiazioni ionizzanti in applicazioni mediche si
accompagna al crescente interesse verso le problematiche associate alla radioprotezione
degli operatori sanitari. Mentre, infatti, il singolo paziente è, in linea generale, soggetto ad
una modesta dose di raggi X, l’operatore è chiamato ad eseguire svariate procedure e
spesso tra loro ravvicinate.
Il progetto RAPID, in cui è coinvolta l’Università degli Studi di Perugia, si pone come
obiettivo la realizzazione di un dosimetro individuale adatto alla rivelazione real time della
radiazione ionizzante, sfruttando un sensore di immagine a matrice di pixel attivi (Active
Pixel Sensor, APS). Il presente lavoro di tesi si è inserito nella progettazione e
realizzazione del circuito preposto al controllo e alla lettura di tale sensore. In particolare,
nell’ambito della mia attività, è stato progettato e verificato il funzionamento del circuito di
elaborazione dei dati su una logica programmabile di tipo CPLD. A tal fine è stato anche
progettato un circuito di emulazione del funzionamento del sensore. Nel dettaglio sono
state implementate due differenti versioni del circuito di emulazione e, per ciascuna di
esse, sono state analizzate le risorse logiche occupate sul CPLD. Le simulazioni
behavioral, post-sintesi e timing, condotte utilizzando i software Quartus II e ModelSim,
hanno dimostrato la correttezza del circuito progettato, consentendo la valutazione dei
ritardi temporali introdotti dai singoli blocchi costitutivi. La verifica sperimentale del
circuito progettato, in attesa della realizzazione della scheda su cui è allocato il CPLD, è
stata realizzata mappando la logica progettata su un dispositivo programmabile di tipo
diverso (ovvero su FPGA) per il quale si disponeva di una scheda di sviluppo. Tale
approccio ha permesso, inoltre, di testare il collegamento tra il circuito di controllo del
sensore, il microcontrollore e il PC remoto, sfruttando l’interfaccia grafica e il protocollo
di trasmissione dati Ti SimpliciTi. I test condotti su FPGA non hanno consentito di
verificare la corretta comunicazione tra il sensore e il circuito di controllo progettato, dato
Verifica del circuito di elaborazione Capitolo 5
106
che al momento non si dispone di una scheda di interfaccia tra il sensore e il dispositivo
FPGA.
Gli sviluppi futuri di tale lavoro riguardano la programmazione e la verifica
sperimentale dei circuiti progettati su CPLD e la verifica della corretta comunicazione tra
tutti i blocchi funzionali del sistema, vale a dire il sensore, la scheda su cui è alloggiato il
CPLD, il microcontrollore CC430, il transceiver CC1111 e il PC remoto.
Appendice A
Architettura di un CPLD commerciale
I dispositivi logici programmabili, o PLD (Programmable Logic Devices) sono stati
introdotti negli anni ’70. Agli inizi (si parla degli anni ‘60) c’era la logica discreta. I
sistemi erano costituiti da molti chip individuali connessi tra loro da un’incredibile quantità
di fili. In queste condizioni risultava difficile modificare il sistema una volta costruito, e,
d’altro canto, trascorso del tempo era altrettanto difficoltoso ricordare il ruolo di un
particolare chip. La fabbricazione richiedeva molto tempo, dato che ogni modifica nel
progetto implicava un nuovo inizio nella realizzazione dei collegamenti, nonché spesso la
costruzione di una nuova PCB (Printed Circuit Board). Questi problemi furono risolti
realizzando una matrice di porte AND e OR non connesse in un chip, che prende il nome
di PLD. Un PLD contiene una matrice di fusibili che possono essere aperti o lasciati chiusi
per connettere gli ingressi alle porte AND (Figura A.1). In questo modo è possibile
programmare il chip per eseguire la funzione logica desiderata.
Figura A.1 Architettura di un PLD [39]
Un seplice PLD era in grado di performare un modesto numero di equazioni logiche (al
massimo circa 20). Non era pertanto possibile implementare un progetto che richiedesse
una logica molto complessa su un singolo PLD, ma risultava necessario connetterne un
certo numero tramite fili. Il passo successivo fu allora quello di costruire chip
programmabili molto più grandi, chiamati CPLD, acronimo di Complex Programmable
Logic Devices, e FPGA, acronimo di Field Programmable Gate Array, consentendo di
Architettura di un CPLD commerciale Appendice A
108
ottenere un sistema completo in un singolo chip.
Un CPLD contiene un banco di PLD i cui ingressi e le cui uscite sonno connessi per
mezzo di una matrice globale di interconnessione (global interconnection matrix in Figura
A.2). Pertanto un CPLD è programmabile a due livelli: è possibile programmare ogni PLD
e quindi programmare le interconnessioni tra i PLD stessi [39].
Figura A.2 Architettura di un CPLD [39]
Sono disponibili in commercio CPLD prodotti da svariate aziende costruttrici. Le più
note sono Altera, AMD (Advance Micro Devices), Lattice, Cypress e Xilinx.
Altera ha sviluppato tre famiglie di chip che rientrano nella categoria dei CPLD:
MAX 5000, MAX 7000 e MAX 9000. La famiglia MAX 7000 è quella più largamente
diffusa (nonché quella utilizzata nel progetto di questa tesi) e rappresenta lo stato dell’arte
in termini di capacità logica e velocità. La sua architettura generale è mostrata in Figura
A.3. Essa comprende una matrice di blocchi chiamati LAB (Logic Array Blocks), e fili di
interconnessione denominati PIA (Programmable Interconnect Array). La PIA consente la
connessione fra qualsiasi ingresso o uscita di LAB differenti. In analogia con quanto
introdotto sui CPLD, l’intero chip può essere visto come una matrice di PLD semplici. I
dispositivi MAX 7000 sono disponibili sia in tecnologia EEPROM, che in EPROM. A
partire dal 1996, inoltre, Altera ha introdotto la serie MAX 7000S, che consente la
programmazione In-System (ISP, In System Programmability). La struttura di un LAB è
mostrata in Figura A.4. Un LAB si compone di due gruppi di 8 macrocelle (a loro volta
osservabili in Figura A.5), ognuna delle quali comprende un certo numero di termini
prodotto programmabili che si collegano ad una porta OR e ad un flip-flop. Il flip-flop può
Global
interconnection
matrix
PLD
PLD
PLD
PLD
I/O
I/O
I/O
I/O
Architettura di un CPLD commerciale Appendice A
109
essere di tipo D, JK, T o SR [40]. Ogni registro programmabile può essere temporizzato in
tre differenti modalità:
- tramite un segnale di clock globale. Tale modalità consente le migliori prestazioni
in termini di velocità del persorso tra clock e pin d’uscita;
- grazie un segnale di clock globale e abilitato da un clock di abilitazione attivo alto.
Tale modalità mantiene il vantaggio al punto precedente legato alla velocità di
collegamento tra clock e uscita, ed in più fornisce un segnale di enable ai flip-flop;
- tramite un clock a matrice implementato con un termine prodotto. In questo modo il
flip-flop può essere temporizzato da segnale provenienti da macrocelle o pin di I/O.
Figura A.3 Architettura della famiglia MAX 7000 dell’Altera [40]
Nei dispositivi EPM7032, EPM7064 e EPM7096 il segnale di clock globale è disponibile
da un pin dedicato (GCLK1). Nei CPLD MAX 7000E e MAX 7000S sono invece
disponibile due segnali di clock globale, ciascuno dei quali può essere vero o negato
(GCLK1 e GCLK2). I pin di I/O di tutti i dispositivi MAX 7000E e MAX 7000S possiedono
inoltre un rapidono accesso ai registri della macrocella, grazie a percorsi dedicati che
consentono di bypassare la PIA e la logica combinatoria.
Il numero di ingressi alla porta OR in una macrocella è variabile; la porta OR può
essere alimentata da alcuni o da tutti i cinque termini prodotto all’interno della macrocella,
e, in aggiunta, può avere fino a quindici termini prodotto extra dalle altre macrocelle nello
stesso LAB. Questa flessibilità rende i LAB della serie MAX 7000 più efficienti in termini di
area del chip occupata, in quanto le tipiche funzioni logiche non necessitano in genere più
di cinque termini prodotto, mentre l’architettura consentirebbe comunque di supportare
funzioni più complesse quando fosse richiesto [40]. Infatti, nonostante, come appena detto,
Architettura di un CPLD commerciale Appendice A
110
la maggior parte delle funzioni logiche siano implementabili con i 5 termini prodotto
disponibili in ciascuna macrocella, Altera fornisce gli strumenti necessari per risolvere
logiche più complesse. Per fornire le risorse logiche mancanti nulla vieta di utilizzare
un’ulteriore macrocella; nonostante ciò le architetture MAX 7000 permettono l’impiego di
aggiuntivi termini prodotto detti expander. Gli expander costituiscono termini prodotto
addizionali per ogni macrocella all’interno di ciascun LAB, e si distinguono in:
- condivisibili (shareable expander), ovvero termini prodotto invertiti che sono
retroazionati nel LAB;
- paralleli (parallel expander), vale a dire termini prodotto “presi in prestito” da
macrocelle adiacenti.
Figura A.4 Architettura di un LAB della famiglia MAX 7000 dell’Altera [40]
In un un CPLD Altera i ritardi temporali sono predicibili. Questa è una caratteristica
che accomuna tutti i CPLD (e che li differenzia ad esempio dall’FPGA), essenzialmente
dovuta al fatto che tutte le connessioni passano necessariamente per la matrice di
interconnessione (PIA), e viaggiano pertanto attraverso il medesimo percorso. Un’empio di
come Altera consenta di stimare i ritardi nel circuito implementato, prima ancora di
verificarli tramite le simulazioni, è stato fornito nel paragrafo 5.4.
Architettura di un CPLD commerciale Appendice A
111
Figura A.5 Architettura di una macrocella in un LAB della serie MAX 7000 [40]
I CPLD MAX 7000S consentono la programmazione In-System tramite uno standard
industriale di interfaccia JTAG a 4 pin. L’architettura di questi dispositivi genera
internamente l’elevata tensione di programmazione richiesta per programmare le celle
EEPROM, consentendo una programmazione In-System con solo una singola tensione di
alimentazione di 5 V. Durante la programmazione i pin di I/O sono di tipo tri-state e
connessi a pull-up in modo da eliminare conflitti sulla scheda [41].
I CPLD Altera MAX 7000 offrono una modalità operativa che consente di ridurre il
consumo di potenza (power saving mode) lungo persorsi definiti dall’utente o sull’intero
dispositivo. Questa caratteristica consente di ridurre la potenza totale dissipata fino al 50%
e oltre, sfruttando il fatto che la maggior parte delle apllicazioni logiche richiedono
soltanto una piccola frazione di gate per operare alla massima frequenza [41].
Bibliografia
[1]. Società Italiana di Radiologia Medica, http://www.radiointerventistica.org/org/index.php.
[2]. C.Bartolozzi, Università di Pisa, http://www.rad.unipi.it/.
[3]. National Council on Radiation Protection and Measurement, NCRP, “Radiation
protection for procedures performed outside the radiology department”, 2000,
Publication 133.
[4]. M. Paolucci et al., “A real time active pixel dosimeter for interventional radiology”,
Radiation Measurements Journal, vol. 46, Issue 11, November 2011, pp 1271-
1276 (ISSN: 1350-4487; doi:10.1016/j.radmeas.2011.07.006).
[5]. M.Pelliccioni, “Fondamenti fisici della Radioprotezione”, Pitagora Editrice,
Bologna, 1989.
[6]. G.F.Knoll, “Radiation detection and measurement”, Wiley Ed., 1979.
[7]. Gruppo di studio per la garanzia di qualità in radiologia diagnostica e interventistica,
“Linee guida per la garanzia di qualità in radiologia diagnostica e interventistica”,
Rapporti ISTISAN 07/26.
[8]. Piccagli, Sghedoni, Tassoni, “Caratterizzzione dell'irraggiamento del personale
medico in chirurgia vascolare”, Atti del V Congresso Nazionale AIFM, Castelvecchio
Pascoli (LU), Italia, 17-20 settembre 2007.
[9]. William R. Leo, “Techniques for Nuclear and Particle Physics Experiments”, Berlin
and Heidelberg: Springer, 1987.
[10]. D.E. Groom (LBNL), and S.R. Klein (LBNL), “Passage of particles through matter”
Revised April 2006 by H. Bichsel (University of Washington).
[11]. Claude Leroy and Pier Giorgio Rancoita, “Principles of radiation interaction in
matter end detection”, World Scientific Publishing, Singapore, 2004.
[12]. International Commission on Radiological Protection, ICRP, “Radiological Protecion
and safety in medicine”, Publication 73.
[13]. National Council on Radiation Protecion ans Measurement, NCRP, “Use of personal
monitor to estimate affective dose equivalent to workers for external exposure to
low-LET radiation”, Publication 122.
[14]. R. F. Laitano, “L’importanza delle misure di dose assorbita in radioprotezione e nelle
applicazioni mediche delle radiazioni ionizzanti”, Istituto Nazionale di Metrologia
delle Radiazioni Ionizzanti, ENEA, Centro Ricerche Casaccia, Roma.
Bibliografia
113
[15]. Servizio Sanitario Regionale, Emilia Romagna, Azienda Unità Sanitaria Locale di
Rimini, “Manuale informativo per i lavoratori”, http://www.ausl.rn.it.
[16]. Environmental Health & Safety Department, Dosimetry, Harvard Campus Services,
http://www.uos.harvard.edu.
[17]. Luigi Enrico Casani, “I rivelatori di radiazioni”, Dispense di Fisica Applicata per il
V° anno del corso sperimentale in Fisica Ambientale e Sanitaria per l’Europa
(F.A.S.E.), Roma, 2004/2005.
[18]. S. Romani, SOGIN, Area Disattivazione Caorso, “Stato dell’arte della dosimetria
personale attiva”, Roma, 23-25 Febbraio 2011.
[19]. V.K. Mathur, “Nuclear Instruments ans Methods in Physics Research Section B:
Beam Interactions with Materials and Atoms”, M. Breese, L.E. Rehn, C. Trautman,
2001.
[20]. S.Chiriotti, M. Ginjaume, E. Vano, R. Sanchez, J.M. Fernandez, M.A. Duch, J.
Sempau, “Performance of several active personal dosemeters in inteventional
radiology and cardiology”, ORAMED 2011.
[21]. Unfors, Unfors EDD-30 Dosimetri personali elettronici.
[22]. Unfors, Sensor Characteristics Unfors EDD-30.
[23]. Philips, Philips DoseAware system.
[24]. E. Mergel, S. Feige, U. Hausler, “Occupational exposure of medical staff due to
diagnostic X-ray examination in veterinary medicine“, Eurosafe.
[25]. I. Clairand, J-M. Bordy, E. Carinou, J. Daures, J. Debroas, M. Denoziere, L.
Donadille, M. Ginjaume, C. Itiè, C. Koukorava, S. Krim, A-L. Lebacq, P. Martin, L.
Struelens, M. Sans-Mercè and F. Vanhavere, “ Use of active personal dosimeters in
interventional radiology/cardiology: tests with continous and pulsed fields in
laboratory conditions – Oramed project“, ORAMED 2011, Barcellona, 20-22
Gennaio.
[26]. ThermoScientific, ThermoScientific EPD-MK2+ Electronic Personal Dosimeter,
Product Specifications.
[27]. RaySafe, RaySafe i2 Real-time radiation insight.
[28]. Xilinx, CPLD, What is a CPLD?, http://www.xilinx.com/cpld.
[29]. Texas Instruments, MSP430 SoC with RF Core.
[30]. Texas Instruments, CC111Fx/CC1110Fx, Low-Power SoC (System-on-Chip), with
MCU, Memory, Sub-1GHz RF Transceiver, and USB Controller.
[31]. B. E. Bayer, Color imaging array, US Patent No. 3971065.
Bibliografia
114
[32]. Wasaam Ahmad, “Altera Quartus II tutorial”, Department of Electrical and
Computer Engineering, University of Illinois, Chicago.
[33]. Altera, Quartus II tutorial, Quartus II introduction.
[34]. Altera, Quartus II tutorial, Compile a design.
[35]. Altera, Quartus II tutorial, Run Timing Analysis.
[36]. Overview: Using the ModelSim Software with the Quartus II Software,
http://www.slac.stanford.edu.
[37]. E. Conti, P. Placidi, M. Biasini, L. Bissi, A. Calandra, B. Checcucci, S. Chiocchini,
R. Cicioni, R. Di Lorenzo, A. C. Dipilato, A. Esposito, M. Paolucci, D. Passeri, A.
Pentiricci, A. Scorzoni, L. Servoli, “Use of a CMOS Image Sensor for an Active
Personal Dosimeter in Interventional Radiology”, accettato per pubblicazione su
IEEE Transactions on Instrumentation and Measurement.
[38]. L. Servoli et al., "CMOS imagers as Dosimetric devices in Interventional Radiology
procedures," ICTR-PHE 2012, Poster session (abstract), February 27-March 2, 2012,
Geneva (Switzerland).
[39]. XESS, What are CPLDs and FPGAs?, http://www.xess.com.
[40]. Stephen Brown and Jonathan Rose, “Architecture of FPGAs and CPLDs: A
Tutorial”, Department of Electrical and Computer Engineering, university of
Toronto.
[41]. Altera, MAX 7000 Programmable Logic Device Family Data Sheet, September 2005,
ver. 6.7.
[42]. Altera, Understanding Max 7000 Timing, Application Note 94, May 1999, ver. 2.
[43]. Altera, Using Timing Analysis in the Quartus II Software, Application Note 123,
January 2001, ver. 2.0.
[44]. Spartan-3 Starter Kit Board User Guide, UG130 (v1.1), May 13, 2005.