Синхронизировать время на компьютере с gps

Обновлено: 05.07.2024

Синхронизация системного времени компьютера.

Применение некоторых цифровых видов излучения (JT65, WSJT, JT9, FT8 и др.) требуют строгой синхронизации времени компьютеров как на стороне передающего, так и на стороне приемного устройства. Для данных целей разработаны и могут использоваться различные программы. Предлагается несколько вариантов синхронизации.

I. Одноразовая ручная синхронизация.

1. Синхронизация с помощью ОС Windows .

Кликом правой кнопки мышки по текущему времени в лотке задач открываем окно, выбираем «Настройка даты/времени» и кликам левой кнопкой. В открытом окне «Свойства: Дата и время» открываем вкладку «Время Интернета», устанавливаем «птичку» в окошке «Выполнять синхронизацию с сервером времени в Интернете», нажимаем кнопку «Обновить сейчас» и ожидаем несколько секунд соответствующей надписи, подтверждающий синхронизацию, а также надписи, сообщающей о дате и времени следующей. По умолчанию это через 7 суток, если пользователь не установил иное по разделу II данной статьи (на скриншоте – каждые 2 часа). Для окончания процесса нажимаем кнопку «Применить», затем «ОК».

Недостатком данного метода можно считать отсутствие информации о разнице системного и серверного времени на момент синхронизации, а также о ее недостаточной точности для некоторых мод, например FT8. В этом легко можно убедиться, если сразу же сделать синхронизацию одним из методов, указанными ниже.

2. Синхронизация системного времени компьютера с помощью программы TR4W .

Одноразовую синхронизацию системного времени компьютера в ручном режиме возможно производить с помощью контест программы TR4W.

В открытом окне программы используем меню: Инструменты – Синхронизировать время компьютера . В открывшемся окне нажимаем кнопку «Получить разницу» , после чего нажимаем «Синхр. часы» . Нажимая последовательно эти кнопки несколько раз можно добиться минимального и даже нулевого значения разницы между величиной серверного и системного времени компьютера (в мсек). Окно закрыть, из программы выйти.


II. При использовании ОС Windows можно изменять период автоматической синхронизации времени без применения специальных программ.

По умолчанию, операционная система Windows обращается к серверам синхронизации только раз в неделю. При условии, что пользователь в настройках поставил автоматическую проверку времени. Для некоторых такой период может показаться достаточно большим или может быть весьма частым, чем хотелось бы. К счастью, в системе предусмотрена смена этого параметра через настройки реестра:

1. Откройте окно “ Выполнить ” через меню “Пуск” .

2. В командной строке наберите слово regedit и запустите кнопкой “OK”.

3. Вам необходимо поочередно добраться до следующего раздела:

HKEY_LOCAL_MACHINE – SYSTEM - ControlSet001 – Services - W32Time – TimeProviders – NtpClient и выбрать в окне параметр SpecialPollInterval . Здесь указано значение 604800, если перевести его в десятичную систему исчисления. Это количество секунд равное одной недели. Сюда можно занести другое значение , которое необходимо вам, сконвертировав его в секунды. Каждый час – 3600 секунд. Сутки 3600 х 24 = 86400 секунд и т.д.

4. Установите желаемое значение количества секунд и сохраните. Например, установлена синхронизация системных часов с сервером через каждые 2 часа – 7200 секунд.

5. Перезагрузите компьютер.

Теперь синхронизация времени произойдет в момент включения компьютера (при подключенном интернете) и далее автоматически каждые два часа пока он будет включен.

III. Синхронизация системного времени компьютера с помощью программы SP TimeSinc .

SP TimeSync - приложение для синхронизации системного времени через интернет. Программа имеет простой интерфейс и позволяет добиться точности синхронизации вплоть до нескольких миллисекунд. Имеется возможность сверять системное время автоматически, при этом программа не тратит интернет-трафик, имеет небольшой размер и не требует инсталляции. Интерфейс SP TimeSync поддерживает множество языков, включая украинский, русский и белорусский. На сайте разработчиков есть версия программы для 64-разрядных систем.

Устанавливаем как обычно по умолчанию.

После установки программы в открывшемся окне делаем настройки:

1. Открываем вкладку « Параметры » и ставим "птички" в желаемых установках, а также выбираем язык интерфейса. Рекомендую установить в «Запускать при старте Windows » и «Сворачивать в иконку в трэе».

2. Переходим к вкладке « NTP клиент» и в окошке «Получать каждые» устанавливаем интервал времени , через который будет проходить автоматическая синхронизация локального времени компьютера с внешним сервером (например, каждые 5 мин). Это время зависит от возможностей компа и интенсивности работы оператора на передачу.

