FR 2525416 A1 19831021 FR 8206755 A 19820420 M 2525416 COMPTEUR AVEC SAUVEGARDE NON-VOLATILE DE SON CONTENU La présente invention concerne un circuit électronique de comptage, et plus particulièrement un compteur recevant des impulsions de comptage et réalisé de telle manière que le contenu du compteur soit conservé en mémoire de manière non-volatile, c'est à dire de manière que ce contenu ne soit pas perdu lors d'une coupure de l'alimentation électrique du compteur. On peut réaliser un tel compteur à l'aide de bascules synchrones pourvues de circuits de sauvegarde: en fonctionnement normal, ces bascules changent d'état en fonction de leurs signaux d'entrée sous la commande d'un signal d'horloge; une commande de sauvegarde est prévue pour sauvegarder de manière non-volatile l'état de la bascule; après une coupure d'alimentation, on peut repositionner la bascule dans l'état gardé en mémoire, soit de manière automatique, soit grâce à une commande de reposition- nement. Un exemple de bascule bistable synchrone, à circuit de sauvegarde et à repositionnement commandé, est représenté à la figure 1 Il s'agit d'une bascule JK maitre-esclave comportant une entrée J, une entrée K, des entrées d'horloge H et H* (l'astérisque * indiquant le signal complémentaire d'un signal donné), une entrée de remise à zéro forcée R et une entrée de com- mande de repositionnement CCR La bascule elle-même se compose essentiellement de transistors Tl, T 2, T 3, T 4 (bascule-maître) et de transistors T 5, T 6, T 7, T 8 (bascule-esclave) Le circuit de sauvegarde comprend essentiellement deux transistors de type MNOS (Metal-Nitrure-Oxyde-Semiconducteur) T Ml et TM 2, capables de con- server de manière non-volatile des charges électriques piégées qui les rendent soit conducteurs soit bloqués. La sauvegarde de l'état de la bascule s'effectue grâce à un signal de commande de sauvegarde Cs qui permet d'appliquer à la bascule une tension d'écriture Ve plus élevée que la tension nor- male de fonctionnement (Vcc) en même temps qu'on isole les drains des transistors MNOS, TMH et TM 2, de la ligne d'alimentation grâce à un signal bas (O volt) appliqué à l'entrée de commande CCR Les sources des transistors TMH et TM 2, reliées aux sorties de la bascule-maitre, sont portées soit à O volt soit à la tension d'écriture Ve, selon l'état de la bascule. Les transistors T Ml et TM 2 prennent un état de conduc- tion ou de blocage forcé permanent qui dépend directement de l'état de la bascule à l'instant o le signal Cs a été appliqué. Le repositionnement de l'état de la bascule s'effectue aussi grâce à la commande CCR (état haut) qui relie les tran- sistors MNOS TMI et TM 2 à la ligne d'alimentation pour forcer la bascule-maître dans un état lié à l'état de blocage ou de conduc- tion des transistors T Ml et TM 2 La bascule retrouve alors l'état qu'elle avait lors de la sauvegarde. Le circuit de la figure 1 n'est donné qu'à titre d'exemple pour illustrer le fonctionnement d'une bascule bistable à circuit de sauvegarde et de repositionnement D'autres bascules peuvent être conçues: bascules D et non JK; circuits de sauve- garde à transistors à grille flottante et non à transistors MNOS etc. Dans certains applications de comptage, on souhaite garder en mémoire nonvolatile, à chaque instant, le contenu du compteur: par exemple, on peut compter la durée ou le nombre de cycles de fonctionnement d'un appareil, alors que ce fonction- nement est par nature intermittent et que l'alimentation de l'appareil (et donc du compteur) est coupée après chaque usage. Dans ces conditions, il faut prévoir systématiquement après chaque incrémentation du compteur une étape de sauvegarde (le mot incrémentation sera pris ci-après au sens large d'incrémentation ou décrémentation, étant entendu que l'invention s'applique à un compteur ou un dicompteur ou un compteur-décompteur). Malheureusement, les transistors MNOS ou les transistors à grille flottante, qui constituent les éléments de base des cir- cuits de sauvegarde, ne peuvent supporter qu'un nombre limité de cycles d'écriture, après quoi ils se détériorent progressivement et n'arrivent plus à piéger convenablement les charges électriques 25254 1 6 qui assurent leur état de conduction ou blocage forcé Il se pro- duit alors d'une part une réduction de la rétention de l'information mise en mémoire et d'autre part un risque d'erreur de repositionnement dû à la modification des tensions de seuil de blocage des transistors après un grand nombre de cycles d'écriture. Le nombre de cycles qu'on ne peut dépasser semble être de 105 à 106 pour des dispositifs MNOS et on devrait donc exclure les applications o l'on a besoin de faire fonctionner le compteur sur un nombre de cycles de cet ordre. Pour augmenter le nombre maximum d'incrémentations que peut subir le compteur tout en effectuant une sauvegarde de son contenu à chaque incrémentation, la présente invention propose une unité de comptage constituée par une boucle de plusieurs bascules dont les sorties représentent sous forme binaire le contenu de l'unité de comptage selon un code particulier dans lequel aucun chiffre binaire ne change plus de deux fois au cours d'un cycle de comptage complet de l'unité; un moyen d'activation de la mise en mémoire non-volatile des états des sorties des bascules est prévu et un circuit logique de sélection est couplé à ce moyen d'activation pour interdire l'activation de la mise en mémoire de l'état des bascules qui n'ont pas changé d'état après une incrémentation de l'unité du comptage et pour autoriser l'activation de la mise en mémoire de l'état des bascules qui ont changé d'état après cette incrémentation. Ainsi, au lieu de réaliser le compteur sous forme classique avec des bascules agencées pour compter normalement selon le code binaire pur ou un code dit BCD (décimal codé binaire), ce qui est le plus courant pour des compteurs destinés à donner une représentation de nombres décimaux, on prévoit un code inhabituel qui est de préférence le code dit "de Johnson" que l'on explicitera ci-après, ou un code similaire du point de vue du nombre réduit de changements de chaque chiffre binaire au cours d'un cycle complet de comptage De plus, lors de la sauvegarde du contenu du compteur, à chaque incrémentation, on n'effectue la sauvegarde que pour les bascules qui viennent de changer d'état. Ces deux caractéristiques, faible nombre de changements d'état des bascules et sélection des bascules dont le contenu est à sauvegarder après un changement d'état, contribuent à réduire le nombre de cycles d'écriture de chacune des bascules et donc à aug- menter la durée de vie globale du compteur. On a utilisé le mot unité de comptage étant entendu qu'un compteur peut comporter plusieurs unités de comptage correspondant chacune à des chiffres de poids différents du résultat du comptage; par exemple un compteur décimal à quatre chiffres (O à 9999) comportera quatre unités de comptage en cascade qui seront quatre décades de comptage Chaque décade a un cycle complet de comptage de 10 incrémentations successives Mais on pourrait envisager un compteur affichant un résultat hexadécimal à quatre chiffres ( 0000 à FFFF) et chaque unité de comptage effectuerait alors un cycle de comptage de seize incrémentations. L'important est qu'une unité de comptage prise indivi- duellement possède plusieurs sorties (les sorties des bascules de la boucle constituant cette unité) et que ces sorties définissent sous forme de plusieurs chiffres binaires un résultat numérique de comptage à un chiffre (O à 9 pour une décade en décimal) selon un code binaire spécial o chaque chiffre binaire ne change que deux fois au maximum au cours d'un cycle (O à 9 en décimal). Le choix du code Johnson est particulièrement intéressant car il remplit cette condition et parce qu'il permet comme on le verra de réaliser un circuit logique combinatoire particulièrement simple pour repérer, après une incrémentation du compteur, donc après chaque impulsion de comptage, quelles sont les bascules qui doivent subir un cycle d'écriture (deux bascules à chaque impulsion de comptage), en fonction de l'état des sorties des bascules et éventuellement en fonction de l'existence d'un signal de remise à zéro générale de l'unité de comptage ou du compteur D'autres caractéristiques et avantages de l'invention appdraltront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés dans lesquels: la figure 1, déjà décrite, représente une bascule bistable à circuit de sauvegarde non volatile, pouvant servir à la réalisation d'un compteur, la figure 2 représente une unité de comptage selon l'invention, les figures 3 et 4 représentent deux exemples d'agencement de bascules pour compter selon le code Johnson. Il est tout à fait usuel de réaliser des unités de comp- tage d'un chiffre décimal ou hexadécimal à partir de quatre bascu- les JK ou quatre bascules D et éventuellement quelques portes Les sorties des bascules constituent les sorties de l'unité de comp- tage et les bascules sont couplées les unes aux autres selon un schéma en boucle fermée de telle manière que l'état (binaire) des sorties des bascules représente cycliquement la succession des chiffres 0 à 9 codés selon un code choisi. Par exemple, le code peut être binaire pur; si les sor- ties des quatre bascules sont A, B, C, D dans l'ordre des poids décroissants, le code de comptage en binaire pur de O à 15 est défini par les états successifs suivants des bascules pour chaque contenu de l'unité de comptage A B C D A B C D 0 0 O 0 O 8 1 O O O 1 O 0 O 1 9 1 O O 1 2 0 0 '1 O 10 1 O 1 O 3 O O 1 1 il 1 O 1 1 4 O 1 0 0 12 1 1 O O O 1 O 1 13 1 1 0 1 6 O 1 1 O 14 1 1 1 O 7 O 1 1 1 15 1 1 1 1 ( 16) O O O O Pour un comptage décimal ( O à 9) en code BCD, les sor- ties des bascules reviennent à zéro à la dixième impulsion de comptage: A B C D 0 O O O O O O O O O. 1 0 0 0 1 2 O O 1 O 3 O O 1 1 4 O 1 O O O 1 O 1 6 O 1 1 O 7 O 1 1 1 8 1 O O O 9 1 O O 1 ( 10) O O O O Pour ces deux codes très courants, on voit que les sor- ties de la dernière bascule (sortie D) changent d'état à chaque incrémentation Si l'on veut sauvegarder de manière non volatile le contenu du compteur après chaque incrémentation, il faudrait réinscrire à chaque fois le contenu de la dernière bascule. On propose ici d'utiliser un code de comptage différent (aboutissant donc à un couplage de bascules différent) qui est rarement utilisé car il nécessite cinq bascules au lieu de quatre pour un comptage décimal (O à 9) et huit bascules au lieu de quatre pour un comptage hexadécimal (O à 15). Ce code est le suivant en décimal (les sorties des cinq bascules étant notées A B C D E): A B C D E 0 O O O O O 1 1 O O O O 2 1 1 O O O 3 1 1 1 O O 4 1 1 1 1 O 1 1 1 1 1 6 O 1 1 1 1 7 O O 1 1 1 8 O O O 1 1 9 O O O O 1 ( 10) O 0 O O O 25254 16 Ce code est appelé code Johnson; l'intérêt qu'il présente habituellement est le fait qu'on passe d'un nombre au nombre immédiatement suivant par le changement d'un seul chiffre binaire (donc d'une seule sortie de bascule) et que ce changement se fait successivement d'une bascule à la suivante (contrairement au code Gray par exemple ou un seul chiffre binaire change bien a chaque incrémentation mais ce chiffre n'est pas pris suc- cessivement sur chacune des bascules) Il en résulte une possibilité de décodage particulièrement simple pour restituer une information décimale sur le contenu du compteur. Ce code Johnson est toutefois choisi ici pour une autre raison qui s'ajoute à la raison de simplicité du décodage et qui est le fait que chaque chiffre binaire ne change que deux fois au cours d'un cycle complet de comptage de O à 10 (il en serait de même en hexadécimal avec huit bascules, l'algorithme d'écriture du code en hexadécimal étant le même qu'en décimal). Ainsi, la bascule dont la sortie est A ne change d'état que pour un passage du compteur de 0 à 1 ou de 5 à 6; de même la bascule dont la sortie est B ne change d'état que pour un passage du compteur de 1 à 2 ou de 6 à 7. Non seulement il en résulte qu'on peut sauvegarder le contenu du compteur en n'effectuant une étape d'écriture que pour une seule bascule après chaque incrémentation (ce serait le cas avec l'utilisation d'un code Gray) , mais encore la sauvegarde de l'état d'une même bascule n'est nécessaire que deux fois par cycle; enfin, la sélection de la bascule dont l'état est à sauvegarder (parce qu'il vient de changer) peut se faire avec un circuit logi- que combinatoire très simple qui peut se définir à l'aide de la table de vérité suivante o Ca, Cb, Cc, Cd, Ce sont des signaux de commande logiques indiquant, respectivement pour chaque bascule, si la sauvegarde doit être effectuée: par exemple Ca = 1 pour un contenu de compteur égal à 1 ou 6 et Ca = O pour les autres contenus; Cb = 1 pour un contenu égal à 2 ou 7 et Cb = O pour les autres contenus Ca, Cb, Cc, Cd, Ce représentent donc les signaux de commande de sauvegarde de chaque bascule. A B C D E Ca Cb Cc Cd Ce O O O O O 1 1 O O O O 1 O O O O 2 1 1 O O O O 1 O O O 3 1 1 1 O O O O 1 O O 4 l 1 11 O 1 1 1 1 O O O O O 1 6 O 1 1 1 1 O O O O 7 O O 1 1 1 O 1 O O O 8 O O O 1 1 O O 1 O O 9 O O O O 1 O O O 1 O ( 10) O O O O O O O O O 1 Le circuit logique permettant d'engendrer les commandes de sauvegarde de chaque bascule reçoit comme entrées les sorties A, B, C, D, E des bascules et possède cinq sorties Ca, Cb, Cc, Cd, Ce Ce circuit, qui correspond au bloc en pointillés 32 de la figure 2, se déduit de la table de vérité ci-dessus; Ca est formé essentiellement par un circuit d'antico Incidence recevant A et B (porte OU-exclusif 10); Cb par un circuit d'anticolncidence rece- vant B et C (porte OU-exclusif 12); Cc par un circuit d'anticoincidence recevant C et D (porte OU-exclusif 14); Cd par un circuit d'anticoincidence recevant D et E (porte OU-exclusif 16); et Ce par un circuit de coïncidence recevant E et A (porte OU-exclusif 18 suivie d'un inverseur 19). En outre, on souhaite qu'il y ait sauvegarde du contenu du compteur en cas de remise à zéro, et, pour que cette sauvegarde soit générale pour toutes les bascules quel que soit l'état précédent du compteur, on place en aval de la sortie des circuits de coincidence et d'anticoincidence des portes OU simples respec- tives 20, 22, 24, 26, 28 recevant chacune sur une entrée la sortie d'un de ces circuits et sur l'autre le signal commun R de remise à zéro du compteur Il y a alors sauvegarde systématique du contenu 00000 du compteur lorsque ce contenu est dû au signal R Au contraire, il n'y a sauvegarde que de la dernière bascule (sortie 25254 1 6 E) lorsque le passage à 00000 est dû à l'incrémentation à partir d'un contenu égal à 9 ( 00001). On peut alors décrire l'ensemble d'une décade de comp- tage selon l'invention, représentée à la figure 2, comprenant essentiellement une unité de comptage proprement dite 30 et un circuit logique de sélection 32 correspondant au bloc pointillé de la figure 2. L'unité de comptage proprement dite comprend cinq bascu- les (sorties A, B, C, D, E) et les circuits de sauvegarde associés. Une entrée de comptage H est représentée ainsi qu'une entrée R de remise à zéro générale des bascules et une entrée de commande de repositionnement CCR. Une tension d'alimentation Vcc, par exemple de 5 volts, est appliquée normalement à chacune des bascules, mais une tension d'écriture plus élevée Ve (par exemple une vingtaine de volts) peut être appliquée sélectivement à chacune des bascules à la place de la tension Vcc grâce à des transistors MOS individuels TRI à TR 5 commandés respectivement par les signaux de commande de sauvegarde Ca, Cb, Cc, Cd, Ce Les grilles de ces transistors cor- respondent à l'entrée de commande de sauvegarde Cs de la figure 1. Ces signaux sont issus des cinq sorties du circuit logi- que de sélection déjà décrit, désigné par la référence 32. Des diodes Dl à D 5 servent à empêcher la transmission de l'alimentation Ve vers l'alimentation Vcc lorsqu'un transistor TRI à TR 5 est conducteur. Les transistors TRI à TR 5 et les diodes constituent l'essentiel du moyen d'activation (sélectif) de la mise en mémoire de l'état de chaque bascule La commande CCR de l'unité de comp- tage doit être à O volt pendant que la tension d'écriture Ve est appliquée; la durée d'application de cette dernière est limitée à à 100 millisecondes par exemple. A la figure 3, on a représenté à titre d'exemple quel pouvait ê 3 tre le couplage des cinq bascules JK d'une décade de comptage pour obtenir des sorties A, B, C, D, E de bascules représentant le nombre d'incrémentations de la décade selon le 25254 16 code de Johnson: les bascules sont directement en cascade les unes avec les autres, mais les sorties de la dernière bascule sont croisées avant d'être appliquées aux entrées de la première Les alimentations Vcc et Ve n'ont pas été représentées, ni le circuit logique de sélection 32 qu'il faut rajouter selon l'invention pour produire Ca, Cb, Cc, Cd, Ce, à partir de A, B, C, D, E. La figure 4 montre un autre exemple de décade de comp- tage, réalisée avec des bascules D et non JK; le couplage des bascules n'est pas directement en cascade entre la deuxième et la troisième bascule, mais deux portes NON-OU permettent de déclencher la troisième bascule à partir des états des première, deuxième, et troisième bascules; par ailleurs, la première bascule est déclenchée par la sortie complémentée E de la cinquième bascule Les autres bascules sont directement en cascade. Comme à la figure 3, les alimentations et le circuit de sélection 32 n'ont pas été représentés. 2 5 2 5 4 1 6 REVENDICATIONS. 1 Unité de comptage non-volatile, dont le contenu est mémorisé de manière non-volatile après chaque commande d'incrémentation, comprenant plusieurs bascules dont les sorties (A, B, C, D, E) représentent sous forme binaire le contenu de l'unité de comptage, caractérisée en ce que ces bascules sont connectées les unes aux autres de manière que l'état des sorties des bascules représente le contenu décimal du compteur selon un code dans lequel aucun chiffre binaire ne change plus de deux fois au cours d'un cycle de comptage complet de l'unité de comptage, et en ce qu'il est prévu un moyen d'activation sélectif (T Ri à TR 5) de la mise en mémoire non-volatile des états des sorties des bascules, et un circuit logique de sélection ( 32) couplé au moyen d'activation pour interdire l'activation de la mise en mémoire de l'état des bascules qui n'ont pas changé d'état après incrémentation de l'unité de comptage et pour autoriser l'activation de la mise en mémoire de l'état des bascules qui ont changé d'état après cette incrémentation. 2 Unité de comptage selon la revendication 1, caractérisée par le fait qu'elle comporte cinq bascules et que le code est un code de Johnson faisant correspondre les états des cinq bascules à un contenu décimal de O à 9 du compteur. 3 Unité de comptage selon l'une des revendications 1 et 2, caractérisée par le fait que les bascules comportent chacune au moins un transistor de type MNOS (TM 1, D 12) ou un transistor MOS à grille flottante constituant un élément de mémorisation non vola- tile, que le moyen d'activation de la mise en mémoire est apte à appliquer à ce transistor une tension d'écriture (Ve) plus élevée que la tension normale (Vcc) de fonctionnement de la bascule, et par le fait que le circuit logique de sélection ( 32) est apte à autoriser ou interdire la transmission de la tension d'écriture aux divers transistors de mémorisation. s Unité de comptage selon l'une des revendications 1 à 3, caractérisée par le fait que le circuit logique de sélection recoit comme entrées les sorties (A, B, C, D, E) des bascules. Unité de comptage selon la revendication 4, caractérise par le fait que le circuit logique de sélection reçoit egalement comme entrée un conducteur de remise à zéro du compteur (R). 6 Décade de comptage décimai à cinq bascules selon l'une des revendications 1 à 5, caractérisée par le fait que le circuit logique ( 32) comporte: un circuit de coïncidence ( 18, 19) recevant les sor- ties (A et E) de deux des bascules pour fournir un signal d'autorisation de l'activation de la mise en mémoire de l'état de l'une d'elles, et quatre circuits d'anticoincidence ( 10, 12, 14, 16) recevant chacun les sorties de deux bascules successives pour fournir un signal d'autorisation de l'activation de la mise en mémoire de l'état de l'une d'elles. 7 Décade de comptage décimal selon la revendication 6, caractérisée par le fait que le circuit logique comporte encore des portes OU ( 20 à 28) recevant chacune sur une entrée le signal d'autorisation engendré par les circuits de coincidence ou d'anticoincidence et sur une autre entrée un conducteur de remise à zéro générale (R) de l'unité de comptage, pour autoriser la mise en mémoire non-volatile des bascules lors de la remise à zéro forcée de l'unité de comptage. 8 Décade de comptage décimal selon l'une des reven- dications 1 à 7, caractérisée par le fait que le moyen d'activation comprend des interrupteurs (TRI à TR 5) commandés par le circuit logique, susceptible de relier une source de tension d'écriture (Ve) à chaque bascule.