What if you need to know what time it is, or what frequency you have, or need to provide a precise frequency in your system? A few months back I obtained a sample of a small assembly (~1” by 1” by 0.25”) that seems to perform magic: a GPS disciplined Temperature Compensated Crystal Oscillator (GPS-TCXO) from Symmetricom.[i]
The evaluation board has an RS232 to USB chip on the motherboard that converts the interface to/from the TCXO and its GPS receiver device.
Plug it in and Lock
Installing the software to support the USB is probably the only real effort required, and also finding a place to stick the magnet base GPS antenna where it can view some satellites in the sky. One big advantage of using a fixed GPS system is that based on the fact that it isn’t moving, it gives a better frequency reference, a more precise location, and more precise time information. If you have a mobile application, some of that precision gets lost, but by using the TCXO one still has a really nice system.
What is Precise?
An Atomic Clock[ii] is not really a clock, but an active or passive maser atomic oscillator. A Cesium Clock is the typical frequency source used for what is known as a Primary Reference.[iii] It provides an accurate and precise frequency, which varies by no more than 1E-11. Typical cesium references operate down to perhaps 1E-12, but have a wander of about +/- 100 ns associated with them (but no drift). Such a reference is also sometimes referred to as a Stratum 1 Clock. When I was on the SONET standards committees years ago, we used to joke that a Cesium clock was like a drunkard who always made it to the bar, but wandered a bit on his way.
The GPS constellation consists of many such precise clocks in orbit (mostly rubidium sources that do not wander, but do drift a tiny bit), steered and corrected periodically by the world’s stable time sources.[iv] Some 200 of the world’s most accurate clocks get “voted” in a complex mathematical process, and then we all agree what time it was some 30 days ago and apply corrections.
Thus, a 10 MHz temperature compensated crystal oscillator steered by the GPS constellation becomes a precise “Stratum 1” time/frequency/position reference while locked to the satellites, and when the satellites are lost, it then drifts. However, even this drift may be anticipated and canceled if you have a history of the drift and knowledge of your temperature (the temperature compensation is not perfect, and this is easily observed in operation).
Now, for Some Really Small Numbers
After a month of operation, my little board settled into its routine. When it first turned on, it was within +/- 1E-10, but after a few weeks the inherent drift of my unit was clearly visible, about 3.031E-12, which is being compensated for, so the delivered precision is less than 3E-12 (Allan Variance[v] for ~6 hours). This is about three times better than a cesium clock, which wanders about a bit more but would have zero drift unless it is broken. The drift of a TCXO is not constant as crystals do age, so the drift is now down to 3.029E-12 after six months.
The figure below is the Allan Variance from a test run of another unit.
The one pulse per second (1PPS) output had a six month set of equally impressive statistics: a median of -397 picoseconds (it is averaging just under 400 picoseconds late, which could be removed as a fixed delay) with a variance of 1.72E-16.
Such levels of precision easily allow one to measure the effect of gravity and velocity[vi] on time (both of which are corrected for by the GPS satellites, as they are in orbit around the earth, affected both by gravity and acceleration).
The delivered frequency is remarkably stable and constant while it is locked, which is almost 100% of the time. Why does it not stay locked all the time? My window faces Southeast, so all satellites directly to the Northwest are blocked from view of the antenna. Even so, the time spent with no satellites in view is only a few minutes a day and has little to no effect on the performance.
The receiver needs a minimum of four satellites in view to operate, and it usually sees 10 or 11 in a clear sky view. If the GPS is lost, one will start to see the intrinsic drift of my unit: ~3.03E-12. Since every crystal is different, your unit will have its own drift. Now that I know that drift is there, I could modify the 10 MHz output with an external synthesizer with a reverse correction while the satellites are not being tracked. I could then turn off that correction when the satellites come back in view.
I am also able to download the latitude, longitude, and altitude, and form a long term running average. After six months, one could say that I really know exactly where my antenna is located! Of course, I can see it from my desk, so perhaps I should say I can locate it with reference to WGS84[vii] on Google.[viii]
If I were in a mobile application, the receiver would also report velocity.
If I needed to make precise measurements, I would use the 10 MHz as a reference. Most high-end lab equipment has a back panel input for an external 10 MHz reference, so they are able to lock to that reference, and thus all their measurements are traceable back to the international standard.
If I were building a frequency meter, counter, or a RF signal source, I would put such a module in there, and pretty much forget about ever having to calibrate it. Of course, one has to occasionally get a view of the sky or place the instrument in the window so it can see as many satellites as possible. The spectral purity of the outputs is also impressive (also from a test report of another unit):
No GPS? What Then?
In the event that you cannot acquire any satellites, there is another alternative: Network Time Protocol[ix] (NTP). NTP provides time stamping over the Internet so that you may measure time or frequency, or control a frequency source. So, in a future frequency meter one could envision a wireless 802g modem for Internet, a GPS disciplined oscillator, and the necessary control electronics (a Xilinx Zynq[x] SoC device?). Such an instrument would always be accurate and always know just how accurate it was, and would be able to diagnose itself and report if it had any problems. I need a view of the sky for an hour or two, please…
An NTP server could be ported to the Zynq platform, as there is public code available.[xi] Running an NTP server on one of the ARM cores in Zynq under a Linux operating system is a fairly straightforward task.