3. Возвращаемся в исходное положение окна (вкладка «Время» ). Программа показывает локальное время компа. Нажимаем кнопку «Получить время» Программа показывает время на сервере, а также разницу с локальным системным временем компа и задержку. Нажимаем на ставшую активной кнопку «Задать время» - происходить синхронизация локального времени с серверным.


4. Для дальнейшей синхронизации по заданному интервалу времени в п.2 программу НЕ ЗАКРЫВАТЬ , а просто СВЕРНУТЬ , нажав соответственную кнопку в заголовке окна. При этом иконка программы появляется в лотке задач. Закрытая программа синхронизацию НЕ ПРОИЗВОДИТ.

5. Рекомендую при работе с модой FT 8 сначала открыть программу и выполнить операции по п.3. При этом DT у принимаемых станций в очередном 15-ти секундном цикле станет минимально возможным. Однако это зависит еще и от синхронизации времени в компе конкретной станции.

GPS приемники можно использовать не только для определения местоположения, но и для получения сигналов точного времени. В статье я покажу как настроить сервер точного времени, использующий в качестве источника GPS и работающий с точностью до нескольких микросекунд. В качестве примера я использую приемник Garmin и ОС FreeBSD, но статья также будет полезна обладателям Linux и Windows.

Подобный топик на хабре уже пробегал, но я считаю, что тему надо раскрыть гораздо подробнее: многие важные детали автор опустил.

1. Немного теории

По оценке журнала GPS World, сейчас в мире находится в использовании более миллиарда приёмников GPS, и более 90% из них используются только для получения сигналов точного времени. [19]

Для определения собственных трехмерных координат GPS-приемник рассчитывает расстояние до 4-х спутников. Это расстояние вычисляется путем измерения времени прохождения радиосигнала от спутника. Т.к. скорость света составляет 3×10 8 м/с, то время прохождения сигнала очень мало, и для расчета требуется очень точная синхронизация хода часов на спутнике и приемнике. Поэтому каждый спутник GPS оборудован атомными часами с точностью хода 1 нс/сут, а приемник обеспечивает точность времени около 50 нс [17]. Для определения времени приемнику достаточно получить сигнал с одного спутника (tanenn).

  • если у системы нет доступа в Интернет;
  • если вам нужна высокая точность времени — единицы микросекунд (мкс);
  • если вам нужно синхронизировать распределенную систему от надежного источника времени;
  • просто ради интереса :)

2. GPS-приемник

GPS-приемник можно использовать практически любой — главное, чтобы он поддерживал стандартный протокол NMEA 0183. Протокол NMEA служит для передачи GPS-информации простыми ASCII-строками по последовательному интерфейсу, такому как RS-232. Вместе с географическими координатами NMEA передает еще и точное время, как правило, раз в секунду.

Если вы хотите обеспечить еще большую точность — до нескольких микросекунд, необходимо использовать GPS-приемник, который умеет выдавать сигнал PPS (Pulse per second). PPS-импульс повторяется раз в секунду с очень большой точностью и может быть считан ntpd.

Ниже я рассмотрю оба варианта: сначала обычный NMEA и более подробно PPS.

3. Получение времени от GPS (без PPS)

3.1 Настройка GPS и ntpd

Windows администраторы могут установить порт ntpd для Windows и следовать указаниям в этой статье.

  1. Подключите GPS-приемник к COM-порту сервера (USB переходник тоже должен сработать).
  2. Создайте символическую ссылку /dev/gpsX на устройство (например, у меня /dev/cuau0 -> /dev/gps0).
  3. В ntp.conf добавьте строку

Строка 127.127.20.0 означает, что мы используем локальный источник времени, драйвер 20 (NMEA Generic), устройство /dev/gps0.

Если ваше устройство работает на скорости отличной от 4800 бит/c, необходимо задать скорость с помощью команды mode: 0 — 4800 бит/c (по умолчанию, можно не указывать), 16 — 9600, 32 — 19200 и т.д.

3.2 Проверка и коррекция

