Brevet FR2669791A1 — publié le 19920529

-La présente invention a pour objet un procédé de compensation des effets de dérive dans les horloges pilotées par un oscillateur, tel qu'un oscillateur à quartz par exemple, ainsi qu'un dispositif mettant en oeuvre ce procédé. Elle est utilisable, notamment, dans les systèmes de traitement etlou de transmission de données ainsi que dans les pendules, montres-bracelets, radio-réveils et autres produits grand public similaires. Il est bien évident qu'aucune horloge existante ne peut afficher l'heure réelle, à tout moment, avec une précision absolue. En effet, les phénomènes physiques sur lesquels est basé le principe de fonctionnement de l'horloge considérée varient avec les conditions ambiantes de fonctionnement, avec le vieillissement et dépendent de la précision de la fabrication. En outre, l'écart entre l'heure réelle et l'heure indiquée par une horloge dépend évidemment de la granularité de la représentation de l'heure.En effet, en fonction du besoin une horloge peut avoir une précision de la représentation de l'heure plus ou moins grande : si, pour une horloge grand public du type radio réveil, par exemple, une granularité de l'affichage de l'ordre de la minute, correspondant au chiffre de poids le plus faible, est suffisante, pour une horloge de synchronisation dans un système de mesures astronomiques, par exemple, la granularité requise est de l'ordre de la milliseconde. Dans le premier cas, l'affichage de l'heure est modifié une fois par minute alors qu'il l'est toutes les millisecondes dans le second cas : la granularité, ou période, de l'affichage est donc respectivement d'une minute et d'une milliseconde. A titre d'exemple, la granularité interne, ou période des oscillateurs, de ces deux horloges peut être respectivement d'une microseconde et d'une nanoseconde, l'affichage de l'heure du radio réveil, par exemple, étant incrémenté d'une unité toutes les soixante impulsions issues de l'oscillateur interne piloté par un quartz et transmises au dispositif d'affichage par l'intermédiaire d'une chaîne de diviseurs logiques. Il est bien évident que la qualité de l'oscillateur utilisé dans les deux exemples précédents n'est pas identique. Quoi qu'il en soit, dans les deux cas, on peut observer, outre une dérive variable due notamment aux conditions d'utilisation et en particulier à la température, une dérive permanente et d'amplitude constante de l'oscillateur qui, selon l'exemple choisi précédemment, piloté, par exemple, par un quartz de qualité moyenne, transmettra non pas soixante impulsions par minute mais, par exemple, soixante et une. Ainsi, toutes les heures le dispositif d'affichage du radio réveil reçoit 61 X 60 = 3660 impulsions au lieu de 3600 et avance donc systématiquement d'une minute par heure. La présente invention a donc pour objet un procédé permettant de corriger une telle dérive systématique, ainsi qu'un dispositif mettant en oeuvre ce procédé. Le procédé de correction de la dérive systématique d'une horloge pilotée par un oscillateur de la présente invention est caractérisé en ce qu'il consiste, à partir de l'amplitude et du signe de cette dérive systématique, à déduire la période de la correction à apporter et, selon le signe de cette dérive, supprimer ou ajouter à l'ensemble de la chaîne de comptage des impulsions d'horloge issues de l'oscillateur une impulsion à chaque période de la correction. Le dispositif de l'invention, mettant en oeuvre le procédé précédemment défini de compensation des effets de dérives dans les horloges pilotées par un oscillateur délivrant des impulsions d'horloge à une chaîne de comptage et d'affichage comprenant au moins un compteurdiviseur numérique et un registre horaire, est caractérisé par le fait qu'il comprend notamment un circuit de commande d'incrémentation dont une entrée est connectée à une sortie de l'oscillateur et dont une sortie est connectée à une entrée dudit compteur-diviseur de la chaîne de comptage, un registre dans lequel est inscrite la période de la correction à apporter, un registre dans lequel est inscrit le signe de ladite correction et dont une sortie est connectée à une entrée de commande du circuit de commande d'incrémentation et un comparateur dont une entrée reçoit le nombre d'impulsions délivrées par ledit oscillateur, dont une autre entrée est connectée à une sortie du registre de mémorisation de la période de correction et dont une sortie est connectée à une entrée du circuit de commande d'incrémentation. Une autre caractéristique du dispositif de compensation de l'invention réside dans le fait qu'il comprend également un compteur d'impulsions dont une entrée de comptage est connectée à ladite sortie de l'oscillateur, dont une entrée de remise à zéro est connectée à ladite sortie du comparateur et dont une sortie est connectée à une autre entrée de ce comparateur. Les différents objets et caractéristiques de l'invention seront maintenant détaillés dans la description qui va suivre, donnée à titre d'exemple non limitatif, en se reportant aux figures annexées qui représentent: la figure 1, un diagramme représentant l'heure affichée en fonction de l'heure réelle d'une horloge idéale. - la figure 2, un diagramme représentant l'heure affichée en fonction de l'heure réelle d'une horloge parfaite pourvue d'une certaine granularité. - la figure 3, un diagramme représentant l'heure affichée en fonction de l'heure réelle d'une horloge réelle. - la figure 4, le diagramme schématique d'une horloge pilotée par un oscillateur. - la figure 5, l'horloge de la figure 4 équipée d'un dispositif de compensation conçu conformément au dispositif de l'invention. On décrira maintenant, en se référant aux figures annexées, le dispositif de compensation de l'invention en analysant tout d'abord et de façon très succincte les principales caractéristiques d'une horloge idéale, d'une horloge parfaite et d'une horloge réelle. Une horloge idéale est une horloge qui indique à tout moment l'heure réelle. L'affichage de cette horloge idéale varie donc de façon continue et le diagramme représentant cette heure affichée, portée sur l'axe des ordonnées , en fonction de l'heure réelle, portée sur l'axe des abscisses est donc, en prenant la même échelle sur les deux axes, la droite 0v bissectrice du premier quadrant, comme le montre le schéma de la figure 1. Il est bien évident qu'une telle horloge, dont l'affichage est supposée varier de façon continue ou, si l'on préfère, de façon discontinue (par sauts) à chaque intervalle de temps infiniment petit, ne peut exister Une horloge parfaite est une horloge qui affiche l'heure réelle de façon discontinue, à des intervalles de temps finis et prédéterminés, c'est-à-dire une horloge idéale pourvue d'une granularité. Ce type d'horloge, n'affiche donc l'heure réelle qu'à des instants précis, l'erreur maximale de l'affichage étant égale au temps séparant deux changements successifs de celui-ci. Le diagramme représentant l'heure affichée par ce type d'horloge en fonction de l'heure réelle est donc, en prenant la même échelle sur les deux axes, une courbe en marches d'escalier centrées sur la bissectrice Oc du premier quadrant et dont la hauteur est égale à la largeur, comme le montre le schéma de la figure 2. Il est bien évident que ce type d'horloge est irréalisable car elle suppose un cristal commandant l'oscillateur de précision et de stabilité infinies. Une horloge réelle, type le plus couramment rencontré, est une horloge du type précédent (horloge parfaite) dont l'intervalle de temps séparant deux changements d'affichage successifs n'est pas égal à la différence des heures affichées. Si ledit intervalle est supérieur à cette différence, l'horloge retarde puisque, par exemple, toutes les 1,00001 s l'heure affichée n'augmente que de 1 s. Dans le cas contraire, l'horloge avance.Le diagramme représentant l'heure affichée par ce type d'horloge en fonction de l'heure réelle est donc, en prenant la même échelle sur les deux axes, une courbe en marches d'escalier centrées sur une droite comprise dans l'angle défini par l'axe des ordonnées et la bissectrice Ov du premier quadrant si l'horloge avance, et une courbe Or en marches d'escalier centrées sur une droite Ow comprise dans l'angle défini par cette bissectrice Ov et l'axe des abscisses si l'horloge retarde.Le schéma de la figure 3 illustre ce dernier cas où, pour des raisons évidentes de simplification du graphique, on a amplifié le retard de l'horloge choisi puisque, comme on peut le remarquer sur ce schéma, le changement d'affichage de rang 5 selon l'exemple choisi n'a lieu qu'au temps 5,5 donc que le changement de rang 10 n'aura lieu qu'à l'intervalle de temps 11. Une telle horloge qui prend un retard de, par exemple, une minute toutes les dix minutes est, dans la pratique, considérée comme défectueuse et non atteinte d'une dérive. Quoi qu'il en soit, le procédé et le dispositif de l'invention permettent de compenser la dérive systématique et constante d'une horloge à oscillateur quelle que soit l'amplitude de cette dérive. On rappellera brièvement, en se reportant au schéma de la figure 4, le principe de fonctionnement d'une telle horloge. L'horloge de la figure 4 comprend essentiellement: - un oscillateur OSC piloté par un quartz dont la fréquence nominale est, par exemple, égale à 1,048576 MHz; - un compteur-diviseur numérique ON à 20 étages, dont une entrée ec est connectée à une sortie so de l'oscillateur et qui fournit sur une sortie sc des impulsions dont la fréquence est égale à 1 048 576/220 Hz soit 1 Hz; - un compteur horaire CH sur une entrée eh duquel est fournie, chaque seconde, une impulsion issue du compteur numérique ON et qui engendre une impulsion d'affichage chaque seconde; - un dispositif d'affichage DAF qui reçoit les impulsions d'affichage issues du compteur horaire CH pour afficher l'heure réelle. Selon l'exemple choisi, cet affichage est modifié toutes les secondes puisque le compteur horaire CH fournit une impulsion d'affichage chaque seconde. La granularité de l'affichage de l'horloge choisie est donc d'une seconde, alors que la granularité interne est de l'ordre de la microseconde puisque le quartz pilotant l'oscillateur OSC a, selon l'exemple choisi, une fréquence égale à 1,048576 Hz. On suppose que cette horloge perd une seconde toutes les douze heures, ou toutes les 43 200 secondes. On propose donc d'ajouter une seconde toutes les douze heures Cette façon de procéder a l'inconvénient de provoquer un saut de l'affichage perceptible à l'utilisateur, en particulier lorsque la correction s'effectue, comme il est normal puisque la période de correction est un multiple entier de l'heure, lors du passage de l'affichage à l'heure suivante : ainsi, par exemple, l'affichage va passer directement de 19:59:59 à 20:00:01 sans afficher 20:00:00. La granularité interne de l'horloge étant plus fine que la granularité de l'affichage, le procédé et le dispositif de l'invention permettent d'éviter cet inconvénient. On décrira maintenant ce procédé et ce dispositif de compensation en se référant au schéma de la figure 5 qui représente l'horloge de la figure 4 à laquelle a été ajouté un dispositif de compensation DCC conçu conformément à l'invention. On retrouve en effet, sur le schéma de la figure 5, l'oscillateur OSC, les compteurs CN et CH ainsi que le dispositif d'affichage DAF. Le dispositif de compensation DCC de la figure 5 comprend un circuit de commande d'incrémentation DID, un compteur d'impulsions CR, un registre MP de mise en mémoire de la période de correction de la dérive de l'horloge, un registre MS de mise en mémoire du signe de ladite correction et un comparateur CP. Une entrée ed du circuit de commande d'incrémentation DID est connectée à la sortie so de l'oscillateur. Une sortie oi de ce circuit de commande DID est connectée à une entrée d'incrémentation ni du premier étage du compteur-diviseur numérique CN qui, comme on l'a vu précédemment est un compteur à vingt étages dont la sortie sc est connectée à l'entrée eh du compteur horaire CH. Une autre sortie od du circuit de commande DID est connectée à une entrée d'incrémentation nd du second étage du compteur CN. Le compteur d'impulsions CR comprend au moins 20 étages, c'est-à-dire qu'il a, dans la pratique, le même nombre d'étages que le compteur numérique CN. Une entrée d'incrémentation cc de ce compteur est connectée à la sortie so de l'oscillateur OSC. Le registre MP est un registre dans lequel est mémorisée la période de la correction à effectuer. Dans l'exemple choisi précédemment cette période est de douze heures puisque l'horloge considérée est supposée perdre une seconde toutes les douze heures ou 43 200 s, c'est-àdire que l'horloge perd une impulsion toutes les 43 200 impulsions. C'est cette valeur de la période qui va être enregistrée dans le registre MP. Le comparateur CP est un comparateur logique dont des entrées er sont connectées à des sorties sr 1g -appelées par la suite sr, pour des raisons de simplification- du compteur d'impulsions CR et dont des autres entrées em sont connectées à des sorties sm 0-19 -appelées par la suite sm pour des raisons de simplification- du registre MP. En cas d'égalité des informations fournies respectivement sur ses entrées er et em le comparateur CP fournit sur une sortie op un signal de niveau logique 1. Ce signal est fourni sur une entrée de remise à zéro cz du compteur d'impulsions CR et sur une entrée de commande je du circuit de commande d'incrémentation DID. Le registre MS est un registre qui peut ne comprendre qu'un seul élément binaire, mis à zéro, par exemple lorsque l'horloge retarde et à un lorsqu'elle avance. Une sortie ss de ce registre est connectée à une entrée de commande d'aiguillage id du circuit de commande DID. Le fonctionnement du dispositif de compensation DCC est le suivant: - la période de correction, 43 200 selon l'exemple choisi, est enregistrée dans le registre MP. Cette information est disponible sur les sorties sm de ce registre, donc également aux entrées em du comparateur CP; - les impulsions issues de l'oscillateur à quartz OSC sont fournies à l'entrée de comptage cc du compteur d'impulsions CR. Le nombre total d'impulsions ainsi transmises est affiché en temps réel et sous forme numérique sur les sorties sr de ce compteur donc également sur les entrées er du comparateur CP. Ce nombre étant différent (inférieur, comme on le verra par la suite) de la période de correction, le comparateur CP fournit sur sa sortie on un signal de comparaison de niveau logique 0; - le circuit de commande d'incrémentation DID dont l'entrée de commande ip reçoit un signal de niveau logique 0 retransmet, sur sa sortie oi, les impulsions d'horloge issues de l'oscillateur OSC. Ces impulsions sont donc normalement reçues , comptées et divisées par le compteurdiviseur CN. Aucun signal n'est fourni sur la sortie od du circuit de commande DID.Le fonctionnement de l'horloge de la figure 5 se poursuit de façon identique au fonctionnement de l'horloge de la figure 4; - le compteur CR reçoit la 43 200e impulsion issue de l'oscillateur OSC ; le comparateur CP qui reçoit alors sur ses entrées er et em deux signaux identiques fournit en réponse un signal de comparaison de niveau logique 1 sur sa sortie op;; ce signal est retransmis à l'entrée de remise à zéro cz du compteur d'impulsions CR dont le contenu est remis à zéro, et à l'entrée de commande ip du circuit de commande d'incrémentation DID.Ce circuit dont l'entrée id reçoit un signal permanent de niveau logique 0 car, rappelons le, l'horloge retarde et perd une seconde toutes les douze heures, retransmet l'impulsion d'horloge suivante issue de l'oscillateur OSC, non pas sur sa sortie oi mais sur sa sortie od, donc directement au niveau du second étage du compteur-diviseur CN. Cette incrémentation d'une unité du contenu du second étage du compteur numérique CN correspond à une incrémentation de deux unités du contenu du premier étage de ce compteur binaire donc du contenu total dudit compteur. Une impulsion supplémentaire est donc transmise, via ce circuit, à l'entrée de comptage eh du compteur CH. Il est à remarquer que cette impulsion supplémentaire n'est pas fournie au compteur d'impulsions CR.A l'apparition de l'impulsion d'horloge suivante, la 43 201e, issue de l'oscillateur OSC, le fonctionnement des circuits de la figure 5 se poursuit de la façon décrite précédemment : le compteur d'impulsions CR qui vient d'être remis à zéro affiche sur ses sorties sr, en temps réel et sous forme numérique, le nombre total d'impulsions d'horloge reçues depuis la 43 200ex Le comparateur CP qui reçoit respectivement sur ses entrées er et em deux informations différentes transmet au circuit de commande d'incrémentation DID un signal de comparaison de niveau logique 0. En réponse ce dernier retransmet les impulsions d'horloge successives issues de l'oscillateur OSC sur sa sortie oi, aucun signal n'étant plus fourni sur sa sortie od. Ainsi, conformément à la description qui précède, le compteur numérique CN ainsi que le compteur horaire CH reçoivent 43 201 impulsions chaque fois que l'oscillateur délivre 43 200 impulsions d'horloge, ce qui compense bien la dérive de cet oscillateur qui amène l'horloge à retarder d'une seconde toutes les douze heures (43 200 secondes). Il est bien évident que, compte tenu de la fréquence élevée du quartz pilotant l'oscillateur (de l'ordre de 1 MHz) cette adjonction d'une impulsion toutes les 40 ms environ est totalement imperceptible par l'usager puisque l'affichage de cette horloge a une granularité d'une seconde. Dans la description qui précède, il n'est pas procéder à la création d'une impulsion d'horloge supplémentaire, mais à l'incrémentation d'une unité du deuxième étage du compteur-diviseur CN. On peut cependant envisager d'engendrer deux impulsions d'horloge au lieu d'une, ces deux impulsions étant retransmises sur la sortie oi du circuit de commande d'incrémentation DID, donc sur l'entrée ni du compteur-diviseur CN. Dans ce cas, il n'est pas nécessaire de câbler l'entrée nd du second étage de ce compteur. On décrira maintenant le fonctionnement des circuits de la figure 5 dans le cas où l'horloge avance d'une seconde toutes les douze heures, c'est-à-dire lorsque l'oscillateur fournit une impulsion de trop toutes les 43 200. Il s'agit donc cette fois de retrancher, à la sortie de l'oscillateur OSC une impulsion toutes les 43 200. Dans ce type de fonctionnement l'élément binaire inscrit dans le registre MS est au niveau logique 1. Le fonctionnement des circuits de la figure 5 est identique au fonctionnement précédemment décrit jusqu'à l'apparition de la 43 200e impulsion et la transmission d'un signal de comparaison de niveau logique 1 à l'entrée de remise à zéro cz du compteur CR dont le contenu est remis à zéro, et à l'entrée de commande ip du circuit de commande d'incrémentation DID. Ce circuit dont l'entrée id reçoit un signal permanent de niveau logique 1 car, rappelons le, l'horloge avance d'une seconde toutes les douze heures, ne retransmet pas l'impulsion d'horloge suivante, la 43 201e, au compteur-diviseur CN. Aucun signal n'est donc fourni sur les sorties oi et od du circuit de commande DID.Cette opération se produit immédiatement après la génération de la 43 200e impulsion d'horloge, c'est-à-dire immédiatement après le passage au niveau logique 0 du signal fourni sur l'entrée ip du circuit de commande DID. Il est à remarquer que cette 43 201e impulsion d'horloge est normalement retransmise au compteur d'impulsions CR. A l'apparition de l'impulsion d'horloge suivante issue de l'oscillateur OSC, le fonctionnement des circuits de la figure 5 se poursuit de la façon décrite précédemment: le compteur CR qui vient d'être remis à zéro affiche sur ses sorties sr , en temps réel et sous forme numérique, le nombre total d'impulsions d'horloge reçues depuis la 43 200e.Le comparateur CP qui reçoit respectivement sur ses entrées er et em deux informations différentes transmet au circuit de commande d'incrémentation DID un signal de comparaison de niveau logique 0 qui, comme on l'a vu précédemment, retransmet alors les impulsions d'horloge sur l'entrée oi du compteur-diviseur CN. Ainsi, conformément à la description qui précède, le compteurdiviseur numérique CN ainsi que le compteur horaire CH n'enregistrent que 43 200 impulsions chaque fois que l'oscillateur délivre 43 201 impulsions d'horloge, ce qui compense bien la dérive de cet oscillateur qui amène l'horloge à avancer d'une seconde toutes les douze heures (43 200 secondes). Dans l'exemple précédemment choisi la période de correction est un nombre entier : une impulsion à retrancher ou à ajouter toutes les 43 200 impulsions. Comme le dispositif de l'invention ne permet la suppression ou l'adjonction que d'une seule impulsion, la période de correction doit être un nombre entier. Si ce n'est pas le cas on effectue des corrections en cascade par l'intermédiaire de circuits supplémentaires identiques à celui de la figure 5 mais avec des périodes de correction différentes. Le dispositif de l'invention permet donc bien de corriger une avance ou un retard systématique d'amplitude connue de façon imperceptible et cela par l'adjonction d'un circuit composé d'éléments logiques de base, d'encombrement et d'un prix de revient extrêmement réduits. Il est bien entendu que ce dispositif ne peut compenser que les dérives systématiques des oscillateurs et non pas les dérives erratiques des oscillateurs provoquées par des variations des conditions de l'environnement, température et humidité ambiantes notamment. Dans la description qui précède on a supposé que le circuit de la figure 5 comprenait un comparateur CP pour fournir un signal de commande lorsque le nombre d'impulsions d'horloge issues de l'oscillateur devenait égal à la période de correction mémorisée dans le registre MP. Selon une variante préférée, ce registre et ce comparateur sont supprimés le nombre d'impulsions exprimant la période de correction est inscrit dans le compteur CR qui est alors décrémenté par les impulsions d'horloge fournies par l'oscillateur OSC sur son entrée cc. Lorsque le contenu de ce compteur atteint la valeur zéro, une impulsion de commande est fournie sur les sorties sr de ce compteur CR pour être alors transmise à l'entrée le du circuit de commande d'incrémentation DID. REVENDICATIONS 1. Procédé de correction de la dérive systématique et connue d'une horloge pilotée par un oscillateur caractérisé en ce qu'il consiste à déduire la période de la correction à apporter et, selon le signe de cette dérive, à supprimer ou à ajouter à l'ensemble de la chaîne de comptage des impulsions d'horloge issues de l'oscillateur une impulsion à chaque période de la correction. 2. Dispositif de compensation des effets de dérives dans les horloges pilotées par un oscillateur délivrant des impulsions d'horloge à une chaîne de comptage et d'affichage comprenant au moins un compteurdiviseur numérique et un registre horaire, dispositif mettant en oeuvre le procédé défini en 1, caractérisé par le fait qu'il comprend notamment un circuit de commande d'incrémentation (DID) dont une entrée (ed) est connectée à une sortie (so) de l'oscillateur (OSC) et dont une sortie (oi) est connectée à une entrée (ni) dudit compteur-diviseur (CN) de la chaîne de comptage, un registre (MP) dans lequel est inscrite la période de la correction à apporter, un registre (MS) dans lequel est inscrit le signe de ladite correction et dont une sortie (ss) est connectée à une entrée de commande (id) du circuit de commande d'incrémentation (DID) et un comparateur (CP) dont des entrées (er) reçoivent le nombre d'impulsions délivrées par ledit oscillateur (OSC), dont des autres entrées (em) sont connectées à des sorties (sm) du registre (MP) de mémorisation de la période de correction et dont une sortie (p) est connectée à une entrée (ip) du circuit de commande d'incrémentation (DID). 3. Dispositif de compensation tel que défini en 2, caractérisé par le fait qu'il comprend également un compteur d'impulsions (CR) dont une entrée de comptage (cc) est connectée à ladite sortie (so) de l'oscillateur (OS), dont une entrée (cz) de remise à zéro est connectée à ladite sortie (p) du comparateur (CP) et dont des sorties (sur) sont connectées à des autres entrées (er) de ce comparateur (CP). 4. Dispositif de compensation tel que défini en 3, caractérisé par le fait qu'il comprend un second ensemble de compensation comprenant les mêmes éléments que ceux décrits précédemment dans les revendications 2 et 3, ce second ensemble étant utilisé pour la suppression ou l'adjonction d'une impulsion avec une période de correction différente de la période de correction du premier ensemble de compensation lorsque la période de correction globale, exprimée en nombre d'impulsions d'horloge délivrées par l'oscillateur (OSC) n'est pas un nombre entier.