Brevet FR2708400A1 — publié le 19950203

"Encodeur binaire, tolérant aux erreurs" La présente invention concerne un encodeur pour la conversion d'un signal numérique d'entrée défini selon un code de type thermométrique ou circulaire dont chaque bit est appliqué à une entrée de l'encodeur, pour obtenir un signal de sortie codé en binaire, encodeur comportant un jeu de n portes OU Exclusif successives, à deux entrées et une sortie, chaque porte OU Exclusif ayant une entrée reliée à une entrée de la porte de rang voisin ainsi qu'à une entrée de l'encodeur, et comportant une matrice d'encodage à n lignes en entrée et une pluralité de paires de colonnes en sortie, chacune des n lignes successives étant reliée à une sortie d'une des portes OU Exclusif successives, chacune des colonnes étant connectée à une borne de tension de référence via une source de courant et les colonnes d'une paire fournissant une sortie différentielle pour un bit du signal binaire de sortie, matrice d'encodage dans laquelle un couplage actif entre une ligne déterminée et une colonne déterminée est constitué, lorsqu'il est requis, par un transistor dont la base est reliée à ladite ligne déterminée, dont l'émetteur est relié à ladite colonne déterminée et dont le collecteur est relié à une borne de tension d'alimentation. Un tel encodeur est connu de l'article intitulé "8 bit 100MHz fullNyquist A/D Converter" publié dans IEEE Journal of Solid-State Circuits, Vol 23, N 6 décembre 1988, pp.1334-1344. Une description de cet encodeur réalisé en technologie bipolaire est particulièrement décrite en liaison avec les figures 7 et 13 de cette publication. Une application majeure d'un encodeur binaire du type indiqué plus haut est celle des convertisseurs analogiques-numériques. Dans cette application, un problème technique bien connu est posé par la présence d'erreurs de décision logique à la sortie du jeu de portes OU Exclusif. La mesure de la valeur d'un signal analogique, par comparaison avec les tensions prélevées sur une échelle de résistances devrait normalement fournir un signal numérique thermométrique dont les bits successifs ne comportent qu'une seule transition entre un groupe de bits de rang successifs à 1 et un groupe restant de bits de rangs successifs à O. A la sortie du jeu de portes OU Exclusif, une seule sortie à 1 devrait donc normalement être constatée. Par suite de légères imperfections dans la réalisation des convertisseurs, des erreurs de décision sont observées, particulièrement lorsqu'on augmente la fréquence du signal analogique à mesurer. Une erreur de décision, appelée ci-après erreur simple, consiste dans le fait que les bits du signal thermométrique observé à un instant donné, contiennent une transition (1...1), 0, 1, O (0....0). Le jeu de portes OU Exclusif fait donc apparaître dans ce cas un signal à 1 sur trois sorties de rangs successifs, au lieu d'une seule sortie. D'autres erreurs plus graves parcequ'elles impliquent plus de trois sorties successives du jeu de portes, sont encore possibles mais elles sont nettement moins fréquentes que les erreurs dites simples, et devraient être évitées par une construction plus soignée du convertisseur. La présente invention a pour objet de proposer un encodeur dont l'agencement particulier permet de corriger automatiquement les erreurs de décision simples, de manière sûre et rapide. En effet, selon la présente invention, un encodeur du type indiqué dans le paragraphe introductif, est notamment remarquable en ce que la matrice d'encodage comporte une paire de colonnes appelées respectivement pseudo-colonne de poids zéro et pseudo-colonne complémentaire de poids zéro, dont le couplage lignes/colonnes est respectivement déduit par décalage circulaire à partir du couplage lignes/colonnes de la paire de colonnes de poids un, à savoir: pour une ligne de rang i de la pseudo-colonne de poids zéro, est appliqué un couplage identique à celui de la ligne de rang (i modulo n) + i de la colonne de poids un, de même pour la ligne de rang i de la pseudo- colonne complémentaire de poids zéro, est appliqué un couplage identique à celui de la ligne de rang (i modulo n) + 1 de la colonne complémentaire de poids un, et en ce que l'encodeur comporte une porte OU Exclusif additionnelle à deux entrées dont l'une reçoit un signal logique correspondant à la sortie de la paire de pseudo-colonnes de poids zéro et l'autre reçoit un signal logique correspondant à la sortie de la paire de colonnes de poids un, cette porte OU Exclusif additionnelle fournissant en sortie le bit de poids zéro du signal binaire de sortie. Par une analyse dont le détail sera exposé plus loin, il apparaît qu'une erreur de décision simple fournit, pour les bits de poids supérieur à zéro du signal binaire de sortie, des signaux différentiels sur les paires de colonnes de la matrice d'encodage dont l'amplitude est réduite, mais qui sont corrects du point de vue logique. L'invention met en oeuvre une structure particulière pour l'encodage du bit de poids zéro du signal binaire de sortie, structure telle qu'en présence d'une erreur de décision simple, le signal fourni par la paire de pseudo- colonnes de poids zéro est significatif du point de vue logique, bien que d'amplitude réduite. Toutefois, la paire de pseudo-colonnes de poids zéro ne fournit pas directement le bit de poids zéro du signal binaire de sortie mais un signal numérique qui est à combiner à travers la porte OU-Exclusif additionnelle, avec le signal issu de la paire de colonnes de poids 1. L'invention permet donc une correction automatique des erreurs de décision simples. Selon un mode de mise en oeuvre avantageux de l'invention, l'encodeur est caractérisé en ce que chacune des paires de colonnes de la matrice d'encodage est suivie d'un amplificateur différentiel de gain suffisant pour forcer le niveau de signal à sa sortie à prendre l'un parmi deux niveaux logiques prédéterminés, en présence d'une erreur de décision simple à la sortie du jeu de portes OU Exclusif. On retrouve à la sortie de ces amplificateurs des signaux dont les niveaux sont élevés aux valeurs standards lorsqu'une erreur de décision est présente. En cas d'erreur, le signal différentiel appliqué à l'entrée des amplificateurs est petit, de l'ordre de 18mV seulement. Il peut être augmenté au sein même de la matrice d'encodage conformément à un mode de mise en oeuvre de l'invention caractérisé en ce que dans la matrice d'encodage, chaque transistor réalisant un couplage actif ligne/colonne est muni d'une résistance d'émetteur dont la valeur est choisie de manière à ce que le niveau différentiel de tension de la sortie d'une paire de colonnes, en présence d'une erreur de décision simple à la sortie des portes OU Exclusif, soit rendu comparable au niveau différentiel de tension qui est produit en l'absence d'une telle erreur. En appliquant cette disposition, le niveau différentiel de tension en l'absence d'erreur, est toutefois réduit par comparaison avec une matrice d'encodage dont les transistors ne sont pas munis de résistance d'émetteur. Un compromis est donc souhaitable en ce qui concerne le choix de la valeur des résistances d'émetteur. Si le niveau différentiel de tension en sortie des paires de colonnes en présence d'une erreur de décision est rendu comparable, à celui obtenu en l'absence d'erreur, les amplificateurs de sortie des colonnes de la matrice d'encodage peuvent être simplifiés et le fonctionnement de l'encodeur est amélioré. L'invention concerne également un convertisseur analogique/numérique incorporant un encodeur tel que défini précédemment. La description qui va suivre en regard des dessins annexés, donnés à titre d'exemple non limitatif, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. La figure 1 représente une vue partielle et schématique d'un encodeur selon l'invention. La figure 2 illustre le cas d'une erreur de décision simple par comparaison avec la situation normale, sans erreur, à la sortie des portes OU Exclusif. La figure 3 est une table illustrant dans la sortie codée en binaire de l'encodeur selon l'invention, comment le bit de poids O est obtenu à partir de la sortie des pseudo-colonnes de poids O. Les figures 4 et 5 montrent des schémas illustrant respectivement la situation d'un encodage normal et d'un encodage en présence d'une erreur de décision. La figure 6 montre le schéma d'un mode particulier de réalisation de l'invention, et la figure 7 représente des courbes de variations des niveaux différentiels de tension produits en sortie des paires de colonnes, d'une part en l'absence d'erreur et d'autre part en présence d'une erreur de décision, en fonction de la valeur d'une résistance d'émetteur selon le mode de mise en oeuvre décrit à la figure 6. A la figure 1, un encodeur selon l'invention comporte un jeu de n portes OU Exclusif 10 dont chacune des portes X1, X2...Xi...Xn, de rangs successifs, possède deux entrées et une sortie. Chacune des portes Xi a une entrée reliée à une entrée de la porte Xi-1 ainsi qu'à une entrée Ji1 de l'encodeur, l'autre entrée de la porte Xi étant reliée à une entrée de la porte Xi+1 ainsi qu'à une entrée Ji de l'encodeur. L'encodeur comporte encore une matrice d'encodage 12, à n lignes de rangs successifs dont chacune est reliée à la sortie de chaque porte OU Exclusif Xi, et des paires de colonnes en sortie 13- 14, 15-16,... le nombre de ces paires de colonnes étant égal au nombre de bits du signal à coder en binaire à la sortie de l'encodeur. Chacune des colonnes 13, 14, 15, 16... est connectée à une borne de tension de référence VEE via une source de courant S et les colonnes d'une paire 13-14, 15-16...... fournissant une sortie différentielle 23- 24, 25-26...... pour un bit du signal binaire de sortie [Bo], [B1]... Dans l'exemple, l'encodeur est destiné à fournir des sorties binaires s'étendant de la valeur O à la valeur (n-1). A cet effet, la ligne dite de rang 1 est à l'état haut pour la valeur O en sortie, et la ligne de rang n est à l'état haut pour la valeur (n-1) en sortie. Pour réaliser ces conditions, l'entrée Jo est fixée à un niveau haut et l'entrée Jn est fixée à un niveau bas, et ceci en permanence. Lorsqu'une ligne est active, elle détermine en sortie de l'encodeur, une valeur binaire dont l'équivalent décimal est indiqué entre parenthèses, à droite de la figure 1. Dans la matrice d'encodage 12, un couplage actif entre une ligne et une colonne est constitué, lorsqu'il est nécessaire, par un transistor T dont la base est reliée à une ligne, dont l'émetteur est relié à une colonne et dont le collecteur est relié à une borne d'alimentation VCC. Ainsi la colonne 15 fournit à sa sortie 25 un signal B1 cette colonne étant couplée à cet effet aux lignes de rangs 1, 2, 5, 6,... De manière analogue la colonne 16 fournit en sortie 26 un signal B1 et elle est couplée aux lignes de rangs 3, 4, 7, 8... Les signaux B1 et B1 sont appliqués à l'entrée d'un amplificateur différentiel 31 fournissant en sortie un signal [B1] correspondant au bit de poids 1 de la sortie binaire de l'encodeur. La paire de colonne 13 et 14 est appelée paire de pseudo- colonnes de poids O du fait qu'elle est couplée aux lignes de sortie du jeu de portes OU Exclusif 10 par décalage circulaire à partir du couplage ligne/colonne de la paire de colonnes 15, 16 de poids 1. Ainsi le couplage de la colonne 13 se déduit du couplage de la colonne 15 mais en reportant ce couplage à une ligne de rang immédiatement inférieur. La colonne 14 est de manière similaire couplée aux lignes de sortie du jeu de portes OU Exclusif 10 d'une manière comparable au couplage de la colonne 16 mais en reportant ce couplage à des lignes de rangs immédiatement inférieurs. Pour préciser le couplage des pseudo- colonnes de poids O avec les lignes de rangs extrêmes, on peut exprimer ce couplage en disant que pour une ligne de rang i des pseudo- colonnes de poids O, on applique un couplage identique à celui de la ligne de rang (i modulo n)+l des colonnes de poids 1. La paire de pseudo- colonnes 13 et 14 fournit en sortie, respectivement 23 et 24, les signaux BO* et BO*. Ces signaux sont appliqués à l'entrée d'un amplificateur différentiel 30 dont la sortie présente un signal [Bo*] qui ne correspond pas au bit de poids O de sortie du signal binaire, mais qui peut en être déduit. Une porte OU Exclusif additionnelle 35 à l'entrée de laquelle sont appliqués les signaux [Bo*] et [B1] fournit en effet le signal [Bo] recherché. Comme on le verra plus en détail par la suite, un tel encodeur permet de corriger automatiquement et rapidement des erreurs de décision en sortie du jeu de portes OU Exclusif 10. A l'aide de la figure 2 on va préciser maintenant ce qu'on entend par erreur de décision simple à la sortie du jeu de portes OU Exclusif 10. Conformément à la partie gauche de cette figure, les signaux d'entrée successifs sont combinées par des portes OU Exclusif (XOR) pour fournir en sortie un signal logique faisant apparaître normalement un seul état 1 qui correspond à la transition entre les entrées successives à l'état 1 et les entrées suivantes à l'état O. Dans la partie droite de la figure 2, est indiquée une série d'états à l'entrée du jeu de portes OU Exclusif 10 dont la transition entre l'état 1 et l'état O comporte trois changements successifs de l'état 1 à l'état O, puis de l'état O à l'état 1 et enfin de l'état 1 à l'état O. Ces trois transitions en entrée fournissent, en sortie des portes OU Exclusif, trois états 1 successifs au lieu d'un seul. On admettra qu'en l'absence d'erreur, la seule ligne de sortie à l'état i aurait dû être celle qui est centrée entre les deux lignes d'erreur elles-mêmes à 1. Ce type d'erreur est appelé "erreur simple de décision" parcequ'elle ne porte que sur trois lignes de rangs successifs alors que d'autres erreurs plus importantes feraient intervenir plus de trois lignes successives. Toutefois, les erreurs de décision dites simples sont également les plus fréquentes notamment lorsque la fréquence du signal à mesurer est augmentée. La table de la figure 3 montre comment l'encodeur selon l'invention permet d'obtenir le bit de poids [Bo] de la sortie binaire à partir de la valeur [Bo*] en sortie de la paire de pseudo-colonnes de poids O et du bit [B1] de la sortie binaire de poids 1. Dans la colonne notée par (X) sont reportées les valeurs décimales successives représentées par les lignes successives lorsqu'elles sont à l'état haut. Ces valeurs décimales sont également indiquées à la figure 1, entre parenthèses. La colonne [Bo*] représente les états correspondants du signal différentiel en sortie de la paire de pseudo- colonnes de poids 0, la colonne notée [B1] indique les états successifs de la sortie binaire de poids 1 et la colonne [Bo] indique l'état obtenu par la relation [Bo] = [Bo*] @ [B1]. On constate dans cette table que par le passage dans la porte OU Exclusif additionnelle 35 une sortie convenable du bit [Bo] de la sortie binaire est bien obtenue. Les figures 4 et 5 vont permettre d'évaluer l'écart différentiel de tension produit sur les colonnes, d'une part lors d'une mesure normale, et d'autre part en présence d'une erreur de décision simple. Ces figures présentent de manière schématique les sorties Bi et Bi d'une paire de colonnes Bi. Une paire de colonnes de poids i comporte n transistors de couplage répartis par moitié pour la colonne de poids i et pour moitié pour la colonne complémentaire de poids i. En l'absence d'erreur (comme l'indique la figure 4) un seul des transistors de couplage a sa base portée à l'état haut et tous les autres transistors de couplage ont leur base portée à l'état bas. Les états sont représentés par les chiffres 1 et O sur les figures. Le signal différentiel Bi-Bi peut donc être évalué de la manière suivante: Bi -Bi = V1 - VBE(IO) - VO + VBE(2I1o/n) o Io est le courant débité par chacune des sources de courant S, V1 et Vo sont les niveaux des tensions respectivement pour l'état logique haut et l'état logique bas des n lignes. Notons V1 - Vo = Vsw; il vient: Bi - Bi = Vsw - VTLn(n/2) (1) relation dans laquelle VT = kT = 26mV à 300 K q k = constante de Boltzman T = température absolue q = charge de l'électron. En établissant la relation (1), la contribution de courant apportée par les transistors dont la base est à l'état bas, en concurrence avec le transistor unique dont la base est à l'état haut, à été négligée. En cas d'erreur de décision simple, trois transistors ont leur base à l'état haut. Lorsqu'il s'agit d'une paire de colonnes de poids i plus grand que 1, il peut se faire que les trois transistors dont la base est à l'état haut, soient du même côté, soit du côté Bi, soit du côté Bi. Ce cas n'induit aucune sorte de difficulté pour la sortie du signal Bi-Bi du fait que ce signal est à un niveau peu différent (un peu plus élevé) de celui indiqué par la relation (1). La figure 5 est au contraire relative au cas o, à la suite d'une erreur de décision simple, deux transistors sont actifs sur la colonne Bi et un seulement sur la colonne Bi. Il est aisé de voir à l'aide des figures 1 et 2 que le transistor, qui aurait été actif en l'absence d'erreur de décision, doit se trouver du côté o deux transistors sont actifs simultanément. L'écart de tension Bi - Bi devrait donc être négatif dans l'exemple. Les calculs qui suivent vont montrer que c'est effectivement le cas, mais le signal obtenu est de très faible amplitude. Avec les mêmes notations que précédemment, on peut écrire: Bi - FBi = V1 - VBE(O) V1 + VBE(Io/2) ce qui donne: Bi - Bi = VT Ln(l/2) = -VT Ln(2) (2) soit environ -18mV. Un tel signal est donc correct en ce qui concerne le signe, et une fois amplifié par l'amplificateur tel que 30, 31... visibles à la figure 1, ce signal peut être converti en un signal d'un niveau logique standard. En se référant à nouveau à la figure 1, on peut constater que le couplage entre ligne et colonne pour la paire de pseudo-colonnes de poids O est effectué de manière analogue à la paire de colonnes de poids 1, c'est-à-dire avec un couplage de lignes consécutives puis deux lignes non couplées, pour chaque colonne. Les pseudo-colonnes de poids O ont un comportement conforme à l'exemple de la figure 5. On a déjà vu à l'aide de la figure 3 qu'en l'absence d'erreur de décision, les pseudo-colonnes de poids O permettent d'obtenir une sortie du bit convenable de poids O de la sortie binaire. En définitive en présence d'une erreur de décision simple, l'encodeur selon l'invention fournit en sortie un bit de poids O correct. La figure 6 représente un mode de réalisation de l'invention dans lequel une résistance Re est insérée entre les émetteurs des transistors et les colonnes. Par cette disposition il est possible d'augmenter le niveau différentiel de tension produit sur les colonnes lorsqu'une erreur de décision est présente. Toutefois, dans ce mode de mise en oeuvre, le niveau différentiel de tension produit sur les colonnes, en l'absence d'erreur, est réduit de manière corrélative. En l'absence d'erreur de décision, on peut écrire: Bi - Bi = V - VBE(Io) -R.I - [VO - VBE(21io/n) - R.2Io/n] avec R = valeur de la résistance Re; soit encore: Bi -Bi = Vsw- VTLn(n/2) -R.Io(1-2) (3) n L'écart de tension Bi-Bi se trouve réduit de la valeur: R.Io (1 - 2) par rapport au cas o la résistance d'émetteur est n omise. Dans le cas d'une erreur de décision, on peut écrire: Bi - Bi = V1 VBE(XO/2) - R.Io/2 - [V1 - VBS(Io) - R.Io] soit encore: Bi - Bi = -(VT Ln(2) + RIo/2) (4) En valeur absolue, l'écart de tension est augmenté de RIo/2 par comparaison avec la relation (2). La figure 7 montre la courbe d'écart de tension Bi-Bi, en valeur absolue, d'une part dans le cas normal -courbe N-, et d'autre part en présence d'une erreur de décision simple -courbe E-, lorsque l'on fait varier la résistance d'émetteur Re. Les valeurs suivantes ont été utilisée, à titre d'exemple: Io = 400 pA, courant débité par les sources de courant S Vsw = 200mV, écart des niveaux logiques en sortie des portes OU Exclusif n=32 Il est clair qu'en augmentant la valeur des résistances d'émetteur Re, on peut augmenter considérablement le niveau différentiel de tension dans le cas d'une erreur de décision simple, et rendre ce niveau de tension comparable à celui qui est produit en l'absence d'erreur. L'égalité de ces niveaux de tensions est obtenue pour une valeur de résistance R = voisine de l90Q. Un écart de tension de l'ordre de 56mV est alors obtenu dans tous les cas, écart qui est confortable et permet d'utiliser des amplificateurs différentiels tels que montrés à la figure 1, aux repères 30, 31... d'une construction très simplifiée. REVENDICATIONS: 1. Encodeur pour la conversion d'un signal numérique d'entrée défini selon un code de type thermométrique ou circulaire dont chaque bit est appliqué à une entrée de l'encodeur, pour obtenir un signal de sortie codé en binaire, encodeur comportant un jeu de n portes OU Exclusif successives, à deux entrées et une sortie, chaque porte OU Exclusif ayant une entrée reliée à une entrée de la porte de rang voisin ainsi qu'à une entrée de l'encodeur, et comportant une matrice d'encodage à n lignes en entrée et une pluralité de paires de colonnes en sortie, chacune des n lignes successives étant reliée à une sortie d'une des portes OU Exclusif successives, chacune des colonnes étant connectée à une borne de tension de référence via une source de courant et les colonnes d'une paire fournissant une sortie différentielle pour un bit du signal binaire de sortie, matrice d'encodage dans laquelle un couplage actif entre une ligne déterminée et une colonne déterminée est constitué, lorsqu'il est requis, par un transistor dont la base est reliée à ladite ligne déterminée, dont l'émetteur est relié à ladite colonne déterminée et dont le collecteur est relié à une borne de tension d'alimentation, caractérisé en ce que la matrice d'encodage comporte une paire de colonnes appelées respectivement pseudo-colonne de poids zéro et pseudo-colonne complémentaire de poids zéro, dont le couplage lignes/colonnes est respectivement déduit par décalage circulaire à partir du couplage lignes/colonnes de la paire de colonnes de poids un, à savoir: pour une ligne de rang i de la pseudo-colonne de poids zéro, est appliqué un couplage identique à celui de la ligne de rang (i modulo n) + i de la colonne de poids un, de même pour la ligne de rang i de la pseudo-colonne complémentaire de poids zéro, est appliqué un couplage identique à celui de la ligne de rang (i modulo n) + 1 de la colonne complémentaire de poids un, et en ce que l'encodeur comporte une porte OU Exclusif additionnelle à deux entrées dont l'une reçoit un signal logique correspondant à la sortie de la paire de pseudo-colonnes de poids zéro et l'autre reçoit un signal logique correspondant à la sortie de la paire de colonnes de poids un, cette porte OU Exclusif additionnelle fournissant en sortie le bit de poids zéro du signal binaire de sortie. 2. Encodeur selon la revendication 1, caractérisé en ce que chacune des paires de colonnes de la matrice d'encodage est suivie d'un amplificateur différentiel de gain suffisant pour forcer le niveau de signal à sa sortie à prendre l'un parmi deux niveaux logiques prédéterminés, en présence d'une erreur de décision simple à la sortie du jeu de portes OU Exclusif. 3. Encodeur selon l'une des revendications 1 ou 2, caractérisé en ce que dans la matrice d'encodage, chaque transistor réalisant un couplage actif ligne/colonne est muni d'une résistance d'émetteur dont la valeur est choisie de manière à ce que le niveau différentiel de tension de la sortie d'une paire de colonnes en présence d'une erreur de décision simple à la sortie des portes OU Exclusif, soit rendu comparable au niveau différentiel de tension qui est produit en l'absence d'une telle erreur. 4. Convertisseur analogique/numérique caractérisé en ce qu'il comporte un encodeur selon l'une des revendications i à 3.