Для проверки нам потребуется использовать команду ntpq -p. Формат выдачи:
На каждой строке идет информация об источнике времени, будь то NTP-сервер или локальный источник времени.
Первый символ в строке — статус выбора: * — выбранный источник, + — насколько я понял, кандидат для выбора — на него переключится система в случае отказа основного источника, o — PPS-источник, пробел — не работающий источник, — x и др. — «забракованные» (ненадежные) источники.
Далее идут:
remote — имя узла или IP-адрес;
refid — ID источника (имя драйвера или адрес сервера, с которым синхронизируется источник);
stratum: 0 для первичного источника времени (GPS), 1 для сервера к нему подключенного, 2 для сервера, который синхронизируется с сервером stratum 1 и т.д.;
t — тип: l — локальные часы, u — сетевой узел и т.д.;
when — время с последней передачи;
poll — интервал опроса log2 секунд, т.е. если poll=4, сервер опрашивает источник раз в 2 4 = 16 секунд;
reach — восьмеричное число, показывающее успешность последних 8 попыток передачи. Например, 0 — ни одной успешной попытки, 3778=111111112 — все попытки успешны. После запуска ntpd, если все в порядке источник проходит значения reach 0, 1, 3, 7, 17, 37, 77, 177, 377;
delay — время следования пакета;
offset — разница между временем источника и локальным;
jitter — джиттер или иными словами дисперсия (разброс) времени прохождения пакета.

Больше всего нас будет интересовать символ статуса выбора, reach, offset и jitter. Reach должен быть равен 377, а offset и jitter быть как можно меньше.

Запустите команду ntpq -p. Дождитесь пока offset NTP-сервера не станет достаточно низким.

Выбранный ntpd сервер отмечен *, в то время как наш GPS-приемник помечен как плохой (x). Offset GPS-приемника составляет около -956 мс. По всей видимости, информация передается о предыдущей секунде. Чтобы скорректировать это отставание необходимо под строкой server 127.127.20.0… добавить строку:

Теперь можно снова сделать GPS предпочитаемым сервером. После перезапуска сервера перед GPS_NMEA(0) должна появиться *.

4. Получение времени от GPS с сигналами PPS

4.1 Подключение приемника Garmin 18x LVC


Для себя я выбрал приемник Garmin 18x LVC с точностью PPS-импульса ±1 мкс. Это OEM-приемник, у него нет красивого экранчика, но его удобно использовать в собственных приложениях.

Этот приемник передает данные на COM-порт и требует питания 5В, 90 мА, поэтому его будет удобно запитать от USB. Нам понадобится разъем «мама» DB9 или COM-кабель, разрезанный пополам, а также разрезанный кабель USB для питания. Родной разъем приемника тоже нужно отрезать — это не повлияет на гарантию. Схема соединения:
желтый провод — с pin 1 (PPS)
белый провод — с pin 2 (передача)
зеленый провод — с pin 3 (прием)
оба черных провода — с черным проводом USB и pin 5 (земля)
красный провод — с красным проводом USB (+5В).


Желательно припаять контакты. Простая скрутка может и не заработать (впрочем, я не проверял).

Вдохновившись статьями [2] и [3] я пошел еще дальше и добавил в схему подключения предохранитель, светодиод «питание», светодиод «PPS» и резисторы для светодиодов. Умельцы-электронщики вполне могут уместить все в вилке COM-кабеля, у меня же получилась целая коробочка.
Я купил готовую макетную плату, розетки DB-9 и USB тип B, винтовые клеммники (родной разъем BM06B-SRSS-TBT или SM06B-SRSS-TB я в продаже не нашел), предохранитель 1А и держатель. Как смог припаял все это, а разъемы приклеил Epoxy :)


В принципе, так заморачиваться необязательно. Можно просто соединить жилы от GPS, COM и USB, как сделано здесь.

4.2 Настройка Garmin 18x LVC

Для повышения производительности и надежности желательно настроить приемник. Это можно сделать, посылая команды через терминал (см. мануал) или с помощью Windows-утилиты SNSRCFG. Я выбрал второй путь.

Подключаемся к приемнику:
Comm → Setup: устанавливаем COM-порт, Baud rate: manual, 4800.
Comm → Connect
Программа должна загрузить текущую конфигурацию.


Настраиваем:
Config → Sensor Configuration
Необходимо убедиться, что PPS включен и увеличить длину импульса до 200 мс.
Также можно попробовать отключить DGPS — мы им пользоваться не будем, и установить Fix Mode = 2D — в теории это позволит приемнику работать при трех видимых спутниках вместо четырех. Однако не ручаюсь, что эти две опции на что-то влияют.

4.3 Настройка FreeBSD и ntpd

Поддержка PPS во FreeBSD присутствует довольно давно, поэтому PPS здесь настраивается проще и работает точнее. Пользователи Linux могут обратиться к статье Using a Garmin GPS 18 LVC as NTP stratum-0 on Linux 2.6. Настройки написанные ниже относится к FreeBSD.

