Vous êtes sur la page 1sur 62

E.N.S.E.R.B.

Romain COMBELAS
Frdric BONNIN
3me anne. Option TIC

MMOIRE DE FIN DTUDES

RALISATION ET MISE
AU POINT DUN
SYSTME DE
TLSURVEILLANCE
VIDO

Encadr par :

M. Patrice KADIONIK
M. Yannick BERTHOUMIEU

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Remerciements

Nous tenons remercier tout particulirement nos responsables de projet, Messieurs Patrice
KADIONIK et Yannick BERTHOUMIEU, pour laide prcieuse quils nous ont apporte tout au
long de ces trois mois. Leur encadrement et leur exprience fut vraiment une exprience
enrichissante.
Nous tenons galement adresser un grand merci :
tous les membres du service technique de lENSERB, M. LALANDE pour son aide dans la
ralisation de la carte, M. MICOULEAU pour son aide sur Mentor Graphic, M. MARSAN
responsable du service achat de lENSERB.
M. MARCHEGAY, responsable de la filire T.I.C.
M. DULAU pour son aide sur la partie vido.

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Table des matires

TABLE DES MATIRES


1. PRSENTATION DU SUJET

1.1. LE SUJET

1.2. ANALYSE DE LEXISTANT


1.2.1. Introduction
1.2.2. Schma bloc
1.2.3. Synoptique de la chane acquisition-restitution

6
6
6
6

2. PRINCIPE DE FONCTIONNEMENT

2.1. INTRODUCTION

2.2. ACQUISITION
2.2.1. Principe de lacquisition
2.2.2. Programmation du squenceur pour lacquisition

8
8
9

2.3. TRANSFERT
2.3.1. Principe du transfert
2.3.2. programmation du squenceur .

14
14
14

2.4. RESTITUTION
2.4.1. Principe de la restitution
2.4.2. Programmation du squenceur

17
17
17

3. RALISATION ET SIMULATION

22

3.1. COMPOSANTS
3.1.1. La famille ALTERA MAX7000
3.1.2. Les convertisseurs

22
22
22

3.2. SIMULATION

23

4. LUNIT DE TRAITEMENT

38

4.1. LES SIGNAUX DE COMMANDES, LES FONCTIONNALITS

38

4.2. PRSENTATION DU MICROCONTRLEUR 68HC11K1

40

4.3. LIMPLANTATION TECHNOLOGIQUE

41

4.4. PROGRAMMATION DU MICROCONTRLEUR

43

4.5. CARTOGRAPHIE DE LA MMOIRE

47

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Table des matires

4.6. TRAITEMENT DES IMAGES

48

5. TRAVAIL VENIR

51

6. CONCLUSION

52

ANNEXES

53

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Prsentation du sujet

1.

PRSENTATION DU SUJET
1.1.

LE SUJET

Lobjectif du stage est la ralisation et la mise en oeuvre dun systme de surveillance vido. Une
tude a dj t mene : Llaboration du schma lectrique ainsi quune plaque de test ont t
valids.
Notre travail consiste en la cration du circuit imprim complet. Dans un premier temps le travail
demand est de valider le travail effectu par ceux qui ont commenc ce projet. Ensuite, il nous
faudra implanter le microcontrleur qui ralisera le traitement et le transfert des donnes.
Les applications du systme de surveillance vido peuvent tre :
la lutte contre une tentative de pntration dans une zone prive.
la surveillance dinstallations publiques ou industrielles (muses, banques, usines, etc...).
Le principe gnral du systme de vidosurveillance est le suivant :
La surveillance se fera par camras vido miniatures fixes disposes aux endroits stratgiques
pour une meilleure dtection.
Les camras sont relies un systme de traitement dimages (notre carte) permettant la dtection
de tout changement dans la zone surveille (prsence humaine, etc...).
Le systme sera reli un systme dalarme classique (sirne ou autre).
Au moment de la dtection de lvnement, limage vido prise par la camra sera garde en
mmoire. Elle pourra tre visualise sur un cran PC grce une transmission sur liaison srie
classique (norme RS232).
Le systme sera aliment en secteur secouru (batteries). Les camras seront conditionnes dans
des botiers aptes supporter des conditions climatiques extrieures.
La base du systme denregistrement consiste en la mmorisation dimages instantanes une
frquence dtermine. Il y a comparaison dune image In+1 avec limage In0 dj mmorise. Sil ny
a pas de changement, limage In+1 devient image de rfrence In0.
Ds que la modification du paysage surveill devient significative, il y a mmorisation dfinitive de
limage In+1.

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Prsentation du sujet

1.2.

ANALYSE DE LEXISTANT

1.2.1. Introduction
La camra fournit un signal vido monochrome analogique (norme CCIR) qui est numris et
mmoris. On effectue alors une comparaison de deux images vido conscutives en analysant les
donnes chantillonnes. Lorsque la diffrence entre ces deux images est significative, un systme
dalarme est dclench. La Figure 1-1 page 6 reprsente le schma bloc gnral.

1.2.2. Schma bloc


moniteur (ventuellement)

Camra Vido
Numrisation
Mmorisation
Restitution

visualisation

Traitement
(comparaison)

Rsultat du traitement :
Dclenchement de lalarme,
Sauvegarde et/ou transfert de limage utile.
Figure 1-1: Schma bloc gnral.

1.2.3. Synoptique de la chane acquisition-restitution


Le schma ci-dessous ( Figure 1-2 page 7) reprsente toutes les tapes de prtraitement, dacquisition
et de mise en forme du signal vido.
On peut distinguer 4 grandes parties :
la partie squence pilote le CAN et le CNA et gnre les cycles de lecture/criture en
fonction des ordres quelle reoit,

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Prsentation du sujet

la partie numrisation constitue par le CAN chantillonne le signal analogique en un signal


numrique 8 bits,
la partie stockage , constitue par 2 RAM de 128 Koctets contenant chacune lensemble des
chantillons dune image,
la partie restitution comprenant le CNA et llectronique de remise en forme, se charge de
reconstituer un signal analogique ayant les caractristiques du signal provenant de la camra
(amplitude, offset...)
Signal de
parit

camra
Signal
vido

Filtrage
bruits HF

Extraction
des synchros
et des parits

Squenceur dacquisition
et de restitution

Synchro
verticale

Slection et contrle
Ordre dchantillonnage
Ordre de
restitution

Adresses 17bits

Convertisseur
Analogique
Numrique

8bits

Remise
en forme du
signal

2RAM de
128kO

8bits

Convertisseur
Numrique
Analogique

Filtrage
bruits HF

Signal vido
reconstitu

Signal vido
reconstitu
et
recalibr

Figure 1-2 : Synoptique de la chane dacquisition restitution

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

2.

PRINCIPE DE FONCTIONNEMENT

2.1. INTRODUCTION
Cette partie a pour objectif dexpliquer les processus dacquisition, de transfert et de restitution
dune image vido. La partie concernant lanalyse de limage et donc lintgration de lunit de
traitement sera traite par la suite dans la partie 4. Il est conseill de se reporter au: schma de
principe de la page 21.
On souhaite raliser et mettre en oeuvre une carte de surveillance vido. Une maquette a dj t
ralise. Notre but est de faire une carte dfinitive. Une premire tape consistera videmment par le
routage de la carte, grce aux outils de C.A.O. de chez Mentor Graphics, partir dun schma
lectrique vrifi. Il nous faudra tout dabord valider le fonctionnement sans le microcontrleur, cest
dire reprendre le projet o nous lavons trouv. Puis on intgrera le microcontrleur et on pourra
ensuite tudier et tester le traitement des images, cest dire la dtection de prsence.

