Vous êtes sur la page 1sur 32

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.

sincere Page 1/32


Cours
Filtrage numrique
dun signal dvolution lente
avec un microcontrleur
Version 1.2.2.

1- Contexte
2- La chane de mesure
3- Le filtre numrique
3-1- Dfinitions gnrales
3-2- Filtre numrique moyenne glissante
3-3- Rponse en frquence dun filtre numrique
3-4- Le problme du repliement du spectre de frquence
3-5- Le filtre anti-repliement
3-6- Thorme de Shannon
3-7- Rponse en frquence du filtre numrique moyenne glissante
3-7-1- Etude mathmatique de la rponse en frquence
3-7-2- Influence du nombre dchantillons
3-7-3- Influence de la frquence dchantillonnage
3-8- Rjection de mode commun (limination du bruit du secteur)

4- Exemple concret :
Carte dacquisition 7 entres analogiques microcontrleur PIC 16F88 (Microchip)
4-1- Prsentation
4-2- Schma lectrique de la carte
4-3- Principe de fonctionnement de la carte
4-3-1- Les filtres anti-repliements
4-3-2- Le convertisseur analogique - numrique (ADC)
4-3-3- Le filtrage numrique
4-4- La liaison RS232
4-4-1- Le cble de communication entre l'ordinateur et la carte
4-4-2- Protocole de communication entre l'ordinateur et la carte

1- Contexte

On suppose que le signal chantillonner est un signal dvolution lente (de priode trs
suprieure la seconde).
Ce pourra tre le signal provenant dun capteur de temprature analogique (LM335) ou dun
capteur de pression (MPX2200).

On sintressera tout particulirement au filtrage numrique, qui sera ralis par un
microcontrleur (de manire purement logicielle).
On choisira une technique de filtrage numrique lmentaire, qui consiste rpter n fois la
mesure, et den calculer la moyenne arithmtique (ce sera le travail du microcontrleur, partir
des rsultats du convertisseur analogique - numrique).
Cela revient dterminer la composante continue du signal, le filtre numrique est donc du type
passe-bas.

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 2/32
Dautre part, nous verrons quen choisissant intelligemment la frquence dchantillonnage du
convertisseur analogique - numrique, notre filtre numrique pourra liminer compltement le
bruit du secteur (50 Hz) ainsi que ses harmoniques.

2- La chane de mesure

Structure gnrale :

tension
chantillonner
filtre
anti-repliement
filtre
numrique
convertisseur
analogique
numrique
monde
analogique
monde
numrique


La tension chantillonner est souvent une tension issue dun capteur analogique.
Le filtre anti-repliement est un filtre passe-bas analogique dont la frquence de coupure est lie
la frquence dchantillonnage du convertisseur analogique numrique.
Le filtrage numrique est ici ralis par un microcontrleur (de faon logicielle).

3- Le filtre numrique

3-1- Dfinitions gnrales

Il existe plusieurs types de filtres numriques linaires :

Filtre numrique non rcursif (ou filtre rponse impulsionnelle finie RIF)
Filtre numrique rcursif (ou filtre rponse impulsionnelle infinie RII)

Nous ne nous intresserons quaux filtres numriques non rcursifs , dont voici lexpression
gnrale :



l k
x
reprsente la valeur numrique fournie par le convertisseur analogique numrique
linstant t = kT
e
l T
e

y
k
reprsente la valeur numrique en sortie du filtre numrique linstant t = kT
e


Un filtre numrique est caractris par :

n : le nombre dchantillons (cest un nombre entier, suprieur 1)
h
0
, h
1
, , h
n -1
: n coefficients rels

T
e
est la priode dchantillonnage du convertisseur analogique numrique.
F
e
= 1 / T
e
est la frquence dchantillonnage.

Par dfinition, la fonction de transfert en z du filtre scrit :


=

=
1 n
0
k k
x h y
l
l l
IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 3/32