Для включения поддержки PPS необходимо пересобрать ядро системы с опцией:

NTP-сервер уже присутствует в системе, но не лишним будет обновить. Для FreeBSD делаем это из портов:

Теперь необходимо добавить в rc.conf строки:

ntpd_program указывает на путь установки ntpd из портов.

Создайте символическую ссылки /dev/gpsX и на /dev/ppsX устройство (например, у меня /dev/cuau0 -> /dev/gps0). Можно воспользоваться командой ln или добавить соответствующие строки в /etc/devfs.conf:

В документации NTP рекомендуется с GPS получать только PPS-импульсы для точного хода часов, а само время — с другого сервера stratum 1. Для этого необходимо добавить в /etc/ntp.conf несколько (4-5) серверов stratum 1 и наш PPS, например:

Драйвер 22 отвечает за PPS. flag3 включает режим коррекции времени ядра (kernel discipline). В документации ntpd написано, что включать kernel discipline совсем не обязательно: ntpd будет работать точнее, если просто выставить minpoll 4. Однако у меня получается как раз наоборот: с flag3 часы идут точнее — так что я предлагаю вам поэкспериментировать с этим параметром самостоятельно.

Можно пойти другим путем: получать и время с GPS и сигналы PPS:

flag1 включает PPS, flag3 — kernel discipline.
Это позволит получать время без использование Интернета, но в этом случае скорее всего понадобится коррекция (аналогично п. 3.2).

После внесения изменений необходимо перезапустить ntpd:

Запустите команду ntpq -p (подробнее о ней рассказано в п. 3.2). Если вы получаете только PPS сигнал, то вывод должен приблизительно быть таким:


Перед PPS(0) должно стоять «o», reach в течении пары минут дойти до 377. Остальные сервера используются для получения времени.

Если вы получаете с GPS еще и NMEA-информацию, то

Перед GPS_NMEA(0) должна стоять *.

Не лишним будет проверить статус PPS. Это можно сделать с помощью команд ntpdc -c kerninfo или ntptime. ntptime дает немного более подробную информацию:


На что нужно смотреть:
ntp_gettime() и ntp_adjtime() должны возвращать «OK».
в status должны быть флаги PPSFREQ, PPSTIME, PPSSIGNAL, и не должно быть PPSWANDER, PPSJITTER, PPSERROR.
jitter exceeded показывает количество импульсов, пришедших не совсем вовремя. Беспокоиться стоит, если значение jitter exceeded станет слишком большим, и в статусе появится флаг PPSJITTER.
intervals — количество интервалов калибровки, должно увеличиваться на единицу раз в interval секунд (в примере 256 с)
stability exceeded — число слишком больших коррекций времени, 0 — всё в порядке.
errors — количество PPS импульсов, не пришедших вообще или пришедших совершенно не вовремя, не должно увеличиваться во время работы.
stability — чем меньше, тем стабильнее работает PPS-источник и часы сервера. Должно быть меньше 0.1.
jitter — джиттер PPS-импульсов. Должен быть несколько микросекунд (us), не больше.

5. Возможные проблемы и отладка

5.1 Don't panic!

Всегда учитывайте, что GPS-приемнику требуется некоторое время, чтобы установить свое местоположение после включения: до получаса для старых моделей, 45 секунд для Garmin 18x. Это время зависит от того, насколько долго приемник был выключен (tanenn). ntpd также требуется определенное время для коррекции хода часов. По моим наблюдениям: 10-20 секунд чтобы «увидеть» приемник, 20-30 минут чтобы offset снизился до оптимального значения. Если ваш reach после нескольких минут работы установился в 377, а offset сокращается (по модулю) — то все в порядке.

5.2 ntpd не видит приемник

Если ntpd не видит приемник: reach в ntpq -p застыл на нуле, — необходимо тщательно проверить подключение приемника к серверу. Остановите ntpd и откройте COM-порт в терминале. В FreeBSD:

где /dev/gps0 файл устройства, 4800 — скорость передачи данных.

Изучите логи ntpd. Возможно стоит установить самую свежую версия сервера.

Убедитесь, что общая длина кабеля от порта до приемника не превышает 5 м. В противном случае, вам придется заморачиваться и делать дифференциальную линию для передачи сигнала для защиты от помех. Рекомендуется экранирование кабеля GPS соединить с экранированием USB-кабеля.

5.3 ntpd не видит сигнал PPS

Опять же проверьте подключение, например с помощью вольтметра или осцилографа. Я использую карманный дешёвый осциллограф DSO Nano. Так выглядит PPS сигнал:


Не используйте переходники USB-COM: PPS сигнал через них может не идти или идти с задержкой. Как правило, COM-порт всегда присутствует на материнской плате, просто он может быть не выведен на стенку корпуса.

5.4 Большой offset/jitter

Попробуйте выключить буфферизацию COM-порта. Установите в /boot/device.hints:

Посмотрите, нет ли новых версий прошивки для вашего GPS-приемника. (Garmin 18x LVC Firmware download)

Очевидной идеей является повышение скорости передачи данных. Но согласно документации ntpd это нам ничем не поможет. Скорость лучше оставить 4800.

Возможно стоит попробовать изменить системный таймер ОС. В FreeBSD можно прописать в /etc/sysctl.conf:


У меня offset стал «прыгать», когда кондиционер в серверной стал постоянно то включаться, то выключаться.
График зависимости offset PPS и температуры, когда температура стабильна:


Когда кондиционер безобразничает:

Из графика видно, что offset зависит от температуры воздуха в помещении. Связано это, видимо, с несовершенством таймера на сервере. Способы устранения этой проблемы описаны здесь и здесь.
«Хардварным» способом является замена генератора на материнской плате на термокомпенсированный (TXCO). Но это вариант для гуру микроэлектроники и паяльника.

6. Подготовка NTP-сервера к использованию

Перед публикацией сервера в сеть, прочитайте разделы документации, касающиеся установки прав доступа и ограничения количества запросов.

Если вы хотите создать NTP-сервер для локальной сети, то можно добавить адрес сервера в параметры DHCP. Однако у меня есть подозрения, что на Windows-клиентах эта опция не работает, а на *nix dchpclient нужно настраивать на каждой машине.

Список клиентов можно посмотреть командой ntpdc -c monlist.

Также написал небольшой скрипт для Zabbix, отслеживающий параметры reach/offset/jitter PPS и выбранного сервера времени. Запуск скрипта нужно добавить в zabbix_agentd.conf:

Перезапустите агент. На сервере соответственно нужно добавить эти item'ы для NTP-сервера. Теперь можно настраивать триггеры и графики.

7. Другие способы синхронизации времени

Помимо NMEA ntpd поддерживает еще массу более экзотических устройств (см. полный список).

Стоит отметить, в первую очередь, возможность синхронизации часов по радиосигналу. Например, в России работает служба RWM, из Франкфурта в Германии вещает станция DCF77. DCF77 неплохо ловится в европейской части России (у меня в Москве уверенный прием). Подружить DCF77 и ntpd несложно, см. статью. Точность такого решения будет ниже, однако оно дешевле варианта с GPS в несколько раз: нужно только купить антенну, никаких знаний радиотехники здесь не требуется.
Умельцы могут настроить синхронизацию по импульсам радио «Маяк» в конце каждого часа. Длина последнего шестого импульса зависит от текущего часа. Но такой способ будет явно хуже по точности, чем обычная синхронизация времени по Интернету.

Точное время можно получать от оператора сотовой связи (hellt). Такая «фича» называется NITZ. Однако не все операторы и не все GSM-устройства её поддерживают. Я проверил свои GSM-модемы Siemens MC55 и Arduino GPRS-shield на чипе SIM900 — таких AT-команд в этих устройствах нет.

Существуют также готовые NTP-сервера с датчиками GPS или ГЛОНАСС, но они, понятно, стоят гораздо дороже.

Список работающих российских публичных серверов statum 1

Желательно, чтобы разница времени между вашим компьютером и компьютером корреспондента не превышала одной секунды! Встроенный в Windows метод синхронизации времени, не всегда позволяет достичь нужно точности. Поэтому, будем использовать внешние программы.

Узнать насколько точны часы вашего компьютера, можно на сайте time.is или ntp-servers. Обычно есть небольшое расхождение, которое потребуется скорректировать.

Встроенная команда
Для синхронизации времени встроенными средствами Windows 10 из командной строки, наберите: w32tm /resync , так вы сможете (в ручном режиме) синхронизировать время, но только когда компьютер подключен к интернету.

Синхронизация через интернет
Если ваш компьютер постоянно подключен к интернет каналу, для синхронизации проще всего использовать бесплатную программу NetTime. Зайдите на страничку, скачайте последнюю версию и запустите установку.


В программе много тонких настроек, где можно выбрать интервалы синхронизации, сервера и тд. Для мгновенной синхронизации, запустите программу и нажмите кнопку Update Now. Вы увидите на сколько было скорректировано время вашего ПК.

NetTime может работать как сервис, а значит встроенную в Windows службу корректировки времени нужно отключить.