2.2.

ACQUISITION

2.2.1. Principe de lacquisition


Lacquisition des images fournies par la camra se fait successivement dans les RAM 0 et 1.
Le squenceur est averti de la RAM dans laquelle limage doit tre stocke grce au signal
choix_ram (choix_ram = 0 =>stockage dans la RAM 0 ; choix_ram = 1 => stockage dans la RAM
1).
Le dclenchement de lopration dacquisition se fait avec la validation du signal start_acq. Le
squenceur attend alors le dbut dune trame. Le LM 1881, directement connect au signal vido
fourni par la camra est charg de scruter le dbut dune trame. Sa sortie V_sync passe 0
lorsque celle-ci est dtecte. Le squenceur commence alors numriser le signal vido en activant
lhorloge dun CAN (clk_can). Le squenceur pilote galement le compteur (grce au signal
increm) qui fournit la RAM slectionne en criture (grce au signaux cs0 ou cs1 et we_ram)
ladresse dans laquelle chaque chantillon numrique la sortie du CAN doit tre stock (le
compteur ayant t remis 0 au dbut de la phase dacquisition grce au signal reset).
Pour viter la gnration de signaux de synchronisation lors de la restitution de limage partir du
signal numris, on a choisi dchantillonner le signal vido analogique dans son intgralit, mme si,
les synchros lignes et trames sont inutiles pour la comparaison des images. Avec ce choix, la taille
mmoire ncessaire restera nanmoins raisonnable. En effet, en considrant que la frquence
maximale dun signal vido composite est de 0.5 Mhz, on obtient avec le thorme de Shannon une
frquence dchantillonnage minimale de 1 Mhz; Par scurit, on choisit dchantillonner 2 Mhz,
cest--dire tous les 0.5 s. La dure dune image vido tant de 40 ms, on aura besoin ainsi de 80
Koctets pour stocker une image.

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

Le compteur incrmente donc les adresses jusqu atteindre 80000. Une fois arriv, celui-ci prvient
le squenceur en validant le signal fin_compt, et le squenceur valide son tour le signal fin_num
qui avertit que lopration dacquisition est termine.

2.2.2. Programmation du squenceur pour lacquisition


Ci-dessous le programme AHDL du squenceur (un Altera MAX7000 , voire la partie 3.1.1 page
22).
Ltat s1 est atteint si et seulement si on a la condition : (start_acq) & (!visu) & (!transf_ext).
Le signal copy nest pas utilis, et les bus count_adr[16..0] et adresse_out[16..0] peuvent tre
assimils Ad[0..16] (leur diffrentiation sera justifie par la suite, dans la partie 4.3 page 41).

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

WHEN s1 =>
dcs0 = GND;
dcs1 = GND;
dcs2 = GND;
count_adr[ ] = 0;
/oe_ram = VCC;
/oe2 = VCC;
/oe_can = GND;
clk_acq = VCC;
/we_ram = VCC;
/we_ram2 = VCC;
fin_num = GND;
fin_transf=GND;
clk_cna = VCC;
reset = VCC;
increm = GND;
copy = GND;

% Etape dinitialisation dacquisition %

% RAZ compteur %

IF (vsync) THEN
ss = s2;
END IF;
WHEN s2 =>
dcs0 = GND;
dcs1 = GND;
dcs2 = GND;
count_adr[ ] = 0;
/oe_ram = VCC;
/oe2 = VCC;
/oe_can = GND;
clk_acq = VCC;
/we_ram = VCC;
/we_ram2 = VCC;
fin_num = GND;
fin_transf=GND;
clk_cna = VCC;
cpteur[ ] = 0;
reset = GND;
increm = GND;
copy = GND;

% Attente du dbut dune trame (passage de vsync 0) %

%Compteur du nombre de coups dhorloge du can initialis 0 %

IF (!vsync) THEN
ss = s3;
END IF;
WHEN s3 =>

%Dbut de numrisation.Pendant les 3 1ers chantillonnages, pasd'criture.%

dcs0 = GND;
dcs1 = GND;
dcs2 = GND;
/oe_ram = VCC;

10

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

/oe2 = VCC;
/oe_can = GND;
/we_ram = VCC;
/we_ram2 = VCC;
clk_acq = GND;
% Conversion sur front descendant;Donnes valides au 3e front montant suivant %
count_adr[ ] = count_adr[ ];
fin_num = GND;
fin_transf=GND;
clk_cna = VCC;
cpteur[ ] = cpteur[ ];
reset = GND;
increm = GND;
arret = arret;
copy = GND;
ss = s4;
WHEN s4 =>

% 1ere tape cycle d'criture.%

IF cpteur[ ] >= 2 THEN


IF choix_ram THEN
dcs0 = GND;
dcs1 = VCC;
ELSE
dcs0 = VCC;
dcs1 = GND;
END IF;
ELSE
dcs0 = GND;
dcs1 = GND;
END IF;
dcs2 = GND;
/oe_ram = VCC;
/oe2 = VCC;
/oe_can = GND;
clk_acq = GND;
/we_ram = VCC;
/we_ram2 = VCC;
count_adr[ ] = count_adr[ ];
fin_num = GND;
fin_transf=GND;
clk_cna = VCC;
cpteur[ ] = cpteur[ ];
reset = GND;
increm = GND;
arret = arret;
copy = GND;
ss = s5;
WHEN s5 =>

% 2me tape du cycle dcriture. A partir d'ici, donnes stables %

dcs0 = GND;
dcs1 = GND;
dcs2 = GND;

11

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

/oe_ram = VCC;
/oe2 = VCC;
/oe_can = GND;
/we_ram2 = VCC;
IF cpteur[ ] >= 2 THEN
/we_ram = GND;
ELSE
/we_ram = VCC;
END IF;
count_adr[ ] = count_adr[ ];
fin_num = GND;
fin_transf=GND;
clk_cna = VCC;
cpteur[ ] = cpteur[ ];
reset = GND;
increm = GND;
arret = arret;
copy = GND;
ss = s6;
WHEN s6 =>

% Incrmentation adresse %

dcs0 = GND;
dcs1 = GND;
dcs2 = GND;
/oe_ram = VCC;
/oe2 = VCC;
/oe_can = GND;
clk_acq = VCC;
/we_ram = VCC;
/we_ram2 = VCC;
fin_num = GND;
fin_transf=GND;
clk_cna = VCC;
copy = GND;
IF (!fin_compt) THEN
IF cpteur[ ] >= 2 THEN
increm = VCC;
reset = GND;
count_adr[ ] = val_compt[16..0];
cpteur[ ] = 3;
ELSIF cpteur[ ] ==1 THEN % cause du dcalage des compteurs d'adresses%
increm = VCC;
reset = GND;
count_adr[ ] = count_adr[ ];
cpteur[ ] = 2;
ELSE
count_adr[ ] = count_adr[ ];
reset = GND;
increm = GND;
cpteur[ ] = cpteur[ ] + H"00001";

