-----Original Message----- From: time-nuts-boun...@febo.com [mailto:time-nuts-boun...@febo.com] On Behalf Of Hal Murray Sent: Wednesday, July 29, 2009 2:51 PM To: Discussion of precise time and frequency measurement Subject: Re: [time-nuts] looking for good description/generalized model for time adjustments
> >> Precisely so. And NTP may actually be the best model here. Does > NTP's "corrected output" meet the "must be monotonic and not > discontinuous" criteria (being too lazy to just go read the NTP docs, > which I have, and which I'll take a look at after lunch). There is a lot of info available about ntp, you may have troubles finding what you want, especially if you don't already know what you are looking for. I'm being sloppy when I say "ntp". It's both a protocol spec (RFC-whatever) and a reference implementation (ntpd) that is widely deployed. >>>><snip about ntp> What OS are you using? FreeBSD is very good. Linux is not--so-good. >>> RTEMS and/or VxWorks (I'm using RTEMS, others with whom we communicate use >>> a variety of other things. And we don't have network connections per se.. >>> That's why I'm looking for more generic descriptions that aren't tied to >>> things like packet definitions or peculiarities of IP routing. Basically, >>> all of these things should be able to be boiled down to two things: a >>> synchronization signal and a synchronization message. The other mode is using a refclock. ntpd includes support of over 20 different types of clocks, many are no longer interesting. The key to getting good time is something like a PPS pulse and kernel support to grab a timestamp in the interrupt routing. There is also a batch of PLL code in the kernel that I don't understand. >>>> and it is that PLL code that is particularly interesting (Poul-Henning has >>>> useful information in kern/time_tc.c, etc.) For network traffic, ntp assumes the delays are symmetric. <snip> >>> In my application, we don't need to "probe the network" to figure out the >>> latencies. We know them apriori, and they are also "very small" compared to >>> the required time precision. The part I'm interested in is the automated >>> reconciliation of the always varying clocks/oscillators on the platforms, >>> essentially trying to predict a bad clock with a good one. > ---> But it *is* the master, by fiat. Here's a scenario: A schedule > is published that says: (MT = Master's time) > At 12:00.001MT Box A puts out a pulse > At 12:00.002MT Box B puts out a pulse > At 12:01.001MT Box A puts out a pulse. > Box A and Box B MUST follow Master Time, no matter how crummy it is. ntp is trying for UTC, the one great time. But that comes from outside ntp. You can simplify things a lot if you tell it (config file) to only use one server. For example, you could setup box A as the master and tell B to sync to it. It may be better to setup another box in a stable environment and sync both A and B to it. That gives B a stable target. --> Can't do that in this environment. The master is the master, and all the slaves are fore-ordained and must follow it as best they can. What I need to do, really, is figure out what "best they can" is. > A Single board computer with non TCXO clock (on order of 10ppm > variability over short term) is the "system controller" and sets the > time schedules. It sends commands to devices which have TCXO clocks > (on order of 1ppm short term variability) saying "at time X do action > Y". It also periodically sends messages to the devices saying "At the > tone, my time is Z". How good is your netework connection? >>>> Negligible latency (at least in the context of the required time >>>> precision). In reality, it has a worst case jitter of about 1 microsecond >>>> and a mean latency of 0.5 microsecond (that is, a "tick" on one end of the >>>> link appears at the other end of the link with a uniformly distributed >>>> delay of 0-1 microsecond) >>>> Think of it as if I had a piece of wire connecting the boxes, to do with >>>> whatever I want. And then, on the side, I have a way to transmit messages >>>> among boxes (which has greater latency and jitter) 10 ppm short term variability seems huge. The crystals I've looked at (in PCs) are ballpark of 1 ppm per C. Do you have wide temperature changes short term or nasty crystals? (or am I lucky?) >>> wide temperature ranges: The environment where you go from full sunlight >>> (at 1.3kW/square meter) to full darkness, radiating to 3K blackbody (about >>> -400W/sq meter), and back to sun every 90-100 minutes). A cyclical >>> variation of 10-20 degrees wouldn't be unusual, and it's not sinusoidal.. >>> more like a low pass filtered square wave. It sounds a little backwards to have the machine with the lousy clock be the one in charge. Can it get the time from any of the devices with better clocks? >> sadly, no.. that's one of the problems to solve. > What we would like is a) some algorithms to do this (and NTP type PLLs > are a decent way) and b) some formalism and rigor to choose operating > parameters (e.g. update every 1 second or every day or whatever) There is a lot of formalism with ntp. I'm not familiar with most of it. Picking parameters is a black art. >>> precisely so.. Lots of papers and presentations by Mills (and heck, he's >>> been out here to JPL, too), but there's a lot of empiricism in those filter >>> tuning parameters, I suspect. >>> Turns out that there are lots of applications in spaceflight where you need >>> to synchronize things that have different clocks (with relativistic >>> effects, as well as just long and varying propagation delay). For instance, >>> NTP, by itself, doesn't do a very good job synchronizing a clock on >>> something orbiting the moon. That's because the propagation delay >>> properties are very different from what NTP was originally designed for >>> (network traffic through a bunch of routers). You have a large, but >>> systematic and predictable, range and range rate variation on top of a 1 >>> second delay. _______________________________________________ time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.