Синхронизация через GPS/ГЛОНАСС
Если у вас нет подключения к интернету (в экспедиции и тд) синхронизируйте время по сигналам спутников, для этого потребуется USB GPS, я использую модель G-STAR IV BU-353S4. Скачайте программу Сергея Кичатова satTime, распакуйте архив в любую папку и запустите.

Подключенный GPS модуль будет имитировать COM-порт (у меня это COM3) выберите в установках программы нужный порт и скорость 4800. Для запуска нажмите Open. Через некоторое время вы увидите кол-во найденных спутников и разницу между временем вашего ПК и GPS.


Для синхронизации нажмите кнопку Sync. Если нужно чтобы время синхронизировалось автоматически, нажмите Auto Sync.


Синхронизация через Log
Программа LogHX3 (автор RX4HX), имеет возможность точно синхронизировать часы вашего компьютера, для этого нажмите на часы правой кнопкой мышки и выберите пункт Synchronize time via Internet, время будет мгновенно скорректированно. Естественно, компьютер с логом должен быть подключен к интернету.


Конечно, есть и другие программы для синхронизации времени и среди них выделяется time-2, которая позволяет скорректировать часы в ручном режиме, без сети и gps.

Синхронизация без интернета и gps
Интересная программа, которая позволяет ручками скорректировать время в компьютере. Понятно что точность ниже, но этого достаточно, чтобы проводить QSO в JT-режимах. Страничка программы time-2.


Для работы в режимах FT8, JT9, JT65, кроме оригинальных программ WSJT и WSJT-X попробуйте JT65-HF, JTDX by UA3DJY, JT65-HF-HB9HQX-Edition, JT65-HF-Comfort by DL3VCO, JT65-HF-Comfort-4 by DL4OCE, MSHV by LZ2HV и дополнительные утилиты к ним, расширяющие возможности JT_Linker by JA2GRC, JT65toThw by JA2BQX, JT_Alert.

GPS-приемник Acutime Gold

Во многих радиотехнических устройствах требуется источник точного времени. Один из стандартных вариантов – использовать в качестве времязадающего элемента кварцевый резонатор и вести счет времени с помощью специализированной микросхемы или путем организации программного таймера. При использовании хороших кварцев данный метод позволяет достичь точности порядка 2–8 с в сутки [1].

В необслуживаемых системах уход времени на 8 с в сутки приводит к погрешности в 48 мин. в год, что в большинстве случаев недопустимо. Используя для синхронизации времени сигналы спутниковых навигационных систем, можно обеспечить точность встроенных часов не хуже десятков наносекунд на любом промежутке времени. Сигналы точного времени передаются обеими действующими на сегодняшний день спутниковыми группировками — ГЛОНАСС и GPS. Большинство приемников имеют выход сигнала 1PPS, на котором каждую секунду появляется короткий импульс, синхронизированный со шкалой всемирного координированного времени (UTC). Несмотря на то, что точное время способен выдавать любой GPS-приемник, существуют и специальные решения, отличающиеся повышенной точностью и ориентированные именно на задачи синхронизации времени.

Интеллектуальная GPS-антенна Trimble Acutime Gold

Acutime Gold представляет собой компактный законченный GPS-приемник (рис. 1), предназначенный для монтажа на мачту и способный с высокой точностью выдавать импульсы временной синхронизации и точное время. Приемник Acutime Gold выполнен в водонепроницаемом UV-защищенном корпусе и может работать в индустриальном диапазоне температур –40…+85 °С. Acutime Gold содержит патентованные алгоритмы обработки GPS-сигналов компании Trimble и является отличным решением для задач временной привязки и синхронизации, в том числе и в системах передачи данных. Это позволяет создать недорогое независимое решение по синхронизации времени для таких приложений, как измерительные устройства на трубопроводах, компьютерные сети, теле- и радиовещание, сотовые сети. Acutime Gold имеет интерфейс RS-422, который идеально подходит для длинных линий связи, которые неизбежны при монтаже приемника на крышах высотных зданий или на коммуникационных вышках. В приемнике предусмотрена специальная команда, позволяющая компенсировать задержку распространения сигнала в длинном кабеле, который может иметь длину до 500 м.

Встраиваемый модуль Trimble Resolution SMT 66266-00

Рис. 2. GPS-модуль Resolution SMT 66266-00

