Ich werde einen Draht haben, der bis zu 1000 m lang ist und an den viele Knoten angeschlossen sind. Die Leitung verläuft entlang eines CAN-Busses und einer Erdungsleitung und muss ein 1-kHz-Rechteckwellen-Taktsignal mit 50% Einschaltdauer zu jedem Knoten transportieren.
Ich werde dies von einem 3,3-V-Mikrocontroller ausführen und das Signal wird auch von einem 3,3-V-Mikrocontroller und einer Zeitmessschaltung empfangen.
Kurz gesagt, die Uhr wird als globale Zeit verwendet und die Zeitmessschaltung bestimmt die Zeitdifferenz zwischen einem Ereignis und der Taktflanke. Diese Schaltung kann mit einer Genauigkeit von etwa 0,1 ns messen. Das ideale Szenario besteht darin, dass die Uhr so genau ist wie die Zeitmessschaltung.
Jede Verzögerung vom Master zu einem Knoten wird gemessen / bekannt und berücksichtigt.
Was kann ich tun, um die Zuverlässigkeit und Stabilität dieses Kabels / Signals zu erhöhen?
Da es sich um eine sehr langsame Uhr handelt, stelle ich mir vor, dass keine umfangreichen Arbeiten durchgeführt werden müssen und dass etwas Einfaches wie ein Schmitt-Trigger an den Knoten in Ordnung wäre.
Hier ist ein Diagramm:
Um die Verzögerungen für alle Knoten zu messen, verhindert der Master, dass alle Knoten arbeiten (Über CAN kommuniziert es das). Dann fordert es den ersten Knoten auf, das Signal zu reflektieren, das er über die andere Leitung empfangen wird. Alle anderen Knoten lassen die Drähte jetzt schweben.
Der Master setzt sein rechtes Kabel hoch und löst den Start der Zeitschaltung aus. Nach einiger Verzögerung gelangt das Signal zum Knoten, der es dann auf der zweiten Leitung durchlässt. Nach einer weiteren Verzögerung erhält der Master sie zurück, wodurch die Zeitschaltung gestoppt wird.
Jetzt kann der Master den Zeitschaltkreiswert lesen und die Verzögerung bestimmen. Wenn alle Knotenverzögerungen bekannt sind, startet der Master die Operation. Alle Knoten lassen den Rückleitungsdraht schwebend und nehmen den Taktdraht (Master rechts) als Eingang.
Wenn ein Ereignis an einem der Knoten auftritt, wird die Zeitschaltung ausgelöst. Der nächste Takt der Uhr stoppt den Zeitkreis. Wir kennen jetzt die Zeit zwischen dem Beginn des Ereignisses und dem nächsten Takt. Der Knoten sendet zurück, bei welcher Taktzahl das Ereignis erkannt wurde und wie viel Zeit die Zeitschaltung anzeigt.Zusammen mit den gemessenen Verzögerungen kann der Master die globale Zeit des Ereignisses abrufen.
Oh, welche Genauigkeit ist akzeptabel: Das Ziel ist 1 ns, würde sich über 3 ns freuen und wäre mit 10 ns in Ordnung.Abhängig vom endgültigen Design des Systems besteht möglicherweise die Möglichkeit, dass das Ereignis mehrmals ausgelöst wird und die Ergebnisse gemittelt werden, was ebenfalls die Genauigkeit verbessern würde.
Das eigentliche Timing wird nicht von mir, sondern von TI festgelegt. TDC7200
Die Anwendung ist TDOA.Die Ereigniszeiten werden in einen Algorithmus eingespeist, um zu bestimmen, woher das Ereignis stammt.Das Ereignis ist die Erkennung eines Funksignals (was ebenfalls eine Herausforderung sein wird, um so genau zu werden, wie ich möchte).