Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Studio e implementazione di un
sistema embedded adibito al controllo
del traffico
Relatore: Correlatore:
Chiar.mo Prof. Roberto Giorgi Chiar.mo Prof. Alessandro Mecocci
1 Prefazione 1
1.1 Una panoramica d’insieme . . . . . . . . . . . . . . . . . . . . 1
2 Controllare il traffico 5
2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Il sistema in breve . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Soluzioni esistenti . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.1 Sistemi centralizzati e decentrallizati . . . . . . . . . . 6
2.3.2 Microsoft MapPoint . . . . . . . . . . . . . . . . . . . 7
2.3.3 S.T.A del comune di Roma . . . . . . . . . . . . . . . . 8
2.4 Conclusione introduttiva . . . . . . . . . . . . . . . . . . . . . 8
3 Tecnologie utilizzate 9
3.1 Il Microcontroller . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 Caratteristiche generali . . . . . . . . . . . . . . . . . . 9
3.1.2 L’ambiente di sviluppo . . . . . . . . . . . . . . . . . . 9
3.2 La Network camera . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Caratteristiche generali . . . . . . . . . . . . . . . . . . 10
3.3 Comunicazione . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.2 Inviare il livello del traffico . . . . . . . . . . . . . . . . 11
3.4 Elaborare un’immagine . . . . . . . . . . . . . . . . . . . . . . 13
3.4.1 Che cos’è un’immagine . . . . . . . . . . . . . . . . . . 13
3.4.2 Breve cenno al formato JPEG . . . . . . . . . . . . . . 13
3.4.3 Calcolare il livello del traffico . . . . . . . . . . . . . . 14
3.4.4 Determinazione dello sfondo . . . . . . . . . . . . . . . 19
iii
iv INDICE
6 Conclusioni 33
6.1 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2 Conclusioni generali . . . . . . . . . . . . . . . . . . . . . . . . 34
A Codice 35
A.1 Alcuni importanti #define . . . . . . . . . . . . . . . . . . . . 35
A.2 La funzione per il download di una immagine . . . . . . . . . 35
A.3 Le funzioni per l’ inizializzazione del modem . . . . . . . . . . 36
A.4 La funzione per l’invio di un SMS . . . . . . . . . . . . . . . . 37
B Specifiche tecniche 39
B.1 Microcontroller Rabbit RCM3000 . . . . . . . . . . . . . . . . 39
B.2 Network Camera Axis2110 . . . . . . . . . . . . . . . . . . . . 39
B.3 Modem GSM Industrial Base . . . . . . . . . . . . . . . . . . 40
Capitolo 1
Prefazione
Una prima fase del lavoro è stata dedicata all’analisi del problema e alla ri-
cerca dei componenti hardware adatti a risolvere il problema, seguita da una
1
2 CAPITOLO 1. PREFAZIONE
Controllare il traffico
2.1 Introduzione
5
6 CAPITOLO 2. CONTROLLARE IL TRAFFICO
Tecnologie utilizzate
3.1 Il Microcontroller
9
10 CAPITOLO 3. TECNOLOGIE UTILIZZATE
3.3 Comunicazione
3.3.1 Introduzione
Si è già illustrato come un’ importante requisito per il sistema sia quello di
occupare poca banda per poter essere utilizzato anche in luoghi non raggiun-
gibili da tecnologia a banda larga (fibra ottica, xDSL, etc.). La nostra scelta
si è dunque focalizzata nelle reti di telecomunicazioni esistenti e largamente
utilizzate nel territorio nazionale e internazionale. Grazie all’utilizzo di pro-
tocolli ormai standard ed ampiamente diffusi (GSM, GPRS, EDGE, UMTS)
possiamo scegliere tra svariati servizi con costi e prestazioni diversificate.
Possiamo, in definitiva, adattare ed ampliare il nostro sistema embedded
in base alle risorse di cui disponiamo garantendo un’ elevata flessibilità e
3.3. COMUNICAZIONE 11
personalizzazione.
Per la realizzazione del prototipo abbiamo optato per utilizzare la rete
GSM (e in particolare gli SMS) per veicolare l’informazione tra il sistema
embedded e il Data Center. Questa scelta è stata dettata dalla semplice
interfaccia offerta dal modem GSM e dai bassi costi richiesti.
64 15 . . . 0
7 0 ... 0
M= .. .. . .
. . . 0
0 0 0 0
int diff() {
int i,j,r;
byte b1[WIDTH2],b2[WIDTH2];
r=0;j=0;
for(j=0;j<HEIGHT2;j++){
xmem2root(&b1[0],(unsigned long)(sfondo+j*WIDTH2),WIDTH2);
xmem2root(&b2[0],(unsigned long)(Image+j*WIDTH2),WIDTH2);
for(i=0;i<WIDTH2;i++)if (abs(b1[i] − b2[i]) > 25)r++;
}
return r;
}
Il valore della soglia è stato calcolato considerando che la massima variazione
di un pixel codificato con un byte è di 255 e che generalmente si conside-
ra accettabile una variazione del 10% sull’immagine di ingresso. Abbiamo
16 CAPITOLO 3. TECNOLOGIE UTILIZZATE
dunque:
255 ∗ 10
soglia = = 25.5 ≈ 25
100
Un’altro parametro che sarebbe utile stimare è il numero di pixel sopra la
soglia del 10% ma sotto quella del 15%. Il valore di questa soglia è facilmente
calcolabile:
255 ∗ 15
soglia0 = = 38.25 ≈ 38
100
Se indichiamo con N il numero di pixel sopra la soglia e con N 0 quelli compresi
tra le due soglie si può notare come sia sempre vero che vale la relazione:
N ≥ N 0 . Possiamo dunque esprimere N con:
N = α + N 0; α ∈ N+
0;
N γ Traffico
alto alto normale
alto basso alto
basso alto basso
basso basso basso
4.5
3.5
2.5
1.5
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5 4
3.5
2.5
1.5
0.5
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
3.4. ELABORARE UN’IMMAGINE 19
4.1 Il Microcontroller
23
24 CAPITOLO 4. IMPLEMENTAZIONE DEL SISTEMA
4.3 Comunicazione
Qui di seguito viene riportato ciò che appare su un comune cellulare facente
funzione di modem ricevente. Si può notare come il messaggio SMS rispetti
le specifiche definite nel precedente capitolo e come sia semplice l’intera fase
di ricezione dei messaggi sul Data Center.
28 CAPITOLO 4. IMPLEMENTAZIONE DEL SISTEMA
31
32 CAPITOLO 5. VALUTAZIONI E TEST EFFETTUATI
Conclusioni
33
34 CAPITOLO 6. CONCLUSIONI
Codice
35
36 APPENDICE A. CODICE
longword host;
tcp Socket axis;
n=0;jsize=0;
host=resolve(ADDRESS);
tcp open(&axis,0,host,PORT A,NULL);
while(!sock established(&axis) && sock bytesready(&axis)==-1)tcp tick(NULL);
sock write(&axis,&auth[0],strlen(&auth[0]));
while(n<3){
sock read(&axis,&buffer[0],1);
if(buffer[0]==0x0a)n++;
}
while(1)
{
memset(&buffer[0],0x00,1024);
n=sock read(&axis,&buffer[0],1024);
if(n<= 0)break;
k=(unsigned long)(ImageSRC+jsize);
root2xmem(k,&buffer[0],n);
jsize+=n;
}
sock close(&axis);
}
sendSerial(“AT+CMEE=1\r”);recSerial(&p gsm[0]);
sendSerial(“AT+CSQ\r”);recSerial(&p gsm[0]);
}
Specifiche tecniche
39
40 APPENDICE B. SPECIFICHE TECNICHE
41