GPS-модуль Resolution SMT 66266-00 предназначен для применения в устройствах точной синхронизации времени и выпускается в SMD-корпусе 19×19 мм (рис. 2). От обычного GPS-модуля он отличается повышенной точностью сигнала PPS, который «привязан» к шкале времени UTC с расхождением не более 15 нс. Алгоритм работы модуля оптимизирован для выдачи высокоточных сигналов временной синхронизации. После включения Resolution SMT сначала фиксирует свое местоположение, для чего усредняется информация 2000 измерений координат. Затем приемник переходит в режим выдачи временных меток, используя вычисленное местоположение как фиксированную величину. Если точные координаты места установки известны, их можно загрузить заранее во флэш-память модуля. Специальный алгоритм TRAIM следит за целостностью (integrity) выдаваемых данных и исключает из расчета спутники с неадекватными параметрами. В режиме по умолчанию модуль не выдает наружу значения координат, однако использует их для отслеживания своего местоположения. Если в процессе работы произошло перемещение модуля более чем на 500 м (10 измерений подряд), то алгоритм первоначального определения местоположения запускается повторно. Resolution SMT можно перевести в режим выдачи обычных навигационных данных (PVT), однако точность сигналов временной синхронизации ухудшится примерно в 3 раза. Приемник имеет чувствительность –160 дБ и может одновременно отслеживать сигналы 14 спутников.

Отечественный ГЛОНАСС-приемник ГеоС-1М

ГЛОНАСС-приемник ГеоС-1М (рис. 3) выполнен в виде модуля для SMD-монтажа. Он предназначен для вычисления текущих координат и скорости объекта в реальном масштабе времени и формирования секундной метки времени. Принцип действия устройства основан на параллельном приеме и обработке 24-мя измерительными каналами сигналов навигационных спутников ГЛОНАСС в частотном диапазоне L1 (ПТ-код) и GPS на частоте L1 (C/A-код). ГеоС-1М может работать одновременно по сигналам как ГЛОНАСС, так и GPS Navstar. Это дает дополнительное преимущество в городских условиях, когда часть небосклона закрыта высокими зданиями. Специально для временных приложений предусмотрен режим фиксированных координат, когда сведения о размещении антенны вводятся в приемник в составе инициализирующих данных. Приемник формирует секундную метку времени с погрешностью синхронизации (при доверительной вероятности 0,997) к шкалам времени GPS, ГЛОНАСС, UTC, UTC(SU) не более 150 нс. Секундная метка времени представляет собой импульс, идущий с темпом 1 раз в секунду, с программируемой длительностью от 10 мкс до 2 мс. Для компенсации времени распространения сигнала в кабеле предоставляется возможность сдвига метки времени на фиксированную задержку в пределах ±1 мс.

Рис. 3. ГЛОНАСС-приемник ГеоС-1М, внешний вид модуля и схема

Рис. 3. ГЛОНАСС-приемник ГеоС-1М:
а) внешний вид модуля;
б) схема

Прогресс в развитии элементной базы привел к заметному улучшению технических параметров GPS-модулей (размеры, чувствительность, потребление) и снижению их стоимости. Это позволяет использовать их в качестве источника точного времени в тех приложениях, где ранее применение GPS-технологий было невозможно по экономическим соображениям. Сегодня же себестоимость комплектующих деталей для создания модуля синхронизации времени не превышает $20–30. При множестве достоинств технология GPS обладает одним существенным недостатком — она плохо или совсем не работает в закрытых помещениях. Можно получать сигнал у окна или даже в глубине комнаты, но ни один из производителей не может пока предложить GPS-решение, работающее в любой точке помещения. Принципиальным моментом работоспособности GPS-приемника в зданиях является наличие больших окон или других путей прохождения радиосигнала спутников. Преодолеть это ограничение можно, если совместить GPS-модуль с технологией беспроводной передачи данных, например ZigBee или Bluetooth. В этом случае можно размещать GPS-модуль в оптимальном для приема месте, а точное время передавать по радиоканалу. Более того, обе части системы (т. е. приемник и передатчик) можно выполнить в виде полностью автономных устройств, требующих обслуживания лишь раз в несколько лет для замены батарей (рис. 4).

Блок-схема системы синхронизации времени с беспроводным каналом

Рис. 4. Блок-схема системы синхронизации времени с беспроводным каналом

Приемник и передатчик могут большую часть времени находиться в спящем режиме, синхронно «просыпаясь» в согласованное время на короткий (единицы–десятки секунд) промежуток сеанса связи. Между сеансами связи, которые точно синхронизируют внутренние часы устройств, могут проходить часы или даже недели — за этот срок расхождение кварцевых осцилляторов не будет значительным. Максимальное потребление энергии происходит при включении GPS-модуля, однако время включения не превышает одной-двух минут при токе потребления порядка 30–50 мА (зависит от типа GPS-модуля). Потребление тока в спящем режиме при работающих часах реального времени для современных микроконтроллеров составляет единицы микроампер. При использовании батарей максимальной емкости (10x А/ч) можно обеспечить автономную работу в течение 5–10 лет.

