1pps出力のGPSモジュールはすぐに入手でき、安価です。
CPUの発振器をGPSに制御する必要はありません(たとえば、PLLを使用)。CPUクロックに関連する外部イベントを「タイムスタンプ」できる限り、2つのPPSイベント間でイベントの送信および受信イベントの時間を補間するのは比較的簡単です。
多くの場合、マイクロコントローラのハードウェアタイマーとそのオーバーフローイベント用のソフトウェアカウンタの組み合わせを使用して、任意の幅のCPUサイクルカウンタを作成できます。ハードウェアカウンターとソフトウェアカウンターの両方のロールオーバーイベントを正しく処理するのは難しい場合がありますが、最終的には、たとえば、CPUクロックのレートでカウントする32ビットカウンターを使用できます(高解像度を提供します) )、測定しようとしている間隔よりも長い期間(たとえば、10 MHzで429秒)でロールオーバーします。
このカウンタを使用して、さまざまな外部イベントにタイムスタンプを付けることができます。これらのイベントの1つがGPS受信機からの1 ppsパルスである場合、CPUクロックの基本的な長期精度はドントケアになります。重要なのは、その短期的な安定性だけです。GPSタイムスタンプをFIFOバッファーに保存し、他のイベントのタイムスタンプをそのバッファーの値と比較できます。GPSパルスは正確に1秒離れていることがわかっているので、補間することで他のイベントの正確な時間を見つけることができます。
G PSnG PSn + 1T私メートルのEnT私メートルのEn + 1Ex tG PSnG PSn + 1
T私メートルのEn+ Ex t − G PSnG PSn + 1− G PSn
最後に、それぞれが独自のGPSレシーバーを備えた2つの別々のシステムでこのセットアップを実行している場合、2つのシステムでさまざまなイベントに対して計算された時間を高精度(通常±100 ns程度)で比較できます。 2つのシステムのCPUクロックは同期していません。