Università degli Studi di Trieste
Dipartimento di Ingegneria e Architettura
Corso di Laurea in Ingegneria Elettronica
Curriculum Telecomunicazioni
Tesi di Laurea triennale in Elettronica
STUDIO PER UNA RETE
INTERATTIVA DI SENSORI WIRELESS
PER USO MEDICALE
Laureando:
Goran Paić
Relatore:
Prof. Sergio Carrato
Correlatore:
Luciano Generali
OBIETTIVO DEL PROGETTO
Sviluppo del protocollo di comunicazione
L‘APPLICAZIONE PRINCIPALE DEL
SISTEMA
•Localizzazione del paziente
•Raccolta di dati
COMPOSIZIONE DEL NODO
• la basetta radio
• il microcontrollore
• i circuiti ausiliari
START
Inizializzazione
NO
Invia la richiesta
di configurazione
SI
retry<N
SI
Ricevuto il
paccheto di
configurazione?
NO
La potenza è
massima?
retry++
SI
NO
Aumento la
potenza
retry=0,
(abbasso la potenza)
Sleep mode
Invia la lettura
di sensore
NO
SI
retry<N
SI
Ricevuto
lo ACK?
NO
La potenza è
massima
retry++
SI
retry=0,
(abbasso la potenza)
NO
Aumento la
potenza
NO Sono passati
10 min?
SI
Controlla la
temperatura
del paziente
retry=0
Sleep mode
NO
E' maggire di
37 e minore di
35 gradi?
NO
SI
Trasmette il
paccheto di dati
SI
SI
SI
Ricevuto
lo ACK?
NO
retry++
retry=0,
(abbasso la potenza)
SI
La potenza è
massima?
NO
Aumento la
potenza
retry=0
Sono passati
20 min?
retry<N
Sleep mode
Trasmette il
paccheto di status
NO
SI
retry<N
SI
NO
SI
retry=0,
(abbasso la potenza)
Incremento
dei contatori
Ricevuto
lo ACK?
NO
retry++
La potenza è
massima?
NO
Aumento la
potenza
DIAGRAMMA DI FLUSSO
Sleep mode
retry=0
LA POTENZA DI USCITA DEL
RICETRASMETTITORE
Registro TXPOWER
Potenza di uscita [dBm]
Consumo della corrente [mA]
0x03
-18
16.2
0x2C
-7
19.9
0x88
-4
23.1
0x81
-2
24.9
0x32
0
25.8
0x13
1
27.9
0xAB
2
28.7
0xF2
3
31.3
0xF7
5
33.6
IL TERMISTORE NTC
R(T) = Ro expB(1/T- 1/To)
Temperatura
[°C]
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Temperatura
[K]
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
Resistenza
[kΩ]
128,65
122,25
116,20
110,49
105,10
100,00
95,18
90,63
86,32
82,24
78,38
74,72
71,26
67,98
64,87
61,92
59,12
56,46
53,95
51,55
49,28
47,13
45,07
Tensione
[V]
2,03
1,98
1,93
1,89
1,84
1,80
1,76
1,71
1,67
1,62
1,58
1,54
1,50
1,46
1,42
1,38
1,34
1,30
1,26
1,22
1,19
1,15
1,12
CALCOLO DELLA TEMPERATURA
DEL PAZIENTE
voltage[45] = {202, 200, 198, 195, 193, 191, 188, 186, 184, 182, 180, 177, 175, 173, 171, 168, 166, 164, 162, 160,
158, 156, 153, 151, 149, 147, 145, 143, 141, 139, 137, 135, 133, 131, 129, 128, 126, 124, 122, 120, 118, 117,
115, 113, 111};
void volt2temp(){
inti = 0;
Temp = temperature[44];
while(i< 45)
{
if (Vtemp>voltage[i+1])
{
Temp = temperature[i];
break;
}
i++;
}
Radio_Tx[10] = Temp>> 8;
Radio_Tx[11] = Temp;
}
temperature[45] = {(20<<8)+0,(20<<8)+5, (21<<8)+0,(21<<8)+5, (22<<8)+0,(22<<8)+5, (23<<8)+0,(23<<8)+5,
(24<<8)+0,(24<<8)+5, (25<<8)+0,(25<<8)+5, (26<<8)+0,(26<<8)+5, (27<<8)+0,(27<<8)+5, (28<<8)+0,(28<<8)+5,
(29<<8)+0,(29<<8)+5, (30<<8)+0,(30<<8)+5, (31<<8)+0,(31<<8)+5, (32<<8)+0,(32<<8)+5, (33<<8)+0,(33<<8)+5,
(34<<8)+0,(34<<8)+5, (35<<8)+0,(35<<8)+5, (36<<8)+0,(36<<8)+5, (37<<8)+0,(37<<8)+5, (38<<8)+0,(38<<8)+5,
(39<<8)+0,(39<<8)+5, (40<<8)+0,(40<<8)+5, (41<<8)+0,(41<<8)+5, (42<<8)+0 };
LA TRASMISSIONE
• La richiesta di configurazione
• Il pacchetto di status
Radio_Tx[0] = UserID1;
Radio_Tx[1] = UserID2;
Radio_Tx[2] = UserID3;
Radio_Tx[3] = UserID4;
Radio_Tx[4] = CapoMagliaID1;
Radio_Tx[5] = CapoMagliaID2;
Radio_Tx[6] = CapoMagliaID3;
Radio_Tx[7] = CapoMagliaID4;
Radio_Tx[8] = 0x00;
Radio_Tx[9] = 0x01;
Radio_Tx_Length = 10;
• Il pacchetto di dati
Radio_Tx[0] = UserID1;
Radio_Tx[1] = UserID2;
Radio_Tx[2] = UserID3;
Radio_Tx[3] = UserID4;
Radio_Tx[4] = CapoMagliaID1;
Radio_Tx[5] = CapoMagliaID2;
Radio_Tx[6] = CapoMagliaID3;
Radio_Tx[7] = CapoMagliaID4;
Radio_Tx[8] = Vbatt>> 8;
Radio_Tx[9] = Vbatt;
Radio_Tx[10] = Temp>> 8;
Radio_Tx[11] = Temp;
Radio_Tx[12] = 0x00;
Radio_Tx[13] = 0x01;
Radio_Tx_Length =14;
LA RICEZIONE
void Radio_DownloadRxFIFO( void )
voidReceiverTask(void)
{
if(Radio_Rx_Length> 0){
if((Radio_Rx[4] == UserID1) && (Radio_Rx[5] == UserID2) && (Radio_Rx[6] ==
UserID3) && (Radio_Rx[7] == UserID4) &&(Radio_Rx[0] == CapoMagliaID1)
&&Radio_Rx[8] == 0x01 &&Radio_Rx_Length == 9){
Ack=Radio_Rx[8];
}
if((Radio_Rx[0] == CapoMagliaID1) && (Radio_Rx[1] == CapoMagliaID2) &&
(Radio_Rx[2] == CapoMagliaID3) &&
(Radio_Rx[3] == CapoMagliaID4) &&Radio_Rx[10] == 0x01 Radio_Rx_Length == 11){
UserID1=Radio_Rx[4];
UserID2=Radio_Rx[5];
UserID3=Radio_Rx[6];
UserID4=Radio_Rx[7];
maxRetry=Radio_Rx[8];
sleep=Radio_Rx[9];
Ack=Radio_Rx[10];
}
Radio_Rx_Length= 0;
return;
}
}
PROVA SPERIMENTALE
1. Fase: Primi test del software
2. Fase: Test sul banco
LAVORI FUTURI E CONCLUSIONI
Utilizzo di un amplificatore operazionale
Ottenere la comunicazione tra i vari nodi e tra le reti diverse
RINGRAZIAMENTO
Prof. Sergio Carrato
Luciano Generali
ELCON Elettronica S.r.L.
[Trieste – Area Science Park]