FALLET Laurent PERRIN Guillaume GRISONI Florian UV P10-2 Convertisseurs Analogique/Numérique et Numérique/Analogique Juin 2002 Institut National des Sciences Appliquées de Rouen -1- FALLET Laurent PERRIN Guillaume GRISONI Florian Sommaire UV P10-2 ................................................................................................... 1 Convertisseurs Analogique/Numérique et Numérique/Analogique ... 1 Sommaire ................................................................................................. 2 Introduction.............................................................................................. 3 I Présentation CAN et CNA ..................................................................... 5 a) Architecture ........................................................................................... 5 b) L’interface du port imprimante .................................................................. 13 c) Le programme en Pascal.......................................................................... 14 II Réseau R/2R........................................................................................ 15 a) b) Etude théorique................................................................................... 15 Etude expérimentale ........................................................................... 17 III Echantillonneur Bloqueur................................................................. 18 a) b) Etude théorique................................................................................... 18 Etude expérimentale ........................................................................... 19 IV VCO..................................................................................................... 21 a) Présentation ............................................................................................. 21 b) Etude expérimentale................................................................................. 22 Conclusion ............................................................................................. 25 Annexes.................................................................................................. 26 Institut National des Sciences Appliquées de Rouen -2- FALLET Laurent PERRIN Guillaume GRISONI Florian Introduction On peut dire que le monde entier est « analogique ». La conversion A-N permet le traitement par des machines de données digitales. Les techniques actuelles font de plus en plus appel au traitement numérique, très performant. Le domaine des télécommunications est sans doute celui dans lequel l’application des techniques numériques est la plus développée (numérisation de la voix pour la téléphonie, généralisation du FAX et du courrier électronique, enregistrement numérique des disques…). Sans oublier le domaine musical qui utilise grandement les convertisseurs dans la transmission des signaux audio. L'électronique est en effet divisée en deux domaines distincts : - le domaine analogique, où les variables peuvent prendre une infinité de valeurs différentes ; les signaux varient continûment. Tous les signaux issus des capteurs sont analogiques, et traduisent des phénomènes physiques qui varient continûment. - le domaine numérique, où les variables prennent uniquement deux états, un état haut et un état bas. Beaucoup de signaux était avant traités de façon analogiques et le sont aujourd'hui par programmation de microprocesseurs. Mais, à la base, les signaux ont toujours une nature analogique ! Il faut donc les amplifier et éventuellement les extraire de signaux parasites. Le domaine analogique va donc toujours exister au moins en amont de toute chaîne de traitement. Parfois, on a aussi besoin d'un signal analogique en sortie de cette chaîne de traitement : il faudra alors reconvertir les données numériques en signal analogique. Il existe deux catégories de convertisseurs : - les Convertisseurs Analogique Numérique (CAN, ADC en anglais, pour analog to digital converter), qui vont transformer les tensions analogiques en signaux logiques aptes à être traités par microprocesseur (numérisation des signaux). - les Convertisseurs Numérique Analogique (CNA, DAC en anglais, pour digital to analog converter) qui vont convertir les signaux logiques en tension analogique. Applications des CAN Les applications dans lesquelles des données analogiques doivent être numérisées et transférées dans une mémoire d’ordinateur sont nombreuses. Le processus de saisie par l’ordinateur des données analogiques numérisées s’appelle l’acquisition de données. Selon l’application, l’ordinateur peut manipuler les données de différentes façons. Quand on utilise un ordinateur pour mémoriser une donnée analogique (c’est le cas d’un oscilloscope numérique), ce dernier stocke les données puis les transfère à un CNA à un moment ultérieur pour qu’il reproduise les données analogiques. On trouve donc des CAN dans les multimètres numérique, les systèmes d'acquisition, l’élaboration de la matrice d’un disque compact... Institut National des Sciences Appliquées de Rouen -3- FALLET Laurent PERRIN Guillaume GRISONI Florian Applications des CNA Des CNA sont utilisés à chaque fois qu'il faut transformer la sortie numérique d'un circuit en une tension ou un courant analogique pour entraîner un dispositif analogique. Voici certaines des applications les plus courantes : Régulation : la sortie numérique d'un ordinateur est convertie en un signal de régulation analogique afin de régler la vitesse d'un moteur, la température d'un four ou de commander une variable physique quelconque. La commande des machines est également un secteur où les techniques numériques connaissent un vif succès (commande de moteurs, régulation de chauffage…). Essai automatique : il est possible de programmer les ordinateurs pour qu'ils produisent les signaux analogiques nécessaires à l'essai des circuits analogiques. La réponse analogique du circuit testé est normalement convertie en en une valeur numérique par un CAN et réintroduire dans l'ordinateur pour être mémorisée, affichée et parfois analysée. Réglage numérique de l'amplitude : il est possible d'utiliser un CNA multiplicateur pour régler numériquement l'amplitude d'un signal analogique. (Un CNA multiplicateur dérive une sortie égale au produit d'une tension de référence par une entrée binaire). Si la tension de référence est un signal qui varie dans le temps, la sortie du CNA suit ce signal mais son amplitude est conditionnée par le code d'entrée binaire. Une application typique de ceci est le "réglage de volume" numérique, dans laquelle la sortie d'un circuit numérique ou d'un ordinateur sert à régler l'amplitude d'un signal audio. On retrouve donc des CNA dans les lecteurs CD, les systèmes d'acquisition (par ex. cartes vidéos pour PC), et les modems. Exemple de chaîne de traitement. Un exemple très répandu de conversion et traitement de données est la chaîne de transformation du son, de l'enregistrement de la musique à sa restitution par les enceintes acoustiques. Le son est capté par des micros, dont la très faible tension de sortie est amplifiée. Le signal peut être numérisé directement à ce niveau, et sera alors traité de façon entièrement numérique (mixage...). Il peut aussi être stocké de façon analogique sur bande magnétique, mixé, et ensuite numérisé. L'avantage du traitement numérique réside dans le fait que les données sont inaltérables, contrairement aux données analogiques stockées sur bande magnétique : celle-ci se dégrade lors des passages répétés sur les têtes de lecture. Le stockage est maintenant presque toujours numérique. Le lecteur de CD contient des convertisseurs numériques analogiques qui vont retransformer les informations numériques en signal analogique qui sera amplifié avant d'être envoyé aux enceintes. Institut National des Sciences Appliquées de Rouen -4- FALLET Laurent PERRIN Guillaume GRISONI Florian I Présentation CAN et CNA Il existe principalement deux types de convertisseurs numérique / analogique : les convertisseurs à résistances pondérées, et les convertisseurs à réseau R/2R. a) Architecture Pour chaque convertisseur, on retrouve toujours la même structure; seul les blocs de base change d'un convertisseur à l'autre et en fait sa spécificité. Il est donc intéressant d'étudier l'architecture mettant en évidence les points communs à tous les convertisseurs. Architecture des CNA. Sur la figure, on voit 5 blocs : - un buffer numérique d'entrée : celui-ci est chargé de garder en mémoire la donnée numérique pendant le temps de conversion ; il sert aussi d'interface entre les parties numérique et analogique du convertisseur. - une référence de tension : son importance est capitale pour la précision de l'ensemble ; c'est elle qui donne le signal de référence servant à la détermination des tensions de sortie. - l'arbre de commutation (switching tree en anglais) : il est commandé par le buffer d'entrée et va déterminer les résistances qui seront alimentées par la référence de tension. - le réseau de résistances : c'est un ensemble de résistances, qui, alimentées par la référence de tension via l'arbre de commutation vont générer des courants très précis fonction du code binaire d'entrée. - le convertisseur courant/tension est un ampli servant à transformer les courants générés par le réseau de résistances en tension de sortie. Il est optionnel, certains CNA ne l'incluent pas, d'autres l'incluent, mais laissent le choix de l'utiliser ou non. Institut National des Sciences Appliquées de Rouen -5- FALLET Laurent PERRIN Guillaume GRISONI Florian On retrouve donc toujours ces éléments de base, la distinction entre les convertisseurs se fait généralement dans le réseau de résistances. Convertisseurs analogiques numériques Un convertisseur analogique numérique est chargé de transformer une variation continue de tension en une série de valeurs mathématiques (sans énergie) codées. Codage des valeurs: Les codages sont: le binaire naturel, pour les nombres non signés. le complément à deux pour les nombres signés. le code binaire signé. Institut National des Sciences Appliquées de Rouen -6- FALLET Laurent PERRIN Guillaume GRISONI Florian Quantification: C'est l'opération qui consiste à associer une valeur analogique à la plus petite variation mesurable entre deux valeurs codées distinctes en sortie. Cette valeur est appelée quantum. Code non signé: q= ∆Ve max 2n q: quantum (V), aussi appelé résolution. ∆Ve max : C’est l'écart entre la valeur mini et la valeur maxi de Ve à numériser (V). n: nombre de bits en sortie du convertisseur. Principe des différents convertisseurs: Convertisseurs parallèles: Ils sont aussi appelés convertisseurs "Flash". Une chaîne de 2 n +1 résistances détermine un échelonnement de valeurs distantes de q et comprises entre V max et V min (sauf pour la première, qui est distante de q/2). Chaque valeur est appliquée à l'une des entrées des 2 n comparateurs. Le potentiel Ve est appliqué sur la deuxième entrée de chaque comparateur et tous les comparateurs correspondant à des niveaux inférieurs ou égaux à Ve basculent simultanément. Le codage est ensuite effectué instantanément Inconvénient: il faut 256 comparateurs pour 8 bits. Avantage: très grande vitesse de conversion. Institut National des Sciences Appliquées de Rouen par un décodeur. -7- FALLET Laurent PERRIN Guillaume GRISONI Florian Convertisseurs série: Ce convertisseur vient élaborer une suite de valeurs successives grâce aux commutateurs S W 1 ,..., S Wn et aux résistances R. Il compare ensuite les différentes valeurs obtenues à Ve , au moment où une des valeurs appliquées est supérieure à Ve , le comparateur C P bascule et impose un niveau bas à l'entrée "horloge" du compteur, ce qui le bloque. La sortie S indique la dernière valeur numérique N 1 bloquée lors de la mise en arrêt du compteur ( N 1 est donné sur N bits). Convertisseurs à pesées successives : 2n q à une 2 2 n −1 q à la entrée du comparateur, si la réponse de celui-ci est positive, on vient rajouter 2 Le convertisseur, par l'unité des prépositions, impose une valeur égale à valeur précédente. Nous réalisons encore le test, si la réponse est négative, nous venons 2 n−2 q à la valeur précédente. Cette opération est réitérée jusqu'à ce que les N soustraire 2 bits de sortie soient tous affectés par un état logique. Institut National des Sciences Appliquées de Rouen -8- FALLET Laurent PERRIN Guillaume GRISONI Florian Convertisseurs double rampe: La tension E analogique à convertir est appliquée à l'entrée du générateur de rampe. Ce circuit intègre (première rampe) cette tension durant un temps prédéterminé. Un compteur mesure ce temps, soit N 1 impulsions. Ensuite la logique de commande commute l'entrée du générateur de rampe sur une tension de référence E ref de polarité opposée à la tension E. La tension de sortie décroît linéairement (deuxième rampe) jusqu'à s'annuler. Un compteur mesure la durée de cette décroissance, soit N 2 impulsions. La valeur de la tension E à convertir est donnée par la relation: E = E ref E ref N1 soit N 2 = N 1 N2 E Institut National des Sciences Appliquées de Rouen -9- FALLET Laurent PERRIN Guillaume GRISONI Florian Convertisseurs triple rampe: Le principe de fonctionnement est identique au convertisseur double rampe, sauf que lors du démarrage de la phase de croissance de VCM , le comptage s'effectue en deux temps. Dans un premier temps, nous avons un comptage large avec S W 2 fermé et une tension de référence Vλ1 , lorsque VCM = VG , S W 2 s'ouvre et S W 3 se ferme. Nous avons un comptage plus long et plus précis des faibles valeurs avec V r 2 . S (binaire) = 100n1 + n 2 n1, n2: nombres binaires. Caractéristiques: Temps de conversion Tc : C'est le temps minimum nécessaire au convertisseur pour stabiliser une donnée numérique en sortie après qu'une tension analogique stable ait été appliquée à l'entrée du CAN. Erreur de linéarité: Elle se caractérise par l'écart maximal entre la courbe réelle et la droite idéale. Elle est exprimée en % de ∆Ve max . Erreur de quantification: Elle est inévitable dans la conversion analogique/numérique (et inverse), même si les convertisseurs sont considérés comme parfaits. Elle est souvent exprimée par la valeur efficace du signal E q qui représente cette erreur. E q eff = q 2 3 Si on numérise une rampe de tension, l'erreur entre la tension d'entrée et la tension de sortie " reconstituée " (reconvertie en analogique par passage dans un CNA) aura la forme suivante : Vitesse maximale de variation de Ve (t ) admise par le convertisseur au cours d'une phase de conversion. Pendant cette phase, le signal ne doit pas varier de plus de q. ∆V d (Ve = ne max 2 Tc dt max Tc: temps de conversion. n: nombre de bits du convertisseur. Institut National des Sciences Appliquées de Rouen -10- FALLET Laurent PERRIN Guillaume GRISONI Florian Convertisseurs numériques analogiques Un CNA traduit une entrée numérique N codée sur n bits en une grandeur de sortie analogique telle que: V S = q.N + D q: quantum ou LSB (V). N: grandeur numérique. D: décalage en tension, offset (V). Caractéristiques des CNA: Temps de conversion (Tc) C'est le temps minimum nécessaire à la stabilisation de Vs après une transition. Résolution Elle est donnée par la valeur du quantum q(V). La sortie Vs va augmenter de q lorsque N augmentera de "1". Si D=0, alors Vs=q.N Excursion L'excursion E est la différence entre Vs donné pour Nmin et Vs donné pour Nmax si N est codé sur n bits: Nmax=2n-1 E=q(2n-1) Précision (accuracy) εM est l'écart maximal entre la sortie théorique et la sortie réelle. Pr écision = εM E = ErreurMax en% Excursion Erreur de décalage (offset error) La courbe moyenne réelle est décalée d'une grandeur (Ved) constante par rapport à la courbe de réponse théorique. (Cette erreur est essentiellement due aux tensions de décalage et courants de fuite de partie analogique du CNA). Erreur de gain La réponse théorique Vs et la réponse réelle n'ont pas la même pente. Vréelle=K.q.N K=1+∆G ∆G est l'erreur de gain. Erreur de linéarité C'est la variation autour de la sortie théorique de la sortie réelle. Cette erreur est donnée en LSB ou en %. ε% = ε q max (V ) E (V ) × 100 εq max: c'est l'erreur maximale entre la valeur théorique et la valeur réelle de N. Equation d'un CNA réel Vs=q(1+∆G)[a0(1+∆P0)+2a1(1+∆P1)+...+2n-1an-1(1+∆Pn-1)] ai: état du bit i. ∆Pi: erreur de linéarité rapporté au bit i. Institut National des Sciences Appliquées de Rouen -11- FALLET Laurent PERRIN Guillaume GRISONI Florian Structure des CNA directs: Convertisseur à résistances pondérées Pour un convertisseur 4 bits, nous avons: Vs = - RI 1 1 1 1 V S = −Vref . (a 3 + a 2 + a1 + a 0 ) 2 4 8 2 Les réseaux R-2R que nous avons étudié et détaillé plus loin. On a: VS = −2 R(a3i3 , a 2 i2 + a1i1 + a0 i0 ) V3 = Vref 4R V5 = − , i2 = Vref 16 Vref 8R , i3 = Vref 16 R , i4 = Vref 32 R . (8a 3 + 4a 2 + 2a1 + a 0 ) I débité par Vref est constant. Convertisseur à échelle et miroirs de courant Il s'agit ici d'une "échelle inversée". La résistance R'=4/3R V5 = − Vref 16 (8a 3 + 4a 2 + 2a1 + a 0 ) Convertisseur à miroirs de courants Dans les résistances, suivant la position des interrupteurs, sur Vref ou sur Vcc, nous avons des miroirs de courants qui absorbent: I/2, I, 2I, 4I. V5 = − Vref 16 (8a 3 + 4a 2 + 2a1 + a 0 ) Institut National des Sciences Appliquées de Rouen -12- FALLET Laurent PERRIN Guillaume GRISONI Florian b) L’interface du port imprimante Le but de notre manipulation avec les CAN et CNA est de vérifier et comprendre leur fonctionnement. Pour cela, nous avons besoin d’une interface qui nous permette de contrôler le nombre de bits émis. Ainsi, si nous entrons une valeur, la tension broches commute, passant de 0 à 5V environ, c'est-à-dire que la ligne passe à 1. On contrôle de cette manière chaque bit, en pouvant le lire ou l’écrire. Le port parallèle des PC se présente sous la forme d’une prise DB25 femelle, qui comporte 25 broches. 8 de ces broches sont reliées à la masse, les 17 autres ayant des fonctions se rapportant principalement aux fonctionnalités d’une imprimante. Par exemple, une broche indique si l’imprimante est occupée, une autre si il y a une erreur… toutes les informations nécessaires à une impression. Certaines ne fonctionnent qu’en entrée dans le PC, d’autres (telles que les broches de données) sont à double sens. Cette possibilité de communiquer en double sens est réservée aux ports de type EPP (Enhanced Parallel Port). On peut donc se servir de ces broches pour envoyer ou recevoir des impulsions. Ce port est alimenté par du 5 volts continu, lorsque la ligne est active. La vitesse de transmission maximale est de l’ordre de 150 Ko/s pour les ports les plus anciens, et de 2Mo/s pour les ports de type EPP. On relie donc ce port à notre montage par un boîtier qui regroupe le bus de données, ainsi que quelques autres broches (ACK, BUSY, PE, la masse…). Il existe trois registres de contrôle des signaux, qui sont : • • • Les lignes de données (378h) ; L’état de l’imprimante (379h) ; Les commandes de l’imprimante (37Ah) ; Seules les lignes de données nous intéresseront. Il est possible d’écrire un octet dans le registre de données, ce qui met les lignes D0 jusqu’à D7 au niveau binaire demandé. 7 X . . . . . . . 6 . X . . . . . . 5 . . X . . . . . 4 . . . X . . . . 3 . . . . X . . . 2 . . . . . X . . 1 . . . . . . X . 0 . . . . . . . X D7 D6 D5 D4 D3 D2 D1 D0 Le boîtier sert donc de lien entre les lignes de données et nos montages, notamment pour le réseau R / 2R. Institut National des Sciences Appliquées de Rouen -13- FALLET Laurent PERRIN Guillaume GRISONI Florian c) Le programme en Pascal Un programme, rédigé en Pascal, permet de diriger le port imprimante. Il est composé d’un programme principal qui donne le choix de faire plusieurs actions : • • • Ecrire une sortie ; Lire les entrées ; Envoyer une rampe. Des fonctionnalités seront ajoutées au fur et à mesure de l’avancement du projet. Au début du programme, on déclare des constantes globales : Const reg_out=$378; reg_in=$379; Ainsi que je l’ai expliqué précédemment, le port du registre de sortie est 378h et celui d’entrée est 379h. Donc pour envoyer des données en sortie on utilisera reg_out et pour récupérer les valeurs des lignes du bus de données, on se servira de reg_in. On se sert d’un tableau de bits pour stocker l’octet envoyé ou reçu : type tab=array[0..7] of byte; Deux méthodes, lecture et ecriture, permettent de lire ou d’écrire un « byte » sur le port imprimante, grâce à la commande : port[reg_out]:=valeur; ou port[reg_in]:=valeur; Deux procédures conv_bin et conv_oct se chargent des conversions d’un octet en binaire ou de l’inverse. Une procédure test_sorties récupère la valeur entrée par l’utilisateur, l’envoie sur le port imprimante, puis affiche le tableau de la valeur entrée en binaire. Une autre procédure test_entrees appelle la procédure de lecture, et affiche la valeur récupérée en la convertissant en binaire. Pour tester un envoi de valeurs qui s’incrémentent, une procédure rampe a été créée. On écrit sur le port les valeurs de 0 jusqu'à 255. On sort de cette fonction en appuyant sur une touche. Institut National des Sciences Appliquées de Rouen -14- FALLET Laurent PERRIN Guillaume GRISONI Florian II Réseau R/2R a) Etude théorique Nous avons étudié un réseau de résistances composé de seulement deux valeurs, R et 2R. Schéma de principe d'un CNA à réseau R/2R (4 bits). Il est constitué de la manière suivante : - un amplificateur opérationnel. - une référence de tension qui va définir la pleine échelle du convertisseur. - un réseau de résistances R/2R. - une série de registres numériques contenant le code binaire d'entrée. - des commutateurs analogiques (interrupteurs commandés électriquement par les signaux logiques) reliant les résistances soit à la masse, soit à l'entrée - de l'ampli. L'amplificateur fonctionne ici en convertisseur courant/tension : en fonction du positionnement des commutateurs, le courant total IT sera plus ou moins élevé, et sera transformé en tension par l'ampli et la résistance de contre-réaction. Voici certaines propriétés du réseau : L'entrée + de l'ampli est à la masse ; si on considère que cet ampli est parfait, l'entrée est au même potentiel, soit 0. La position du commutateur n'influe donc pas sur le fonctionnement du réseau : les courants I0 à I3 sont dirigés soit vers le convertisseur courant/tension, soit dérivés à la masse, mais le potentiel à la borne commune des commutateurs reste le même, à savoir 0. Institut National des Sciences Appliquées de Rouen -15- FALLET Laurent PERRIN Guillaume GRISONI Florian Nous avons donc étudié le réseau suivant : Les courants I3 et ID sont égaux. On a donc : I2 = ID = IC 2 Le circuit devient : On en déduit : I 2= I C = IB I 1 I2 = IB = A I0 = I A = 2 2 2 On a donc : On en déduit la valeur des courants : I0 = Rref 4R I1 = E ref 8R I2 = E ref 16 R I3 = E ref 32 R La tension de sortie Vs du convertisseur vaut : VS = − E ref 4 (a 0 + a1 a 2 a 3 + + ) 2 4 8 Institut National des Sciences Appliquées de Rouen -16- FALLET Laurent PERRIN Guillaume GRISONI Florian b) Etude expérimentale Pour des valeurs de résistance R = 10 KΩ Si on envoie une rampe de tension codée sur 8 bits prenant les valeurs de 0 à 255, on obtient la tension de sortie du réseau R-2R en fonction du temps : On remarque qu’au bit 0 la tension est nulle et au bit 255 la tension vaut 5V. Nous couvrons donc correctement la plage de tension grâce aux 256 bits. Nous pouvons grâce au réseau R-2R obtenir un convertisseur numérique analogique. Institut National des Sciences Appliquées de Rouen -17- FALLET Laurent PERRIN Guillaume GRISONI Florian III Echantillonneur Bloqueur a) Etude théorique Une conversion A/N se passe en deux parties : il faut en effet quantifier le signal en amplitude et en temps. La quantification en temps n’est pas indispensable ; si le signal analogique d’entrée est continu ou à évolution lente en fonction du temps, la durée de la conversion est négligeable. On n’a en outre nul besoin de conserver d’informations temporelles. Si par contre, le signal d’entrée évolue en fonction du temps (par exemple, une tension sinusoïdale) et que son information est contenue également dans la fréquence de ce signal, il importe de quantifier également en temps le signal avant de le convertir. On appelle cette fonction l’échantillonnage. Pour échantillonner un signal, on définit une durée, appelée période d’échantillonnage, qui est l’intervalle de temps entre deux valeurs converties. Le signal d’entrée n’est pas examiné entre ces deux valeurs, et n’est donc pas converti. Cette période doit être choisie suffisamment courte pour que l’échantillonnage soit significatif. Elle ne doit pas non plus être exagérément petite, afin que la quantité d’informations ne soit pas trop importante. Le circuit assurant cette fonction est généralement extérieur au CAN, et est appelé échantillonneur bloqueur, puisqu’il doit conserver (bloquer) pendant la période d’échantillonnage la valeur du signal d’entrée. Il réalise donc une quantification du temps. A la sortie de l’échantillonneur bloqueur, le signal est encore analogique, et continu en amplitude. Il s’agit encore d’une tension (en volts) qui peut prendre des valeurs quelconques. Il est ensuite numérisé par le CAN. A sa sortie, le signal est quantifié en temps et en amplitude. Il n’est défini qu’aux instants d’échantillonnage. Le choix de la période d’échantillonnage est crucial : un sous-échantillonnage détériorera trop le signal d’entrée, alors qu’un sur-échantillonnage va augmenter le volume de données à traiter. Le théorème de Shannon fixe la limite inférieure absolue de la fréquence d’échantillonnage. Il montre que la fréquence d’échantillonnage doit être supérieure au double de la plus haute fréquence contenue dans le signal d’entrée afin de pouvoir reconstituer fidèlement le signal. En général, pour s’assurer de cette condition, on applique un filtre passe-bas avant d’échantillonner le signal. Par exemple, si l’on décide d’échantillonner de la musique pour faire un CD audio, on considère que l’oreille humaine n’entend pas les sons de fréquence supérieure à 22kHz. On filtre donc le signal à 22 kHz pour se débarrasser des fréquences inaudibles (mais présentes à priori dans le signal) et on échantillonne à 44kHz minimum. Institut National des Sciences Appliquées de Rouen -18- FALLET Laurent PERRIN Guillaume GRISONI Florian b) Etude expérimentale Pour de modéliser une tension variable par une série de tensions continues qui changent à intervalle régulier afin de numériser un signal, nous avons utilisé un échantillonneur bloqueur. Nous avons réalisé le montage de l’échantillonneur bloqueur suivant : Ce montage comprend deux amplificateurs opérationnels en suiveur, un commutateur analogique et un condensateur de maintient. Le commutateur analogique est commandé par une horloge. En réalité, nous avons utilisé un Générateur Basse Fréquence branché sur la sortie pulse, qui délivre une impulsion de 5 volts à intervalle régulier. Cette horloge permet de fermer le commutateur analogique pour réaliser l‘échantillonnage. Lorsque le commutateur est fermé, le condensateur se charge puis, lorsque l’on ré ouvre le commutateur, le condensateur se décharge, maintenant ainsi la tension capturée jusqu’à la prochaine mesure. Nous avons réalisé l’échantillonnage d’une tension sinusoïdale pour tester notre montage. Institut National des Sciences Appliquées de Rouen -19- FALLET Laurent PERRIN Guillaume GRISONI Florian Cette courbe montre en rouge la tension sinusoïdale Ve et en bleu la série de tensions continues qui correspondent à la tension échantillonnée Vs. Institut National des Sciences Appliquées de Rouen -20- FALLET Laurent PERRIN Guillaume GRISONI Florian IV VCO a) Présentation VCO signifie Voltage Control Oscillator. Un VCO idéal est un oscillateur dont la fréquence est une fonction linéaire de la tension de commande : F=Fo+aV… La fréquence Fo est appelée fréquence du VCO libre. Oscillateur dont la fréquence est commandée par tension. Le VCO est le module qui crée le son (l'onde sonore) : le timbre est choisi par l'utilisateur et la hauteur du son est fonction de la tension en entrée (généralement issue du clavier). Ce système est utilisé en musique. Notre VCO est constitué d’amplificateurs opérationnels, mais il faut savoir qu’il existe beaucoup d’autres méthodes pour concevoir un VCO. En voici un exemple : Institut National des Sciences Appliquées de Rouen -21- FALLET Laurent PERRIN Guillaume GRISONI Florian b) Etude expérimentale Nous avons réalisé le montage du VCO suivant. R = 10 kΩ C = 10 nF Puis, nous avons étudié la réponse en fréquence en fonction de la tension d’entrée Ux pour différentes valeurs de la résistance R1 : R1 = 5 kΩ Sur ce graphique, on observe que la réponse en fréquence du système est proportionnelle à l’entrée en tension. Institut National des Sciences Appliquées de Rouen -22- FALLET Laurent PERRIN Guillaume GRISONI Florian R1 = 10 kΩ : Ici, la réponse en fréquence est proportionnelle à l’entrée en volts jusqu’à un certain point. En effet, nous observons ici une limite du VCO qui n’est plus fiable lorsque l’on utilise mal le montage intégrateur réalisé avec l’amplificateur opérationnel A2 : Il faut essayer de ne pas utiliser les hautes fréquences pour la modélisation de la tension d’entrée. Institut National des Sciences Appliquées de Rouen -23- FALLET Laurent PERRIN Guillaume GRISONI Florian Nous nous sommes penchés enfin sur l’acquisition d’un signal en fréquence sur le port imprimante. La première étape consiste à choisir une entrée précise sur le port imprimante. Nous disposons de 5 entrées. Afin de compter le nombre de commutations, nous utilisons un masque : lorsque l’entrée du port imprimante a une certaine valeur, nous lançons le programme d’acquisition de la fréquence. Il faut ensuite choisir la méthode d’acquisition du signal. Puisqu’il s’agit d’une fréquence, nous disposons de deux méthodes de programmation différentes : La première consiste à relever le nombre de commutations sur durée donnée, par exemple, on compte le nombre de commutations pendant une seconde. On obtient ainsi un nombre de période par secondes, soit directement la réponse en fréquence. L’autre méthode consiste à relever la durée entre deux commutations, nous permettant ainsi de récupérer la période. Un calcul simple donne la fréquence du signal étudié. C’est cette deuxième méthode qu’il est plus facile à mettre en œuvre au niveau de la programmation : il suffit d’appeler l’heure du système au début du programme, d’attendre la commutation, et de rappeler l’heure du système lorsque l’on observe un changement. Ainsi, on obtient par a différence des deux heures, la durée d’une commutation, puis la période et enfin la fréquence par calcul. Ayant réalisé auparavant une étude du VCO au niveau de la proportionnalité entre la tension d’entrée et la fréquence en sortie, nous appliquons la fonction trouvée expérimentalement pour notre VCO à la fréquence acquise par l’ordinateur. Nous avons donc enfin retrouvé sur l’ordinateur la tension d’entrée appliquée. L’acquisition numérique du signal a été faite. Cette partie de l’expérience n’a pu être menée à bien faute de temps, mais elle aurait mérité que nous nous y attardions plus que sur l’échantillonneur bloqueur par exemple, car nous voyons ici une technique d’acquisition d’une tension sur un ordinateur. Institut National des Sciences Appliquées de Rouen -24- FALLET Laurent PERRIN Guillaume GRISONI Florian Conclusion Ce projet d’automatique nous a permis de mieux appréhender les problèmes qui se posent lors de la numérisation d’un signal. Nous avons abordé les différents points d’une conversion analogique numérique et numérique analogique. L’étude du réseau R/2R pour convertir en tension analogique des tensions numériques représentant chacune un bit, l’étude de l’échantillonneur bloqueur nécessaire pour numériser un signal à l’aide d’un convertisseur à rampe, et l’étude d’un autre système de numérisation : le VCO, qui renvoie une sortie en fréquence proportionnelle à la tension d’entrée. Ce dernier système nous a permis de numériser complètement une tension d’entrée : la réponse en fréquence du système est capturée par le port imprimante et traitée par un programme. Le but de la conversion numérique est d’automatiser les systèmes, en réalisant un traitement des données par ordinateur, puis en provoquant une réponse du numérique vers l’analogique, créant ainsi une boucle de contrôle. Institut National des Sciences Appliquées de Rouen -25- FALLET Laurent PERRIN Guillaume GRISONI Florian Annexes {test du port imprimante MARS 2001 F Guillotin quelques exemples de procedures d'entr‚e et de sortie par le port imprimante du PC fichier lptp102.pas } uses dos,crt; const reg_out=$378; reg_in=$379; type tab=array[0..7] of byte; var val_e,val_s:byte; tab_e,tab_s:tab; procedure conv_bin(valeur:byte;var tabbin:tab); var dividende,i:integer; begin dividende:=valeur; for i:=0 to 7 do begin tabbin[i]:= dividende mod 2; dividende:=dividende div 2; end; end; procedure conv_oct(tabbin:tab;var valeur:byte); var i:byte; begin valeur:=0; for i:=0 to 7 do valeur:=valeur+tabbin[i]*(1 shl i); end; procedure lecture(var valeur:byte); begin valeur:=( (port[reg_in] and $f8) shr 3 ) xor $10; end; procedure ecriture(valeur:byte); begin port[reg_out]:=valeur; end; procedure test_sorties; Institut National des Sciences Appliquées de Rouen var i,octet:byte; begin clrscr; gotoxy(1,12);write('tu as perdu, entre une valeur : '); readln(val_s); ecriture(val_s); conv_bin(val_s,tab_s); gotoxy(1,20); for i:=7 downto write(tab_s[i]:3);readln; end; 0 do procedure test_entrees; var i,octet:byte; fin:boolean; touche:string; begin clrscr; gotoxy(1,12);write('lecture des entr‚es:'); if keypressed then touche:=readkey; fin:=false; repeat lecture(val_e); gotoxy(1,18);write('valeur en entr‚e:',port[$379]:4,' avant conversion'); conv_bin(val_e,tab_e); gotoxy(1,19);write('valeur en entr‚e:',val_e:3); gotoxy(1,20); for i:=7 downto 0 do write(tab_e[i]:3); if keypressed then begin touche:=readkey;fin:=true end; until fin; end; procedure rampe; var i,octet:byte; fin:boolean; touche:string; begin clrscr; gotoxy(1,12); write('rampe lanc‚e '); write('pour arrˆter, appuyer sur une touche'); if keypressed then touche:=readkey; fin:=false; i:=0; repeat -26- FALLET Laurent PERRIN Guillaume GRISONI Florian ecriture(i); i:=i+1; if i=255 then i:=0; if keypressed then touche:=readkey;fin:=true end; until fin ; okfin:=true; delay(50); end; begin until okfin; end; end; {******************programme*************} var fin:boolean; touche:char; choix:integer; begin if keypressed then touche:=readkey; fin:=false; ecriture(0); clrscr; procedure periodemetre; var compte:integer; h,m,s,h1,m1,s1,stringue,stringue1:Word; bol,ok_fin:boolean; touche:char; begin clrscr; GetTime(h,m,s,stringue); write(h,m,s); compte:=1; bol:=false; repeat repeat choix:=0; clrscr; gotoxy(2,3);write('Programme de test des entr‚es Sortie sur le port imprimante'); gotoxy(2,5);write('1 :Ecrire une sortie'); gotoxy(2,7);write('2 : lire les entr‚es'); gotoxy(2,9);write('3 : envoyer une rampe'); gotoxy(2,11);write('4 : mesure frequence VCO'); gotoxy(2,13);write('5 : quitter '); gotoxy(2,15);write('que voulez vous faire : '); repeat bol:=((port[reg_in] and 64)=64); if bol then compte:=compte+1; GetTime(h1,m1,s1,stringue1); until s1=s+1; gotoxy(1,12);write(compte); if keypressed then begin touche:=readkey; ok_fin:=true; end; gotoxy(1,12);write('frequence ');write(1/compte); compte:=0; until ok_fin; end; : procedure vco; var tabbin:tab; ack,i:integer; okfin,ok_ack:boolean; touche:char; begin okfin:=false; clrscr; repeat ack:=port[reg_in] and $40; conv_bin(ack,tabbin); gotoxy(1,12);clreol; for i:=7 downto 0 do write(tabbin[i]:3); ok_ack:=(ack=64); gotoxy(1,13);clreol; write(ok_ack); if keypressed then begin touche:=readkey; Institut National des Sciences Appliquées de Rouen readln(choix); case choix of 1:test_sorties; 2:test_entrees; 3:rampe; 4: periodemetre; 5:fin:=true; end; until fin; end. -27-