=
1 n
0
z h ) z ( H
l
l
l


3-2- Filtre numrique moyenne glissante

Pour des raisons de simplicit, nous choisirons un filtre numrique non rcursif avec des
coefficients identiques, tels que :


n
1
h =
l


do :

n
z ... z z 1
) z ( H
x
n
1
y
) 1 n ( 2 1
1 n
0
k k

+ + + +
=
=

l
l


En fait, ce filtre numrique calcule la valeur moyenne des n derniers chantillons.
On parle aussi de filtre moyenne glissante .

Toujours pour des raisons de simplicit, le nombre dchantillons n sera une puissance de 2.

Exemple avec : n = 2
3
= 8


8
x x x x x x x x
y
7 k 6 k 5 k 4 k 3 k 2 k 1 k k
k

+ + + + + + +
=

8
z ... z z 1
) z ( H
7 2 1
+ + + +
=
On suppose que le convertisseur analogique numrique a une rsolution de 10 bits (nombre
binaire de 10 bits), avec une frquence dchantillonnage de 1 kHz (cest--dire une conversion
toutes les 1 ms).

tension
chantillonner
filtre
anti-repliement
filtre
numrique
convertisseur
analogique
numrique
monde
analogique
monde
numrique


Voici les 8 dernires conversions de ce convertisseur :
IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 4/32

Binaire naturel Dcimal
x
k-7
mesure linstant t 7 ms 01 11111110 510
x
k-6
mesure linstant t 6 ms 10 00001001 521
x
k-5
mesure linstant t 5 ms 01 11111101 509
x
k-4
mesure linstant t 4 ms 10 00000011 515
x
k-3
mesure linstant t 3 ms 10 00000000 512
x
k-2
mesure linstant t 2 ms 10 00001010 522
x
k-1
Avant dernire mesure ( linstant t 1 ms) 01 11111011 507
x
k
Dernire mesure ( linstant t) 01 11111111 511

La dispersion des mesures est en partie due la prsence de bruit.

Un microcontrleur sait trs bien faire les additions (en binaire).
Par exemple le microcontrleur Microchip PIC 16F88, possde linstruction addwf qui lui
permet dadditionner 2 nombres de 8 bits, en un cycle dhorloge (soit 0,2 s avec une horloge
quartz de 20 MHz).

La somme de 8 nombres de 10 bits donne un rsultat sur 10 + 3 = 13 bits :

dcimal) (en 4017
naturel) binaire (en 00001011 10000
x x x x x x x x
7 k 6 k 5 k 4 k 3 k 2 k 1 k k
=
=
+ + + + + + +



Il faut maintenant faire une division pour obtenir la valeur moyenne.

Un microcontrleur standard, comme le PIC 16F88, ne possde pas dinstruction de division (ni
dinstruction de multiplication).
Le PIC 16F88 doit reconstruire la division uniquement avec des instructions dadditions, ce qui
donne lieu une routine assez complexe (et lente).

Heureusement, la division devient triviale quand on divise par une puissance de 2.
Pour diviser par 2
n
, on dcale la virgule de n bits vers la gauche.
(Cest la mme chose en dcimal : pour diviser par 10
n
, on dcale la virgule de n chiffres vers la
gauche : 6594 / 1000 = 6,594).

Ainsi, pour diviser par 8, il suffit de dcaler la virgule de 3 bits vers la gauche :

10000 00001011 10 00000001,011

Ce qui donne pour la partie entire :

10 00000001
= 513 en dcimal

Et pour le reste :

011 = 0,50 + 0,251 + 0,1251 = 0,375

Finalement :
IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 5/32

y
k
= 513,375

(4107 / 8 = 513,375)

On remarquera que la valeur moyenne sur 8 conversions donne un nombre de 13 bits.
On augmente ainsi, de manire logicielle, la rsolution du convertisseur analogique numrique
(on passe de 10 13 bits).


3-3- Rponse en frquence dun filtre numrique


Voici lexpression gnrale de la fonction de transfert :

=

=
1 n
0
T jf 2
e
e h ) f ( H
l
l
l


f : frquence en hertz du signal chantillonn (suppos sinusodal)

Avec notre filtre moyenne glissante ( n / 1 h =
l
) :

=

=
1 n
0
T jf 2
e
e
n
1
) f ( H
l
l


que lon peut crire plus simplement :


e
T
2
) 1 n (
jf 2
e
e
e
)
2
T
f 2 sin(
)
2
nT
f 2 sin(
n
1
) f ( H




=


En effet (vive les maths !) :

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 6/32

( )
e
e
e
e e
e e
e
e
e
e e e e e
T
2
) 1 n (
jf 2
e
e
jfT
jfnT
jfT jfT
jfnT jfnT
jfT 2
jfnT 2
jfnT 2
n
1
T jf 2
1 n
0
T jf 2
1 n
0
T ) 1 ( jf 2
1 n
0
T jf 2 jfT 2
e
)
2
T
f 2 sin(
)
2
nT
f 2 sin(
n
1
e
e
e e
e e
n
1
e 1
e 1
n
1
) f ( H
e 1
n
1
e
n
1
e
n
1
e
n
1
e
n
1
e ) f ( H ) f ( H




+
+



=

=
+

=



=

=
=
= =

l
l
l
l
l
l
l
l


En module, la fonction de transfert donne lamplification du filtre numrique, rapport
entre le niveau de sortie et le niveau dentre dun signal sinusodal de frquence f :


)
2
T
f 2 sin(
)
2
nT
f 2 sin(
n
1
) f ( A
e
e


=

On en dduit le gain du filtre numrique (en dB) :

G(f) = 20 log
10
A(f)

En argument, la fonction de transfert donne le dphasage (en radians) entre la sortie et lentre
du filtre numrique :


e
T
2
1 n
f 2



On notera que le dphasage est linaire.

3-4- Le problme du repliement du spectre de frquence

Reprenons notre filtre moyenne glissante :


)
2
T
f 2 sin(
)
2
nT
f 2 sin(
n
1
) f ( A
e
e


=


On montre que :

entier k avec
) f ( A ) f kF ( A
e
=

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 7/32

Application numrique avec F
e
= 1 kHz (T
e
= 1 ms) et n = 16 chantillons :

) f ( A log 20 ) f ( G
)
2
10
f 2 sin(
)
2
10 n
f 2 sin(
16
1
) f ( A
10
3
3



0 500 1000 1500 2000 2500 3000
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence


N.B. Les courbes ont t traces avec Matlab.
Pour en savoir plus sur Matlab :
http://perso.orange.fr/fabrice.sincere/matlab/matlab_index.htm

Le spectre de frquence est priodique (priode F
e
).
On dit que le spectre de frquence se replie .

Ainsi, les frquences suivantes donnent la mme rponse :

100 Hz
900 Hz (1000 100)
1100 Hz (1000 + 100)
1900 Hz (21000 100)
2100 Hz (21000 + 100)
2900 Hz (31000 100)
3100 Hz (31000 + 100)
3900 Hz
4100 Hz

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 8/32
Un signal de 1 kHz nest absolument pas filtr (gain 0 dB).

Cela sexplique par le fait que le signal est chantillonn exactement une fois par priode
(f = F
e
). Ce signal est vu par le filtre numrique comme un signal constant (frquence nulle).

Cest exactement la mme chose avec un stroboscope qui claire un disque en rotation : si la
frquence des flashs du stroboscope concide exactement avec la frquence de rotation du disque,
le disque semble immobile (le disque fait exactement un tour entre 2 flashs, ce qui donne
lillusion dimmobilit).

Il en est de mme pour les signaux de frquences :
2 kHz (1 chantillon toutes les 2 priodes exactement)
3 kHz (1 chantillon toutes les 3 priodes exactement)
4 kHz et tous les multiples entiers de 1 kHz (= frquence dchantillonnage)

Cest embtant pour un filtre numrique passe-bas
La solution ce problme est lutilisation, en amont, dun filtre anti-repliement .

Le filtre anti-repliement permet de travailler dans la zone utile du filtre numrique, cest--
dire dans la bande de frquences situe entre 0 Hz et 500 Hz (F
e
/ 2) :


0 100 200 300 400 500
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence


Entre 0 Hz et F
e
/ 2, il y a une diminution globale du gain avec la frquence, caractristique dun
filtre passe-bas.
Vous noterez cependant des discontinuits pour certaines frquences (62,5 Hz ; 125 Hz etc) o
le gain du filtre numrique tend vers - .
Le filtre limine totalement ces frquences (filtre rjecteur).
Dans la suite, nous mettrons profit cette proprit pour supprimer le bruit de ronflement du
secteur (50 Hz).


IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 9/32
Ce que nous venons de voir dans ce cas particulier se gnralise.
Quel que soit le filtre numrique, le spectre se replie.


3-5- Le filtre anti-repliement

tension
chantillonner
filtre
anti-repliement
filtre
numrique
convertisseur
analogique
numrique
monde
analogique
monde
numrique



Dans le paragraphe prcdent, nous avons montr quil est indispensable dintercaler un filtre
anti-repliement avant le convertisseur analogique numrique.
Cest un filtre analogique passe-bas de frquence de coupure F
e
/ 2 (dans lidal).

En pratique, le filtre passe-bas parfait nexiste pas et le repliement du filtre numrique
(f > F
e
/ 2) est partiellement limin.
La qualit se paie par lutilisation dun filtre anti-repliement labor (ordre lev).

Dans notre cas, on cherche simplement extraire la valeur moyenne (frquence nulle) du signal
(et non pas la bande de frquences de 0 Hz F
e
/ 2, comme ce serait le cas pour un signal audio).

On peut se contenter dun filtre passe bas du premier ordre de frquence de coupure trs
infrieure F
e
/ 2 (mais pas trop basse car le temps du rponse du filtre deviendrait important).


3-6- Thorme de Shannon


Le thorme de Shannon dit que pour pouvoir reconstituer un signal analogique partir des ses
chantillons, il faut que la frquence dchantillonnage F
e
soit gale ou suprieure deux fois la
frquence maximale du spectre du signal analogique :


2
1
T f ou
T 2
1
f ou
2
F
f
e
e
e
< < <

Dans notre cas, le signal chantillonner est un signal dvolution lente (de priode trs
suprieure la seconde).
Si on choisit une frquence dchantillonnage dau moins 1 Hz (au moins 1 mesure par seconde),
le thorme de Shannon est bien videmment respect.


IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 10/32
3-7- Rponse en frquence du filtre numrique moyenne glissante

3-7-1- Etude mathmatique de la rponse en frquence

)
2
T
f 2 sin(
)
2
nT
f 2 sin(
n
1
) f ( A
e
e


=

Nous allons tudier cette fonction dans lintervalle
2
F
f 0
e

On suppose que le nombre dchantillons (n) est une puissance de 2 (n = 2, 4, 8 )

a) f = 0 Hz

