I will have a wire that will run up to 1000 m with many nodes connected to it. The wire will run along a CAN bus and a ground wire and must transport a 1 kHz square wave 50% duty-cycle clock signal to each node.
I will run this from a 3.3 V microcontroller and the signal will be received by a 3.3 V microcontroller and a time measuring circuit as well.
In short, the clock will be used as a global time and the time measuring circuit will determine the time difference between an event and the clock edge. This circuit is able to measure with around 0.1ns precision. The ideal scenario is to have the clock be as precise as the time measuring circuit.
Any delay from the master to a node is measured/known and is accounted for.
What can I do to increase the reliability and stability of this wire/signal?
Because it's a very slow clock, I imagine that no extensive work has to be done and that something simple like a Schmitt trigger at the nodes would do just fine.
Here's a diagram:
To measure the delays to all nodes, the master stops all nodes from doing work (Over CAN it communicates that). Then it asks the first node to reflect the signal it will receive over the other line. All other nodes will leave the wires floating now.
The master sets its right wire high, triggering the timing circuit to start. After some delay, the signal will get to the node which will then let it through on the second line. After another delay, the master will receive it back which will stop the time circuit.
Now the master can read the time circuit value and determine the delay. When all node delays are known, the master will start the operation. All nodes will leave the return wire floating and will take the clock (master's right) wire as input.
When an event happens at one of the nodes, that will trigger the time circuit. The next pulse of the clock will stop the time circuit. We now know the time between the start of the event and the the next clock pulse. The node sends back at which clock count the event was detected and how much time the time circuit indicated. Together with the measured delays, the master will be able to get the global time of the event.
Oh, about what accuracy is acceptable: the target is 1 ns, would be happy with 3 ns and would be ok with 10 ns. Depending on the final design of the system, there might be a possibility for getting the event triggered multiple times and having the results be averaged, which would also improve the accuracy.
The actual timing isn't made by me, but by TI. TDC7200
The application is TDOA. The event times are fed into an algorithm to determine where the event originated from. The event is the detection of a radio signal (which will be a challenge as well to get as accurate as I want).