GPS: как работает впрыск времени NTP - PullRequest
31 голосов
/ 29 ноября 2011

Я недавно знал о файле gps.conf в каталоге /system/etc/.Кажется, что настройка значений NTP_SERVER на NTP-серверах ближе к обычному расположению улучшает TTFF.

Чтение исходного кода в классе LocationProvider, кажется, что при загрузке время извлекается с NTP-сервера и «вводится» врасчеты.AFAIK каждый GPS-спутник имеет очень точные атомные часы, и каждый в созвездии синхронизируется с так называемым «временем GPS».Как только получатель получит 4 или более спутников, он решает (некоторым методом) уравнение, в котором есть четыре неизвестных: x, y, z, b;где (x, y, z) - местоположение приемника, а b - разница во времени между внутренними часами приемника и (правильным) временем GPS.После того, как это исправлено, часы приемника синхронизируются с правильным временем.(Пожалуйста, исправьте меня, если я ошибаюсь).

Пока у меня есть несколько вопросов относительно того, как работает впрыск времени NTP:

  1. Время GPS примерно равно TAI (International AtomicВремя) плюс смещение.Эти два раза не зависят от вращения Земли, однако UTC делает.Учитывая, что NTP-серверы возвращают время UTC, можно определить время GPS по времени UTC?
  2. Каким образом получение времени NTP с ближайшего сервера улучшает «качество» аппроксимации времени GPS?
  3. Предполагая, что у нас есть начальное значение времени GPS (как-то выведенное из времени NTP), о чем эта инъекция?Является ли это значение времени правильным для решения уравнения с неизвестными только x, y, z?Если так, то первое исправление также является лишь приблизительным, не так ли?
  4. Как улучшение начального приближения для времени GPS улучшает TTFF?Это потому, что при более низком времени качества NTP первые исправления считаются неприемлемыми и отбрасываются?
  5. Помогает ли приблизительное начальное положение найти следующее правильное исправление (например, прослушивание только подмножества sats)?

Ответы [ 3 ]

22 голосов
/ 08 декабря 2011

Хорошо, разведка немного википедии и некоторых других источников, позвольте мне сделать несколько предположений.

  1. Да, вы можете определить время GPS по времени UTC.Вам просто нужно знать смещение, которое передается каждые 15 секунд и меняется один раз примерно за 18 месяцев.Источник: Википедия

  2. NTP не дает вам точное время.Он измеряет время получения сообщения от клиента к серверу и время ответа от сервера клиенту.Эти времена затем используются для расчета задержки соединения.Который затем применяется как смещение к полученному времени.Это работает для симметричных маршрутов.Если маршруты асимметричные, возникает ошибка.Чем ближе сервер, тем меньше вероятность и уровень ассиметрии, тем самым снижается ошибка.Источник: Википедия снова

  3. Сигнал NTP напрямую не используется для получения GPS-исправления.Но для точного исправления вам нужны очень точные часы.Мы говорим здесь наносекунды.Спутники GPS передают текущее время GPS, но даже если оно движется со скоростью света, существует некоторая задержка.Приемник GPS не может знать, что такое задержка, поэтому он должен приближаться к нескольким полученным сигналам.С каждой полученной передачей часы становятся более точными.Таким образом, чем лучше у вас время в начале, тем меньше у вас сигналов времени, чтобы иметь точные часы.Источник: Википедия

  4. В значительной степени объяснено в 3. - чем меньше ошибка часов, тем меньше сигналов требуется для приблизительного определения правильного времени.

  5. Я немного догадываюсь здесь, но приблизительное местоположение может помочь вам лучше приблизить расстояние от спутника и, следовательно, задержку.(Не уверен, что это действительно используется.)

Я надеюсь, что это имеет хоть какой-то смысл; -)

3 голосов
/ 15 июня 2015

Мой ответ сосредоточится больше на NTP стороне вашего вопроса. Что касается GPS, я изучил этот документ PDF , упомянутый в комментарии mirabilos.

Согласно этому документу, для теплого пуска GPS-приемника вам необходимо знать время в течение 20 с, положение в пределах 100 км, скорость в пределах 25 м / с и данные альманаха не позднее, чем через несколько недель. Вам по-прежнему необходимо загружать данные эфемирид с каждого спутника, что в зависимости от типа приемника GPS занимает от 30 секунд до 3 минут.

Для горячего старта вам также нужны данные эфемерид (они действительны в течение 4 часов). Они также доступны через A-GPS (см. Ниже).

Протокол NTP использует иерархию серверов, начиная с исходного источника времени - GPS, атомных часов, ... Это называется источником stratum-0. NTP-сервер, напрямую связанный с этим источником, называется stratum-1. Сервер, использующий это в качестве вышестоящего сервера, является стратум-2 и так далее. Вам необходимо специально настроенное оборудование, чтобы достичь ошибки менее 1 мс даже для серверов stratum-1 (из-за задержек прерываний процессора, задержек последовательного порта, изменений температурного генератора).

С обычным HW в нормальной сети (например, без насыщенной линии DSL) вы можете достичь точности около 10 мс. Например, NTP pool считает свои серверы действительными и достаточно хорошими, если у них есть точное время в течение 100 мс. Точность времени NTP не зависит от географического положения между вами и NTP-сервером, но больше зависит от уровня, качества этого сервера и того, насколько далеко сервер основан на топологии сети.

Телефоны на базе Android обычно знают время с точностью не менее 1 секунды. Либо через периодическую синхронизацию времени через сеть GSM, либо если доступно соединение для передачи данных (Wi-Fi или сотовая связь), также через NTP.

Для упомянутого приложения FasterGPS - изменение вашего NTP-сервера на лучший не поможет вам получить более быстрый TTFF. Для этого вам понадобится время с точностью до наносекунд, что невозможно через NTP. Только сам GPS-чип способен отслеживать время с такой точностью. Что помогает на Android быстрее иметь TTFF:

  • Вы уже хорошо проводите время в течение 20 секунд на своем телефоне Android
  • Приблизительная возможность либо через Wi-Fi, либо из сети GSM (в пределах нескольких километров на основе вышек)
  • Использование A-GPS - он загружает свежую копию альманаха и эфемерид для всех спутников GPS через Интернет, поэтому вам не нужно загружать ее со спутников GPS (что занимает 30 секунд для эфемерид и 15 минут на альманах). С A-GPS вы можете использовать горячий старт и иметь TTFF менее 10 секунд.
2 голосов
/ 16 апреля 2014

Ян прав в своем комментарии, что ответы связаны с тем, как на самом деле работает GPS-приемник. Приемник быстрее придет к решению, если у него будет более точная оценка смещения тактового сигнала приемника. Многие приемники реализуют итеративное решение, которое опирается на первоначальную оценку положения приемника и смещения тактового сигнала. Если эти оценки уже близки к истинному значению, потребуется меньше итераций. Это только одна из причин того, что TTFF будет меньше. Есть и другие важные факторы. Если начальная оценка местоположения и времени хорошая, тогда процесс поиска для получения спутниковых сигналов займет значительно меньше времени, поскольку приемник может рассчитать, какие спутники должны быть видимыми, и он также может оценить приблизительный доплеровский сдвиг, испытываемый каждым из сигналов относительно к системе отсчета получателя.

...