A(f 0) = 1 (ou G = 0 dB, gain nul)

Cest un maximum


b) f = F
e
/ 2

0 )
2
n sin(
n
1
)
2
sin(
)
2
n sin(
n
1
)
2
F
f ( A
e
=

= = (gain - )
Cest un minimum


c) Dtermination des frquences o lamplification est maximum

( )
( )
. imum max
2
n
donne cela Hz, 0 f maximum du compte tenant En
imum max 1 -
2
n
2
1 n
k
:
2
F
f 0 intervalle l' Dans
n 2
F
1 - 2k f
1 entier nombre un est k
2
1 - 2k
2
nT
f 2
1 )
2
nT
f 2 sin(
e
e
e
e
|

\
|
=
|

\
|

<
< <
=

=
=


IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 11/32

Pour les frquences o lamplification est maximum :

)
2
T
f 2 sin(
1
n
1
A
e

=

Quand f augmente A diminue : cest normal, cest un filtre numrique passe-bas.

Pour un filtrage plus efficace, on a intrt choisir un grand nombre dchantillons (n).


d) Dtermination des frquences o lamplification est minimum (nulle)
. imum min
2
n
donne cela ,
2
F
f minimum du compte tenant On
imum min 1
2
n
2
n
k
2
F
f 0 intervalle l' Dans
n
F
k f
1 entier nombre un est k
k
2
nT
f 2
0 )
2
nT
f 2 sin(
e
e
e
e
e
|

\
|
=
|

\
|

<
< <
=

=
=



En dfinitive :

n (nombre
dchantillons)
Nombre de
frquences
rejetes
Frquences rejetes dans lintervalle
2
F
f 0
e

2 1 F
e
/2
4 2 F
e
/4 ; F
e
/2
8 4 F
e
/8 ; F
e
/4 ; 3 F
e
/8 ; F
e
/2
16 8 F
e
/16 ; F
e
/8 ; 3 F
e
/16 ; F
e
/4 ; 5 F
e
/16 ; 3 F
e
/8 ; 7 F
e
/16 ; F
e
/2
32 16 F
e
/32 ; F
e
/16 ; 3 F
e
/32 ; ; 31 F
e
/32 ; F
e
/2
2
n
n / 2 k F
e
/n avec k = 1, 2, 3, , n/2


IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 12/32
3-7-2- Influence du nombre dchantillons (n)


F
e
= 1 kHz n = 2 chantillons

0 100 200 300 400 500
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence



F
e
= 1 kHz n = 4 chantillons


0 100 200 300 400 500
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence




IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 13/32
F
e
= 1 kHz n = 8 chantillons

0 100 200 300 400 500
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence




F
e
= 1 kHz n = 16 chantillons


0 100 200 300 400 500
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence






IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 14/32
F
e
= 1 kHz n = 32 chantillons


0 100 200 300 400 500
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence



F
e
= 1 kHz n = 64 chantillons


0 100 200 300 400 500
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence



Pour un filtrage plus efficace, on a donc intrt choisir un grand nombre dchantillons
(n).

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 15/32
3-7-3- Influence de la frquence dchantillonnage


F
e
= 500 Hz n = 16 chantillons



0 50 100 150 200 250
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence



F
e
= 1 kHz n = 16 chantillons



0 100 200 300 400 500
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 16/32

F
e
= 2 kHz n = 16 chantillons


0 200 400 600 800 1000
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence



F
e
= 4 kHz n = 16 chantillons



0 500 1000 1500 2000
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence


IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 17/32
3-8- Rjection de mode commun (limination du bruit du secteur)

Lun des principaux bruits qui perturbe le signal de mesure est le ronflement du secteur
(frquence nominale 50 Hz).

Avec notre filtre numrique moyenne glissante, il est facile dliminer le fondamental du
secteur (50 Hz), ainsi que ses harmoniques (100, 150, 200, 250 Hz ).

Nous avons montr prcdemment que notre filtre rejte un certain nombre de frquences.

Ces frquences sont donnes par la relation :

2
n
k 1
2
F
f 0 : intervalle l' Dans
entier. nombre un k avec
n
F
k f
e
e

<
=


Dterminons les conditions pour rejeter la frquence de 50 Hz :

2
n
k 1 : que entier tel nombre un k avec
k
n
50 F
n
F
k 50
e
e

=
=


Nombre
dchantillons
n
Frquence
dchantillonnage
F
e

Frquences rejetes (Hz)
(dans lintervalle
2
F
f 0
e
< )
Intervalle de
mesure
n T
e

2 100 Hz 50 Hz 20 ms
4 200 Hz 50, 100 20 ms
4 100 Hz 25, 50 40 ms
8 400 Hz 50, 100, 150, 200 20 ms
8 200 Hz 25, 50, 75, 100 40 ms
8 133,3 Hz 16,7 33,3 50 66,7 60 ms
8 100 Hz 12,5 25 37,5 50 80 ms
16 800 Hz 50, 100, 150, 200, 250, 300, 350, 400 20 ms
16 400 Hz 25, 50, 75, 100, 125, 150, 175, 200 40 ms
16 266,7 Hz 16,7 33,3 50 66,7 83,3 100 116,7 133,3 60 ms
16 200 Hz 12,5 25 37,5 50 62,5 75 87,5 100 80 ms
16 160 Hz 10 20 30 40 50 60 70 80 100 ms
16 133,3 Hz 8,3 16,7 25 33,3 41,7 50 58,3 66,7 120 ms
16 114,3 Hz 7,1 14,3 21,4 28,6 35,7 42,9 50 57,1 140 ms
16 100 Hz 6,25 12,5 18,75 25 31,25 37,5 43,75 50 160 ms

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 18/32

Remarque : (n T
e
) est un multiple entier de la priode du secteur (20 ms).

Exemple avec n = 16 chantillons

F
e
= 800 Hz n = 16


0 50 100 150 200 250 300 350 400
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence


F
e
= 400 Hz n = 16

0 50 100 150 200
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 19/32

F
e
= 266,67 Hz n = 16

0 20 40 60 80 100 120
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence



F
e
= 200 Hz n = 16


0 20 40 60 80 100
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence


IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 20/32

F
e
= 160 Hz n = 16


0 10 20 30 40 50 60 70 80
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence



F
e
= 133,33 Hz n = 16


0 10 20 30 40 50 60
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence


IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 21/32

F
e
= 114,29 Hz n = 16


0 10 20 30 40 50
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence



F
e
= 100 Hz n = 16

0 10 20 30 40 50
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence


Pour en savoir plus sur la rjection de mode commun dans les multimtres numriques :
http://perso.orange.fr/fabrice.sincere/electronique1.htm#5
IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 22/32

4- Exemple concret :
Carte dacquisition 7 entres analogiques microcontrleur PIC 16F88
(Microchip)

Lien vers le projet complet (avec code source du microcontrleur) :

http://pagesperso-orange.fr/fabrice.sincere/cm_electronique/projet_pic/carte%20acquisition%207%20voies/carte_acquisition7voies.htm


4-1- Prsentation
Il s'agit d'une carte d'acquisition 7 voies analogiques pour signaux lents, qui conviendra pour
l'acquisition de tempratures, de pressions atmosphriques, etc ...

La frquence d'acquisition est de 1 Hz maximum par voie (c'est--dire 60 acquisitions maximum
par minute).
Le convertisseur analogique - numrique (module interne du microcontrleur PIC 16F88) a les
caractristiques suivantes :
Plage de tension analogique : 0,000 V 5,000 V
Rsistance interne de la source de tension chantillonner : 5 k maximum
Rsolution numrique : 10 bits (5 mV)
N.B. Le filtrage numrique amliore la rsolution : moins de 1 mV en pratique.
La carte se connecte un ordinateur (via une liaison RS232).
Jai dvelopp une application Windows qui affiche les donnes en temps rel et fournit un
graphe droulant (pour chaque voie) :
IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 23/32