Система синхронизации времени с модулями XBee

Для проверки данной идеи было построено 2 прототипа системы синхронизации времени на основе сигналов GPS. Первая система (см. таблицу) реализована на базе модулей XBee [2], работающих в диапазоне 2400 МГц.

Рис. 5. Передатчик системы

Рис. 6. Приемник на основе XBee-модуля

Приемник получает широковещательные пакеты ZigBee-сети, выделяет значение времени и отображает его на ЖК-дисплее (рис. 6). Встроенный XBee-модуль работает в режиме API и для нормальной работы должен входить в ту же сеть, что и приемник (единый идентификатор сети). После приема каждого пакета встроенный микроконтроллер запрашивает параметр мощности сигнала и отображает это значение в виде графической шкалы и в цифровом виде (в дБм). Приемник имеет внутренние часы, которые могут синхронизироваться по значению времени, поступающему от передатчика. В правом верхнем углу отображается время собственных часов (московское летнее). Принимаемое время от GPS-приемника отображается в правом нижнем углу ЖК-дисплея (UTC-время). На лицевой панели корпуса расположена зеленая кнопка ручной синхронизации внутренних часов и светодиод индикации состояния ZigBee-модуля.

Система синхронизации времени с радиоканалом 433 МГц

Для снижения себестоимости и реализации работы системы в спящем режиме был разработан прототип, где в качестве радиоканала использовались дешевые модули Teleconrolli на 433 МГц. В созданном прототипе передатчик (рис. 7) постоянно находится в режиме сна, включая GPS-модуль один раз в сутки для синхронизации своих внутренних часов. Продолжительность работы GPS-модуля ограничена 90 с. За это время в 95% случаев удается принять сигнал спутника даже при 50%-ной видимости неба.

Рис. 7. Передатчик на основе модуля 433 МГц

Рис. 7. Передатчик на основе модуля 433 МГц

Передача времени по радиоканалу осуществляется также один раз в сутки в заранее определенное время. Передатчик отсылает 5 радиопакетов, содержащих текущее время с точностью до секунды. Пакеты передаются в начале каждой секунды на 5-секундном интервале времени. Если приемник (рис. 8) работает от сетевого источника питания, то его можно держать в активном состоянии постоянно. При батарейном питании приемник должен находиться в состоянии сна с идущими внутренними часами. Включение происходит только на время сеанса связи — один раз в сутки, для чего требуется синхронизация передающего и приемного узла. Однако это не вызывает никаких трудностей, т. к. оба элемента периодически получают информацию о точном времени.

Приемник на основе модуля 433 МГ

Рис. 8. Приемник на основе модуля 433 МГц

Для компенсации расхождения часов в течение суток приемник переходит в активный режим за 5 с до начала сеанса связи и находится в этом режиме в течение 15 с. Для удешевления передатчика используется пассивная керамическая антенна, радиопротокол реализован программно в управляющем микроконтроллере. Если приемник по каким-то причинам вышел из режима синхронизации, то во время ожидаемого сеанса связи он не будет получать значение времени. Если ожидаемых пакетов нет в течение 5 включений подряд, то приемник должен выполнить цикл синхронизации, для чего его нужно перевести в режим непрерывного приема на срок не менее суток. В течение цикла синхронизации схема потребляет значительный ток (

9 мА), заметно снижая ресурс батареи. Для ручной синхронизации приемника достаточно выключить его и включить вновь за 5 с до сеанса связи. На встроенный ЖКИ-дисплей выводится местное время (рассчитанное на основе полученного UTC-времени) и дополнительная служебная информация (рис. 9).

Отображение принятой информации системы синхронизации времени

Рис. 9. Отображение принятой информации

Заключение

Использование сигналов спутниковых группировок ГЛОНАСС и GPS для получения точного времени технически несложно и экономически целесообразно для многих применений — от уличных часов до систем АСКУЭ. Технические ограничения, связанные с приемом спутникового сигнала, можно обойти при использовании беспроводной технологии передачи данных в безлицензионных диапазонах. Использование радиоканала позволяет также организовать одновременную синхронизацию времени для множества устройств в сети. Современная малопотребляющая элементная база дает возможность реализовать автономную беспроводную систему синхронизации времени с продолжительностью работы до 5–10 лет.

Читайте также: