[LinuxPPS] Re: PLL sensitivity

Remco den Besten besten at gmail.com
Mon Nov 17 18:20:09 CET 2008


I don't know but I'll try to elaborate a little on this issue.

I consider the kernel as the 'oscillator' which has to be 
synchronized/locked to an
external/precise reference. The normal system clock is too instable for 
gaining usec or nsec resolution.

This 'oscillator' has basically two important interfaces to the 'outside' 
world:
a) its output (e.g. frequency or 'time' stamp)
b) an input with which you can regulate its output (time stamps or 
frequency)

Ad a. When you know what the desired frequency/time stamp has to be, you can 
determine the delta and then
Ad b. On the basis of this delta a certain amount of action has to be 
performed.

The mechanism between the 'delta' and the 'amount of action' has to be 
filtered in order to e.g. prevent oscillation.

I consider ntpd a core mechanism to provide two things: determine the delta 
and provide the 'action'.
Mostly the time constant (or filtering) is done in the oscillator itself 
(i.e. the kernel) and this filter is
dimensioned on the characteristics of the oscillator itself.

A nice example is a GPS disciplined OCXO by fellow HAM G3RUH 
(http://www.jrmiller.demon.co.uk/projects/ministd/manual.pdf). Here the 
output of the phase comparator
('PLL", i.e. in this case one EXOR) is fed into an integrator (R1 and C1) (t 
= 160.000 x 100E-6 = 16 sec). This time constant apparently is suitable for 
the OCXO (this is a relatively stable oscillator and thus needs longer time 
constants).

What make me think that the time constants have to be in the kernel, is the 
observation that e.g. FreeBSD
reacts totally different than Linux with the same computer hardware, time 
reference hardware and ntpd towards
the same 'disturbances'.

When the system is 'disturbed' e.g. by temperature or CPU load, FreeBSD 
shows one overshoot and is
almost immediately 'back into business' (whereas Linux needs a lot of time 
to recuperate (see today on
remco.org/ntp)) and the magnitude of the effect of the disturbance (e.g. the 
offset, or how precise your
time stamps are) is much bigger with Linux than FreeBSD under the same 
circumstances.

I just googled on time_pps_kcbind() (which is not implemented in LinuxPPS, 
see
https://lists.ntp.org/pipermail/hackers/2008-October/003899.html) and saw 
that this posting
also refers to the issue I want to raise.

From: "Udo van den Heuvel"
>> synchronized by an external (PPS) reference, but perhaps some smoothing 
>> can
>> be achieved by experimenting
>> with the PLL filter(s) (e.g. timing contstants) like PI-regulation
>> (proportional/integral algorithms)?
>
> These PLL filters are in ntpd or in kernel? 




More information about the LinuxPPS mailing list