12

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

END IF;
arret = GND;
ss = s3;
ELSE
reset = GND;
increm = GND;
IF (arret == GND) THEN
%il faut faire un cycle de plus%
count_adr[ ] = val_compt[16..0];
arret = VCC;
cpteur[ ] = cpteur[ ];
ss = s3;
ELSE
cpteur[ ] = cpteur[ ];
count_adr[ ] = count_adr[ ];
ss = s7;
END IF;
END IF;
WHEN s7 =>

% Arrt numrisation %

dcs0 = dcs0;
dcs1 = dcs1;
dcs2 = GND;
/oe_ram = VCC;
/oe2 = VCC;
/oe_can = GND;
count_adr[ ] = 0;
/we_ram = VCC;
/we_ram2 = VCC;
clk_acq = VCC;
fin_num = VCC;
fin_transf=GND;
clk_cna = VCC;
reset = VCC;
increm = GND;
copy = GND;
ss = s0;

13

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

2.3.

TRANSFERT
2.3.1. Principe du transfert

Lacquisition des images vido fournies par la camera se fait successivement dans les RAM 0 et 1.
Lorsque le microcontrleur dtecte une diffrence significative entre le contenu des RAM 0 et 1,
limage la plus rcente est transfre dans une mmoire de sauvegarde : la RAM 2 , dou elle pourra
tre envoye vers un moniteur.
Lordre de transfert est fourni par le signal transf_ext du microcontrleur, qui passe par le
compteur en mode transparent avant de parvenir au squenceur.
Lorsque le signal transf_ext est valid, le squenceur dclenche lincrmentation du compteur
dadresses grce au signal increm qui est activ rgulirement jusqu ce que le compteur atteigne
80000.
A chaque adresse fournie par le compteur sur le bus dadresses, le squenceur slectionne en lecture
la RAM contenant la dernire image (validation de cs0 ou cs1 , activation de oe_ram), et autorise
lcriture dans la RAM 2 (validation de cs2 et we_ram2). Lindication de la RAM (0 ou 1)
transfrer dans la mmoire de sauvegarde est donne par le microcontrleur, connect directement
au squenceur par le signal choix_ram.
Une fois le compteur arriv 80000, celui-ci envoie au squenceur le signal fin_compt , et ce
dernier avertit alors le microcontrleur de la fin de lopration de transfert en validant le signal
fin_transf. Le squenceur revient alors dans son tat initial S0, et le microcontrleur redevient
matre des oprations.

2.3.2. programmation du squenceur .


Ci-dessous la programmation AHDL du squenceur traitant du transfert de la RAM 0 ou 1 vers la
RAM 2. Le signal copy nest pas utilis, et on peut comme prcdemment assimiler les bus
count_adr[16..0] et adresse_out[16..0] au bus Ad[16..0].
Ltat s14 est atteint si et seulement si : (!start_acq) & (!visu) & (transf_ext)

14

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

WHEN s14 =>


clk_acq=VCC;
clk_cna=VCC;
/we_ram=VCC;
/we_ram2=VCC;
dcs0.d=GND;
dcs1.d=GND;
dcs2.d=GND;
/oe_can=VCC;
/oe_ram=VCC;
/oe2=VCC;
reset=VCC;
increm=GND;
copy=GND;
count_adr[ ]=0;
fin_num=GND;
fin_transf=GND;
ss=s15;

WHEN s15 =>

% Initialisation du transfert %

% Remise zero du compteur d'adresse %

% Dbut du cycle de transfert %


% On prpare la lecture pour le coup d'horloge suivant. %

clk_acq=VCC;
clk_cna=VCC;
/we_ram=VCC;
/we_ram2=VCC;
dcs2=GND;
/oe_can=VCC;
/oe_ram=VCC;
/oe2=VCC;
reset=GND;
increm=GND;
copy=GND;
count_adr[ ]=count_adr[ ];
fin_num=GND;
fin_transf=GND;
IF (choix_ram) THEN
dcs0=GND;
dcs1=VCC;
% donne RAM 1 en sortie %
ELSE
dcs0=VCC;
% donne RAM 0 en sortie %
dcs1=GND;
END IF;
ss=s16;

WHEN s16 =>

% lecture dans une des RAM 0 ou 1 %

dcs0=dcs0;

15

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

dcs1=dcs1;
/oe2=VCC;
/we_ram2=VCC;
dcs2=VCC;
% On prpare l'criture dans la RAM2 %
clk_acq=VCC;
clk_cna=VCC;
/we_ram=VCC;
/oe_can=VCC;
/oe_ram=GND;
% On permet de lire sur RAM 0 ou 1 %
reset=GND;
increm=GND;
copy=GND;
count_adr[ ]=count_adr[ ];
fin_num=GND;
fin_transf=GND;
ss=s17;

WHEN s17 =>

% criture RAM2 %

cpteur[ ]=0;
clk_acq=VCC;
clk_cna=VCC;
/oe_can=VCC;
fin_num=GND;
/we_ram=VCC;
/we_ram2=GND;
/oe_ram=GND;
/oe2=VCC;
dcs0=GND;
% Pour le coup d' H suivant %
dcs1=GND;
dcs2=GND;
copy=GND;
reset=GND;
IF (!fin_compt) THEN
increm=VCC;
count_adr[ ]=val_compt[16..0];
fin_transf=GND;
ss=s15;
ELSE
increm=GND;
count_adr[ ]=val_compt[16..0];
fin_transf=VCC;
ss=s0;
END IF;

16

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

2.4.

RESTITUTION
2.4.1. Principe de la restitution

Lopration de visualisation de limage contenue dans la RAM 2 est dclenche par le signal visu
provenant du microcontrleur , et connect directement au squenceur.
Quand le signal visu est activ, le squenceur met alors en route le compteur dadresses en
lincrmentant rgulirement de 1 80000 (signal increm). A chaque nouvelle adresse contenue sur
le bus dadresse, le squenceur slectionne la RAM 2 en lecture (validation de cs2 et oe2), et
dclenche le front montant dun convertisseur numrique analogique.
A la fin du comptage des adresses, le compteur envoie le signal fin-compt au squenceur ; si le
signal visu est toujours actif, alors le squenceur redclenche une nouvelle opration de lectureconversion de la RAM 2, sinon le squenceur revient dans son tat initial S0, et le microcontrleur
redevient matre des oprations.
Le signal analogique reconstitu la sortie du TDA va devoir tre remis en forme pour pouvoir tre
visualis sur le moniteur. Le signal affaibli doit tout dabord tre amplifi : cest le rle de
lamplificateur diffrentiel gain variable qui se trouve la sortie du convertisseur (la perte de la
composante continue par les capacits situes lentre de lamplificateur est sans importance
puisque le moniteur est capable de la restituer automatiquement).Un filtre passe-bas RC permet
ensuite dliminer les parasites HF (frquence > 500 kHz), et ladaptation dimpdance avec le
moniteur est ralise avec un montage suiveur suivi dune rsistance de 75 ohms.
2.4.2. Programmation du squenceur
Le squenceur se rend ltat s8 si et seulement si : (!start_acq) & (visu) & (!transf_ext)

17

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

WHEN s8 =>

% visualisation de l'image numrise %

