J'aurai un fil qui courra jusqu'à 1000 m avec de nombreux nœuds connectés. Le fil passera le long d'un bus CAN et d'un fil de terre et doit transporter un signal d'horloge à cycle de service à 50% d'onde carrée de 1 kHz vers chaque nœud.
Je l'exécuterai à partir d'un microcontrôleur 3,3 V et le signal sera reçu par un microcontrôleur 3,3 V et un circuit de mesure du temps également.
En bref, l'horloge sera utilisée comme heure globale et le circuit de mesure du temps déterminera la différence de temps entre un événement et le front de l'horloge. Ce circuit est capable de mesurer avec une précision d'environ 0,1 ns. Le scénario idéal est d'avoir une horloge aussi précise que le circuit de mesure du temps.
Tout retard entre le maître et un nœud est mesuré / connu et pris en compte.
Que puis-je faire pour augmenter la fiabilité et la stabilité de ce fil / signal?
Parce que c'est une horloge très lente, j'imagine qu'aucun travail approfondi ne doit être fait et que quelque chose de simple comme un déclencheur de Schmitt au niveau des nœuds ferait très bien l'affaire.
Voici un diagramme:
Pour mesurer les délais vers tous les nœuds, le maître empêche tous les nœuds de faire le travail (Sur CAN, il communique cela). Ensuite, il demande au premier nœud de refléter le signal qu'il recevra sur l'autre ligne. Tous les autres nœuds laisseront les fils flottants maintenant.
Le maître règle son fil droit haut, déclenchant le démarrage du circuit de chronométrage. Après un certain délai, le signal atteindra le nœud qui le laissera ensuite passer sur la deuxième ligne. Après un autre délai, le maître le recevra en retour, ce qui arrêtera le circuit horaire.
Le maître peut maintenant lire la valeur du circuit horaire et déterminer le retard. Lorsque tous les délais de noeud sont connus, le maître démarre l'opération. Tous les nœuds laisseront le fil de retour flottant et prendront le fil d'horloge (à droite du maître) comme entrée.
Lorsqu'un événement se produit à l'un des nœuds, cela déclenchera le circuit temporel. La prochaine impulsion de l'horloge arrêtera le circuit horaire. Nous connaissons maintenant le temps entre le début de l'événement et la prochaine impulsion d'horloge. Le nœud renvoie à quel compte d'horloge l'événement a été détecté et combien de temps le circuit de temps a indiqué.Avec les retards mesurés, le maître pourra obtenir l'heure globale de l'événement.
Oh, à propos de la précision acceptable: la cible est de 1 ns, serait satisfaite avec 3 ns et serait correcte avec 10 ns.Selon la conception finale du système, il pourrait y avoir une possibilité de déclencher l'événement plusieurs fois et de faire la moyenne des résultats, ce qui améliorerait également la précision.
Le timing réel n'est pas fait par moi, mais par TI. TDC7200
L'application est TDOA.Les heures de l'événement sont introduites dans un algorithme pour déterminer l'origine de l'événement.L'événement est la détection d'un signal radio (ce qui sera aussi un défi d'être aussi précis que je le souhaite).