GPS-модулі з 1pps виходами легко доступні та недорогі.
Насправді не потрібно дисциплінувати генератор процесора до GPS (наприклад, з PLL). Поки ви можете "відмітити" зовнішні події відносно тактового процесора, інтерполювати час передачі хвилі та отримувати події між будь-якими двома подіями PPS порівняно просто.
Ви можете часто використовувати комбінацію апаратного таймеру на мікроконтролері разом із програмним лічильником для його переповнення, щоб створити лічильник циклу процесора довільної ширини. Правильно поводитися з подіями перекидання, як з апаратним лічильником, так і з програмним лічильником, може бути складним, але врешті-решт, у вас може бути 32-бітний лічильник, який рахується за швидкістю тактового процесора (даючи високу роздільну здатність ) і перевертається з періодом, більшим за інтервали, які ви намагаєтеся виміряти (наприклад, 429 секунд при 10 МГц).
Ви можете використовувати цей лічильник, щоб позначити різні зовнішні події. Якщо однією з таких подій є імпульси на 1 pps від GPS-приймача, то основна довгострокова точність тактової частоти процесора стає небайдужою. Єдине, що має значення, - це його короткочасна стабільність. Ви можете зберігати часові позначки GPS у буфері FIFO та порівнювати часові позначки інших подій зі значеннями цього буфера. Оскільки ви знаєте, що GPS-імпульси розташовані рівно на одну секунду, ви можете знайти точний час будь-якої іншої події, інтерполюючи.
GPSnGPSn+1TimenTimen+1ExtGPSnGPSn+1
Timen+Ext−GPSnGPSn+1−GPSn
Нарешті, якщо ця установка працює на двох окремих системах, кожна з яких має власний GPS-приймач, ви можете з високою точністю порівняти час, обчислений для різних подій на двох системах (як правило, порядку ± 100 нс), навіть якщо Годинники процесора двох систем не синхронізовані.