dcs0 = GND;
dcs1 = GND;
dcs2 = VCC;
/oe_ram =VCC ;
/oe2 = GND;
/oe_can = VCC;
count_adr[ ] = 0;
/we_ram = VCC;
/we_ram2 = VCC;
clk_acq = VCC;
fin_num = GND;
fin_transf=GND;
clk_cna = VCC;
reset = VCC;
increm = GND;
copy = GND;
ss = s9;
WHEN s9 =>

% tape1 de visualisation %

dcs0 = GND;
dcs1 = GND;
dcs2 = VCC;
/oe_ram =VCC;
/oe2 = GND;
/oe_can = VCC;
count_adr[ ] = count_adr[ ];
/we_ram = VCC;
/we_ram2 = VCC;
clk_acq = VCC;
fin_num = GND;
fin_transf=GND;
clk_cna = VCC;
reset = GND;
increm = GND;
arret = arret;
copy = GND;
ss = s10;
WHEN s10 =>

% tape2 de visualisation %

dcs0 = GND;
dcs1 = GND;
dcs2 = VCC;
/oe_ram = VCC;
/oe2 = GND;
/oe_can = VCC;
count_adr[ ] = count_adr[ ];
/we_ram = VCC;
/we_ram2 = VCC;
clk_acq = VCC;

18

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

fin_num = GND;
fin_transf=GND;
clk_cna = GND;
reset = GND;
increm = GND;
arret = arret;
copy = GND;
ss = s11;
WHEN s11 =>

% tape3 de visualisation => conversion sur front descendant de clk_cna%

dcs0 = GND;
dcs1 = GND;
dcs2 = VCC;
/oe_ram = VCC;
/oe2 = GND;
/oe_can = VCC;
count_adr[ ] = count_adr[ ];
/we_ram = VCC;
/we_ram2 = VCC;
clk_acq = VCC;
fin_num = GND;
fin_transf=GND;
clk_cna = GND;
reset = GND;
increm = GND;
arret = arret;
copy = GND;
ss = s12;
WHEN s12 =>

% tape4 de visualisation %

dcs0 = GND;
dcs1 = GND;
dcs2 = VCC;
/oe_ram = VCC;
/oe2 = GND;
/oe_can = VCC;
/we_ram = VCC;
/we_ram2 = VCC;
clk_acq = VCC;
fin_num = GND;
fin_transf=GND;
clk_cna = VCC;
copy = GND;
IF (visu) & (!fin_compt) THEN % visu sans tre au bout d'une image %
ss = s9;
count_adr[ ] = val_compt[16..0];
reset = GND;
increm = VCC;
arret = GND; %bit de test d'arrt initialis%

19

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

ELSIF (visu) & (fin_compt) THEN % fin d'une image, continuation visu %
IF (arret == GND) THEN
%un cycle supplmentaire%
ss = s9;
count_adr[ ] = val_compt[16..0];
reset = GND;
increm = VCC;
arret = VCC;
%bit d'arrt on%
ELSE
ss = s13;
count_adr[ ] = 0;
% rinit de tous les compteurs%
reset = VCC;
increm = GND;
END IF;
ELSE
count_adr[ ] = count_adr[ ];
reset = GND;
increm = GND;
ss = s0;
END IF;
WHEN s13 => % rebouclage pour visualisation %
dcs0 = GND;
dcs1 = GND;
dcs2 = VCC;
/oe_ram = VCC;
/oe2 = GND;
/oe_can = VCC;
count_adr[ ] = 0; % RAZ du compteur adresse %
/we_ram = VCC;
/we_ram2 = VCC;
clk_acq = VCC;
fin_num = GND;
fin_transf=GND;
clk_cna = VCC;
reset = GND; % lors du rebouclage pb de decalage des adresses %
increm = VCC;
arret = GND;
copy = GND;
IF (visu) THEN
ss = s10; % pour respecter le timing %
ELSE
ss = s0;
END IF;

20

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Principe de fonctionnement

SCHMA DE PRINCIPE DU CYCLE


ACQUISITION - TRANSFERT - RESTITUTION

COMPTEUR

RAM 2

Ad0
Reset

reset

.
.

Adresses

Ad16
Fin_comp
t

increm

D0
Ad0 .
.
.
.
D7
Ad16
Cs2
Oe2
We2

clock

C
A
M
E
R
A

L
M
1
8
8
1

CAN
oe
D0

.
.

Clk_acq

Fin_comp increm Clk_cna


t
Cs2

V_sync

Oe2

Oe_can

We_ram2

SEQUENCEUR
Cs1

D7

Oe_ram
We_ram
Fin_num
Start_acq
Transf_ext Visu

RAM 1
D0
Ad0 .
.
.
.
D7
Ad16

clock

CNA

moniteur

Cs1
Oe1
We1

Cs0
Choix_ram

Oe_ram
We_ram

RAM 0
D0
Ad0 .
.
.
.
D7
Ad16

Fin_num
Start_acq
Transf_ext
Visu
Choix_ram

Cs2
Oe2
We2

Donnes

Figure 2-1 : schma de principe

21

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

3.

RALISATION ET SIMULATION
3.1.

COMPOSANTS
3.1.1. La famille ALTERA MAX7000
3.1.1.1.Prsentation :

Les circuits de la famille MAX7000 dALTERA sont des circuits logiques reprogrammables
(EPLD). La configuration est stocke de manire permanente grce la technologie EEPROM qui
permet environ 100 cycles deffacement-programmation.
Ces circuits sont donc trs adapts aux applications prototypes, ce qui est prcisment notre cas.

3.1.1.2.Description fonctionnelle :
Larchitecture des circuits de cette famille est organise en cellules qui comprennent une partie
logique combinatoire, des registres et des blocs dentre-sortie. Un circuit compte des cellules
internes ainsi quune cellule pour chaque patte dentre-sortie.
Lutilisateur dveloppe son circuit en utilisant le logiciel fourni par le fabricant, MAX+plusII. A laide
dun schma ou dune description fonctionnelle de lapplication (en AHDL), un compilateur
spcialis gnre un code pour la programmation du circuit. Lutilisateur ne tient compte que du
nombre de portes disponibles et de la frquence max. de fonctionnement du circuit.
Par exemple, le circuit EPM7096LC84 comporte 160 cellules et 84 broches.

3.1.2. Les convertisseurs


3.1.2.1.Le CAN
Les caractristiques du signal vido provenant de la camra sont :
max. 4V

1.3 - 1.5V
min. 1V

Figure 3-1 : Caractristiques du signal vido.

22

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

On choisit donc un convertisseur flash 8 bits ddi la vido. La plage de conversion, [1..4]V pour
nous, est fixe par les entres VRB et VRT respectivement. Lentre _OE est contrle par le
squenceur.
Il convertit sur front descendant de lhorloge et les donnes sont disponibles en sortie aprs le 3me
front montant suivant (ceci aura son importance pour le squenceur).

3.1.2.2.Le CNA
Le choix sest port sur le TDA8702 de Phillips spcialement conu pour la vido (impdance de
sortie de 75).
Il possde 2 modes de fonctionnement :
Durant le transparent mode (CLK niveau bas), tout changement de donnes en entre sera
convertit en sortie analogique.
Pendant le latched mode , (CLK niveau haut), le signal analogique reste stable
indpendamment de tout changement en entre.
Les tensions analogiques en sortie (Vout et _Vout) sont rfrences par rapport VCCA (tension de
rfrence max. pour le signal analogique). Avec une impdance de 75 vue par la sortie du
convertisseur, le code 0 en entre correspond une sortie :
Vout = VCCA = 5V
et le code 255 une sortie :
Vout = VCCA - 0.8V = 4.2V.
La tension _Vout tant la tension complmentaire de Vout.

