Domaine technique de l'invention
[0001] La présente invention se rapporte au domaine des codeurs de temps, et plus précisément
des convertisseurs temps-numérique, désignés aussi TDC (Time-Digital-Converters).
Etat de la technique antérieure
[0002] Les convertisseurs temps-numériques, ou TDC, sont utilisés où l'on désire mesurer
et coder avec précision la position temporelle d'un événement, ou d'une pluralité
d'événements, représentés par des impulsions électriques, par rapport à un signal
de référence, définissant l'origine de l'échelle temporelle.
[0003] Les TDC sont utilisés par exemple dans de domaine de la physique corpusculaire, pour
mesurer les temps de passage des particules élémentaires produites lors d'une interaction,
dans les différentes zones actives d'un détecteur de particules segmenté.
[0004] Les TDC trouvent aussi des applications dans beaucoup d'autres domaines, dans lesquels
on requiert une mesure précise des temps d'arrivée d'impulsions électriques. En particulier,
mas non exclusivement les applications des TDC comprennent la microscopie à corrélation
temporelle de photons, de la tomographie optique, l'essai des composantes électroniques,
la spectroscopie par mesure du temps de vol, la réflectométrie dans le domaine du
temps.
[0005] Une technique bien connue de coder des intervalles de temps est de compter électroniquement
le nombre d'impulsions d'un signal d'horloge, et de copier la valeur du compteur lors
de l'événement d'intérêt dans un registre.
[0006] Une limitation de cette technique est que la précision de mesure, est limitée par
la cadence du signal d'horloge. Pour une résolution de 10 picosecondes, par exemple,
un signal d'horloge de 100 gigahertz est requis, en sorte que ce niveau de précision
est difficilement atteignable par cette technique.
[0007] Une autre technique connue prévoit de convertir l'intervalle à mesurer en un intervalle
proportionnellement plus long, par exemple avec un convertisseur à double rampe, dans
lesquels on charge et puis décharge un condensateur avec deux courants constants de
valeurs différentes.
[0008] Le temps requis pour que la tension aux bornes du condensateur retourne à zéro est
proportionnel à l'intervalle de temps recherché, et peut être mesuré avec un compteur
dont la cadence est relativement faible. Un inconvénient de cette technique est le
temps mort relativement important associé à chaque événement mesuré, en sorte que
cette technique est difficilement applicable à des impulsions multiples et rapprochées,
comme par exemple les signaux générés par les détecteurs de particules élémentaires
(événements multi-hit).
[0009] Un autre inconvénient de la technique ci-dessus est lié à la difficulté de réaliser
des sources de courants constantes et indépendantes de la tension de rampe. Toute
différence de comportement entre le deux sources induisant des erreurs de conversion.
[0010] Il est aussi connu de transformer un intervalle de temps en un signal analogique
de tension ou de charge de valeur proportionnel, grâce à un convertisseur temps-amplitude
(TAC), et de convertir ensuite le signal analogique en un signal numérique par un
convertisseur analogique-numérique (ADC). Cette méthode présente toutefois le désavantage
d'une calibration complexe et délicate. Un autre inconvénient de la technique ci-dessus
est lié à la difficulté d'obtenir une rampe de tension exactement linéaire. La non
linéarité de la capacité et/ou la non constance de la source du courant sont des sources
d'erreur de conversion. Cette technique exige d'autre part de prévoir une procédure
de calibration de la rampe, due à l'imprécision initiale inévitable da la capacité
et du courant de rampe.
[0011] Un objet de la présente invention est de présenter un codeur de temps exempt des
inconvénients de l'art antérieur.
[0012] Un autre but de la présente invention est de proposer un codeur de temps qui joint
une résolution et une profondeur élevées, permettant des mesures très précises d'intervalles
temporels étendus.
[0013] Un autre but de la présente invention est de permettre de réaliser un codeur de temps
dont la résolution est programmable et adaptable aux besoins de l'application.
[0014] Un autre but de l'invention est de réaliser un codeur de temps ne nécessitant pas
de procédure de calibration pour maintenir sa précision.
[0015] Ces buts sont atteints par le dispositif qui est l'objet de la revendication principale,
et notamment par un dispositif de mesure de la position temporelle d'un événement,
comprenant: un générateur de signal démarrable, pour générer un signal périodique
synchrone avec le dit événement, et dont la phase est corrélée à la position temporelle
dudit événement, caractérisé en ce que ledit dispositif de mesure comporte un premier
convertisseur analogique-numérique pour mesurer une pluralité d'échantillons d'un
premier signal de référence lors dudit événement, les valeurs desdits échantillons
déterminant ladite phase dudit signal périodique.
[0016] L'invention sera mieux comprise à la lecture des revendications et de la description
détaillée et illustrée par les figures dans lesquelles :
- la figure 1a représente un schéma-bloc d'un codeur de temps selon une variante de
l'invention ;
- la figure 1 b représente un schéma-bloc d'un codeur de temps selon un mode ultérieur
de réalisation de l'invention ;
- la figure 2a et 2b représentent des chronogrammes des différents signaux des circuits
des figures 1a et 1b respectivement ;
- les figures 3 et 4 représentent deux exécutions possibles d'un générateur pour la
base des temps du dispositif selon l'invention;
- les figures 5 et 7 représentent deux exécutions possibles d'un générateur d'impulsions
de l'invention ;
- la figure 6 représente un chronogramme illustrant le fonctionnement du circuit de
la figure 5 ;
- la figure 8 représente un autre mode d'exécution d'un codeur de temps selon l'invention
;
- la figure 9 représente un chronogramme illustrant le fonctionnement du circuit de
la figure 8 ;
Description détaillée de l'invention
[0017] Le fonctionnement général d'un convertisseur 10 selon un aspect de la présente invention
est maintenant décrit avec référence au schéma-bloc de la figure 1 et au chronogramme
de la figure 2.
[0018] Le signal d'entrée 2 est un signal analogique ou numérique comprenant des impulsions
de tension ou de courant correspondant en général à des événements dont la position
temporelle doit être déterminée avec précision. Dans la figure 1 le signal 2 est connecté
à une entrée d'un discriminateur 37, pour en obtenir un signal numérique de déclenchement
6 (TRIG, TR), dont le front correspond à l'événement signalé par l'impulsion 2.
[0019] Lorsque les circonstances le requièrent, le discriminateur pourra être précédé d'un
circuit de conditionnement du signal d'entrée 2, non représenté sur la figure 1. Le
circuit de conditionnement peut pour exemple inclure des élément de protection contre
les surtensions, une ligne de retard, un amplificateur, atténuateurs, adaptateurs
d'impédance et tout autre élément électrique ou électronique nécessaire pour adapter
les caractéristiques du signal 2 au discriminateur 37.
[0020] Une seconde entrée du discriminateur 37 est connectée au convertisseur DAC 35, qui
fournit un niveau de tension constant 5 et représentant un niveau de seuil à dépasser
pour qu'un événement soit détecté par le convertisseur 10. En général le niveau de
seuil 5 sera placé suffisamment bas pour détecter aussi les petites impulsions, mais
toutefois assez éloigné du niveau du bruit pour limiter les faux déclenchements.
[0021] Le DAC 35 permet d'adapter aisément la valeur du seuil 5 aux conditions de mesure.
Dans une variante simplifiée de l'invention, et lorsque cette flexibilité d'utilisation
n'est pas requise, le DAC 35 pourra être remplacé par un générateur de tension de
référence fixe ou variable.
[0022] Dans une autre variante de l'invention, le discriminateur 37 est un discriminateur
à fraction constante (CFD), qui déclenche l'impulsion de trigger lorsque le niveau
d'entrée a atteint une fraction prédéterminée de sa valeur de pic. Cette disposition
est particulièrement utile lorsque l'amplitude des signaux d'entrée peut varier d'un
événement à l'autre.
[0023] Dans le schéma de la figure 1, le discriminateur 37 détecte le flanc ascendant du
signal d'entrée 2. Il existe toutefois des situations dans lesquelles il est nécessaire
de détecter le flanc descendant, par exemple lors qu'on traite des impulsions ayant
une polarité négative. Dans ce cas la porte logique 39, commandée par l'entrée 38
permet d'obtenir un signal logique de trigger 6 ayant la polarité requise.
[0024] Dans un premier mode de réalisation de l'invention, décrit avec référence à la figure
1a, le générateur 81 produit le signal sinusoïdal 13 servant de base des temps pour
le convertisseur 10. La sinusoïde 13 est généré à partir d'un signal d'horloge externe
82, comme indiqué sur la figure 1a, ou par un générateur local de base des temps non
représenté. La fréquence du signal 13 est choisie en fonction de l'application et
de la résolution temporelle désirée, dans des limites imposées par la vitesse des
composantes utilisées. Dans un cas typique on peut préconiser une fréquence de 100
MHz, bien que, évidemment, la présente invention englobe aussi des dispositifs dont
la cadence est plus élevée ou plus faible, selon les cas.
[0025] Le signal numérique de déclenchement 6 est envoyé à un système de mesure grossier
15, décrit par la suite avec référence aux figures 1a et 2a. Le circuit de mesure
grossier 15 comprend le compteur en temps réel 61 et les deux registres 64, 65.
[0026] Le compteur en temps réel 61 compte les périodes du signal sinusoïdal 13, et est
utilisé pour alimenter les deux bus 3 et 4, dont le contenu change de manière synchrone,
étant incrémenté à chaque cycle de la base des temps 13, pendant tout le temps dans
lequel le convertisseur 10 est actif. Le bus 4 est décalé d'une demi-période par rapport
au bus 3 par un circuit logique de temporisation non représenté.
[0027] Le nombre de bits des bus 3 et 4 est choisi en fonction de la distance temporelle
maximale entre deux événements que l'on désire enregistrer. Admettant que la base
des temps tourne à 100 MHz, et que les bus 3 et 4 comprennent 32 bits chacun, la durée
maximale sera de 43 secondes. Si une durée plus limitée suffit, l'on pourra limiter
la profondeur des bus 3 et 4 et du compteur 61, par exemple à 24 bits pour une profondeur
de 167 ms.
[0028] Les registres 64 et 65 échantillonnent le contenu des bus 3 et 4 à l'instant de chaque
événement signalé par le flanc ascendant du signal de trigger 6. Le contenu des registres
est ensuite copié dans une zone de mémoire prévue à cet effet dans l'unité logique
71.
[0029] Dans une variante préférentielle de l'invention, le système de mesure grossier 15,
comprenant le compteur en temps réel 61, les deux bus 3, 4, l'unité de temporisation
et les registres 64, 65 sont réalisés à l'intérieur d'un circuit intégré de type FPGA
(Field Programmable Gate Array). De préférence le circuit FPGA comprendra aussi l'unité
logique 71.
[0030] Le signal de déclenchement 6 est aussi envoyé à un dispositif de mesure fine 17,
comprenant le générateur d'impulsions 40 et l' ADC 52.
[0031] Le générateur d'impulsions 40 déclenche une salve d'impulsions 8 en correspondance
de chaque événement marqué par une impulsion du signal de trigger 6. Le signal 8 sert
d'horloge pour l'ADC 52 qui échantillonne le signal sinusoïdal 13 en correspondance
de chaque impulsion du signal 8. Le signal 8 généré est, par la manière dont le circuit
40 fonctionne, synchrone avec le signal de trigger 6. Le signal 8 contient donc, par
la valeur de sa phase, l'information sur l'instant d'arrivée de l'événement.
[0032] Les valeurs échantillonnés par l'ADC 52 sont stockées dans l'unité logique 71. Le
fait de prendre plusieurs échantillons de la sinusoïde 13 permet de déterminer la
phase de cette dernière au moment du signal de trigger 6, avec une grande résolution,
comme on verra par la suite.
[0033] On admet que le signal sinusoïdal 13 est représenté par la relation :