4-2- Schma lectrique de la carte


IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 24/32
4-3- Principe de fonctionnement de la carte
4-3-1- Les filtres anti-repliements
Un filtre anti-repliement est intercal entre la tension mesurer (qui provient gnralement d'un
capteur) et le canal d'entre de l'ADC du microcontrleur PIC 16F88.
Il s'agit ici d'un simple filtre passif analogique passe-bas du premier ordre :
R = 4,7 k
C = 2,2 F

Frquence de coupure 3 dB : Hz 15
RC 2
1
f
c

=

10
0
10
1
10
2
10
3
10
4
-60
-50
-40
-30
-20
-10
0
G
a
i
n

(
e
n

d
B
)
Frquence (en Hz)
Diagramme de Bode du gain


4-3-2- Le convertisseur analogique - numrique (ADC)
Le convertisseur analogique - numrique est situ dans un module interne du microcontrleur
PIC 16F88.
Pour plus d'informations sur le fonctionnement du convertisseur analogique - numrique du PIC
16F88, je vous invite suivre ce lien :
http://pagesperso-orange.fr/fabrice.sincere/cm_electronique/projet_pic/aidememoire/16F88_ADC/ADC_16F88.htm



IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 25/32
4-3-3- Le filtrage numrique
Un filtrage numrique (passe-bas) est effectu de faon enlever le maximum de bruit (en
particulier le bruit de ronflement du secteur 50 Hz).
Ce filtrage numrique est ralis de manire logicielle par le microcontrleur PIC 16F88
(pendant la phase de traitement du rsultat de la conversion de lADC).
- Caractristiques du filtre numrique :
Filtre numrique non rcursif moyenne glissante (sur 256 chantillons)
Priode d'chantillonnage nominale : T
e
= 390,625 s
Frquence d'chantillonnage nominale : F
e
= 1 / T
e
= 2,560 000 kHz
- Choix de la frquence dchantillonnage du filtre :

