[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