Los módulos GPS con salidas de 1pps están disponibles y son baratos.
No es realmente necesario disciplinar el oscilador de la CPU al GPS (por ejemplo, con un PLL). Siempre y cuando pueda "marcar la hora" de eventos externos en relación con el reloj de la CPU, es relativamente sencillo interpolar el tiempo de su onda de transmisión y recepción de eventos entre dos eventos PPS.
A menudo puede usar la combinación de un temporizador de hardware en el microcontrolador, junto con un contador de software para sus eventos de desbordamiento, para crear un contador de ciclos de CPU de ancho arbitrario. Puede ser complicado lidiar correctamente con los eventos de rollover, tanto del contador de hardware como del contador de software, pero al final, puede tener, por ejemplo, un contador de 32 bits que cuenta a la velocidad del reloj de la CPU (lo que brinda una alta resolución ) y se reinicia con un período más largo que los intervalos que está tratando de medir (por ejemplo, 429 segundos a 10 MHz).
Puede usar este contador para marcar la hora de diferentes eventos externos. Si uno de esos eventos es pulsos de 1 pps desde un receptor GPS, entonces la precisión básica a largo plazo del reloj de la CPU se convierte en una no importa. Lo único que importa es su estabilidad a corto plazo. Puede guardar las marcas de tiempo del GPS en un búfer FIFO y comparar las marcas de tiempo de otros eventos con los valores de ese búfer. Como sabe que los pulsos del GPS están exactamente separados por un segundo, puede encontrar la hora exacta de cualquier otro evento interpolando.
G PSnorteG PSn + 1Ti m enorteTi m en + 1mix tG PSnorteG PSn + 1
Ti m enorte+ Ex t - G PSnorteG PSn + 1- G PSnorte
Finalmente, si tiene esta configuración ejecutándose en dos sistemas separados, cada uno con su propio receptor GPS, puede comparar los tiempos calculados para varios eventos en los dos sistemas con alta precisión (generalmente en el orden de ± 100 ns), incluso si el Los relojes de la CPU de los dos sistemas no están sincronizados.