La frquence d'acquisition est de 1 Hz maximum par voie.
Comme il y a 7 voies, cela laisse 140 ms entre deux acquisitions.

Il faut que nT
e
soit un multiple entier de la priode du secteur (20 ms), tout en restant infrieur
140 ms :

On prendra : nT
e
= 100 ms (soit 5 fois la priode du secteur).

On a intrt choisir n le plus grand possible.

T
e
est limite par la rapidit du convertisseur ADC interne du microcontrleur PIC 16F88.
Dans notre cas, la dure de conversion est de 42 s.

On prendra : n = 256 (puissance de 2)
Do :
T
e
= 100 ms / 256 = 390,625 s (ce qui est bien suprieur 42 s)
F
e
= 2560,000 Hz

Lhorloge du microcontrleur PIC 16F88 est cadence par un quartz de frquence nominale
20 MHz : 1 cycle correspond donc 0,2 s.

390,625 s = 1953,125 cycles

On arrondit 1953 cycles :

T
e
= 390,6 s
F
e
= 2560,16 Hz

La tolrance sur le quartz est 100 ppm.
Finalement : F
e
= (2560,16 0,26) Hz

La tolrance sur la frquence dchantillonnage peut tre nglige.
Par la suite, on retiendra la valeur de 2560 Hz.


IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 26/32
- Frquences rejetes par le filtre numrique :

f = k 2560 / 256 avec k entier
f = k 10 Hz

Tous les multiples entiers de 10 Hz sont compltement filtrs par le filtre numrique :

10, 20, 30, 40, 50, 60, . 100, , 150 Hz

On limine ainsi les harmoniques du secteur (50 Hz).

N.B. Les multiples de 60 Hz sont galement limins (on rappelle que 60 Hz est la frquence du
secteur aux USA et en Grande Bretagne).
nT
e
= 100 ms
= 5 fois la priode du secteur (50 Hz en France)
= 6 fois la priode du secteur (60 Hz aux USA)


- Rponse en frquence du filtre numrique

F
e
= 2560 Hz n = 256 chantillons


Zoom de la plage 0 250 Hz :


0 50 100 150 200 250
-60
-50
-40
-30
-20
-10
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence


IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 27/32

Plage 0 640 Hz :


0 100 200 300 400 500 600
-50
-45
-40
-35
-30
-25
-20
-15
-10
-5
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence


Plage 640 Hz F
e
/ 2 = 1280 Hz :


700 800 900 1000 1100 1200
-60
-50
-40
-30
-20
-10
0
frquence (Hz)
g
a
i
n

(
d
B
)
Rponse en frquence

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 28/32

