GELE4011 Chapitre 7: Conversion Analogique

publicité
GELE4011 Chapitre 7:
Conversion Analogique-Numérique
Gabriel Cormier, Ph.D., ing.
Université de Moncton
Automne 2010
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
1 / 52
Contenu
1
Conversion numérique-analogique
2
Fonction de transfert
3
Caractéristiques
4
Circuits de conversion N/A
Conversion N/A
5
Conversion Analogique-Numérique
6
Circuits ADC
Intégrateur lent
Conversion par comparaison successive
ADC flash
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
2 / 52
Conversion numérique-analogique
Introduction
Convertisseur numérique-analogique (DAC) : convertit une entrée
binaire en sortie analogique (tension ou courant)
Sortie : unipolaire (positif seulement) ou bipolaire (positif et négatif)
Commercialement : DAC ont tension ou courant comme sortie
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
3 / 52
Conversion numérique-analogique
Résolution
Résolution : nombre de sorties distinctes analogiques
Pour un DAC de n bits,
Résolution = 2n
Ex : pour un DAC à 3 bits, la résolution est 8 (8 sorties distinctes)
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
4 / 52
Fonction de transfert
Fonction de transfert
Graphe représentant la valeur analogique de sortie en fonction des
codes binaires de l’entrée
Donné en fonction d’une valeur de référence (habituellement
normalisé à 1)
La valeur de référence n’est jamais atteinte : la sortie maximale est
une unité de résolution (∆V ) de moins que le max
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
5 / 52
Fonction de transfert
Fonction de transfert
Exemple : DAC à 3 bits unipolaire
Valeur de référence
1.000
0.875
∆Vo
0.750
0.625
0.500
0.375
0.250
0.125
0.000
000
Gabriel Cormier (UdeM)
001
010
011
100
GELE4011 Chapitre 7
101
110
111
Automne 2010
6 / 52
Fonction de transfert
Fonction de transfert
Exemple : DAC à 3 bits bipolaire
Valeur de référence
1.00
0.75
∆Vo
0.50
0.25
0.00
−0.25
−0.50
−0.75
−1.00
000
Gabriel Cormier (UdeM)
001
010
011
100
GELE4011 Chapitre 7
101
110
111
Automne 2010
7 / 52
Caractéristiques
Variation de la sortie
La variation de la sortie, ∆Vo , est la variation de la sortie lorsque
l’entrée varie de 1 bit moins significatif (LSB) :
∆Vo =
∆Vmax
2n
où ∆Vmax représente la variation maximale de la sortie.
Sortie maximale Vf s n’est pas égale à la référence :
1
Vf s = Vref 1 − n
2
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
8 / 52
Caractéristiques
Exemple
Soit un DAC à 8bits pour utilisation avec sortie unipolaire de 0 à 5.12V.
Quelle est a) la résolution du DAC, b) la variation de la sortie par bit, et c)
la sortie à pleine échelle lorsque l’entrée est composée entièrement de 1
logiques ?
a) résolution = 28 = 256
5.12
= 20 mV/bit
b) ∆Vo =
256
1
c) Vf s = 5.12 1 − 8 = 5.1 V
2
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
9 / 52
Caractéristiques
Erreur de décalage
Les fonctions de transfert présentée auparavant étaient idéales. En
réalité, il peut avoir une erreur entre l’entrée spécifiée et la sortie.
Typiquement, on mesure l’erreur de décalage (Vos ) lorsque la sortie
devrait être nulle.
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
10 / 52
Caractéristiques
Erreur de décalage
Exemple : DAC à 3 bits unipolaire avec erreur
Valeur de référence
1.000
0.875
∆Vo
0.750
0.625
0.500
Courbe idéale
0.375
0.250
Vos
0.125
0.000
000
Gabriel Cormier (UdeM)
001
010
011
100
GELE4011 Chapitre 7
101
110
111
Automne 2010
11 / 52
Caractéristiques
Erreur de gain
Erreur de gain : la pente de la courbe est différente de celle du cas
idéal
Erreur de gain est donnée en fonction de la sortie maximale :
V11 − Vos
Erreur de gain =
−1
Vf s
V11 est la sortie réelle lorsque l’entrée est composée entièrement de 1
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
12 / 52
Caractéristiques
Erreur de gain
Exemple : DAC à 3 bits unipolaire avec erreur
Valeur de référence
1.000
0.875
Erreur
de gain
0.750
Courbe idéale
0.625
0.500
0.375
0.250
0.125
0.000
000
001
Gabriel Cormier (UdeM)
010
011
100
GELE4011 Chapitre 7
101
110
111
Automne 2010
13 / 52
Caractéristiques
Erreur de gain
Mesurer l’erreur de gain,
Déterminer en premier l’erreur de décalage,
Ajuster toutes les entrées à 1 logique,
Mesurer l’amplitude à la sortie
Idéalement, on recherche une erreur de gain de 1 LSB.
Il est aussi possible d’avoir des erreurs de gain non-linéaires, où la
fonction de transfert n’est pas une ligne droite.
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
14 / 52
Circuits de conversion N/A
Conversion N/A
Conversion N/A
Schéma-bloc :
Tension de
référence
Réseau
R-2R de
résistances
Interrupteurs
Sortie de courant
optionnelle
Convertisseur
Io à Vo
Io
Vo
MSB
LSB
Entrée numérique
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
15 / 52
Circuits de conversion N/A
Conversion N/A
Conversion R–2R
Les entrées contrôlent chacune 1 interrupteur (1 par bit)
La sortie du réseau est un courant proportionnel au code de l’entrée
Le courant est ensuite converti en tension
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
16 / 52
Circuits de conversion N/A
Conversion N/A
Réseau R–2R
R3
−
+
Vref
Iref
2R
0
R
I3
1
R2
I3
2R
0
R
I2
1
R1
I2
2R
0
R
I1
1
R0
I1
2R
I0
I0
0
2R
1
Iout
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
17 / 52
Circuits de conversion N/A
Conversion N/A
Réseau R–2R
Selon le circuit précédent,
R3 = R2 = R1 = R0
La relation entre les courants :
Iref
2
Iref
I2
I1 =
=
2
8
Iref
I3
=
2
4
Iref
I1
I0 =
=
2
16
I3 =
I2 =
Le courant total est :
Iout = I0 × D
où D est la valeur décimale du code binaire de l’entrée
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
18 / 52
Circuits de conversion N/A
Conversion N/A
Réseau R–2R
I0 = résolution du réseau
I0 = plus petite valeur de courant disponible
I0 =
Gabriel Cormier (UdeM)
Iref
1 Vref
= n·
n
2
2
R
GELE4011 Chapitre 7
Automne 2010
19 / 52
Circuits de conversion N/A
Conversion N/A
Sortie en tension
Conversion en tension à l’aide d’un ampli-op
Rf
R–2R
−
Vo = −Iout Rf
+
Typiquement, Rf = R
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
20 / 52
Circuits de conversion N/A
Conversion N/A
DAC multiplicateur
Équation de Vo est la multiplication de 2 variables :
Vref 1
·
Vo = −Iout Rf = −
· Rf D
R 2n
= kVref D
où k est une constante (résistances et résolution)
Vo est le produit de 2 variables : Vref et D
Ex : Vref est un signal audio de 10V. Si on utilise un DAC à 4 bits, Vo
varierais de 0 à 0.625V si l’entrée est D = 0001. Si l’entrée est D =
1111, la sortie varie de 0 à 9.375V.
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
21 / 52
Circuits de conversion N/A
Conversion N/A
DAC pratiques
Pour des applications standard, le DAC-08 est un bon choix.
Le AD558 permet un interface à un microprocesseur.
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
22 / 52
Conversion Analogique-Numérique
Conversion
Analogique-Numérique
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
23 / 52
Conversion Analogique-Numérique
Convertisseur analogique-numérique
Convertisseur analogique-numérique (ADC) : utilisé principalement
pour l’interface entre un capteur et microcontrôleur
Signaux peuvent varier très lentement (température) ou très
rapidement (signal audio)
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
24 / 52
Conversion Analogique-Numérique
Résolution
Comme le DAC, le ADC a une résolution :
résolution = 2n
où n est le nombre de bits à la sortie
Le rapport entre l’entrée maximale (FSR) et la résolution représente
la variation de la tension à l’entrée qui fera varier la sortie de 1 bit.
∆Vi =
Gabriel Cormier (UdeM)
F SR
2n
GELE4011 Chapitre 7
Automne 2010
25 / 52
Conversion Analogique-Numérique
Résolution
L’entrée qui provoque une sortie où tous les bits sont 1 est Vif s :
Vif s = F SR − ∆Vi
De façon générale, la sortie d’un ADC est donnée par :
D=
Gabriel Cormier (UdeM)
Vin
∆Vi
GELE4011 Chapitre 7
Automne 2010
26 / 52
Conversion Analogique-Numérique
Fonction de transfert
Exemple : ADC à 3 bits unipolaire
1 LSB
111
110
101
100
011
010
001
000
0
0.125 0.250 0.375 0.500 0.625 0.750 0.875
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
1
Automne 2010
27 / 52
Conversion Analogique-Numérique
Fonction de transfert
Selon le graphe précédent, la sortie du ADC prend l’une de 8 valeurs
discrètes
Des entrées similaires mais différentes auront la même sortie
La transition idéale d’un code à l’autre est faite au milieu de deux
valeurs de quantification
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
28 / 52
Conversion Analogique-Numérique
Erreur de quantification
Selon la fonction de transfert, on remarque qu’il est impossible de
connaı̂tre la valeur exacte de l’entrée selon le code de sortie
L’erreur de quantification est ±0.5LSB
Plus la résolution est élevée, plus l’erreur de quantification est faible
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
29 / 52
Conversion Analogique-Numérique
Erreur de décalage
De façon similaire aux DAC, les ADC ont aussi des erreurs de décalage
Habituellement, l’erreur de décalage est donnée comme un
pourcentage de 1 LSB (ex : ±0.5LSB).
Cette erreur de décalage modifiera le code de la sortie
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
30 / 52
Conversion Analogique-Numérique
Erreur de décalage
Exemple : ADC à 3 bits unipolaire avec erreur de décalage
Erreur 1 LSB
111
Courbe idéale
110
101
100
011
010
Erreur
001
000
0
0.125 0.250 0.375 0.500 0.625 0.750 0.875
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
1
Automne 2010
31 / 52
Conversion Analogique-Numérique
Erreur de gain
Pour une fonction de transfert idéale, la différence entre la première
transition et la dernière transition est FSR – 2 LSB
Si cette dernière expression est fausse, il y a erreur de gain
Typiquement, l’erreur de gain est spécifiée comme un pourcentage de
l’entrée maximale (%FSR)
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
32 / 52
Conversion Analogique-Numérique
Erreur de gain
Exemple : ADC à 3 bits unipolaire avec erreur de gain
111
Erreur
110
101
100
011
Courbe idéale
010
001
000
0
0.125 0.250 0.375 0.500 0.625 0.750 0.875
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
1
Automne 2010
33 / 52
Conversion Analogique-Numérique
Erreur de linéarité
Il y a erreur de linéarité si la différence entre les transitions n’est pas
égale
Typiquement, l’erreur de linéarité est spécifiée comme un pourcentage
de LSB (comme 0.75 LSB).
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
34 / 52
Conversion Analogique-Numérique
Erreur de linéarité
Exemple : ADC à 3 bits unipolaire avec erreur de linéarité
111
Transitions inégales
110
101
Erreur
100
011
Courbe idéale
010
001
000
0
0.125 0.250 0.375 0.500 0.625 0.750 0.875
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
1
Automne 2010
35 / 52
Circuits ADC
Circuits ADC
Trois types principaux de ADC
Intégrateur lent
ADC par comparaison successive
ADC flash
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
36 / 52
Circuits ADC
Intégrateur lent
Intégrateur lent
Cint
T1
Vin
Rint
−
T2
Comparateur
−
Tz
+
+
Auto-zéro
Vref
Sortie
numérique
Logique de
contrôle
Horloge
RT , C T
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
37 / 52
Circuits ADC
Intégrateur lent
Intégrateur lent
L’intégrateur lent fonctionne en trois étapes :
T1 : Intégration du signal analogique d’entrée
T2 : Décharge du condensateur de référence (création du code
numérique)
Tz : Retour à zéro
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
38 / 52
Circuits ADC
Intégrateur lent
Intégrateur lent : T1
Étape 1 : Intégrer le signal d’entrée pour une période fixe
Ex : Intégrer pour 1000 signaux d’horloge
L’intégration dépend de Vin , Rint et Cint
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
39 / 52
Circuits ADC
Intégrateur lent
Intégrateur lent : T2
Étape 2 : Intégrer Vref , de polarité inverse à Vin , jusqu’à atteindre 0
Pendant ce temps (T2 ), l’horloge contrôle un compteur
décimal-codé-binaire.
La durée de T2 détermine jusqu’à quelle valeur le compteur va
compter
Vin
T2 = T1
Vref
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
40 / 52
Circuits ADC
Intégrateur lent
Intégrateur lent : Tz
Étape 3 : Temps nécessaire pour que tous les condensateurs
retournent à 0V.
Utilise un condensateur Caz qui se chargera à la valeur moyenne des
erreurs de décalage des ampli-ops (intégrateur et comparateur).
Permet d’éliminer l’erreur pendant l’intégration de Vin
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
41 / 52
Circuits ADC
Intégrateur lent
Intégrateur lent : exemple
Vinmax
T1
T2
T2max
Une conversion complète
Gabriel Cormier (UdeM)
t
Tz
GELE4011 Chapitre 7
Tzmin
Automne 2010
42 / 52
Circuits ADC
Conversion par comparaison successive
Conversion par comparaison successive
Constitué de 3 blocs principaux :
Un comparateur
Un convertisseur numérique-analogique
Un registre à approximation successive
Nécessite une horloge
Nécessite 2 entrées de contrôle : début de conversion et fin de
conversion
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
43 / 52
Circuits ADC
Conversion par comparaison successive
Conversion par comparaison successive
Vo
D
CA
AC
D
Vi
Comparateur
Registre à
approximation
successive
Horloge
Gabriel Cormier (UdeM)
Sortie
sérielle
Contrôle
GELE4011 Chapitre 7
Automne 2010
44 / 52
Circuits ADC
Conversion par comparaison successive
Conversion par comparaison successive
Fonctionne en comparant du bit le plus significatif au moins
significatif à la tension d’entrée
Le comparateur indique si Vo est plus grand ou plus petit que Vin
Une comparaison est effectuée pour chaque bit (pour une sortie à n
bits, il faut faire n comparaisons)
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
45 / 52
Circuits ADC
Conversion par comparaison successive
Conversion par comparaison successive : algorithme
Initialisation
i = n (MSB)
Non
Bit i = 1
i < 1?
Oui
Fin
Conversion N/A
Vo
Vin
Vin > Vo ?
i = i−1
Oui
Non
Bit i = 0
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
46 / 52
Circuits ADC
Conversion par comparaison successive
Conversion pas comparaison successive
Le temps de conversion est fonction du nombre de bits et de l’horloge
utilisée :
Tc = T (n + 1)
où T est la période de l’horloge et n le nombre de bits.
Typiquement, il faut 1 pulse de l’horloge pour initialiser le tout à zéro,
d’où le facteur +1 dans l’équation précédente
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
47 / 52
Circuits ADC
Conversion par comparaison successive
Exemple
Soit un ADC où Vomax = 7V, codé à 3 bits (donc 1 bit = 1V). Quelle est
la valeur numérique de 6.5V ?
1
Initialise le tout à zéro : [000] ;
2
Modifie bit 3 (MSB) : [100] ;
3
Compare [100] = 4V < 6.5V : b3 = 1 ;
4
Compare [110] = 6V < 6.5V : b2 = 1 ;
5
Compare [111] = 7V > 6.5V : b1 = 0 ;
6
Résultat final : [110]
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
48 / 52
Circuits ADC
ADC flash
ADC flash
Composé d’un réseau de résistances et comparateurs
La sortie des comparateurs est branchée à un encodeur
L’encodeur donne la sortie numérique
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
49 / 52
Circuits ADC
ADC flash
ADC flash :exemple à 3 bits
Vref = 8V
= Vf s
3R/2
−
R
+
−
R
+
−
R
+
Encodeur
8-à-3
−
R
+
−
R
+
−
R
V = 0.5LSB
+
−
R/2
+
Vin (analogique) de 0 à 7V
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
50 / 52
Circuits ADC
ADC flash
ADC flash
Le temps de comparaison n’est fonction que du comparateur et de
l’encodeur
Peut être très rapide
Devient coûteux pour beaucoup de précision : nécessite 2n − 1
comparateurs
Gabriel Cormier (UdeM)
GELE4011 Chapitre 7
Automne 2010
51 / 52
Circuits ADC
ADC flash
ADC flash
Pendant le temps de conversion Tc , le signal d’entrée ne doit pas
changer de plus de ±0.5LSB, sinon la conversion sera fausse.
On appelle ceci une erreur de fenêtre (aperture error)
Pour une entrée sinusoı̈dale, la fréquence max est :
fmax ≈
Gabriel Cormier (UdeM)
1
2πTc 2n
GELE4011 Chapitre 7
Automne 2010
52 / 52
Téléchargement