Notes
Transcription
Notes
Chapitre 7 Conversion analogique-numérique Ce chapitre présente une partie très importante du traitement de signal : la conversion analogique-numérique. L’interface entre le monde réel et le traitement numérique de ces informations est effectuée par des capteurs, qui donnent des sorties analogiques. Puisque le traitement de ces informations est de plus en plus effectuée par des microcontrôleurs, la conversion analogique-numérique est une composante clé de ce système. 7.1 Conversion numérique-analogique On étudie en premier les circuits qui permettent de convertir une entrée numérique en sortie analogique : les convertisseurs numériques-analogiques (CNA, ou DAC en anglais). La sortie de ces circuits peut être de deux types : 1. Unipolaire : La tension de sortie est positive seulement 2. Bipolaire : La tension sortie est positive et négative Typiquement, la tension est la variable de sortie des convertisseurs, quoiqu’il existe des convertisseurs ayant un courant comme sortie. Les convertisseurs ont plusieurs caractéristiques importantes, qu’on verra dans les prochaines sections. 1 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE 7.1.1 Résolution et fonction de transfert La résolution est le nombre de sorties distinctes analogiques du convertisseur. Pour un circuit à n bits, il y a seulement 2n sorties distinctes : c’est la résolution. Résolution = 2n (7.1) Exemple : pour un CNA à 3 bits, la résolution est 8. Il y a 8 sorties distinctes possibles pour ce circuit. On utilise souvent une fonction de transfert pour démontrer la résolution. C’est un graphe représentant la valeur analogique de sortie en fonction des codes binaires de l’entrée. Le graphe est généralement montré en fonction d’une valeur de référence (habituellement normalisé à 1). Il faut noter que la valeur de référence n’est jamais atteinte : la sortie maximale est une unité de résolution (∆V ) de moins que le maximum. Un exemple de fonction de transfert est montré à la figure 7.1, pour un CNA de 3 bits unipolaire. Sortie analogique Valeur de référence 1.000 0.875 0.750 0.625 0.500 0.375 0.250 0.125 0.000 ∆Vo 000 001 010 011 100 Entrée numérique 101 110 111 Figure 7.1 – Fonction de transfert d’un CNA unipolaire à 3 bits Pour un convertisseur ayant une sortie bipolaire, la variation en tension entre les sorties distinctes est le double de la valeur du convertisseur unipolaire. Un exemple est montré à la figure 7.2, pour le cas d’un convertisseur à 3 bits. Remarquer que la sortie atteint la pleine valeur négative (−1V dans ce cas), mais pas la pleine valeur positive. 7.2 Caractéristiques Les convertisseurs ont plusieurs caractéristiques qui permettent de calculer la sortie analogique pour une entrée numérique donnée, surtout lorsque le comportement du convertisseur n’est pas idéal. Gabriel Cormier 2 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE Sortie analogique Valeur de référence 1.00 0.75 0.50 0.25 0.00 −0.25 −0.50 −0.75 −1.00 ∆Vo 000 001 010 011 100 Entrée numérique 101 110 111 Figure 7.2 – Fonction de transfert d’un CNA bipolaire à 3 bits La variation de la sortie, ∆Vo , est la variation de la sortie lorsque l’entrée varie de 1 bit moins significatif (LSB) : ∆Vmax ∆Vo = (7.2) 2n où ∆Vmax représente la variation maximale de la sortie. Cette tension permet de déterminer la variation de la sortie due à une variation de 1 bit moins significatif (1 LSB) à l’entrée. La sortie maximale du convertisseur n’est pas égale à la tension de référence, mais plutôt une variation de 1 bit de moins : 1 Vf s = Vref 1 − n (7.3) 2 Exemple 1 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 b) ∆Vo = = 20 mV/bit 256 1 c) Vf s = 5.12 1 − 8 = 5.1 V 2 Gabriel Cormier 3 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE 7.3 Comportement non-idéal : erreurs Malheureusement, les converstisseurs n’ont pas nécessairement un comportement idéal. Deux types d’erreurs peuvent s’introduire dans la fonction de transfert : une erreur de décalage, et une erreur de gain. En réalité, il peut avoir une erreur entre l’entrée spécifée et la sortie. Cette erreur, Vos , est normalement lorsque la sortie devrait être nulle. Pour une sortie nulle, l’erreur de décalage est normalement la seule erreur. Un exemple est montré à la figure 7.3. Les erreurs sont souvent spécifiées en fonction de ±LSB. Dans ce cas-ci, l’erreur est de +1LSB. Valeur de référence 1.000 Sotie analogique 0.875 Vos ∆Vo 0.750 0.625 0.500 Courbe idéale 0.375 0.250 0.125 0.000 000 001 010 011 100 Entrée numérique 101 110 111 Figure 7.3 – Fonction de transfert d’un CNA à 3 bits avec erreur de décalage L’erreur de gain a lieu lorsque la pente de la fonction de transfert n’est pas idéale. Dans ce cas-ci, on mesure l’erreur de gain lorsque la sortie est à pleine valeur. L’erreur de gain est donnée par : ! V11 − Vos Erreur de gain (%) = −1 (7.4) Vf s où V11 est la sortie réelle lorsque l’entrée est composée entièrement de 1. Un exemple est montré à la figure 7.4. L’erreur de gain est normalement calculée après avoir déterminé l’erreur de décalage, et est normalement donné comme un pourcentage de la valeur maximale. Il est aussi possible d’avoir des erreurs de gain non-linéaires, où la fonction de transfert n’est pas une ligne droite ; dans ce cas, l’analyse est plus complexe. Gabriel Cormier 4 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE Valeur de référence 1.000 Erreur de gain Sotie analogique 0.875 0.750 Courbe idéale 0.625 0.500 0.375 0.250 0.125 0.000 000 001 010 011 100 Entrée numérique 101 110 111 Figure 7.4 – Fonction de transfert d’un CNA à 3 bits avec erreur de gain 7.4 Réseau R–2R Le type de convertisseur numérique analogique le plus populaire est le réseau R–2R. Le schéma bloc est montré à la figure 7.5. Une entrée numérique est branchée à des interrupteurs (1 interrupteur par bit), puis à un réseau R–2R de résistances. La sortie de ce réseau R–2R est un courant, proportionnel au code numérique d’entrée, qu’il faut ensuite convertir en tension. Tension de référence Réseau R-2R de résistances Interrupteurs Sortie de courant optionnelle Io Convertisseur Io à Vo Vo MSB LSB Entrée numérique Figure 7.5 – Schéma bloc d’un convertisseur numérique-analogique Le réseau R–2R est la partie du circuit qui effectue la conversion numérique-analogique. Ce réseau est montré à la figure 7.6. Les interrupteurs sont contrôlés par les bits de l’entrée numérique. Le point de sortie Iout est une mise à terre virtuelle, et donc les résistances R3 , R2 , R1 et R0 sont toujours égales à R. Gabriel Cormier 5 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE R3 R2 R1 R − + Vref Iref I3 2R I3 0 1 R0 R R I2 2R I2 0 1 I1 I0 2R I1 2R I0 0 1 0 1 2R Iout Figure 7.6 – Réseau R–2R de résistances Puisque chaque échelon du réseau donne la même résistance R, la relation entre les courants est : I3 = Iref I3 Iref = 2 4 I1 Iref I0 = = 2 16 I2 = 2 I2 Iref I1 = = 2 8 (7.5) et le courant total est la somme des courants, ou Iout = I0 × D (7.6) où D est la valeur décimale du code binaire de l’entrée. Pour ce circuit, le courant I0 est la résolution du réseau ; c’est la plus petite valeur de courant disponible. Iref 1 Vref I0 = n = n · (7.7) 2 2 R La conversion du courant de sortie à une tension est effectuée avec un ampli-op, comme à la figure 7.7. La sortie de l’ampli-op est : Vo = −Rf Iout = −Rf ! Vref 1 D R 2n (7.8) qu’on peut aussi écrire de la forme suivante : Vo = kVref D Gabriel Cormier 6 (7.9) GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE Rf R–2R − Vo = −Iout Rf + Figure 7.7 – Circuit de conversion du courant de sortie du réseau R–2R où k est une constante qui dépend des résistances et de la résolution du convertisseur. Cette dernière équation montre que la sortie est le produit de deux variables : Vref et D. Ces deux signaux sont des variables : on peut donc utiliser ce type de convertisseur pour multiplier des signaux. Comme exemple : soit Vref , 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. 7.5 Conversion analogique-numérique Un convertisseur analogique-numérique (CAN, ou ADC en anglais) est utilisé principalement pour l’interface entre un capteur et microcontrôleur. Les signaux peuvent varier très lentement (comme la température) ou très rapidement (comme un signal audio). 7.5.1 Caractéristiques Tout comme les convertisseurs N/A, les convertisseurs A/N ont une résolution. La résolution est résolution = 2n (7.10) où n est le nombre de bits à la sortie. Puisque l’entrée est continue, la résolution d’un convertisseur A/N est le nombre de sorties distinctes numériques. 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. FSR (7.11) ∆Vi = n 2 Puisque le compteur numérique commence à 0, l’entrée qui cause une sortie où tous les bits sont 1 est Vif s = FSR − ∆Vi (7.12) Gabriel Cormier 7 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE De façon générale, la sortie d’un ADC est donnée par : D= Vin ∆Vi (7.13) Un exemple de fonction de transfert pour un convertisseur A/N est donné à la figure 7.8. Dans cet exemple, la sortie 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. 1 LSB Sortie numérique 111 110 101 100 011 010 001 000 0 0.125 0.250 0.375 0.500 0.625 Entrée analogique 0.750 0.875 1 Figure 7.8 – Fonction de transfert d’un convertisseur A/N à 3 bits unipolaire 7.5.2 Erreur de quantification Selon la fonction de transfert de la figure 7.8, 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. La seule façon de réduire cette erreur est d’augmenter la résolution : plus la résolution est élevée, plus l’erreur de quantification est faible. 7.5.3 Erreur de décalage De façon similaire aux convertisseurs N/A, les convertisseurs A/N 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. Un exemple est montré à la figure 7.9. Gabriel Cormier 8 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE Erreur 1 LSB Sortie numérique 111 110 Courbe idéale 101 100 011 Erreur 010 001 000 0 0.125 0.250 0.375 0.500 0.625 Entrée analogique 0.750 0.875 1 Figure 7.9 – Fonction de transfert d’un convertisseur A/N avec erreur de décalage 7.5.4 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). Un exemple d’erreur de gain est montré à la figure 7.10. Sortie numérique 111 110 Erreur 101 100 Courbe idéale 011 010 001 000 0 0.125 0.250 0.375 0.500 0.625 Entrée analogique 0.750 0.875 1 Figure 7.10 – Fonction de transfert d’un convertisseur A/N à 3 bits avec erreur de gain Gabriel Cormier 9 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE 7.5.5 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). La figure 7.11 montre un exemple de convertisseur A/N à 3 bits avec une erreur de linéarité. Sortie numérique 111 Transitions inégales 110 101 100 Erreur Courbe idéale 011 010 001 000 0 0.125 0.250 0.375 0.500 0.625 Entrée analogique 0.750 0.875 1 Figure 7.11 – Fonction de transfert d’un convertisseur A/N à 3 bits avec erreur de linéarité 7.6 Circuits de conversion A/N Il existe trois types principaux de convertisseurs A/N : • Intégrateur lent • ADC par comparaison successive • ADC flash 7.6.1 Intégrateur lent Le circuit typique d’un convertisseur à intégrateur lent est montré à la figure 7.12. 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 Le chronogramme typique d’intégrateur lent est montré à la figure 7.13. Gabriel Cormier 10 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE Cint T1 Vin Rint Comparateur − T2 − + Tz + Auto-zéro Vref Logique de contrôle Horloge Sortie numérique RT , CT Figure 7.12 – Schéma bloc d’un convertisseur à intégrateur lent Vinmax T1 t Tz T2 T2max Tzmin Une conversion complète Figure 7.13 – Chronogramme d’un intégrateur lent typique Pendant l’étape 1, le circuit va intégrer le signal d’entrée pour une période fixe, par exemple 1000 signaux d’horloge. L’intégration dépend de Vin , Rint et Cint . À la deuxième étape, le circuit va 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 T2 = T1 Vin Vref (7.14) La troisième étape est nécessaire pour que tous les condensateurs retournent à 0. On utilise un condensateur Caz qui se chargera à la valeur moyenne des erreurs de décalage des Gabriel Cormier 11 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE ampli-ops (intégrateur et comparateur). Ceci permet d’éliminer l’erreur pendant l’intégration de Vin . 7.6.2 Conversion par comparaison successive Le convertisseur A/N à comparaison successive, montré à la figure 7.14, est constitué de trois blocs principaux : • Un comparateur • Un convertisseur numérique-analogique • Un registre à approximation successive Il nécessite une horloge, ainsi que deux entrées de contrôle : une entrée qui contrôle le début de la conversion, et une entrée qui contrôle la fin de la conversion. Vo C DA AC D Vi Comparateur Registre à approximation successive Horloge Sortie sérielle Contrôle Figure 7.14 – Schéma bloc d’un convertisseur à comparaison successive Le circuit 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). L’algorithme est montré à la figure 7.15. Le temps de conversion est fonction du nombre de bits et de l’horloge utilisée : Tc = T (n + 1) (7.15) 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 12 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE Initialisation i = n (MSB) Bit i = 1 Non Conversion N/A Vo Vin Vin > Vo ? i < 1? Oui Fin i = i−1 Oui Non Bit i = 0 Figure 7.15 – Algorithme du convertisseur à comparaison successive Exemple 2 Soit un ADC où Vomax = 7V, codé à 3 bits (donc 1 bit = 1V). Quelle est la valeur numérique de 6.5V ? 1. On initialise tous les bits à zéro : [000] ; 2. Modifier le bit 3 (MSB) à la valeur 1 : [100] ; 3. Comparer [100] à la valeur d’entrée : [100] = 4V < 6.5V : Puisque c’est plus petit, b3 = 1 ; 4. Compare [110] à la valeur d’entrée : [110] = 6V < 6.5V : Puisque c’est plus petit, b2 = 1 ; 5. Compare [111] à la valeur d’entrée : [111] = 7V > 6.5V : Puisque c’est plus grand, b1 = 0 ; 6. Résultat final : [110] 7.6.3 Convertisseur A/N flash Le convertisseur flash est le plus rapide des trois types de convertisseurs A/N de ce chapitre. Il est composé d’un réseau de résistances et de comparateurs. La sortie des comparateurs est branchée à un encodeur, qui donne la sortie numérique voulue. Le circuit typique est montré à la figure 7.16. Gabriel Cormier 13 GELE4011 CHAPITRE 7. CONVERSION ANALOGIQUE-NUMÉRIQUE 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 Figure 7.16 – Circuit d’un convertisseur flash Le temps de comparaison n’est fonction que du comparateur et de l’encodeur, ce qui donne un circuit qui peut être très rapide. Cependant, il devient coûteux si on veut beaucoup de précision : le circuit nécessite 2n − 1 comparateurs. 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 1 2πTc 2n 14 (7.16) GELE4011