Brevet FR2831968A1 — publié le 20030509

DISPOSITIF DE CALIBRAGE D'UN SIGNAL D'HORLOGE La présente invention concerne un dispositif de calibrage pour améliorer la précision d'un signal d'horloge. L'invention vise les circuits électroniques raccordés à un réseau d'interconnexion sur lequel ils émettent un signal d'émission et par lequel ils reçoivent un signal de réception. De tels circuits, notamment les microcontrôleurs, sont cadencés par un signal d'horloge. Un microcontrôleur est un circuit intégré qui comprend un oscillateur pour produire le signal d'horloge, un processeur, une mémoire de programme, une mémoire de données, et des périphériques au nombre desquels figure notamment un générateur d'interruptions du processeur. Couramment, on utilise un oscillateur à quartz du fait de la très grande précision de la fréquence du signal d'horloge qu'il produit. Cependant, un tel oscillateur est coûteux et présente une consommation d'énergie relativement élevée, si bien qu'il est inadapté dans certaines applications, notamment dans le domaine automobile. Pour ces applications, on préfère donc un composant bon marché et peu gourmand en énergie, comme un oscillateur qui comprend un circuit résonant formé d'une résistance et d'un condensateur, la fréquence d'accord de ce circuit résonant déterminant la fréquence du signal d'horloge. Ce type d'oscillateur bien connu de l'homme du métier est traditionnellement dénommé oscillateur RC, en reprenant les initiales des composants du circuit résonant. On connaît aussi, entre autres, les oscillateurs en anneau qui peuvent également convenir à ces applications. La fréquence du signal d'horloge délivré par ces oscillateurs est affectée d'une large imprécision essentiellement due à la dispersion des caractéristiques lors de la fabrication, bien que cette fréquence ne dérive pas sensiblement dans le temps. Si cette imprécision peut être tolérée par le processeur, ce n'est pas le cas pour certaines applications. La plupart des applications de contrôle dans l'automobile, telles que essuie-glace ou module de portière, sont synchronisées sur une base de temps. Cette base de temps est délivrée par un module de comptage divisant le signal d'horloge local. Ce module de comptage génère périodiquement des interruptions. A chaque interruption une machine d'état évalue la valeur de ses entrées et calcule l'état suivant de ses sorties. L'avantage d'une telle machine d'état est son déterminisme qui pour pouvoir être garanti requiert une base de temps précise. Un objectif de la présente invention est ainsi de permettre l'emploi d'un oscillateur bas coût sans détériorer la précision de la base de temps de l'application. A cet effet, la présente invention prévoit un dispositif de calibrage recevant d'un oscillateur un signal d'horloge local et lui appliquant une valeur de correction pour produire un signal d'horloge corrigé, comprenant des moyens pour déterminer la valeur de correction à partir d'un signal de référence externe. Selon un mode de réalisation, le dispositif comprend des moyens de mesure pour évaluer la fréquence du signal de référence en prenant pour base temporelle le signal d'horloge corrigé. Selon un mode de réalisation, le signal de référence est issu d'un signal de réception provenant d'un réseau d'interconnexion auquel est connecté ce circuit. Selon un mode de réalisation, le signal de référence est formé d'une suite de bits prenant alternativement la valeur 0 et 1. Selon un mode de réalisation, les moyens de mesure évaluent la durée d'un nombre pair prédéterminé de bits du signal de référence. Selon un mode de réalisation, une paire de bits consécutifs est délimitée par deux fronts consécutifs de même nature du signal de référence. Selon un mode de réalisation, le dispositif comprend un module de division de fréquence recevant le signal d'horloge local pour produire le signal d'horloge corrigé. Selon un mode de réalisation, le module de division de fréquence comprenant un diviseur programmable, le dispositif comprend un registre de calibrage pour mémoriser la valeur de correction. Selon un mode de réalisation, le dispositif comprend un organe de commande pour établir la valeur de correction en réponse à l'évaluation de fréquence effectuée par les moyens de mesure. Selon un mode de réalisation, l'oscillateur est un oscillateur RC. Selon un mode de réalisation, l'oscillateur est un oscillateur en anneau. Selon un mode de réalisation, le dispositif comprend une unité de base de temps pour produire un signal de base de temps à partir d'un signal de rythme dérivé du signal d'horloge local. Selon un mode de réalisation, l'unité de base de temps comprend un module de comptage affecté d'un registre de chargement, la valeur de chargement enregistrée dans ce registre de chargement détermine le rapport entre la fréquence du signal de base de temps et celle du signal de rythme. Selon un mode de réalisation, la valeur de chargement est une fonction prédéterminée de la valeur de correction. La présente invention concerne également un circuit intégré comprenant un dispositif de calibrage selon l'invention. La présente invention concerne également un microcontrôleur, comprenant un dispositif de calibrage selon l'invention. La présente invention concerne également un procédé pour le calibrage d'un circuit électronique recevant d'un oscillateur un signal d'horloge local et lui appliquant une valeur de correction pour produire un signal d'horloge corrigé, comprenant une étape pour déterminer la valeur de correction à partir d'un signal de référence externe. Selon un mode de réalisation, le procédé comprend une étape de mesure pour évaluer la fréquence du signal de référence en prenant pour base temporelle le signal d'horloge corrigé. Selon un mode de réalisation, le signal de référence est issu d'un signal de réception provenant d'un réseau d'interconnexion auquel est connecté ce circuit. Selon un mode de réalisation, le signal de référence est formé d'une suite de bits prenant alternativement la valeur 0 et 1. Selon un mode de réalisation, l'étape de mesure évalue la durée d'un nombre pair prédéterminé de bits du signal de référence. Selon un mode de réalisation, une paire de bits consécutifs est délimitée par deux fronts consécutifs de même nature du signal de référence. Selon un mode de réalisation, le procédé comprend une étape pour diviser la fréquence du signal d'horloge local afin de produire le signal d'horloge corrigé. Selon un mode de réalisation, l'étape de division de fréquence fait appel à un diviseur programmable, et le procédé comprend une étape subséquente de calibrage pour mémoriser la valeur de correction. Selon un mode de réalisation, le procédé comprend une étape de commande pour établir la valeur de correction en réponse à l'évaluation de fréquence effectuée lors de l'étape de mesure. Selon un mode de réalisation, le procédé comprend une étape d'adaptation de rythme pour produire un signal de base de temps à partir d'un signal de rythme dérivé du signal d'horloge local. Selon un mode de réalisation, l'étape d'adaptation de rythme comprend l'enregistrement d'une valeur de chargement dans un registre de chargement, qui détermine le rapport entre la fréquence du signal de base de temps et celle du signal de rythme. Selon un mode de réalisation, la valeur de chargement est une fonction prédéterminée de la valeur de correction. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante d'un exemple de réalisation d'un dispositif de calibrage, faite à titre non limitatif en relation avec les figures jointes qui représentent : - la figure 1, un schéma de principe d'un circuit dans lequel figure un dispositif de calibrage, - la figure 2, un signal de réception particulier, à savoir une trame asynchrone selon le protocole LIN, - la figure 3, un signal de référence particulier, à savoir, un caractère de synchronisation, - la figure 4, un organe de détection d'un caractère d'interruption, - la figure 5, un schéma d'un dispositif de calibrage, et - la figure 6, un microcontrôleur auquel peut être appliquée l'invention. Les éléments présents dans plusieurs figures sont affectés d'une seule et même référence. En relation avec la figure 1, un oscillateur OSC produit un signal d'horloge local CKL à destination du processeur CPU d'un microcontrôleur comprenant une mémoire de programme PROGMEM. L'invention propose un dispositif de calibrage CAL qui reçoit ce signal d'horloge local CKL pour délivrer un signal d'horloge corrigé à certains périphériques, notamment au générateur d'interruptions ITDEC du microcontrôleur. La correction du signal local est effectuée au moyen d'un signal de référence qui se caractérise par une fréquence d'une grande précision, en tout cas suffisante pour l'application envisagée. Naturellement, ce signal de référence est produit à l'extérieur du circuit. Le dispositif de calibrage est activé périodiquement par un organe de commande externe tel que le processeur CPU au moyen d'un bit de validation E d'un registre de contrôle CONT accessible par le bus du microcontrôleur. A titre d'exemple, le signal de référence est dérivé du signal de réception SR que le microcontrôleur reçoit du réseau d'interconnexion (non représenté). En référence à la figure 2, pour fixer les idées, le signal de réception SR prend la forme d'une trame asynchrone selon le protocole LIN ("Local Interconnect Network"). Cette trame comprend tout d'abord un caractère d'interruption BRK comprenant un nombre déterminé de bits à 0 et un dernier bit égal à 1 ("extra bit"), puis un caractère de synchronisation SYNC, et ensuite des caractères de données CH1, CH2... CHN. Le caractère CH1 est utilisé comme champ d'identification pour permettre des liaisons multipoint au moyen du réseau d'interconnexion entre un dispositif maître et des dispositifs esclaves parmi lesquels figure le circuit de l'invention. Le caractère SYNC, représenté plus en détail en figure 3, est égal à [55] h en notation hexadécimale, soit le caractère "10101010"en binaire (bits BO à B7). Ce caractère de synchronisation étant précédé d'un bit de start STB à 0 et suivi d'un bit de stop à 1, il présente en tout 5 fronts descendants. C'est ce caractère qui est utilisé comme signal de référence. La durée s'écoulant entre les 5 fronts descendants étant égale à 8 fois la période T du signal de référence, la mesure de cette durée permet d'en déduire la période T de référence et d'y accorder celle du signal d'horloge corrigé CKC. L'identification du caractère de synchronisation SYNC suppose la détection préalable du caractère d'interruption BRK. A titre d'exemple, en référence à la figure 4, le récepteur comprend un organe de détection du caractère d'interruption BRK qui prend la forme d'une machine d'état. La réception d'un bit BS à 0 déclenche le passage de l'état d'attente IDLE à l'état bit de départ ES. La réception du bit suivant BO selon qu'il vaut 0, respectivement l, provoque le passage à l'état "premier bit"EO, respectivement à l'état d'attente IDLE. De l'état premier bit EO, la réception du deuxième bit B1 suivant le bit de départ BS, selon qu'il vaut 0, respectivement l, initie le passage à l'état"deuxième bit"El, respectivement à l'état d'attente IDLE. En généralisant, la réception du (i + l) ième bit suivant le bit de départ BS dans l'état ième bit Ei, selon qu'il vaut 0, respectivement 1, conduit au passage à l'état" (i + l) ième bit", respectivement à l'état d'attente. Dès que l'indice i vaut 9, la réception du onzième bit B10 suivant le bit de départ BS, selon qu'il vaut 0, respectivement l, détermine le passage à l'état"onzième bit"E10, respectivement à l'état d'attente. L'état "onzième bit"E10 produit une instruction d'interruption RM2. Le caractère d'interruption BRK peut être détecté, comme décrit ci-dessus, au moyen d'une machine d'état. Il peut naturellement être détecté de toute autre manière, par exemple au moyen d'un registre à décalage de 11 bits dont toutes les positions font l'objet d'une opération logique ET. Dès lors que le caractère d'interruption BRK a été détecté, le signal de référence REF est disponible. En référence à la figure 5, le dispositif de calibrage CAL accorde la fréquence du signal d'horloge corrigé CKC sur celle du signal de référence REF au moyen d'un module de division qui comprend deux diviseurs de fréquence. Le signal d'horloge corrigé CKC est délivré par un premier diviseur DIV1, généralement un diviseur par 16, recevant en entrée un signal d'échantillonnage CKS. Le signal d'échantillonnage CKS est lui-même délivré par un deuxième diviseur DIV2 programmable recevant en entrée le signal d'horloge local CKL provenant de l'oscillateur OSC. Le rapport entre la fréquence du signal d'horloge CKL et celle du signal d'échantillonnage CKS est déterminé par une valeur de correction DVAL chargée dans un registre de calibrage DREG du deuxième diviseur DIV2. Le dispositif de calibrage CAL comprend de plus un registre de réception REG1, un registre d'émission REG2, un premier CT1 et un deuxième CT2 compteurs, un premier CP1 et un deuxième CP2 comparateurs logiques, une première GAT1 et une deuxième GAT2 portes assurant la fonction logique ET , et finalement une troisième porte GAT3 assurant la fonction logique NON OU . Le registre de réception REG1 est un registre à décalage de 10 bits dont l'entrée SHIFT est cadencée par le signal d'échantillonnage CKS. Il reçoit le signal de référence REF sur une entrée série SIN. Il délivre sur une sortie parallèle POUT des données échantillonnées SRDT (bits bO à b9). Les données échantillonnées SRDT sont appliquées sur une entrée du premier comparateur CP1 dont l'autre entrée reçoit un nombre de référence"1110000000", formant un critère de détection de front descendant. Ce premier comparateur CP1 délivre un signal de présence FEDET qui est appliqué à l'entrée du premier compteur CTl. Le premier compteur CT1 délivre sur 3 bits un signal FCOUNT de comptage de fronts descendants qui est appliqué sur une entrée du deuxième comparateur CP2, dont l'autre entrée reçoit sous forme binaire un nombre de référence égal à 5 et dont la sortie est raccordée à une première entrée de la première porte logique GAT1. Le deuxième compteur CT2 dénombre les impulsions du signal d'échantillonnage CKS. Son entrée de remise à zéro est reliée à la sortie de la deuxième porte logique GAT2. Cette deuxième porte logique GAT2 reçoit sur une première entrée le signal de présence FEDET et sur une deuxième entrée le signal de sortie de la troisième porte logique GAT3 qui reçoit en entrées les 3 bits du signal de comptage de fronts descendants FCOUNT. Ce signal de sortie de la troisième porte logique GAT3 vaut donc 1 si et seulement si le signal de comptage de fronts descendants FCOUNT vaut 0. La première porte logique GATl a sa deuxième entrée reliée à la sortie du deuxième compteur CT2 et sa sortie est reliée au registre d'émission REG2 qui stocke le nombre D d'impulsions du signal d'échantillonnage CKS survenues entre cinq fronts descendants consécutifs du signal de référence REF. Une valeur de correction DVAL est chargée automatiquement à la fin de la mesure dans le registre DREG afin de permettre de recevoir correctement les données suivantes. 1 1 A partir de cette valeur mise à jour de DREG, une unité de calcul externe, par exemple le processeur CPU du microcontrôleur, détermine la valeur à charger dans le compteur afin de générer la base de temps avec précision. En désignant par : - TL la période du signal d'horloge local CKL, - TC la période du signal d'horloge corrigé CKC, - TR la période du signal de référence REF, - DPRE la valeur qui était précédemment mémorisée dans le registre de calibrage DREG, - DVAL la nouvelle valeur qu'il convient de charger dans le registre de calibrage DREG, PER la durée de comptage correspondant à l'intervalle de temps séparant cinq fronts descendants du signal de référence REF, alors, on peut écrire : TL = TC/ (16*DPRE) = TR/ (16*DVAL) (1) DVAL = DPRE* (TR/TC) PER = 8*TR = (D/16) *TC (2) TR/TC = D/128 En rapprochant les équations (1) et (2), on obtient la valeur à charger dans le registre de calibrage DREG : DVAL = DPRE* (D/128) Le dispositif de calibrage CAL comprend également une unité de base de temps qui comprend essentiellement un registre de chargement RELOAD et un module de comptage TIMER. Ce module de comptage délivre un signal de base de temps TB dont la fréquence est égale à celle d'un signal de rythme CKR divisée par la valeur enregistrée dans le registre de chargement. Naturellement, la fréquence du signal de rythme CKR présente une relation prédéterminée avec celle du signal d'horloge local CKL. Par exemple, ces fréquences sont égales ou bien elles sont dans un rapport connu. La nouvelle valeur DVAL du registre de calibrage DREG est exploitée par une unité de calcul externe pour calculer la nouvelle valeur à charger dans le registre de chargement RELOAD. En désignant par : - CVAL la nouvelle valeur à charger dans le registre de chargement RELOAD, DVAL la nouvelle valeur enregistrée dans le registre de calibrage DREG, - DNOM la valeur du registre de calibrage DREG pour une valeur nominale du signal d'horloge local CKL, - CNOM la valeur du registre de chargement RELOAD pour la valeur DNOM du registre de calibrage DREG afin d'obtenir le signal de base de temps nominal, alors, on peut écrire : CVAL = (CNOM*DVAL)/DNOM La figure 6 illustre un exemple de mise en oeuvre de la présente invention et représente schématiquement un microcontrôleur MC comprenant sur une même puce de silicium le processeur CPU, la mémoire programme PROGMEM, et le dispositif de calibrage CAL. On peut envisager que l'oscillateur OSC soit également implanté sur cette puce. La présente invention vise également un procédé de calibrage compatible avec le dispositif décrit plus haut. La mise en oeuvre de ce procédé étant à la portée de l'homme du métier, elle ne sera pas plus détaillée. L'exemple de réalisation de l'invention présenté ci-dessus a été choisi pour son caractère concret. Il ne serait cependant pas possible de répertorier de manière exhaustive tous les modes de réalisation que recouvre cette invention. En particulier, toute étape ou tout moyen décrit peut-être remplacé par une étape ou un moyen équivalent sans sortir du cadre de la présente invention. REVENDICATIONS 1. Dispositif de calibrage (CAL) recevant d'un oscillateur (OSC) un signal d'horloge local (CKL) et lui appliquant une valeur de correction (DVAL) pour produire un signal d'horloge corrigé (CKC), caractérisé en ce qu'il comprend des moyens pour déterminer la valeur de correction (DVAL) à partir d'un signal de référence externe (REF). 2. Dispositif selon la revendication 1, comprenant des moyens de mesure (CT2) pour évaluer la fréquence (D) du signal de référence (REF) en prenant pour base temporelle le signal d'horloge corrigé (CKC). 3. Dispositif selon la revendication 2, dans lequel le signal de référence (REF) est issu d'un signal de réception (SR) provenant d'un réseau d'interconnexion auquel est connecté ce circuit. 4. Dispositif selon l'une quelconque des revendications 2 ou 3, dans lequel le signal de référence (REF) est formé d'une suite de bits prenant alternativement la valeur 0 et 1. 5. Dispositif selon l'une quelconque des revendications 2 à 4, dans lequel les moyens de mesure (CT2) évaluent la durée (D) d'un nombre pair prédéterminé de bits du signal de référence (REF). 6. Dispositif selon la revendication 5, dans lequel une paire de bits consécutifs est délimitée par deux fronts consécutifs (FEDET) de même nature du signal de référence (REF). 7. Dispositif selon l'une quelconque des 2 à 6, comprenant un module de division de fréquence recevant le signal d'horloge local (CKL) pour produire le signal d'horloge corrigé (CKC). 8. Dispositif selon la revendication 7 dans lequel le module de division de fréquence comprend un diviseur programmable (DIV2), le dispositif comprenant un registre de calibrage (DREG) pour mémoriser la valeur de correction (DVAL). 9. Dispositif selon la revendication 8, comprenant un organe de commande (CPU) pour établir la valeur de correction (DVAL) en réponse à l'évaluation de fréquence (D) effectuée par les moyens de mesure (CT2). 10. Dispositif selon l'une quelconque des revendications précédentes, dans lequel l'oscillateur (OSC) est un oscillateur RC. 11. Dispositif selon l'une quelconque des revendications 1 à 10, dans lequel l'oscillateur (OSC) est un oscillateur en anneau. 12. Dispositif selon l'une quelconque des revendications précédentes, comprenant une unité de base de temps (RELOAD, TIMER) pour produire un signal de base de temps (TB) à partir d'un signal de rythme (CKR) dérivé du signal d'horloge local (CKL). 13. Dispositif selon la revendication 12 dans lequel, l'unité de base de temps comprend un module de comptage (TIMER) affecté d'un registre de chargement (RELOAD), la valeur de chargement (CNOM) enregistrée dans ce registre de chargement détermine le rapport entre la fréquence du signal de base de temps (TB) et celle du signal de rythme (CKR). 14. Dispositif selon la revendication 13, dans lequel la valeur de chargement (CNOM) est une fonction prédéterminée de la valeur de correction (DVAL). 15. Circuit intégré, comprenant un dispositif selon l'une quelconque des revendications précédentes. 16. Microcontrôleur, comprenant un dispositif selon l'une quelconque des revendications 1 à 14. 17. Procédé pour le calibrage (CAL) d'un circuit électronique recevant d'un oscillateur (OSC) un signal d'horloge local (CKL) et lui appliquant une valeur de correction (DVAL) pour produire un signal d'horloge corrigé (CKC), caractérisé en ce qu'il comprend une étape pour déterminer la valeur de correction (DVAL) à partir d'un signal de référence externe (REF). 18. Procédé selon la revendication 17, comprenant une étape de mesure pour évaluer la fréquence (D) du signal de référence (REF) en prenant pour base temporelle le signal d'horloge corrigé (CKC). 19. Procédé selon la revendication 18, dans lequel le signal de référence (REF) est issu d'un signal de réception (SR) provenant d'un réseau d'interconnexion auquel est connecté ce circuit. 20. Procédé selon l'une quelconque des revendications 18 ou 19, dans lequel le signal de référence (REF) est formé d'une suite de bits prenant alternativement la valeur 0 et 1. 21. Procédé selon l'une quelconque des revendications 18 à 20, dans lequel l'étape de mesure évalue la durée (D) d'un nombre pair prédéterminé de bits du signal de référence (REF). 22. Procédé selon la revendication 21, dans lequel une paire de bits consécutifs est délimitée par deux fronts (FEDET) consécutifs de même nature du signal de référence (REF). 23. Procédé selon l'une quelconque des revendications 18 à 22, comprenant une étape pour diviser la fréquence du signal d'horloge local (CKL) afin de produire le signal d'horloge corrigé (CKC). 24. Procédé selon la revendication 23, dans lequel cette étape de division de fréquence fait appel à un diviseur programmable (DIV2), comprenant une étape subséquente de calibrage pour mémoriser (DREG) la valeur de correction (DVAL). 25. Procédé selon la revendication 24, comprenant une étape de commande (CPU) pour établir la valeur de correction (DVAL) en réponse à l'évaluation de fréquence (D) effectuée lors de l'étape de mesure. 26. Procédé selon l'une quelconque des revendications 17 à 25, comprenant une étape d'adaptation de rythme (RELOAD, TIMER) pour produire un signal de base de temps (TB) à partir d'un signal de rythme (CKR) dérivé du signal d'horloge local (CKL). 27. Procédé selon la revendication 26, dans lequel l'étape d'adaptation de rythme comprend l'enregistrement d'une valeur de chargement (CNOM) dans un registre de chargement (RELOAD), qui détermine le rapport entre la fréquence du signal de base de temps (TB) et celle du signal de rythme (CKR). 28. Procédé selon la revendication 27, dans lequel la valeur de chargement (CNOM) est une fonction prédéterminée de la valeur de correction (DVAL).