où la quantité ω
0 représente la fréquence angulaire du signal 13, qui est connue parce qu'elle st liée
à la base des temps interne ou externe, A représente l'amplitude de la sinusoïde 13
et D représente en tension, inconnu a priori.
[0034] A l'instant du trigger TRIG, on déclenche une salve de N mesures du signal S(t) et
l'on enregistre ces mesures dans 71. On a, pour les N échantillons ;

où
Ts représente l'espacement entre deux impulsions d'une salve. Les N relations (2) constituent
donc un système de N équations avec les inconnues:
- t0
- instant d'arrivée du trigger par rapport au passage par zéro de S(t) ;
- A
- amplitude de la sinusoïde 13;
- TS
- période avec laquelle la sinusoïde 13 est échantillonnée (inverse de la fréquence
de la salve d'impulsions 8) ;
- D
- décalage vertical (offset) de la sinusoïde dans l'échelle de l'ADC.
[0035] Toutes les inconnues, et en particulier t
0, (celle qui nous intéresse) peuvent donc être déterminées dès que N ≥ 4.
[0036] Pour N > 4 le système (2) est surdéterminé. On pourra alors utiliser des procédés
d'adaptation ou de minimisation des erreurs pour améliorer la résolution de la mesure
fine. La précision de la mesure fine s'améliore avec un facteur

, par exemple par N = 7 la résolution est améliorée d'un facteur 2 ; pour N = 19 la
résolution est améliorée d'un facteur 4 et ainsi de suite, la résolution temporelle
initiale (N = 4) étant déterminée par la fréquence ω
0 et le nombre de bits de l'ADC 52.
[0037] L'amplitude A est choisie de façon à occuper au maximum l'échelle de l'ADC 52, sans
toutefois la dépasser.
[0038] La période d'échantillonnage T
s est choisie judicieusement en fonction de la période T
0 de la sinusoïde échantillonnée. De préférence on adoptera une cadence sensiblement
plus rapide que celle de la sinusoïde 13, pour accélérer le temps de conversion. Par
exemple on pourra choisir des impulsions séparées de 1 ns, et un ADC 52 avec un taux
de conversion de 1 GS/s.
[0039] De préférence les trois inconnues A, T
s et D sont déterminées à chaque nouveau signal de trigger, et leur valeur est ignoré,
ou utilisé pour des fins de monitorage uniquement. Ce procédé de mesure présente l'avantage
de ne pas nécessiter d'aucune calibration, l'exactitude de la mesure reposant alors
uniquement sur la précision absolue et la stabilité de la fréquence ω
0.
[0040] Les quantités A, T
s et D sont toutefois sensiblement constantes, et pourraient être déterminée une fois
pour toutes ou périodiquement par un procédé de calibration approprié. Il est aussi
possible dans la présente invention d'évaluer séparément les quantités A, T
s et D lors d'une calibration automatique ou sur initiative d'un opérateur, réduisant
ainsi le nombre d'impulsions requises pour atteindre la résolution souhaitée et limitant
le temps mort di convertisseur 10. Dans une variante ultérieure de l'invention, la
calibration de A, T
s et D pourra aussi être effectuée seulement lorsque certaines conditions prédéterminées
sont réunies, par exemple une seule fois pour le premier hit de chaque événement,
mais pas pour les hits successifs.
[0041] Grâce aux multiples échantillons il est possible d'augmenter sensiblement la résolution
temporelle du convertisseur 10. Par exemple en digitalisant 9 échantillons de la sinusoïde
13 à 100 MHz avec un ADC à 6 bits on peut atteindre une résolution de 25 ps ou meilleure.
[0042] Selon les cas et les caractéristiques des composantes employés, il est possible que
toutes les impulsions 8 ne soient pas échantillonnées. Si par exemple l'ADC 52 a une
architecture interne en pipeline, une ou plusieurs impulsions au début et à la fin
de la salve sont nécessaires uniquement pour réveiller l'ADC et pour extraire les
données du pipeline. Dans ce cas on pourra augmenter le nombre de coups dans chaque
salve, afin d'avoir toujours un nombre suffisant d'échantillons.
[0043] Le générateur d'impulsions 40 est maintenant décrit en détail avec référence aux
figures 5 et 6. La figure 5 représente une façon possible de réaliser le générateur
40.
[0044] Le générateur 40 représenté sur la figure 5 comporte un oscillateur LC démarrable
par le transistor 42. A la réception d'un signal de trigger 6, une sinusoïde est présente
au terminal 45 dont la fréquence est déterminée par les valeurs de L et C. Le compteur
4 compte un nombre prédéfini d'impulsions du signal discriminé 46, et remet à zéro
le signal Enable, pour couper la salve d'impulsions à la longueur souhaitée.
[0045] La figure 7 représente un circuit alternatif pour le générateur d'impulsions 40 comportant
des lignes de retard 43. Chaque cellule, composée d'une ligne de retard 43 et d'une
porte XOR 44 produit une impulsion décalée dans le temps. L'additionneur Σ recompose
les impulsions pour donner lieu à la salve d'impulsions 8.
[0046] Lors de l'explication du fonctionnement du dispositif de mesure grossier 15, on a
vu que les deux registres 64 et 65 enregistrent deux mesures indépendantes de la position
temporelle de l'événement par rapport aux deux bases de temps 3 et 4 isochrones et
décalées d'une demi période. Cette duplication permet d'éviter les ambiguïtés dues
à la métastabilité des bus 3 et 4 lors des transitions 90, visibles sur la figure
2.
[0047] A la fin d'une période de mesure, la mémoire interne de l'unité 71 contient les données
brutes relatifs à chaque événement, soit, pour chaque événement :
- la valeur K des registres 64 et 65 du dispositif de mesure grossière 15 ;
- les N codes SN résultant de l'échantillonnage de la sinusoïde 13 en correspondance des N impulsion
de la salve d'impulsions 8 du dispositif de mesure fine 17.
[0048] Une routine de dépouillement et lecture permet de calculer la position temporelle
de chaque événement enregistré. La routine comprend, pour chaque événement ayant généré
un signal de déclenchement 6, les étapes suivantes :
- les données du dispositif de lecture fine 17 doivent être traduites en temps relatif
t0 sur la période des sinusoïdes I. Cette partie de l'algorithme utilise les échantillons
Si enregistrés en salve pour calculer les phases ϕi et le temps relatif t0, par inversion du système (2), comme expliqué ci-dessus.
- La valeur de t0 permet de savoir lequel des latchs 64 et 65 a enregistré le temps réel TR correctement, sans métastabilité induite par les transitions 90. En effet la connaissance
de t0 et de ϕ0 permet toujours de déterminer lequel des deux registres 64 et 65 contient la valeur
exacte du temps réel, et reste plus éloigné des transitions 90. Dans l'exemple de
la figure 2 les transitions du bus 3 se trouvent à la phase -90°, par rapport à la
sinusoïde I, tandis que les transitions du bus Q se situent à la phase +90°. Ainsi
l'algorithme choisira, pour le calcul de TR, le bus 3 lorsque 0 ≤ ϕ0 ≤ 180°, et le bus 4 si 180° ≤ ϕ0 ≤ 360°. Le temps réel est alors donné par TR = 2π K / ω. L'homme du métier comprendra facilement que d'autres dispositions des
déphasages entre le signal S(t) et les bus 3, 4 sont aussi possibles dans la présente
invention.
- Le temps de l'événement est obtenu par la somme du temps réel et tu temps relatif
: Tev = Tv+ t0.
[0049] Selon les cas, la routine de dépouillement et lecture pourra être stockée dans l'unité
logique 71 et exécutée par un processeur local, ou exécutée par un processeur master,
qui a l'accès aux données brutes stockées dans l'unité 71 par un bus de communication
approprié, comme par exemple un bus PCI, VME ou VXI.
[0050] Un second mode de réalisation de la présente invention est maintenant décrit avec
référence à la figure 1b.
[0051] Dans ce mode de réalisation le codeur de temps selon l'invention 20 comprend un générateur
810 qui produit les deux signaux sinusoïdaux en quadrature 13 et 14 servant de base
de temps pour le convertisseur 10. On désigne aussi la première sinusoïde 13 avec
I (In phase), et la seconde sinusoïde 14 avec Q (Quadrature). Les signaux 13 et 14
sont générés à partir d'un signal d'horloge externe 82, comme il est visible sur la
figure 1, ou par un oscillateur local non représenté. La fréquence des signaux 13
et 14 est choisie en fonction de la résolution que l'on souhaite obtenir, comme dans
le premier mode de réalisation déjà décrit.
[0052] Le générateur des signaux I et Q 810 est maintenant décrit avec référence aux figures
3 et 4. Le signal de référence 82, provenant de l'extérieur ou d'un oscillateur local,
est appliqué aux entrées des deux bascules 83, 84 pour générer deux signaux carrés
déphasés de 90° dont la fréquence est la moitié de celle du signal 82. Les deux filtres
passe-bande ou passe-bas identiques 85 et 86 transforment les signaux carrés en signaux
sinusoïdaux.
[0053] Dans une variante du générateur 810, représentée sur la figure 4, les bascules 83,
84 sont remplacées par un générateur d'horloge programmable 89. Le circuit 89 produit
à ses sorties A et B deux signaux carrés ayant chacun une relation de phase déterminée
avec le signal de référence 82 programmable par le bus d'entrée 120. Dans le circuit
de figure 4 la temporisation entre les signaux I et Q peut ainsi être aisément calibrée.
De préférence le générateur programmable 89 est intégré dans le FPGA.
[0054] La fréquence des signaux de référence I et Q peut être changée, pour s'adapter aux
conditions de la mesure, par des moyens appropriés non représentés.
[0055] Le signal numérique de déclenchement 6 est envoyé à un système de mesure grossier
15, identique à celui déjà décrit en relation au premier mode de réalisation de cette
invention et représenté sur les figures 1a et 2a.
[0056] Le signal de déclenchement 6 est aussi envoyé à un dispositif de mesure fine 17,
comprenant le générateur d'impulsions 40 et les deux ADC 51 et 52.
[0057] Le générateur d'impulsions 40 déclenche une salve d'impulsions 8 en correspondance
de chaque événement marqué par une impulsion du signal de trigger 6. Le signal 8 sert
d'horloge pour les deux ADC 51 et 52 qui échantillonnent les deux signaux sinusoïdaux
en quadrature 13 et 14 en correspondance de chaque impulsion du signal 8.
[0058] Revenant maintenant à la figure 2b, les valeurs échantillonnés par les ADC 51 et
52 sont stockées dans l'unité logique 71, et chaque paire de codes I et Q est utilisée
pour déterminer la phase ϕ de la sinusoïde I lors de son échantillonnage, selon la
relation trigonométrique ϕ = arctan(I/Q), en obtenant ainsi une mesure fine du temps
d'arrivée de l'événement.
[0059] Bien que ce mode de réalisation de l'invention prévoie une paire de sinusoïdes en
quadrature comme référentiel de temps, l'invention n'est pas limitée par cet exemple.
Un convertisseur selon l'invention pourrait aussi utiliser deux signaux déphasés d'un
angle différent de 90° ou de formes différentes, par exemple des triangles, à la place
des sinusoïdes 13 et 14.
[0060] Vu que le signal 8 se compose d'une salve d'impulsions régulièrement espacés dans
le temps, chaque événement donne lieu à plusieurs échantillons I
i et Q
i, et à plusieurs valeurs de la phase ϕ
i = ω
0 x t
i, où ω
0 représente la fréquence angulaire des sinusoïdes I et Q, et t
i le temps de départ de la i-ème impulsion de la salve d'impulsions 8. Le temps d'arrivée
relatif t
0 de l'impulsion 6 peut ainsi être déterminé plus précisément, de manière analogue
à celle décrite dans le premier mode de réalisation ci-dessus, ou par des techniques
de moyennage ou interpolation, par exemple une régression linéaire des valeurs ϕ
i.
[0061] Grâce à l'échantillonement de deux sinusoïdes en parallèle, il est possible de stocker
un nombre supérieur de valeurs I
i et Q
i dans un temps plus bref, par rapport au premier mode de réalisation. Cette variante
de l'invention offre ainsi, à résolution équivalente, un temps mort réduit.
[0062] Une variante préférée de réalisation de la présente invention est maintenant décrit
avec référence aux figures 8 et 9.
[0063] Le générateur 181 de la figure 8 produit un signal d'horloge à cadence constante
CK, de manière autonome ou synchrone avec un signal d'horloge externe 82. Le circuit
de base de temps 181 peut comprendre une PLL, et sa fréquence de sortie sera choisie
de manière à être adaptée à l'ADC utilisé et à la vitesse des divers circuits digitaux
du système, implémentés dans un FPGA. Les caractéristiques requises pour la base de
temps sont :
- une grande précision à long terme, en ppm, qui détermine la précision du TDC sur sa
gamme de mesure et dépend de la qualité de la fréquence de référence de la PLL.
- un très faible bruit de phase (mesuré en pico-secondes rms) sur la durée de la mesure.
[0064] Le compteur en temps réel 128 du codeur de temps 100 compte le nombre d'impulsions
CK du début à la fin de la mesure. Sa profondeur, en bits détermine la plage du TDC,
soit la durée maximale entre le premier et le dernier événement enregistré par le
module TDC. La valeur du compteur 161 est disponible sur le bus CTR. Typiquement on
prévoira une profondeur de 32 bits pour une cadence de l'horloge CK de 1 GHz et une
profondeur de 4.3 secondes, bien que, évidemment, d'autres valeurs soient possibles
pour ces paramètres.
[0065] Le codeur de temps 100 comprend aussi au moins deux canaux d'acquisition 99. Plusieurs
canaux peuvent partager un seul circuit de base de temps 181 et un compteur 161 commun
pour constituer un TDC multi-canal pouvant échantillonner plusieurs signaux à la fois,
chaque signal étant mesuré par un des canaux du TDC.
[0066] Le signal numérique de trigger TR est généré à partir du signal d'entrée par le comparateur
37, le DAC 35 et la porte 38, comme déjà expliqué. Le signal TR est appliquée à l'entrée
d'horloge d'une bascule D 107, permettant d'implémenter une fonction d'acceptation
des triggers, et donne lieu, lorsque le signal de contrôle ENA est à l'état haut,
à un signal de trigger accepté TRA.
[0067] Le signal TRA, dont le flanc initial est synchrone avec l'événement à mesurer, déclenche
un générateur de sinus synchronisé (GSS) 140. Le circuit 140 est construit de façon
similaire au circuit 40 représenté sur la figure 5, et comprend un oscillateur LC
contrôlé par un circuit de démarrage / arrêt. Dans l'état arrêt un courant constant
est injecté dans l'inductance L, et le facteur de qualité Q du résonateur est maintenu
faible par la faible résistance des diodes D1, D2 en l'état de conduction.
[0068] Lorsque TRA passe à l'état haut, l'injection de courant et le pilotage du transistor
sont brusquement supprimés, le facteur Q devient alors élevé et le résonateur LC entre
en oscillation sinusoïdale faiblement amortie. L'oscillation sinusoïdale SIN est synchrone
à TRA et s'étend pour plusieurs périodes, en pratique jusqu'à l'instant dans lequel
le signal TRA revient à l'état bas. Ce circuit mémorise donc, par l'état de sa phase,
l'instant d'arrivée de l'événement qui a généré le trigger.
[0069] Dans cet exemple la sortie du GSS 140 (SIN) est de type single-ended, l'invention
s'étend toutefois aussi au cas d'une sortie différentielle.
[0070] A la différence des modes de réalisation présentés précédemment, le signal sinusoïdale
SIN est appliqué à l'entrée de numérisation d'un ADC 151. L'ADC 151 échantillonne
en permanence la sortie du générateur 140, selon la cadence impartie par le signal
CK présent à son entrée d'horloge.
[0071] Le circuit 113, composé par la cascade des bascules 108 et 109, génère le signal
de trigger accepté synchronisé à l'horloge TRAS. Ce circuit comprend au moins deux
bascules D en chaîne et a la fonction de produire un signal dont le transitions sont
synchrones à celles du CK, et dépourvu d'états métastables. Ce signal sera utilisé
pour geler l'état du compteur de temps réel du système.
[0072] Les échantillons mesurés par l'ADC 52 sont transmis à un registre de données d'interpolation
(RDI) 185. Cette mémoire numérique d'échantillons accepte les données provenant de
l'ADC 151 lorsque le signal TRAS est dans l'état haut, et enregistre seulement les
données de sortie de l'ADC intéressantes pour la détermination de l'instant d'arrivée
de l'événement, comme il sera expliqué par la suite.
[0073] La sélection des événements utiles à la détermination du temps d'arrivée est effectuée
grâce au contrôleur de séquence d'acquisition 127. Ce circuit contient un compteur
d'échantillons à accepter pour déterminer le nombre d'échantillons à enregistrer à
chaque événement. Lorsque ce nombre est atteint le signal RESET remet la bascule 107
à zéro. Les signaux TRA et TRAS reviennent donc à l'état bas, le premier immédiatement,
et le second après un nombre de cycles d'horloge qui est déterminé par le nombre de
bascules en série dans le circuit 113.
[0074] Le contrôleur de séquence d'acquisition 127 prévoit deux modes de fonctionnement
sélectionnables. Dans un premier mode (mode multi-hit) se remet lui-même à zéro pour
être prêt à accepter un nouvel événement immédiatement après un événement enregistré.
Dans un second mode de fonctionnement (mode single-hit) il garde le signal de RESET
haut, interdisant l'acquisition de nouveaux événements, jusqu'à la réception d'une
nouvelle commande de réinitialisation.
[0075] Le registre de temps réel 164 mémorise l'état du bus CTR au moment de la transition
positive du TRAS. La valeur enregistrée dans le registre 164 constitue une mesure
grossière de l'instant du trigger TR.
[0076] En se référant maintenant au chronogramme de la figure 9, on peut voire que la zone
temporelle d'acceptation d'un trigger TRA est déterminée à partir de la mesure grossière
et du retard connu introduit par le circuit de synchronisation, à l'intérieur de la
plage d'incertitude Z
acc, correspondant à une période de l'horloge CK. Le chronogramme 9 est valable pour
une synchronisation à 2 bascules ; Le même raisonnement peut toutefois s'étendre à
un circuit de synchronisation différent.
[0077] L'interpolation des données acquises par l'ADC fournit, comme dans le premier mode
de réalisation de l'invention, le temps exact ΔT de la transition de TRA à l'intérieur
de la fenêtre Z
acc.
[0078] Les échantillons stockés dans le registre RDI 185 successifs à chaque impulsion de
trigger sont donc donnés, dans l'approximation d'un amortissement négligeable, Q =
∞.

[0079] On peut reconnaître dans cette expression le système d'équations (2). Le système
(3) est donc déterminé si le nombre N d'échantillons est à égal à 4, et surdéterminé
si N > 4. Dans ce dernier cas il sera possible d'utiliser l'information supplémentaire
peur augmenter la précision de la mesure de ΔT, comme dans les exemples précédents.
[0080] Dans le cas où le résonateur LC a un facteur Q réel (Q ≠ ∞) la sinusoïde générée
par le circuit 140 a la forme :

[0081] Les inconnues à déterminer sont au nombre de 5 (A, τ
0, ω
0, ϕ
0, D) et l'algorithme utilisé sera un fit à 5 paramètres, permettant de déterminer
Δt dès que N, le nombre d'échantillons, est supérieure ou égale à 5.
[0082] La fin de l'intervalle Z
acc coïncide avec le temps réel mémorisé dans le registre RTR 162, l'instant d'arrivée
d'un événement peut donc être obtenu par

où T
s est la période du signal d'horloge CK.
[0083] La position et la taille de l'impulsion TRAS, correspondant à la fenêtre d'acquisition
du registre RDI 162, seront choisies pour mémoriser un nombre suffisant d'échantillons
E
i, en tenant compte aussi du retard introduit par l'ADC 151 (pipeline delay) comme
indiquée sur la figure 9.
[0084] Les éléments 107, 113 et 127 ont, dans cet exemple, essentiellement la fonction de
générer le signal de temporisation TRAS pour sélectionner les événements réellement
utiles pour la détermination de l'instant du déclenchement du trigger TR. Cette sélection
pourrait toutefois être réalisée ou complétée aussi dans une étape successive, par
exemple par un élément de logiciel, résident dans l'unité de contrôle du codeur 100,
ou dans un ordinateur externe.
[0085] Eventuellement l'on pourra aussi sélectionner seulement un sous-ensemble des échantillons
E
i, par exemple pour éviter d'utiliser le premier échantillon de la sinusoïde (E
3 sur la figure 9) si l'on soupçonne que l'oscillateur GSS 140 possède un phénomène
transitoire de démarrage.
[0086] Les circuits proposés peuvent également fonctionner avec d'autres formes d'onde,
différentes de la forme sinusoïdale. Toute forme d'onde répétitive et synchrone à
un trigger pouvant en principe être utilisée. Par exemple l'on pourrait remplacer
le générateurs 51, 52 et 151 par des générateurs de signaux à dents de scie ou à triangle.
[0087] On a vu que le codeur de temps de la présente invention peut être avantageusement
intégré dans un dispositif multi-canal, comprenant plusieurs canaux 99 dans un module
pouvant être interfacé avec un bus de communication. Dans le cas d'un dispositif multi-canal,
les différents canaux d'un module peuvent être séquencés pour atteindre un temps mort
proche de zéro en mode monocanal.
[0088] Le TDC selon l'invention peut être réalisé sous forme d'élément modulaire, pourvu
d'un connecteur permettant de le brancher à un bus de données, comme par exemple un
bus PCI, VXI ou VME. Dans ce cas chaque module constitue une carte présentant un connecteur
sur un bord, de manière à pouvoir être enfiché de manière amovible et connectée électriquement
avec une carte-mère.
1. Dispositif de mesure (10, 20, 100) de la position temporelle d'un événement, comprenant:
un générateur de signal démarrable (40), pour générer un signal périodique (8, SIN)
synchrone avec le dit événement, et dont la phase est corrélée à la position temporelle
dudit événement
caractérisé en ce que ledit dispositif de mesure comporte un premier convertisseur analogique-numérique
(51, 151) pour mesurer une pluralité d'échantillons (S
i, E
i) d'un premier signal de référence lors dudit événement, les valeurs desdits échantillons
déterminant ladite phase dudit signal périodique (8, SIN).
2. Dispositif selon la revendication 1, dans lequel ledit signal périodique (8) détermine
la cadence d'acquisition dudit convertisseur analogique-numérique (51) et ledit premier
signal de référence (13) est un signal périodique continu.
3. Dispositif selon la revendication 2, comprenant un second convertisseur analogique-numérique
(52) pour mesurer l'amplitude d'un second signal de référence (14), ayant une différence
de phase prédéterminée par rapport audit premier signal de référence (13), lors dudit
événement.
4. Dispositif selon la revendication 1, dans lequel ledit signal de référence est ledit
signal périodique synchrone (SIN), et la cadence d'échantillonnage dudit ADC est déterminée
par une horloge stable (CK)
5. Dispositif selon la revendication 2, comprenant un dispositif de mesure grossière
(15) comprenant un premier registre (64) et un second registre (65) pour compter un
nombre de périodes desdits premier (14) et/ou second (13) signal de référence, et
des moyens de calcul pour déterminer ladite mesure grossière à partir du valeur d'un
desdits premier registre (64) et second registre (65), le registre utilisé étant choisi
pour éviter des erreurs induit par des transition (90) dudit nombre de périodes.
6. Dispositif selon la revendication 2, comprenant un dispositif de mesure grossière
(15) comprenant un premier registre (64) et un second registre (65) pour compter un
nombre de périodes desdits premier (14) et/ou second (13) signal de référence, et
des moyens de calcul pour déterminer ladite mesure grossière à partir du valeur d'un
desdits premier registre (64) et second registre (65), le registre utilisé étant celui
dont le signal de référence est le plus éloigné d'une transition (90).
7. Dispositif selon la revendication 1 ou 4, comportant des moyens de calcul pour déduire
la valeur de ladite phase dudit signal périodique et/ou la position temporelle dudit
événement à partir de ladite pluralité d'échantillons mesurés (Si, Ei).
8. Dispositif selon la revendication 1 ou 4, comportant des moyens d'interface pour transférer
la pluralité d'échantillons mesurés.
9. Dispositif selon la revendication 1 ou 4, dans lequel ledit générateur de signal démarrable
(40, 140) comporte au moins un oscillateur LC.
10. Dispositif selon la revendication 2 ou 3, dans lequel ledit ou lesdits signaux de
référence (13, 14) sont des signaux sinusoïdaux en quadrature.
11. Dispositif selon la revendication précédente, dans lequel ledit ou lesdits signaux
de référence sinusoïdaux sont générés par filtrage de signaux rectangulaires.
12. Dispositif selon l'une des revendications précédentes, comportant des moyens de calibration
de la phase dudit ou desdits signaux de référence.
13. Dispositif selon l'une des revendications précédentes, comportant des moyens pour
changer la fréquence dudit ou desdits signaux de référence.
14. Dispositif selon la revendication 4, comprenant un circuit de temporisation (107,
113, 127) pour sélectionner les échantillons utiles à la détermination du temps dudit
événement.
15. Dispositif selon l'une des revendications précédentes, dans lequel ledit événement
est constitué par un changement d'état d'un signal de déclenchement, ledit signal
de déclenchement étant généré par un comparateur comparant un signal d'acquisition
avec une valeur de seuil.
16. Dispositif selon la revendication précédente, dans lequel ledit comparateur est un
discriminateur à fraction constante.
17. Dispositif selon la revendication 15 ou 16, comportant un convertisseur numérique-analogique
pour générer ladite valeur de seuil.
18. Système comportant plusieurs dispositifs selon l'une des revendications 1 à 5 permettant
de mesurer la position temporelle de différents événements, ledit système comportant
en outre une mémoire dans laquelle les résultats de mesure de chaque dispositif sont
écrits, ladite mémoire étant accessible par un système de traitement numérique.
19. Système selon l'une des revendications précédentes, monté sur une carte d'interconnexion
comprenant un connecteur sur un bord, de manière à ce que ladite carte puisse être
enfichée de manière amovible et connectée électriquement avec une carte-mère.