3.2.

SIMULATION

Les simualtions effectues ont t ralises sans le microcontrleur, de manire valider la carte au
mme niveau de ce qui a dj t ralis, cest dire lacquisition et la visualisation du signal vido.
Le seul changement est quil y a en plus un transfert des donnes, de la RAM0 ou de la RAM1 vers
la RAM2, car lorsque le microcontrleur sera rajout, la visualisation ne pourra se faire qu partir
de la RAM2.
Les six courbes qui suivent ont t ralises grce lanalyseur logique Hewlett Packard 16500A.
Les sept courbes daprs ont t ralises sur un oscillateur METRIX OX 8627 100mhz.
La Figure 3-8, page 30, est une simulation effectue par le binme qui sest occup du projet juste
avant nous. Elle a t ralise sur une plaquette dessai. On peut constat que nous avons apport
une amlioration significative au systme car le signal est nettement moins bruit.

23

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-2 : Dbut dacquisition.

Nous avons activ manuellement le signal start_acq, puis le signal vsync (en remplacement du signal
de synchronisation vertical sur le signal vido). Lanalyseur logique est dclench sur le front
descendant de vsync.
Le squenceur atteint bien ltat s1 o lacquisition commence. Le fonctionnement est tout fait
normal : clk_acq (lhorloge du CAN) se met en marche (frquence = 2 MHz)ds que vsync passe
0, le compteur dadresse commence compter ds que increm passe 1, et lcriture dans la RAM0
ou RAM1 se fait partir du troisime coup de lhorloge du CAN.

24

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-3 : Fin dacquisition.

Lanalyseur logique est dclench sur le front montant du signal fin_compt.


Le signal fin_compt passe ltat 1 lorsque le compteur dadresse atteint sa valeur de bute.
Lhorloge CAN, clk_acq, devient inactive et lcriture dans la ram sarrte. A ce moment, le
squenceur envoie un signal de fin : fin_num, et revient dans son tat dattente.

25

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-4 : Dbut de transfert.

Le signal transf_ext est activ manuellement et lanalyseur logique est dclench sur le front montant
de transfert_ext.
Le compteur dadresse se dclenche quand increm passe 1. A chaque changement dadresses, la
RAM0 ou 1 est slectionne, et ses donnes sont prsentes en sortie, et la RAM2 est selectionne
et en mode criture.
Le signal copy est lindicateur qui permet de voir si le squenceur sort de son tat dattente car il est
1 uniquement dans ltat s0.

26

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-5 : Fin de transfert.

Lanalyseur logique est dclench sur le front montant du signal fin_compt.


Le transfert se fait correctement car le compteur dadresse arrive son adresse de bute et les
signaux cs2, /we2, cs0 et /oe0 fonctionnent bien. Le squenceur repasse bien dans son tat dattente
ds que fin_compt passe 1. Il ny reste pas et repart dans un cycle de transfert tout simplement
parce que le signal transf_ext est toujours prsent (il na pas t possible de faire autrement car cest
un signal dclench manuellement et donc moins rapide quun cycle de transfert).

27

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-6 : Dbut de visualisation.

Le processus de visualisation dmarre lorsque le signal visu est activ manuellement. Le squenceur
quitte alors ltat 0 (copy passe ltat bas). Le compteur dadresse se met en marche lorsque le
signal increm est au niveau 1. La RAM2 est selectionne, et les donnes sont prsentes sur son bus
de sortie. Lhorloge du CNA dmarre, et chaque changement dadresse, les donnes sont
converties.

28

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-7 : Fin de visualisation.

Lanalyseur logique est dclench sur le front descendant du signal visu.


Lorsque le signal visu passe 0, le compteur dadresse sarrte, ainsi que lhorloge du CNA, la
RAM2 nest plus slectionne, et le squenceur repasse dans son tat dattente (visu 1).

29

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-8 : Courbe ralise par nos prdecesseurs.

On voit que le signal restitu, pour un signal dentre de 1kHz, est relativement bruit. La courbe
suivante a t ralise par nos soins et montre lamlioration apporte au systme.

30

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-9 : Signal de sortie pour un signal dentre sinosodal de 1kHz.

En haut : sur la voie 2, le signal dentre de frquence 1kHz, compris entre 1 et 3V (sonde 10).
En bas : sur la voie 1, le signal de sortie restitu, compris entre -0.8 et 0.8V (la composante continue
est enleve par une liaison capacitive).

31

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-10 : Signal de sortie pour un signal dentre sinosodal de 10kHz.

En haut : sur la voie 2, le signal dentre de frquence 10kHz, compris entre 1 et 3V (sonde 10).
En bas : sur la voie 1, le signal de sortie restitu, compris entre -0.8 et 0.8V.

32

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-11: Signal de sortie pour un signal dentre sinosodal de 100kHz.

En haut : sur la voie 2, le signal dentre de frquence 100kHz, compris entre 1 et 3V (sonde 10).
En bas : sur la voie 1, le signal de sortie restitu, compris entre -0.7 et 0.7V.

33

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-12 : Signal de sortie pour un signal dentre carr de 1kHz.

En haut : sur la voie 2, le signal dentre de frquence 1kHz, compris entre 1 et 3V (sonde 10).
En bas : sur la voie 1, le signal de sortie restitu, compris entre -0.7 et 0.7V.

34

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-13 : Signal de sortie pour un signal dentre carr de 10kHz.

En haut : sur la voie 2, le signal dentre de frquence 10kHz, compris entre 1 et 3V (sonde 10).
En bas : sur la voie 1, le signal de sortie restitu, compris entre -0.7 et 0.7V.

35

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-14 : Signal de sortie pour un signal dentre carr de 100kHz.

En haut : sur la voie 2, le signal dentre de frquence 100kHz, compris entre 1 et 3V (sonde 10).
En bas : sur la voie 1, le signal de sortie restitu, compris entre -0.7 et 0.7V.

36

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Ralisation et simulation

Figure 3-15 : Influence de lendroit o est inject le signal dentre. A gauche le signal est inject sur lentre
de la carte; droite, le signal est inject directement lentre du CAN.

Les deux courbes reprsente le signal dentre.


Lorsque lon injecte le signal loin de lentr du CAN (comme cest le cas sur notre carte), en passant
travers la partie numrique, on remarque que le signal est fortement bruit. Alors quen le
connectant directement sur lentre CAN il est nettement moins bruit.

37

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

4.

LUNIT DE TRAITEMENT
4.1.

LES SIGNAUX DE COMMANDES, LES FONCTIONNALITS

Les signaux de commandes sont les suivants :


o start_acq :
Impulsion qui donnera lordre au squenceur de faire une acquisition. Ds quil passe au niveau haut
(Vcc), le squenceur bascule de ltat initial (dattente) un tat dattente de dbut de limage qui
arrive.

Image n-1

Image n

Image n+1

start_acq
Acquisition

o choix_ram :
Signal indiquant la bank (voir chapitre 3.2) dans laquelle on souhaite mmoriser limage.
Si choix_ram = 0 stockage dans RAM0
sinon
stockage dans RAM1
Choix_ram est en ralit le bit XA17 provenant du microcontrleur.
o visu :
Signal qui ordonne la restitution sur moniteur de limage contenue dans la RAM2 tant quil est gal
Vcc.
o transfert_ext :
Signal envoy du microcontrleur au squenceur en passant par le compteur, et indique que lon veut
effectuer le transfert de la RAM0 ou RAM1 vers la RAM2. Transfert_ext est actif lorsquil y a une
dtection de prsence sur une image, ou lorsquon passe en mode de visualisation (qui se fait partir
de la RAM2).
o fin_num :
Lorsque lacquisition est termine, le squenceur envoie un signal de fin de numrisation au
microcontrleur qui reprend alors la main.
o fin_transf :

38

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

Lorsque le transfert de la RAM0 ou 1 vers la RAM2 est termin, le squenceur envoie au


microcontrleur un signal de fin de transfert.

Dans ltude initiale on se servait de deux signaux de synchronisation dacquisition :


o o/e :
Signal de parit de la trame actuelle (odd/even).
o Vsync :
Signal de synchronisation de trame.
Ces deux signaux taient fournis par le LM1881 , directement connect au signal vido de la
camera. Or on sest aperu que le signal o/e tait inutile : Pour la restitution , il suffit de se
synchroniser sur le dbut dune trame, paire ou impaire peu importe.

Les signaux de synchronisation avec le compteur dadresses sont les suivants :


o reset :
Remise zro du compteur dadresses.
o reset_all :
Remise zro au reset initial des deux altras.
o increm :
Signal envoy par le squenceur vers le compteur , et commandant lincrmentation de ce dernier.
o fin_compt :
Signal provenant du compteur. Impulsion dlivre quand la bute du compteur est atteinte.
o copy :
Signal gnr par le squenceur en mode transparent pour dire au compteur de recopier en sortie les
adresses quil a en entre. Cest le microcontrleur qui est matre du bus dadresses.
Le but de lunit de traitement est deffectuer le traitement des images ainsi que de grer tous les
signaux de contrle. De plus, le microcontreur doit pouvoir adresser les trois RAM, cest dire
3128 Koctets. Or un microcontrleur classique MC68HC11 avec 16 bits dadresses ne peut
effectuer un tel adressage. Cest la raison pourquoi nous avons choisi la version K1
(MC68HC11K1), qui peut grer cet adressage grce son fonctionnement en adressage pagin,
dvelopp au paragraphe suivant.

39

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

4.2.

PRSENTATION DU MICROCONTRLEUR 68HC11K1

Le microcontrleur MC68HC11 de Motorola (voir documents en annexes) est un circuit CMOS de


haute technologie.
L'unit centrale 8 bits de cette famille est trs voisine de celle du microprocesseur M6800.
Le MC68HC11K1 possde une EPROM de 640 octets, une RAM de 768 octets pouvant tre
sauvegarde par pile, ainsi que six ports multifonctions. Il possde aussi un convertisseur analogique
8 bits, des liaisons sries synchrones et asynchrones ...
Cette famille de microcontrlleur traite les priphriques dentres et de sorties comme des octets
mmoires ce qui signifie quil ny a pas dinstructions spcifiques dentres/sorties pour accder ses
priphriques.
Cette remarque est trs importante car elle permet de comprendre le principe de la mmoire
pagine.
La particularit du 68HC11 est de possder un port G. Celui-ci possde des signaux Memory
Expansion (XA13, XA14, XA15, XA16, XA17, XA18) destins complter les bits dadresses
classiques.
On peut ainsi saffranchir de la limite physique des 64 Koctets despace adressable. La mmoire
pagine va rserver une zone despace physique (cest dire comprise dans lespace du
microcontrleur) appele WINDOW, ceci afin daugmenter lespace adressable.
Le principe est donc de diviser lextension de mmoire en autant de pages ncessaires la lecture ou
lcriture de toutes les adresses.
La taille de celle-ci est bien videment gale celle de la WINDOW.
Remarque : la taille et le nombre de pages sont imposs par le constructeur du microcontrleur.
Lutilisateur peut alors choisir une des huit possibilits qui lui sont proposes.
On veut adresser une mmoire vive de 128 Koctets. On va par exemple choisir une WINDOW de
32 Koctets (espace physique rserv) et diviser la mmoire en quatre pages de 32 Koctets chacune.
Pour crire en un lieu donn de la mmoire vive, il suffit de connatre la correspondance
page/adresse mmoire vive.

40

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

4.3. LIMPLANTATION TECHNOLOGIQUE


Pour ajouter le microcontrleur sur la carte, il a fallu ladapter la partie dj valide. Cest pourquoi
la conception du schma lectrique peut paratre quelque peu trange.
Lunit de traitement donne les ordres au squenceur. Lorsque les ordres dacquisition, de transfert
ou de restitution sont lancs, le squenceur prend la main, cest dire quil contrle tous les signaux
de gestion des mmoires, des convertisseurs et du bus dadresses. Lunit de traitement doit
attendre la fin des oprations du squenceur (reprable grce aux signaux fin_num et fin_transf )
avant deffectuer un quelconque traitement ou de lancer un nouvel ordre.
Lorsque le squenceur est dans son tat d'attente (aucun ordre reu de la part du microcontrleur :
tat s0) , c'est le MC68HC11K1 qui est matre des signaux de gestion et du bus d'adresses. Le
squenceur ne se contente alors que de recopier les signaux ( CSGP1 , CSGP2 , adresse_out[ ]
tant fonction des adresse_in[ ] ). On appelle ce fonctionnement le mode transparent. tant donn
qu'il faut une synchronisation entre ces signaux , sachant que les adresses traversent les deux
ALTERA, on a dcid que les signaux CSGP1 (slection de la window1) et CSGP2 (slection de la
window2) traverseraient aussi les deux ALTERA pour avoir les mmes temps de retard (c'est la
raison de la prsence des signaux C1_in, C1_out,.C2_in et C2_out.).
Le traitement des images se fait pendant le mode transparent. Cest le microcontrleur qui gre
laccs aux RAMs. Dans ltat s0 du squenceur, il faut donc valider, par exemple, la RAM0 si la
WINDOW1 est slectionne et que le choix_ram se porte sur la RAM0. Le squenceur est donc
transparent .
Lorsque le squenceur est dans son tat d'attente les adresses en sortie (adresse_out[16..0]) suivent
les variations des adresses provenant du microcontrleur en utilisant un dcodage adquat. On a:
Si C1=1 (slection de la Window1) alors
adresse_out[13..0] = adresse_in[13..0];
adresse_out14 = XA14;
adresse_out15 = XA15;
adresse_out16 = XA16;
choix_ram = XA17;
Si C2=1 (slection de la Window2) alors
adresse_out[12..0] = adresse_in[12..0];
adresse_out13 = XA13;
adresse_out14 = XA14;
adresse_out15 = XA15;
adresse_out16 = XA16;Les adresses obtenues la sortie du squenceur permettent d'accder
aux mmoires.
Le schma lectrique complet se trouve page suivante.

41

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

42

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

4.4.

PROGRAMMATION DU MICROCONTRLEUR

Nous avons cris les programmes en C et en assembleur, et les avons compils grce au compilateur
crois pour microcontrleur motorola MC68HC11.
A partir dun programme crit en C (.c), le compilateur le convertit en un fichier en assembleur (.s),
puis en fichier objet (.o), puis en un fichier excutable (.h11). Il faut ensuite lier les fichiers utiles
grce lditeur de lien (.lnk) et enfin il faut les convertir en un fichier hexadcimal (.hex) pour tre
ensuite charg dans la ROM. Lmulateur dEPROM nacceptant que le format binaire nous avons
de plus d convertir le fichier au format hexadcimal en un fichier au format binaire (.bin) grce un
utilitaire hex2bin .
Un fichier de commande nomm video permet dexcuter les oprations ci-dessus.
Les diffrents fichiers utiles sont :

crts.s : fichier de dmarrage ( C runtime startup)


init.s : fichier dinitialisation des registres du microcontrleur
video.c : programme principal
vector.c : table des vecteurs dinterruptions
video.lnk : fichier de liens

Le fichier crts.s est la routine de dmarrage. Cest elle qui fait appel au programme dinitialisation et
au programme principal (voir Figure 4-1, page 44). Le fichier video.lnk est le fichier de lien. Cest lui
qui place les diffrents programmes aux endroit physique de la mmoire. Enfin le fichier vector.c
contient la table des vecteurs dinterruptions. Dans notre application, nous ne nous servons pas des
interruptions, donc la table des vecteurs dinterruptions ne contient rien sauf dans sa dernire adresse
($7FFE : adresse du reset). En effet la mise sous tension, le microcontrleur vient lire ce qui se
trouve ladresse $7FFE. Nous avons donc plac ladresse $A000, adresse de la ROM, dans le
vecteur RESET de la table.

Quand le microcontrleur envoie $A000 sur son bus dadresses, la ROM, qui a un bus dadresses
de 15 bits, voit en ralit $2000 :

$A000
$2000

a15 a14 a13 a12

a11 a10 a9 a8

a7 a6 a5 a4

a3 a2 a1 a0

1
0

0
1

Il faudra donc que le programme se trouve ladresse $2000 dans la ROM.

43

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

init.s
crts.s
$2000

video.c

Figure 4-1 : Connections entre les diffrents modules

Linitialisation du microcontrleur se fait grce au fichier INIT.S ci-dessous : Cest elle qui met en
place la configuration de la mmoire (ROM, RAM, registres, ...) ainsi que les modes de
fonctionnement du microcontrleur.

Fichier INIT.S :
.public _init
.external _text
.psect
_text
_init:
.DEFINE INIT = 3DH
.DEFINE TMSK2 = 24H
.DEFINE CONFIG = 3FH
.DEFINE BPROT = 35H
.DEFINE OPTION = 39H
.DEFINE INIT2 = 37H
.DEFINE OPT2 = 38H
.DEFINE CSTL = 5BH
.DEFINE MMSIZ = 56H
.DEFINE MMWBR = 57H
.DEFINE MM1CR = 58H
.DEFINE MM2CR = 59H
.DEFINE GPCS1A = 5CH
.DEFINE GPCS1C = 5DH
.DEFINE GPCS2A = 5EH
.DEFINE GPCS2C = 5FH
.DEFINE PGAR = 2DH

44

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

.DEFINE HPRIO = 3CH


.DEFINE PPAR = 2CH
;
;***************************************************************************/
ldaa
#0
staa
INIT;
Les registres sont dans les 1er 128 octets
;
et La RAM statique a partir de $80
staa
TMSK2;
Interruptions non autorisees
ldaa
#0CDH;
Localisation de la ROM de $A000 a $FFFF
staa
CONFIG;
et xout disable, pas de ROM interne
ldaa
#0FFH
staa
BPROT;
Protection des differents blocs de l'EEPROM
ldaa
#50H
staa
OPTION
;***************************************************************************/
lds
#037H;
Haut de la pile LIFO
;***************************************************************************/
ldaa
#0
staa
INIT2;
EEPROM de d80 a 0fff
ldaa
staa

#0
OPT2

ldaa
#05
staa
CSTL;
CSPROG valide pour une ROM de 32 koctets
;***************************************************************************/
ldaa
#26H
staa
HPRIO;
Mode etendu
ldaa
staa

#0D2H
MMSIZ;

CSGP1 et 2 valides avec des pages de 16 et 8k

ldaa
staa

#24H
MMWBR;

adresses de base window1=$4000 windows2=$2000

ldaa
staa
ldaa
staa

#0
GPCS1A
#38H
GPCS1C

ldaa
staa

#0
GPCS2A

ldaa
#37H
staa
GPCS2C
;***************************************************************************/
ldaa
#1FH
staa
PGAR;
bits XA13-17 valides
ldx
jmp

#7000H
1,x

;
rts

45

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

.end

Fichier CRTS.S
.LIST +
.external _main, _init, __memory
.public
_exit, __stext
;
.psect
__sbss:
.psect
__stext:
sei
jsr
jsr
_exit:
bra
;
.end

_bss
_text

_init
_main;

execute main

_exit;

and stay here

Fichier VIDEO.LNK

+h
+map=video.map
-o video.h11
+text -b 0x2000
+data -b 0x2300

# multi-segment output

crts.o
init.o
video.o
c:/68hc11/lib/libi.h11
c:/68hc11/lib/libm.h11

# startup routine
# initialisation program
# application program
# C library (if needed)
# machine library

+text -b 0x7fd6

# vectors start address

vector.o
+def __memory=__bss__

# interrupt vectors
# symbol used by library

# output file name


# program start address
# data start address

46

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

4.5.

CARTOGRAPHIE DE LA MMOIRE

128 o

$0

Register Block

768 o

$80

Static RAM

128 o
640 o

RESERVED

$D80

EEPROM

$1000
RAM

4 Ko
$1FFF
$2000

WINDOW2
16 pages
8 Ko
$3FFF
$4000

WINDOW1
16 pages

16 Ko

$7FFF
$8000
EXT
$9FFF
$A000
ROM
EXTERNE
(32 K)

24 Ko

$FFFF

Figure 4-2 : Cartographie mmoire adressable

47

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

4.6.

TRAITEMENT DES IMAGES

Il s'agit ici d'un algorithme de comparaison de deux images conscutives numrises. Le principe est
le suivant:
On dispose des 3 mmoires RAM0, RAM1 et RAM2.
Une image In a t numrise. C'est l'image de rfrence. Les chantillons Xn,i
sont stocks dans RAM0 ou RAM1.
On numrise une image In+1 et les chantillons Xn+1,i sont stocks dans l'autre mmoire (RAM1 ou
RAM0 respectivement).
On effectue alors le calcul des moyennes des chantillons:

M n = M Re f =
M n +1 = M Test

1 N 1
X
N i = 0 n, i
1 N 1
=
X n +1, i
N i=0

o N reprsente le nombre d'chantillons.

On effectue la comparaison des deux images In et In+1 c'est dire qu'on effectue la comparaison des
moyennes:

D = M Test M Re f = M n +1 M n

