Забудьте на мгновение о местоположении по GPS. GPS или GNSS также вычисляет время. И делает это очень точно. С точностью до 10 наносекунд. Это 0.00000001 секунды.
Представьте, что у вас есть два устройства в двух разных странах или два датчика в двух разных местах, и вы хотите синхронизировать их действия или измерения. Можно использовать интернет для достижения точности около 2 миллисекунд или использовать GPS-приёмник на каждом устройстве, чтобы снизить её до 2 наносекунд. И самое главное — интернет не нужен.
При достижении такого уровня точности синхронизации важно также знать, в каком временном масштабе мы работаем. Приемники GNSS обычно синхронизируются с глобальным временем UTC, но могут также синхронизироваться с временным масштабом конкретной спутниковой группировки (GPS, GLONASS, Galileo(например, BeiDou). Для каждой временной шкалы используется свой абсолютный счетчик (например, разница между GPS и UTC составляет несколько секунд), но в целом изменение секунды синхронизировано с уровнем миллисекунд. В любом случае, вывод таков: убедитесь, что все ваши датчики используют одну и ту же временную шкалу.
Теория очень хороша, но как на самом деле использовать временной импульс GPS в своем проекте?
Все ArduSimple на платах есть штифт, который называется Timepulse, PPS или TPS. Это разные названия одного и того же сигнала. По умолчанию этот временной импульс настроен на 1 импульс в секунду (PPS). Это означает, что каждую секунду, точно в момент смены секунд, этот сигнал будет срабатывать, чтобы сообщить приложению о точном моменте смены секунд. Приёмнику может потребоваться некоторое время для вычисления фактического нового местоположения, и он предоставит вам эту информацию как можно скорее. На следующем изображении вы найдёте наглядное представление этого.
В вашем приложении вы можете подключить Timepulse и последовательный вывод данных на ваш процессор или компьютер. В какой-то момент ваше приложение обнаружит, что время — 8:30:00. Пора готовиться к следующему импульсу времени, который будет показывать ровно 8:30:01.
Но вы можете спросить: а что, если сигнал, который я хочу измерить, находится между двумя временными импульсами?
- Вариант А. Внутри вашего процессора имеется высокочастотный генератор (МГц или выше), который вы можете синхронизировать каждый раз, когда появляется временной импульс.
- Вариант Б. Используйте еще одну функцию GPS-приемников: EXTINT или вход СОБЫТИЯ. Мы поговорим об этом сигнале в другой раз и добавим ссылку в этот пост.