- Rsultats exprimentaux :

Sans filtre anti-repliement

En entre de lADC, on applique un signal sinusodal talon de valeur moyenne 2,500 V et
damplitude crte crte 4,000 V.


f = 15 Hz
Gain exprimental : dB 5 , 13
4
85 , 0
log 20
4
075 , 2 925 , 2
log 20
10 10
= =


En thorie : -13,2 dB (Cf. courbe ci-dessus)

f = 45 Hz
Gain exprimental : dB 0 , 23
4
284 , 0
log 20
4
358 , 2 642 , 2
log 20
10 10
= =


En thorie : - 23,0 dB (Cf. courbe ci-dessus)

f = 55 Hz
Gain exprimental : dB 7 , 24
4
232 , 0
log 20
4
384 , 2 616 , 2
log 20
10 10
= =


En thorie : - 24,7 dB (Cf. courbe ci-dessus)
Ca marche parfaitement !

f = 50 Hz
Gain exprimental : dB 66
4
002 , 0
log 20
4
499 , 2 501 , 2
log 20
10 10
= =


En thorie : gain -



f = F
e
= 2560 Hz
Gain exprimental : dB 0
4
4
log 20
4
50 , 0 50 , 4
log 20
10 10
= =


En thorie : 0 dB (comme pour 0 Hz)

f = 2575 Hz
Gain exprimental : dB 2 , 14
4
78 , 0
log 20
4
11 , 2 89 , 2
log 20
10 10
= =


En thorie : -13,2 dB (comme pour 2575 - 2560 = 15 Hz)

f = 2585 Hz
Gain exprimental : dB 4 , 18
4
48 , 0
log 20
4
26 , 2 74 , 2
log 20
10 10
= =


En thorie : -17,8 dB (comme pour 2585 2560 = 25 Hz)

IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 29/32

Avec filtre anti-repliement

La frquence de coupure du filtre anti-repliement est de 15 Hz.
Cette frquence a t choisie de la manire suivante :

>> 1 Hz (frquence dacquisition)
<< 1260 Hz (F
e
/ 2)

10
0
10
1
10
2
10
3
10
4
-60
-50
-40
-30
-20
-10
0
G
a
i
n

(
e
n

d
B
)
Frquence (en Hz)
Diagramme de Bode du gain


En thorie, le gain du filtre anti-repliement est :

Pour f = F
e
/ 2 = 1280 Hz : - 38,4 dB (Cf. courbe ci-dessus)
f = F
e
= 2560 Hz - 44,4 dB
f = 2 F
e
= 5120 Hz - 50,4 dB
f = 3 F
e
= 7680 Hz - 54,0 dB


Le gain total est gal la somme du gain du filtre anti-repliement et du gain du filtre numrique,
ce qui donne en thorie :
IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 30/32
10
0
10
1
10
2
10
3
10
4
-100
-80
-60
-40
-20
0
G
a
i
n