Si D est infrieur un seuil , cela signifie que la diffrence entre les deux images n'est pas
significative. Dans ce cas, l'image In+1 devient l'image de rfrence
( Iref = In+1) et on effectue l'acquisition d'une nouvelle image In+2 qui devient la nouvelle image tester
(In+2=ITest). On refait alors une nouvelle comparaison...
Si D est suprieur , alors la diffrence entre les deux images est significative, un signal TOR
dclenche une alarme et la dernire image ,c'est dire In+1 ici, est sauvegarde dans la troisime
mmoire RAM2. Il y a en fait un transfert entre les mmoires RAM0 ou RAM1 vers la mmoire
RAM2. Le systme se bloque et attend un nouvel ordre acquisition de la part de l'utilisateur.

48

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

Il faut naturellement que le seuil soit choisi de telle faon que le systme d'alarme se dclenche
pour une modification significative des images numrises.
L'algorithme de traitement est le suivant:
On notera :
D: diffrence des moyennes,
Mref: moyenne de l'image de rfrence,
Mtest: moyenne de l'image que l'on teste,
choix: boolen qui indique si l'acquisition se fait dans la RAM0 (choix=0)
ou dans la RAM1 (choix=1),
RAM0 et RAM1: mmoires de rfrence et de test,
RAM2: mmoire de sauvegarde de l'image.

D 0;
constante;
choix 0;
Acquisition;
Calcul Mref;
Acquisition;
Calcul Mtest;
choix 1;
Rpter
D valeur_absolue (Mref-Mtest) ;
Si D> *dtection* alors
Si choix = 1 alors
mettre contenu RAM1 dans RAM2;
Sinon
mettre contenu RAM0 dans RAM2;
Fin de si;
Dclencher alarme ,transfert des donnes de RAM2 et restitution;
Sinon
Mref Mtest;
Si choix = 1 alors
slectionner RAM1;
Acquisition;
Calcul Mtest;

49

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Lunit de traitement

choix 0;
Sinon
slectionner RAM0;
Acquisition;
Calcul Mtest;
choix 1;
Fin de si;
Jusqu' <alarme> ou <restitution> ou <transfert> ou <arret,pause>;

L'algorithme ci dessus suppose qu'on ait entre deux images conscutives une diffrence importante
pour la dtection ce qui est peu raliste si on veut photographier lvnement d'une intrusion par
exemple. On amliore alors l'algorithme en introduisant non plus un seuil mais deux seuils 1 et 2
avec 2 > 1.
Si D < 1 alors on continue les acquisitions.
Lorsque D > 1 , cela signifie qu'il y a eu une modification de l'image. On effectue alors des
acquisitions en gardant comme image de rfrence celle qu'on avait avant le test D > 1. On effectue
nouveau le calcul de D jusqu' ce qu'on obtienne soit D < 1, soit D > 2. Dans le premier cas, on
recommence les acquisitions. Dans le deuxime cas, on obtient une diffrence d'images assez
consquente. Il y a alors mmorisation de l'image et le dclenchement d'alarme. Ainsi si, par
exemple, la tte d'un dlinquant passe devant la camra, le premier algorithme mmorise seulement
une partie du visage alors que l'algorithme amlior mmorise le visage dans son ensemble.

50

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Travail venir

5.

TRAVAIL VENIR

Nous avons dfinitivement test la partie hardware du projet en validant le fonctionnement du


microcontrleur, par un programme en C qui faisait uniquement une acquisition, un transfert et une
restitution. Il reste donc crire un programme grant le traitement et le transfert des images, ainsi
que deffectuer des tests pour trouver le seuil de dtection de prsence.
Les problmes que nous avons rencontrs consistent surtout dans la ralisation de la carte. En effet,
cest un circuit mlangeant analogique et numrique. Or nous ne nous sommes pas mfis lorsque
nous avons ralis la carte, et avons mlang les composants analogiques et numriques.
Notamment, le signal vido dentre tranversait toute une partie o il y avait beaucoup de numrique
et arrivait fortement bruit lentre du convertisseur analogique numrique. Nous avons d le
connecter directement lentre du convertisseur pour un meilleur fonctionnement. Dans lavenir, si
une autre carte devait tre ralise et afin dviter tout problme dinterfrence entre le numrique et
lanalogique, nous conseillerions de disposer les composants comme suit :

Signal
vido
dentre
PARTIE
ANALOGIQUE

C
A
N

PARTIE
NUMERIQUE

C
N
A

Signal
de
sortie
PARTIE
ANALOGIQUE

Figure 5-1 : Disposition des composants

Une autre difficult nous est apparue lors du soudage des botiers plcc84 que sont les altras et le
microcontrleur. En effet, il est absolument impossible de souder les supports sur le ct composant
de la plaque. Nous avons donc soud des barrettes de connecteurs et avons plac les supports
dessus, mais il subsistait quand mme des faux contacts. La solution aurait t, lors du routage,
dinterdire laccs ct composant aux pistes et de rajouter des traverses supplmentaires. Cette
solution est discutable car nous ne sommes pas sr que le routage automatique se fasse entirement
au vu des difficults quil a eues avec un accs sur les deux faces.

51

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Conclusion

6.

CONCLUSION

La premire partie de ce projet, qui consistait en la cration du circuit imprim de la carte vido,
nous a permis, dans un premier temps, de nous familiariser avec la CAO et dacqurir une bonne
matrise des logiciels PCB de Mentor Graphics.
Nous nous sommes par la suite penchs sur ltude et la validation de la carte ralise; tude
particulirement intressante car elle met en oeuvre de nombreux aspects de llectronique, vus au
cours de ces trois annes passes lENSERB : lectronique analogique, numrique, interface
analogique/numrique, lments logiques programmables, microinformatique, programmation en C,
et fait galement appel certaines notions tudies cette anne dans la filire TIC, en particulier le
cours de technique vido.
Les problmes rencontrs, qui ont t essentiellement des problmes dordre pratique (bruits, faux
contacts, micro-coupure, ...), particulirement difficiles dtecter et rsoudre, nous ont retards
dans notre projet, et ne nous ont malheureusement pas permis de le mener son terme. La partie
hardware est cependant bien valide.
Ce stage a donc t bnfique sur beaucoup de points, il sest droul dans de bonnes conditions, et
nous ne pouvons que souhaiter laboutissement de ce systme de surveillance.

52

Memoire de fin dtudes : Vidosurveillance

Juin 1997

Annexes

ANNEXES

ANNEXE A : Le microcontrleur MC68HC11K1, brochage et data sheet.


ANNEXE B : Brochage des alteras compteur et squenceur.
ANNEXE C : Data sheet CAN AD775.
ANNEXE D : Data sheet CNA TDA8702.
ANNEXE E : Data sheet SRAM IS61C1024-20.
ANNEXE F : Data sheet ROM 27C256.
ANNEXE G : Data sheet Extracteur de synchros LM1881.

53

ANNEXE A : Le microcontrleur MC68HC11K1, brochage et data sheet.

ANNEXE B : Brochage des alteras compteur et squenceur.

ANNEXE C : Data sheet CAN AD775.

ANNEXE D : Data sheet CNA TDA8702.

ANNEXE E : Data sheet SRAM IS61C1024-20.

ANNEXE F : Data sheet ROM 27C256.

ANNEXE G : Data sheet Extracteur de synchros LM1881.

Vous aimerez peut-être aussi