I'd like to know how synchronization between the GPS unit and any other sensors is done in a typical system. I understand that the 1PPS signal plays an important role.
Could anyone give me a very simple explanation of the 1PPS signals role?
I'd like to know how synchronization between the GPS unit and any other sensors is done in a typical system. I understand that the 1PPS signal plays an important role.
Could anyone give me a very simple explanation of the 1PPS signals role?
PPS is not a fundamental function of GPS receivers. It is a axillary function that a GPS receiver can provide from it's internal timing systems that are used for actually measuring GPS position.
However, in many contexts, having a very precise local timestamp is highly beneficial. It is these applications where the PPS output is helpful.
Take a example where you have two sensor systems, perhaps a mile or two apart. They're going to have separate local clock oscillators, which will have different drift rates. The PPS signal, referenced to the GPS timestamp, is extremely useful for providing a way to accurately determine timing between the two systems. The GPS system compensates for the transmission time between each receiver and the GPS sattelite, so the PPS signals can be said to occur "simultaneously" to a considerable degree of precision, sometimes greater then the actual time-of-light transit between their positions!
For example, the LEA-6T timing GPS has a RMS time-pulse (e.g. PPS) output accuracy of 30 nanoseconds. Critically, that timing accuracy is position invariant compared to a theoretical global GPS time-base.
Note that this has fun effects like making the effects of the theory of relativity important to measurements. Light travels ~11.8" per nanosecond, but the GPS PPS output has a functionally infinite propagation speed, as all PPS pins theoretically would go high within the error band (~30 nanoseconds), invariant of their physical distance.
This works because the PPS output is not driven by an external pulse, but rather an internal clock that is adjusted to account for distance from the GPS sattelites, so each GPS receiver independently maintains it's own timebase, and the system conspires to make each discrete timebase phase and frequency align with each other.
Edit: You are asking about inertial measurement and navigation systems? If you're asking for the role of a PPS signal in something like a IMU, there isn't one. It's not used, except perhaps for setting the clock of the IMU's output timestamps (if it has timestamps).
To be clear, GPS systems are a critical component of many IMU systems, but the IMU uses the position output of the GPS, not the precision timing output.
It's a little odd that you accepted Connor Wolf's answer so quickly, considering that he didn't actually answer your direct question.
There are times when the tight synchronization of the sampling of other sensors to the GPS 1PPS output is required. For example, I have worked on high sample rate precision inertial navigation systems (200 Hz output and up) in which the raw accelerometer and gyro samples needed to be timestamped with accuracies on the order of 0.1 ms or better.
Also, keep in mind that the position that the GPS receiver outputs is its position at the leading edge of the 1PPS pulse, not its position at the time the message comes out (which might be a variable time later). In applications with high dynamics, the difference is crucial.
I have taken a couple of different approaches to incorporating the 1PPS pulse into the systems I've worked on. In the first iteration, I was using an FPGA to implement most of the system glue logic, so I included a 20-MHz VCXO in the PCB design. Logic in the FPGA phase-locked this VCXO to the 1PPS pulse, and then I was able to derive all kinds of precision phase-aligned clocks from the divider chain driven by the VCXO, including 10 kHz, 200 Hz and a "replica" 1 PPS.
In another implementation, I had no FPGA or VCXO; in order to reduce cost, the system was entirely implemented on a Blackfin DSP chip, using its on-chip peripherals, and the fixed (but uncalibrated) CPU clock as a timebase. For this system, I developed a "virtual timebase" based on using a couple of the Blackfin's hardware timer modules, one to generate periodic timing interrupts at 10 kHz, and the other to measure the period and the phase of the 1PPS signal from the GPS receiver relative to those interrupts. The firmware (primarily implemented in the interrupt handlers for the two timers) adjusts the period of the first timer to keep its interrupts phase-aligned with the 1PPS reference, even if the CPU clock frequency drifts.
With either of these timebase implementations, it is easy to either create synchronization pulses for the other sensors on the platform, or to timestamp their outputs if they can't be synchronized.