[LinuxPPS] Ultimate time server
Javier Herrero
jherrero at hvsistemas.es
Tue Dec 28 21:24:11 CET 2010
Hello,
El 28/12/2010 20:43, Cirilo Bernardo escribió:
> On Wed, Dec 29, 2010 at 12:24 AM, Paul Lavender<paul at lavender-fam.net> wrote:
>> I have a (very) ongoing project to make a 'state of the art' time
>> server. Currently my pps (from gps) server does everything - firewall,
>> file server, email server etc. etc. etc.
>>
>> I intend to use one one of the used Rubidium clocks from ebay, to
>> synchronise a dedicated time server, possibly a low powered ITX board.
>
> I think a good small rubidium clock costs ~$200 at the moment new. I
> would want more information on a second hand clock before I bought
> one; like vacuum tubes, these components degrade substantially with
> normal use. Once warmed up the Rb clock gives you a very good PPS
> reference; that alone plus another (possibly very crude) reference
> clock like GPS (backed up by NTP over the internet or a wireless modem
> in case you lose GPS) can already give you a pretty good timeserver.
> Personally there is only one experiment I had been involved in which I
> needed anything better.
A (properly divided) Rb clock will give you a pps pulse with very low
jitter, but not synchronized to UTC, and you must synchronize it in some
way, same for Cs and for H-Maser. A GPS will give you a pps pulse with
some jitter, that can be corrected to +/-2ns in some cases like the
Motorola M12T and the similator iLotus units. This pulse will be
synchronized to UTC, with an error - you must also adjust the delay from
antenna to receiver (several tens or hundred or ns), a thing not so easy
to calibrate.
I think that a best solution is to use a good clock oscillator for the
processor (OCXO, Rb, Cs...) and GPS for disciplining it. This hits your
question about from which clock oscillator derives the time :)
I've been playing a bit with a Blackfin board, with uClinux, and using
an external FPGA counter to derive the system clock and to timestamp the
PPS signal from the GPS (a M12T), with a resolution of 2.5ns (FPGA
counters running at 400MHz). The 400MHz is derived from a 25MHz TCXO
with <0.5ppm absolute frequency error (far better that any common PC
clock). But results for now are not as good as I was expecting, probably
due to the conversion from raw timestamp counts to time. Timestamps from
the GPS shows jumps in the order of 200-300ns, and there is also a slow
drift of +/-2us that probably is due to oscillator wandering (a drift
of 0.0625ppm would cause 1 microsecond error in 16 seconds).
You must also do the timestamp of the pps signal with known
uncertainity. If you simply do it reading the system clock inside an
interrupt, you've interrupt latencies, that are also quite variable.
> The Rubidium clock is not a maser nor am I aware of any designs that
> use a maser. The newer (and compact and cheaper) Rb clocks stabilize
> (aka 'discipline') a crystal-based oscillator. If the output of that
> oscillator is a very high frequency, for example 100MHz, then it is
> relatively simple to build a very high resolution clock which uses the
> oscillator output (rather than the PPS output) to drive it. Such a
> high resolution clock in turn can be used to discipline the computer
> clock, or if you design your system with low enough latency you can
> simply read the high res clock, calculate the current time, and send
> that information down the line.
You will not see too much H-Maser based ntp servers around... an H-Maser
is very expensive, even used ones, and not abundant. All Rb (newer and
older), Cs, and H-Masers works disciplining a crystal based oscillator,
in one way or another. Particularly the Rb is passive in the sense that
you lock a microwave signal in a cavity to a frequency of maximum
absorption of the Rb-87 atoms. The microwave signal is derived from a
tunable crystal oscillator. An explanation of how it works can be found
in several Rb source manuals, for example http://www.to-way.com/tf/frs.pdf
An Rb oscillator will give you easily a frequency source with an error
better than 0.001ppm, or you can use as the clock frequency source an
GPS-disciplined oscillator, like a Trimble Thunderbolt. Probably I will
try to replace the 25MHz oscillator in my Blackfin board by a
GPS-disciplined source (but since my GPSDO gives 10MHz, I must first
generate 25MHz from it...)
Regards,
Javier
More information about the LinuxPPS
mailing list