1pps 출력의 GPS 모듈은 쉽게 구할 수 있으며 저렴합니다.
CPU의 오실레이터를 GPS로 훈련시킬 필요는 없습니다 (예 : PLL). CPU 클록과 관련하여 외부 이벤트를 "타임 스탬프"할 수있는 한, 두 PPS 이벤트 사이에서 웨이브 전송 및 수신 시간을 보간하는 것이 비교적 간단합니다.
종종 오버 플로우 이벤트를위한 소프트웨어 카운터와 함께 마이크로 컨트롤러의 하드웨어 타이머 조합을 사용하여 임의 폭의 CPU주기 카운터를 만들 수 있습니다. 하드웨어 카운터와 소프트웨어 카운터 모두 롤오버 이벤트를 올바르게 처리하는 것은 까다로울 수 있지만 결국 CPU 클록 속도로 계산되는 32 비트 카운터를 가질 수 있습니다 (고해상도 제공). )를 측정하려는 간격보다 긴 기간 (예 : 10MHz에서 429 초)으로 롤오버합니다.
이 카운터를 사용하여 다른 외부 이벤트를 타임 스탬프 할 수 있습니다. 이러한 이벤트 중 하나가 GPS 수신기의 1-pps 펄스 인 경우 CPU 클록의 기본 장기 정확도는 중요하지 않습니다. 중요한 것은 단기적인 안정성입니다. GPS 타임 스탬프를 FIFO 버퍼에 저장하고 다른 이벤트의 타임 스탬프를 해당 버퍼의 값과 비교할 수 있습니다. GPS 펄스가 정확히 1 초 간격임을 알고 있기 때문에 보간을 통해 다른 이벤트의 정확한 시간을 찾을 수 있습니다.
및 이 2 개의 연속 GPS 펄스에 대한 CPU 클럭 타임 스탬프 라고 가정 합니다. GPS 메시지의 각 펄스와 관련된 실제 (원자 클럭) 시간, 및 있습니다. 경우 당신이 사이에 떨어지면 그 측정하고자하는 일부 외부 이벤트의 CPU 클럭 타임 스탬프입니다 및 , 정확한 시간은 다음과 같습니다 G P S n + 1 T i m e n T i m e n + 1 E x t G P S n G P S n + 1GPSnGPSn+1TimenTimen+1ExtGPSnGPSn+1
Timen+Ext−GPSnGPSn+1−GPSn
마지막으로, 각각 자체 GPS 수신기가있는 두 개의 개별 시스템에서이 설정을 실행하는 경우 두 시스템에서 다양한 이벤트에 대해 계산 된 시간을 높은 정확도 (일반적으로 ± 100ns 정도)로 비교할 수 있습니다. 두 시스템의 CPU 클럭은 동기화되지 않습니다.