FYS3240 PC-based instrumentation and microcontrollers Clocks/timers, Time, and GPS Spring 2015 Lecture #11 Bekkeng, 22.12.2014
How good is a crystal oscillator (XO)? Interested in the long-term measurement stability and accuracy Watch crystal oscillator: about 20 ppm, or worse Error > 1.73 s in 24 hours (almost 1 minute drift in one month) The accuracy can be improved using a: Temperature compensated crystal oscillator (TCXO) Oven controlled crystal oscillator (OCXO) the oscillator is enclosed in a temperature controlled oven Some DAQ card accuracy examples: TCXO : 1 ppm OCXO: 50 ppb
Computer clocks Hardware clocks Real Time Clock (RTC) is an integrated circuit on the motherboard. The RTC has a battery backup power so that it tracks the time even while the computer is turned off. Based on a 32.768 khz quartz crystal oscillator. Maximum resolution of 1 millisecond (1 khz). Software clocks Maintained by the operating system, based on the RTC interrupts. When the system starts it sets the system time to a value based on the real-time clock of the computer and then regularly updates the time based on interrupts from the RTC. Timers/Counters 8253/8254 PIT (Programmable Interval Timer) APIC (Advanced Programmable Interrupt Controller) ACPI (Advanced Configuration Programmable Interrupt)
High-Resolution Timers/Counters High Precision Event Timer (HPET) is a 64-bit up-counter with a frequency higher than 10 MHz. Time Stamp Counter (TSC) is a 64-bit register in the CPU (cores) that increment each processor clock cycle. However, can be unreliable on a modern multicore computer due to: multicore computers can have different values in their time-keeping registers. variability of the CPU frequency due to power management technologies or performance technologies such as Intel Turbo Boost Technology. Access the TSC (or HPET) timer using the Windows API functions QueryPerformanceCounter (μs resolution) and QueryPerformanceFrequency T = QueryPerformanceCounter(n) QueryPerformanceCounter(n 1) QueryPerformanceFrequency
QueryPerformance from LabVIEW TSC example
Computer clock drift The software clock is a bad timekeeper! The computer clock drifts away from the correct time. At the time of synchronization with a time server the clock is reset to the correct time (but with a small offset). Could update the computer clock often, but a much better solution is to read UTC time directly from a timing card connected to a GPS, or IRIG-B or IEEE1588 signals. Software / Operating System (OS) limits timing resolution and accuracy! The performance is system (hardware, OS) dependent.
Synchronize PC clock to a time (NTP) server in Windows Note: this Internet time settings is not available when the computer is part of a domain (such as the domain UIO.no) Windows Time service
TAI and UTC time International Atomic Time (TAI) as a time scale is a weighted average of the time kept by over 300 atomic clocks in over 60 national laboratories worldwide. Coordinated Universal Time (UTC) is the primary time standard by which the world regulates clocks and time, and is based on TAI but with leap seconds added at irregular intervals to compensate for the slowing of the Earth's rotation. Since 30 June 2012 when the last leap second was added TAI has been exactly 35 seconds ahead of UTC. The 35 seconds results from the initial difference of 10 seconds at the start of 1972, plus 25 leap seconds in UTC since 1972. UTC is the time standard used for many internet and World Wide Web standards. The Network Time Protocol (NTP), designed to synchronize the clocks of computers over the Internet, encodes times using the UTC system.
Leap seconds Time is now measured using stable atomic clocks A leap second is a one-second adjustment that is occasionally applied to UTC time in order to keep its time of day close to the mean solar time. o Solar time is a reckoning of the passage of time based on the Sun's position in the sky. Leap seconds are necessary partly because the length of the mean solar day is very slowly increasing, and partly because the atomic, fixed-length SI second, when adopted, was already a little shorter than the current value of the second of mean solar time.. Since 1967, the second has been defined to be the duration of 9,192,631,770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the cesium 133 atom
GPS time GPS time is the atomic time scale implemented by the atomic clocks in the GPS ground control stations and the GPS satellites themselves. Periodic corrections are performed to the on-board satellite clocks to keep them synchronized with ground station clocks. GPS time is NOT corrected for leap seconds. GPS time is NOT equal to UTC or TAI time. GPS time remains at a constant offset of 19 seconds with TAI. As of July 2012, GPS time is 16 seconds ahead of UTC because of the leap seconds added to UTC. A new leap second correction will be added to UTC in 2016 GPS time was set to match UTC in 1980 However, the time offset from UTC is contained in the GPS broadcast message and is usually applied automatically by GPS receivers. A GPS satellite clock run faster (about 38 μs a day) due to velocity and gravity effects (follows the Relativity theory) Time dilation From: http://leapsecond.com/java/gpsclock.htm
Time stamping of data Often need to timestamp an image in a video stream or a block of data from a DAQ-card to GPS (UTC) time; e.g. for use in data fusion in post-analysis. If the data samples has a deterministic (regular) interval, such as samples from a DAQ-card, it is sufficient to time stamp the first sample at time t 0 : t 0 = T ReadFinished t (number of samples) t delay Given t 0 the time of the remaining samples are found from: t = t0 + n t t = 1 fs 0 1 2 n If the data samples are not deterministic (regular), e.g. video frames from a camera, each data point/video frame must include a timestamp
Signal based vs. time-based synchronization Signal-based synchronization involves sharing signals such as clocks and triggers directly (wires) between nodes that need to be synchronized. Time-based synchronization involves nodes independently synchronizing their individual clocks based on some time source, or time reference. There are advantages and disadvantages to both methods of device synchronization.
Synchronization technologies
Signal-based synchronization In systems where the devices are near each other, sharing a common timing signal is generally the easiest and most accurate method of synchronization. For example, modular instruments in a PXI chassis all share a common 10 MHz clock signal from the PXI backplane. To accurately use a common timing signal, a device must be calibrated to account for the signal propagation delay from the timing source to the device
Time-based synchronization Necessary for long distances Because of the inherent instabilities in (crystal oscillator) clocks, distributed clocks must be synchronized continuously to a time refererence to match each other in frequency and phase. Time references: GPS IEEE 1588 master IRIG-B sources Timing and Synchronization Systems
Global time possible implementations Reference clock Reference clock Reference clock Time response Time request Time Δt (Time Error) Time Computer clock Computer clock Computer clock
IRIG serial time codes IRIG = Inter Range Instrumentation Group (a standard) Several time codes, but IRIG-B is the most common Both AM and DC versions of the code Best time accuracy with DC AM best for transmission over long cables Accuracies of the order of a few microseconds or better IRIG-B AM AM = Amplitude Modulation BCD = Binary Coded Decimal IRIG-B DC
Network Time Protocol (NTP) NTP is a protocol designed to synchronize the clocks of computers over a network. Can provide accuracies of better than 10 ms over Ethernet. accuracy depends on the network (local area network vs. Internet) User Datagram Protocol (UDP) is used. Edited from Wikipedia: GPS with NTP-server and IRIG-B output NTP can usually maintain time to within tens of milliseconds over the public Internet, and can achieve better than one millisecond accuracy in local area networks under ideal conditions. Network problems can cause errors of 100 ms or more All Microsoft Windows versions since Windows 2000 and Windows XP include the Windows Time Service, which has the ability to sync the computer clock to an NTP server. The version in Windows 2000 and Windows XP only implements Simple NTP (SMTP), and violates several aspects of the NTP version standard. Beginning with Windows Server 2003 and Windows Vista, a compliant implementation of full NTP is included.
IEEE 1588 Protocol Gives sub-microsecond synchronization in distributed systems IEEE 1588 provides a standard protocol for synchronizing clocks connected via a multicast capable network, such as Ethernet. uses a protocol known as the precision time protocol (PTP). All participating clocks in the network are synchronized to the highest quality clock in the network. The highest ranking clock is called the grandmaster clock, and synchronizes all other slave clocks. The level of precision achievable using PTP (Precision Time Protocol) depends heavily on the jitter (the variation in latency) present in the underlying network topology. Point-to-point connections provide the highest precision.
GPS & IEEE 1588 used for time synchronization of multiple PCs
Example - Vision time stamping GE680C Visual camera (205 fps) Question: How to accurately time stamp each image from a camera to GPS time, without any delay added from the software loop? PC NIC SW Loop time stamp is not equal to image sample time!
Satellite navigation A satellite navigation system with global coverage is called a global navigation satellite system, or GNSS. GPS (USA) GLONASS (Russia) GALILEO (EU): In-Orbit Validation 30 satellites in 2019 Compass (China): Chine + Asia-Pacific 35 satellites in 2020 A satellite navigation systems can give very accurate Position Velocity (doppler) Time
The Global positioning System (GPS) Originally developed to determine position for autonomous navigation. Space segment 24 (28/31) satellites orbiting the Earth at an altitude of approximately 20,200 km. The orbital period is about 12 hours Six orbital planes with four satellites in each. At least four satellites are visible from any point on the ground at any time Control segment Tracking stations around the world monitor and measure orbit and satellite clock correction parameters. These corrections are transmitted up to the satellites and broadcasted to the user segment. User segment GPS receivers, giving the user information about the receiver position, velocity and time http://www.kowoma.de/en/gps/orbits.htm
Two satellites Triangulation in 3D One satellite Three satellites
Satellite navigation in 3D The distance to at least four satellites must be known! Three satellites need for three distance measurements Measure signal time of flight : s = v * t The fourth satellites is needed in order to remove clock errors in the receiver unit GPS satellites have calibrated atomic clocks, but a GPS receiver has only a standard quartz crystal oscillator An error of 1 ms in the receiver clock gives a position error of 3*10 8 m/s * 1 ms = 300 km Navigation data message from each satellite: Satellite time (when the message was transmitted) + correction Satellite position (when the message was transmitted), using ephemeris (orbit data) Almanac data (orbit data etc. for ALL satellites) More satellites gives better accuracy!
GPS signals Every satellites transmit a unique PRC (pseudorandom code) binary sequence. Frequencies used in the GPS system: L1 = 1575.42 MHz and L2 = 1227.60 MHz New civilian signals in the future: L2C, L5, and L1C The C/A (Course Acquisition) code is the PRC modulated at the L1 carrier, and this is the basis for civilian use. The P (Precise) code is modulated on both L1 and L2, but this is an encrypted code for military users. A doppler shift is introduces (on L1 and L2) due to relative motion between the satellite and the receiver The receiver must perform a correlation (search in received data) in order to detect the PRC from a satellite local PRC codes are correlated with the navigation message
Pseudorange Determine code delay time t, and use s = v * t The measured pseudorange P k from a satellite k can be expressed as (since we can assume no clock error in the satellite): P k = (X k x) 2 + (Y k y) 2 + (Z k z) 2 + d + v = ρ k + d + v Where d is the position error due to receiver clock error, (X k,y k,z k ) is the known position of satellite k, (x,y,c) is the true receiver position, and v is zero mean Gaussian white noise with variance σ 2 Solving for x, y, z and d is a nonlinear problem!
Carrier-Phase GPS Used in land surveying. An ordinary GPS receiver determines the travel time of a signal from a satellite by comparing the PRC it's generating, with an identical code in the signal from the satellite. The PRC has a bit rate of about 1 MHz but its carrier frequency has a cycle rate of over a GHz (which is 1000 times faster) At the speed of light the 1.57 GHz GPS signal has a wavelength of roughly 19 centimeters, so the carrier signal can act as a much more accurate reference than the PRC by itself. In essence this method is counting the exact number of carrier cycles between the satellite and the receiver Carrier-phase GPS use code-phase (e.g. C/A code) techniques first to get close to the solution.
Satellite navigation errors Multipath The GPS receiver compare the time of transmission of the coded signal from the satellite with the time of arrival at the receiver s = v * Δt The velocity v is the velocity of electromagnetic waves in vacuum, including a model of the average delay in the troposphere and ionosphere Variations in neutral density, temperature and humidity in the atmosphere, and electron density in the ionosphere, affects the velocity of electromagnetic waves, and therefore gives an error in the measured distance s Orbit errors and multipath (due to reflections) also contribute to the total error in the measured distance to a satellite Index of refraction (n): n(λ), c = f * λ
Space weather affect GNSS!
TEC MAP TEC = Total Electron Content
New GPS signal L2C
Differential GPS (DGPS) Used to increase the GPS position accuracy (different types of DGPS) Reference stations on known locations on the Earth can calculate the position based on the C/A coded signals, an compare with the known location of the station. This gives the position error from the GPS system, and this error can be broadcasted to all receivers The accuracy depends on the distance from the reference station(s)
GPS accuracy GPS (C/A code) : 10 30 meters (only L1 used) GPS (P(Y)-code) : 1 3 meters (military receivers, L1 and L2 used) P(Y) is an encrypted code! DGPS : 1 5 meters CPDGPS : < 1 cm (static), < 5 cm (kinematic) EGNOS : 1 5 meter (EGNOS is EU s DGPS) CP = carrier phase Note: SA-code turned off in May 2000!