(
e
n

d
B
)
Frquence (en Hz)
Diagramme de Bode du gain



En pratique, on mesure :

f = 2560 Hz
Gain exprimental : dB 4 , 44
4
024 , 0
log 20
4
487 , 2 511 , 2
log 20
10 10
= =


En thorie : - 44,4 + 0 = - 44,4 dB


f = 5120 Hz
Gain exprimental : dB 5 , 50
4
012 , 0
log 20
4
494 , 2 506 , 2
log 20
10 10
= =


En thorie : - 50,4 + 0 = - 50,4 dB

Les rsultats exprimentaux concident avec la thorie.

4-4- La liaison RS232 ( titre dinformation)
4-4-1- Le cble de communication entre l'ordinateur et la carte
Il faut bien sr un ordinateur qui possde un port COM, reconnaissable par son connecteur SubD
9 broches mle.
Il faut brancher un cble "null-modem" (cble crois) entre l'ordinateur et la carte.
Si vous n'en avez pas, vous pouvez facilement en faire un (il faut 3 fils et 2 connecteurs SubD 9
broches femelle).
IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 31/32
4-4-2- Protocole de communication entre l'ordinateur et la carte
Seul l'ordinateur prend la parole (matre).
Le microcontrleur PIC 16F88 se contente de rpondre (esclave).
L'ordinateur envoie 1 octet (via la liaison RS232) toute les 140 ms.
Cet octet contient le numro du canal chantillonner :
o canal 0 -> 0x00
o canal 1 -> 0x01
o canal 2 -> 0x02
o canal 3 -> 0x03
o canal 4 -> 0x04
o canal 5 -> 0x05
o canal 6 -> 0x06
Le processus est cyclique : voie 0 puis voie 1 ... puis voie 6 puis voie 0 ...
Chaque voie est ainsi chantillonne toutes les 7 x 140 = 980 ms (d'o une frquence
d'acquisition d'environ 1 Hz).
Une fois l'octet reu, le PIC 16F88 slectionne le canal indiqu, et lance une srie de 256
conversions (une toute les 390,6 s).
Cela prend : 256 x 390,6 s = 100 ms
Le microcontrleur PIC effectue la moyenne des 256 conversions (filtrage numrique).
Sachant que la rsolution du convertisseur ADC est 10 bits, la somme ncessite un nombre de 18
bits.
La moyenne correspond la somme avec la virgule dcale de 8 bits vers la gauche.
Par exemple :
Somme brute (18 bits) : 10 10010010 01000101 = 168 517 (en dcimal).
On dcale la virgule de 8 positions :
10 10010010 , 01000101
Partie entire (10 bits) : 10 10010010 = 658 (en dcimal)
01000101 = 1/4 + 1/64 + 1/256 = 0,26953125
En dfinitive :
168 517 / 256 = 658,26953125
IUT de Nancy-Brabois Fabrice Sincre http://perso.orange.fr/fabrice.sincere Page 32/32
Notez que la rsolution est amliore : on passe de 10 bits 18 bits.
On pratique, on restera prudent, et on considrera que la rsolution est d'au moins 12 bits (soit
une rsolution de l'ordre de 5 V / 4096 1 mV).
La moyenne est envoye telle quelle vers l'ordinateur sous la forme de 3 octets :
o 1er octet : (000000 D9 D8)
o 2me octet : (D7 ... D0)
o 3me octet : (D-1 ... D-8)
Exemple d'oscillogramme :

L'ordinateur envoie vers le PIC un octet :
0x06 <=> voie 6
100 ms plus tard, le PIC renvoie 3 octets :
0x01 0xF5 0x6C <=> 0x01F56C <=> 128 364 (en dcimal)
128 364 / 256 = 501,42 <=> (501,42 / 1023) x 5 volts = 2,451 volts
40 ms plus tard (140 - 100 = 40 ms), l'ordinateur envoie un nouvel octet (0x00) pour demander
l'chantillonnage de la voie 0, et le cycle recommence ...


Lien vers le projet complet (avec code source du microcontrleur) :

http://pagesperso-orange.fr/fabrice.sincere/cm_electronique/projet_pic/carte%20acquisition%207%20voies/carte_acquisition7voies.htm

Fabrice Sincre

Vous aimerez peut-être aussi